Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/plugins/wpml-string-translation/dist/js/mo-scan/app.js
Назад
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=252)}([function(e,t,n){"use strict";e.exports=n(253)},function(e,t,n){e.exports=n(263)()},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function c(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(i(e,t))return!1;return!0}function s(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,r=[];for(n=0;n<e.length;++n)r.push(t(e[n],n));return r}function h(e,t){for(var n in t)i(t,n)&&(e[n]=t[n]);return i(t,"toString")&&(e.toString=t.toString),i(t,"valueOf")&&(e.valueOf=t.valueOf),e}function m(e,t,n,r){return kt(e,t,n,r,!0).utc()}function p(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function v(e){if(null==e._isValid){var t=p(e),n=r.call(t.parsedDateParts,(function(e){return null!=e})),a=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidEra&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(a=a&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return a;e._isValid=a}return e._isValid}function _(e){var t=m(NaN);return null!=e?h(p(t),e):p(t).userInvalidated=!0,t}r=Array.prototype.some?Array.prototype.some:function(e){var t,n=Object(this),r=n.length>>>0;for(t=0;t<r;t++)if(t in n&&e.call(this,n[t],t,n))return!0;return!1};var y=a.momentProperties=[],M=!1;function b(e,t){var n,r,a;if(s(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),s(t._i)||(e._i=t._i),s(t._f)||(e._f=t._f),s(t._l)||(e._l=t._l),s(t._strict)||(e._strict=t._strict),s(t._tzm)||(e._tzm=t._tzm),s(t._isUTC)||(e._isUTC=t._isUTC),s(t._offset)||(e._offset=t._offset),s(t._pf)||(e._pf=p(t)),s(t._locale)||(e._locale=t._locale),y.length>0)for(n=0;n<y.length;n++)s(a=t[r=y[n]])||(e[r]=a);return e}function g(e){b(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===M&&(M=!0,a.updateOffset(this),M=!1)}function L(e){return e instanceof g||null!=e&&null!=e._isAMomentObject}function z(e){!1===a.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function w(e,t){var n=!0;return h((function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,e),n){var r,c,o,l=[];for(c=0;c<arguments.length;c++){if(r="","object"==typeof arguments[c]){for(o in r+="\n["+c+"] ",arguments[0])i(arguments[0],o)&&(r+=o+": "+arguments[0][o]+", ");r=r.slice(0,-2)}else r=arguments[c];l.push(r)}z(e+"\nArguments: "+Array.prototype.slice.call(l).join("")+"\n"+(new Error).stack),n=!1}return t.apply(this,arguments)}),t)}var k,H={};function T(e,t){null!=a.deprecationHandler&&a.deprecationHandler(e,t),H[e]||(z(t),H[e]=!0)}function Y(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function S(e,t){var n,r=h({},e);for(n in t)i(t,n)&&(o(e[n])&&o(t[n])?(r[n]={},h(r[n],e[n]),h(r[n],t[n])):null!=t[n]?r[n]=t[n]:delete r[n]);for(n in e)i(e,n)&&!i(t,n)&&o(e[n])&&(r[n]=h({},r[n]));return r}function O(e){null!=e&&this.set(e)}function D(e,t,n){var r=""+Math.abs(e),a=t-r.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,k=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)i(e,t)&&n.push(t);return n};var x=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,C=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,j={},E={};function V(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(E[e]=a),t&&(E[t[0]]=function(){return D(a.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function P(e,t){return e.isValid()?(t=N(t,e.localeData()),j[t]=j[t]||function(e){var t,n,r,a=e.match(x);for(t=0,n=a.length;t<n;t++)E[a[t]]?a[t]=E[a[t]]:a[t]=(r=a[t]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");return function(t){var r,c="";for(r=0;r<n;r++)c+=Y(a[r])?a[r].call(t,e):a[r];return c}}(t),j[t](e)):e.localeData().invalidDate()}function N(e,t){var n=5;function r(e){return t.longDateFormat(e)||e}for(C.lastIndex=0;n>=0&&C.test(e);)e=e.replace(C,r),C.lastIndex=0,n-=1;return e}var A={};function F(e,t){var n=e.toLowerCase();A[n]=A[n+"s"]=A[t]=e}function W(e){return"string"==typeof e?A[e]||A[e.toLowerCase()]:void 0}function R(e){var t,n,r={};for(n in e)i(e,n)&&(t=W(n))&&(r[t]=e[n]);return r}var I={};function U(e,t){I[e]=t}function B(e){return e%4==0&&e%100!=0||e%400==0}function q(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function K(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=q(t)),n}function J(e,t){return function(n){return null!=n?($(this,e,n),a.updateOffset(this,t),this):G(this,e)}}function G(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function $(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&B(e.year())&&1===e.month()&&29===e.date()?(n=K(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Le(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var Q,Z=/\d/,X=/\d\d/,ee=/\d{3}/,te=/\d{4}/,ne=/[+-]?\d{6}/,re=/\d\d?/,ae=/\d\d\d\d?/,ce=/\d\d\d\d\d\d?/,oe=/\d{1,3}/,ie=/\d{1,4}/,le=/[+-]?\d{1,6}/,se=/\d+/,ue=/[+-]?\d+/,de=/Z|[+-]\d\d:?\d\d/gi,fe=/Z|[+-]\d\d(?::?\d\d)?/gi,he=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function me(e,t,n){Q[e]=Y(t)?t:function(e,r){return e&&n?n:t}}function pe(e,t){return i(Q,e)?Q[e](t._strict,t._locale):new RegExp(ve(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function ve(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}Q={};var _e,ye={};function Me(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=K(e)}),n=0;n<e.length;n++)ye[e[n]]=r}function be(e,t){Me(e,(function(e,n,r,a){r._w=r._w||{},t(e,r._w,r,a)}))}function ge(e,t,n){null!=t&&i(ye,e)&&ye[e](t,n._a,n,e)}function Le(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?B(e)?29:28:31-r%7%2}_e=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},V("M",["MM",2],"Mo",(function(){return this.month()+1})),V("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),V("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),F("month","M"),U("month",8),me("M",re),me("MM",re,X),me("MMM",(function(e,t){return t.monthsShortRegex(e)})),me("MMMM",(function(e,t){return t.monthsRegex(e)})),Me(["M","MM"],(function(e,t){t[1]=K(e)-1})),Me(["MMM","MMMM"],(function(e,t,n,r){var a=n._locale.monthsParse(e,r,n._strict);null!=a?t[1]=a:p(n).invalidMonth=e}));var ze="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),we="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),ke=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,He=he,Te=he;function Ye(e,t,n){var r,a,c,o=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)c=m([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(c,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(c,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(a=_e.call(this._shortMonthsParse,o))?a:null:-1!==(a=_e.call(this._longMonthsParse,o))?a:null:"MMM"===t?-1!==(a=_e.call(this._shortMonthsParse,o))||-1!==(a=_e.call(this._longMonthsParse,o))?a:null:-1!==(a=_e.call(this._longMonthsParse,o))||-1!==(a=_e.call(this._shortMonthsParse,o))?a:null}function Se(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=K(t);else if(!u(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Le(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Oe(e){return null!=e?(Se(this,e),a.updateOffset(this,!0),this):G(this,"Month")}function De(){function e(e,t){return t.length-e.length}var t,n,r=[],a=[],c=[];for(t=0;t<12;t++)n=m([2e3,t]),r.push(this.monthsShort(n,"")),a.push(this.months(n,"")),c.push(this.months(n,"")),c.push(this.monthsShort(n,""));for(r.sort(e),a.sort(e),c.sort(e),t=0;t<12;t++)r[t]=ve(r[t]),a[t]=ve(a[t]);for(t=0;t<24;t++)c[t]=ve(c[t]);this._monthsRegex=new RegExp("^("+c.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function xe(e){return B(e)?366:365}V("Y",0,0,(function(){var e=this.year();return e<=9999?D(e,4):"+"+e})),V(0,["YY",2],0,(function(){return this.year()%100})),V(0,["YYYY",4],0,"year"),V(0,["YYYYY",5],0,"year"),V(0,["YYYYYY",6,!0],0,"year"),F("year","y"),U("year",1),me("Y",ue),me("YY",re,X),me("YYYY",ie,te),me("YYYYY",le,ne),me("YYYYYY",le,ne),Me(["YYYYY","YYYYYY"],0),Me("YYYY",(function(e,t){t[0]=2===e.length?a.parseTwoDigitYear(e):K(e)})),Me("YY",(function(e,t){t[0]=a.parseTwoDigitYear(e)})),Me("Y",(function(e,t){t[0]=parseInt(e,10)})),a.parseTwoDigitYear=function(e){return K(e)+(K(e)>68?1900:2e3)};var Ce=J("FullYear",!0);function je(e,t,n,r,a,c,o){var i;return e<100&&e>=0?(i=new Date(e+400,t,n,r,a,c,o),isFinite(i.getFullYear())&&i.setFullYear(e)):i=new Date(e,t,n,r,a,c,o),i}function Ee(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Ve(e,t,n){var r=7+t-n;return-(7+Ee(e,0,r).getUTCDay()-t)%7+r-1}function Pe(e,t,n,r,a){var c,o,i=1+7*(t-1)+(7+n-r)%7+Ve(e,r,a);return i<=0?o=xe(c=e-1)+i:i>xe(e)?(c=e+1,o=i-xe(e)):(c=e,o=i),{year:c,dayOfYear:o}}function Ne(e,t,n){var r,a,c=Ve(e.year(),t,n),o=Math.floor((e.dayOfYear()-c-1)/7)+1;return o<1?r=o+Ae(a=e.year()-1,t,n):o>Ae(e.year(),t,n)?(r=o-Ae(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function Ae(e,t,n){var r=Ve(e,t,n),a=Ve(e+1,t,n);return(xe(e)-r+a)/7}function Fe(e,t){return e.slice(t,7).concat(e.slice(0,t))}V("w",["ww",2],"wo","week"),V("W",["WW",2],"Wo","isoWeek"),F("week","w"),F("isoWeek","W"),U("week",5),U("isoWeek",5),me("w",re),me("ww",re,X),me("W",re),me("WW",re,X),be(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=K(e)})),V("d",0,"do","day"),V("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),V("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),V("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),V("e",0,0,"weekday"),V("E",0,0,"isoWeekday"),F("day","d"),F("weekday","e"),F("isoWeekday","E"),U("day",11),U("weekday",11),U("isoWeekday",11),me("d",re),me("e",re),me("E",re),me("dd",(function(e,t){return t.weekdaysMinRegex(e)})),me("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),me("dddd",(function(e,t){return t.weekdaysRegex(e)})),be(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:p(n).invalidWeekday=e})),be(["d","e","E"],(function(e,t,n,r){t[r]=K(e)}));var We="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Re="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ie="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ue=he,Be=he,qe=he;function Ke(e,t,n){var r,a,c,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)c=m([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(c,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(c,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(c,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=_e.call(this._weekdaysParse,o))?a:null:"ddd"===t?-1!==(a=_e.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=_e.call(this._minWeekdaysParse,o))?a:null:"dddd"===t?-1!==(a=_e.call(this._weekdaysParse,o))||-1!==(a=_e.call(this._shortWeekdaysParse,o))||-1!==(a=_e.call(this._minWeekdaysParse,o))?a:null:"ddd"===t?-1!==(a=_e.call(this._shortWeekdaysParse,o))||-1!==(a=_e.call(this._weekdaysParse,o))||-1!==(a=_e.call(this._minWeekdaysParse,o))?a:null:-1!==(a=_e.call(this._minWeekdaysParse,o))||-1!==(a=_e.call(this._weekdaysParse,o))||-1!==(a=_e.call(this._shortWeekdaysParse,o))?a:null}function Je(){function e(e,t){return t.length-e.length}var t,n,r,a,c,o=[],i=[],l=[],s=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),r=ve(this.weekdaysMin(n,"")),a=ve(this.weekdaysShort(n,"")),c=ve(this.weekdays(n,"")),o.push(r),i.push(a),l.push(c),s.push(r),s.push(a),s.push(c);o.sort(e),i.sort(e),l.sort(e),s.sort(e),this._weekdaysRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Ge(){return this.hours()%12||12}function $e(e,t){V(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Qe(e,t){return t._meridiemParse}V("H",["HH",2],0,"hour"),V("h",["hh",2],0,Ge),V("k",["kk",2],0,(function(){return this.hours()||24})),V("hmm",0,0,(function(){return""+Ge.apply(this)+D(this.minutes(),2)})),V("hmmss",0,0,(function(){return""+Ge.apply(this)+D(this.minutes(),2)+D(this.seconds(),2)})),V("Hmm",0,0,(function(){return""+this.hours()+D(this.minutes(),2)})),V("Hmmss",0,0,(function(){return""+this.hours()+D(this.minutes(),2)+D(this.seconds(),2)})),$e("a",!0),$e("A",!1),F("hour","h"),U("hour",13),me("a",Qe),me("A",Qe),me("H",re),me("h",re),me("k",re),me("HH",re,X),me("hh",re,X),me("kk",re,X),me("hmm",ae),me("hmmss",ce),me("Hmm",ae),me("Hmmss",ce),Me(["H","HH"],3),Me(["k","kk"],(function(e,t,n){var r=K(e);t[3]=24===r?0:r})),Me(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),Me(["h","hh"],(function(e,t,n){t[3]=K(e),p(n).bigHour=!0})),Me("hmm",(function(e,t,n){var r=e.length-2;t[3]=K(e.substr(0,r)),t[4]=K(e.substr(r)),p(n).bigHour=!0})),Me("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=K(e.substr(0,r)),t[4]=K(e.substr(r,2)),t[5]=K(e.substr(a)),p(n).bigHour=!0})),Me("Hmm",(function(e,t,n){var r=e.length-2;t[3]=K(e.substr(0,r)),t[4]=K(e.substr(r))})),Me("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=K(e.substr(0,r)),t[4]=K(e.substr(r,2)),t[5]=K(e.substr(a))}));var Ze,Xe=J("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:ze,monthsShort:we,week:{dow:0,doy:6},weekdays:We,weekdaysMin:Ie,weekdaysShort:Re,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n<r;n+=1)if(e[n]!==t[n])return n;return r}function at(e){return e?e.toLowerCase().replace("_","-"):e}function ct(t){var r=null;if(void 0===tt[t]&&void 0!==e&&e&&e.exports)try{r=Ze._abbr,n(304)("./"+t),ot(r)}catch(e){tt[t]=null}return tt[t]}function ot(e,t){var n;return e&&((n=s(t)?lt(e):it(e,t))?Ze=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Ze._abbr}function it(e,t){if(null!==t){var n,r=et;if(t.abbr=e,null!=tt[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])r=tt[t.parentLocale]._config;else{if(null==(n=ct(t.parentLocale)))return nt[t.parentLocale]||(nt[t.parentLocale]=[]),nt[t.parentLocale].push({name:e,config:t}),null;r=n._config}return tt[e]=new O(S(r,t)),nt[e]&&nt[e].forEach((function(e){it(e.name,e.config)})),ot(e),tt[e]}return delete tt[e],null}function lt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ze;if(!c(e)){if(t=ct(e))return t;e=[e]}return function(e){for(var t,n,r,a,c=0;c<e.length;){for(t=(a=at(e[c]).split("-")).length,n=(n=at(e[c+1]))?n.split("-"):null;t>0;){if(r=ct(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&rt(a,n)>=t-1)break;t--}c++}return Ze}(e)}function st(e){var t,n=e._a;return n&&-2===p(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>Le(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,p(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),p(e)._overflowWeeks&&-1===t&&(t=7),p(e)._overflowWeekday&&-1===t&&(t=8),p(e).overflow=t),e}var ut=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/Z|[+-]\d\d(?::?\d\d)?/,ht=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],mt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((-?\d+)/i,vt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,_t={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function yt(e){var t,n,r,a,c,o,i=e._i,l=ut.exec(i)||dt.exec(i);if(l){for(p(e).iso=!0,t=0,n=ht.length;t<n;t++)if(ht[t][1].exec(l[1])){a=ht[t][0],r=!1!==ht[t][2];break}if(null==a)return void(e._isValid=!1);if(l[3]){for(t=0,n=mt.length;t<n;t++)if(mt[t][1].exec(l[3])){c=(l[2]||" ")+mt[t][0];break}if(null==c)return void(e._isValid=!1)}if(!r&&null!=c)return void(e._isValid=!1);if(l[4]){if(!ft.exec(l[4]))return void(e._isValid=!1);o="Z"}e._f=a+(c||"")+(o||""),zt(e)}else e._isValid=!1}function Mt(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function bt(e){var t,n,r,a,c,o,i,l,s=vt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(s){if(n=s[4],r=s[3],a=s[2],c=s[5],o=s[6],i=s[7],l=[Mt(n),we.indexOf(r),parseInt(a,10),parseInt(c,10),parseInt(o,10)],i&&l.push(parseInt(i,10)),t=l,!function(e,t,n){return!e||Re.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(p(n).weekdayMismatch=!0,n._isValid=!1,!1)}(s[1],t,e))return;e._a=t,e._tzm=function(e,t,n){if(e)return _t[e];if(t)return 0;var r=parseInt(n,10),a=r%100;return(r-a)/100*60+a}(s[8],s[9],s[10]),e._d=Ee.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),p(e).rfc2822=!0}else e._isValid=!1}function gt(e,t,n){return null!=e?e:null!=t?t:n}function Lt(e){var t,n,r,c,o,i=[];if(!e._d){for(r=function(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,a,c,o,i,l,s;null!=(t=e._w).GG||null!=t.W||null!=t.E?(c=1,o=4,n=gt(t.GG,e._a[0],Ne(Ht(),1,4).year),r=gt(t.W,1),((a=gt(t.E,1))<1||a>7)&&(l=!0)):(c=e._locale._week.dow,o=e._locale._week.doy,s=Ne(Ht(),c,o),n=gt(t.gg,e._a[0],s.year),r=gt(t.w,s.week),null!=t.d?((a=t.d)<0||a>6)&&(l=!0):null!=t.e?(a=t.e+c,(t.e<0||t.e>6)&&(l=!0)):a=c),r<1||r>Ae(n,c,o)?p(e)._overflowWeeks=!0:null!=l?p(e)._overflowWeekday=!0:(i=Pe(n,r,a,c,o),e._a[0]=i.year,e._dayOfYear=i.dayOfYear)}(e),null!=e._dayOfYear&&(o=gt(e._a[0],r[0]),(e._dayOfYear>xe(o)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),n=Ee(o,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=i[t]=r[t];for(;t<7;t++)e._a[t]=i[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ee:je).apply(null,i),c=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==c&&(p(e).weekdayMismatch=!0)}}function zt(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],p(e).empty=!0;var t,n,r,c,o,i,l=""+e._i,s=l.length,u=0;for(r=N(e._f,e._locale).match(x)||[],t=0;t<r.length;t++)c=r[t],(n=(l.match(pe(c,e))||[])[0])&&((o=l.substr(0,l.indexOf(n))).length>0&&p(e).unusedInput.push(o),l=l.slice(l.indexOf(n)+n.length),u+=n.length),E[c]?(n?p(e).empty=!1:p(e).unusedTokens.push(c),ge(c,n,e)):e._strict&&!n&&p(e).unusedTokens.push(c);p(e).charsLeftOver=s-u,l.length>0&&p(e).unusedInput.push(l),e._a[3]<=12&&!0===p(e).bigHour&&e._a[3]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),null!==(i=p(e).era)&&(e._a[0]=e._locale.erasConvertYear(i,e._a[0])),Lt(e),st(e)}else bt(e);else yt(e)}function wt(e){var t=e._i,n=e._f;return e._locale=e._locale||lt(e._l),null===t||void 0===n&&""===t?_({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),L(t)?new g(st(t)):(d(t)?e._d=t:c(n)?function(e){var t,n,r,a,c,o,i=!1;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;a<e._f.length;a++)c=0,o=!1,t=b({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[a],zt(t),v(t)&&(o=!0),c+=p(t).charsLeftOver,c+=10*p(t).unusedTokens.length,p(t).score=c,i?c<r&&(r=c,n=t):(null==r||c<r||o)&&(r=c,n=t,o&&(i=!0));h(e,n||t)}(e):n?zt(e):function(e){var t=e._i;s(t)?e._d=new Date(a.now()):d(t)?e._d=new Date(t.valueOf()):"string"==typeof t?function(e){var t=pt.exec(e._i);null===t?(yt(e),!1===e._isValid&&(delete e._isValid,bt(e),!1===e._isValid&&(delete e._isValid,e._strict?e._isValid=!1:a.createFromInputFallback(e)))):e._d=new Date(+t[1])}(e):c(t)?(e._a=f(t.slice(0),(function(e){return parseInt(e,10)})),Lt(e)):o(t)?function(e){if(!e._d){var t=R(e._i),n=void 0===t.day?t.date:t.day;e._a=f([t.year,t.month,n,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),Lt(e)}}(e):u(t)?e._d=new Date(t):a.createFromInputFallback(e)}(e),v(e)||(e._d=null),e))}function kt(e,t,n,r,a){var i,s={};return!0!==t&&!1!==t||(r=t,t=void 0),!0!==n&&!1!==n||(r=n,n=void 0),(o(e)&&l(e)||c(e)&&0===e.length)&&(e=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=a,s._l=n,s._i=e,s._f=t,s._strict=r,(i=new g(st(wt(s))))._nextDay&&(i.add(1,"d"),i._nextDay=void 0),i}function Ht(e,t,n,r){return kt(e,t,n,r,!1)}a.createFromInputFallback=w("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),a.ISO_8601=function(){},a.RFC_2822=function(){};var Tt=w("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Ht.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:_()})),Yt=w("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Ht.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:_()}));function St(e,t){var n,r;if(1===t.length&&c(t[0])&&(t=t[0]),!t.length)return Ht();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Ot=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Dt(e){var t=R(e),n=t.year||0,r=t.quarter||0,a=t.month||0,c=t.week||t.isoWeek||0,o=t.day||0,l=t.hour||0,s=t.minute||0,u=t.second||0,d=t.millisecond||0;this._isValid=function(e){var t,n,r=!1;for(t in e)if(i(e,t)&&(-1===_e.call(Ot,t)||null!=e[t]&&isNaN(e[t])))return!1;for(n=0;n<Ot.length;++n)if(e[Ot[n]]){if(r)return!1;parseFloat(e[Ot[n]])!==K(e[Ot[n]])&&(r=!0)}return!0}(t),this._milliseconds=+d+1e3*u+6e4*s+1e3*l*60*60,this._days=+o+7*c,this._months=+a+3*r+12*n,this._data={},this._locale=lt(),this._bubble()}function xt(e){return e instanceof Dt}function Ct(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function jt(e,t){V(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+D(~~(e/60),2)+t+D(~~e%60,2)}))}jt("Z",":"),jt("ZZ",""),me("Z",fe),me("ZZ",fe),Me(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=Vt(fe,e)}));var Et=/([\+\-]|\d\d)/gi;function Vt(e,t){var n,r,a=(t||"").match(e);return null===a?null:0===(r=60*(n=((a[a.length-1]||[])+"").match(Et)||["-",0,0])[1]+K(n[2]))?0:"+"===n[0]?r:-r}function Pt(e,t){var n,r;return t._isUTC?(n=t.clone(),r=(L(e)||d(e)?e.valueOf():Ht(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+r),a.updateOffset(n,!1),n):Ht(e).local()}function Nt(e){return-Math.round(e._d.getTimezoneOffset())}function At(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var Ft=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Wt=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Rt(e,t){var n,r,a,c,o,l,s=e,d=null;return xt(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:u(e)||!isNaN(+e)?(s={},t?s[t]=+e:s.milliseconds=+e):(d=Ft.exec(e))?(n="-"===d[1]?-1:1,s={y:0,d:K(d[2])*n,h:K(d[3])*n,m:K(d[4])*n,s:K(d[5])*n,ms:K(Ct(1e3*d[6]))*n}):(d=Wt.exec(e))?(n="-"===d[1]?-1:1,s={y:It(d[2],n),M:It(d[3],n),w:It(d[4],n),d:It(d[5],n),h:It(d[6],n),m:It(d[7],n),s:It(d[8],n)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(c=Ht(s.from),o=Ht(s.to),a=c.isValid()&&o.isValid()?(o=Pt(o,c),c.isBefore(o)?l=Ut(c,o):((l=Ut(o,c)).milliseconds=-l.milliseconds,l.months=-l.months),l):{milliseconds:0,months:0},(s={}).ms=a.milliseconds,s.M=a.months),r=new Dt(s),xt(e)&&i(e,"_locale")&&(r._locale=e._locale),xt(e)&&i(e,"_isValid")&&(r._isValid=e._isValid),r}function It(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ut(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Bt(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),qt(this,Rt(n,r),e),this}}function qt(e,t,n,r){var c=t._milliseconds,o=Ct(t._days),i=Ct(t._months);e.isValid()&&(r=null==r||r,i&&Se(e,G(e,"Month")+i*n),o&&$(e,"Date",G(e,"Date")+o*n),c&&e._d.setTime(e._d.valueOf()+c*n),r&&a.updateOffset(e,o||i))}Rt.fn=Dt.prototype,Rt.invalid=function(){return Rt(NaN)};var Kt=Bt(1,"add"),Jt=Bt(-1,"subtract");function Gt(e){return"string"==typeof e||e instanceof String}function $t(e){return L(e)||d(e)||Gt(e)||u(e)||function(e){var t=c(e),n=!1;return t&&(n=0===e.filter((function(t){return!u(t)&&Gt(e)})).length),t&&n}(e)||function(e){var t,n,r=o(e)&&!l(e),a=!1,c=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"];for(t=0;t<c.length;t+=1)n=c[t],a=a||i(e,n);return r&&a}(e)||null==e}function Qt(e){var t,n=o(e)&&!l(e),r=!1,a=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;t<a.length;t+=1)r=r||i(e,a[t]);return n&&r}function Zt(e,t){if(e.date()<t.date())return-Zt(t,e);var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,"months");return-(n+(t-r<0?(t-r)/(r-e.clone().add(n-1,"months")):(t-r)/(e.clone().add(n+1,"months")-r)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=lt(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var en=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function tn(){return this._locale}function nn(e,t){return(e%t+t)%t}function rn(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function an(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function cn(e,t){return t.erasAbbrRegex(e)}function on(){var e,t,n=[],r=[],a=[],c=[],o=this.eras();for(e=0,t=o.length;e<t;++e)r.push(ve(o[e].name)),n.push(ve(o[e].abbr)),a.push(ve(o[e].narrow)),c.push(ve(o[e].name)),c.push(ve(o[e].abbr)),c.push(ve(o[e].narrow));this._erasRegex=new RegExp("^("+c.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+r.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+n.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+a.join("|")+")","i")}function ln(e,t){V(0,[e,e.length],0,t)}function sn(e,t,n,r,a){var c;return null==e?Ne(this,r,a).year:(t>(c=Ae(e,r,a))&&(t=c),un.call(this,e,t,n,r,a))}function un(e,t,n,r,a){var c=Pe(e,t,n,r,a),o=Ee(c.year,0,c.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}V("N",0,0,"eraAbbr"),V("NN",0,0,"eraAbbr"),V("NNN",0,0,"eraAbbr"),V("NNNN",0,0,"eraName"),V("NNNNN",0,0,"eraNarrow"),V("y",["y",1],"yo","eraYear"),V("y",["yy",2],0,"eraYear"),V("y",["yyy",3],0,"eraYear"),V("y",["yyyy",4],0,"eraYear"),me("N",cn),me("NN",cn),me("NNN",cn),me("NNNN",(function(e,t){return t.erasNameRegex(e)})),me("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),Me(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?p(n).era=a:p(n).invalidEra=e})),me("y",se),me("yy",se),me("yyy",se),me("yyyy",se),me("yo",(function(e,t){return t._eraYearOrdinalRegex||se})),Me(["y","yy","yyy","yyyy"],0),Me(["yo"],(function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[0]=n._locale.eraYearOrdinalParse(e,a):t[0]=parseInt(e,10)})),V(0,["gg",2],0,(function(){return this.weekYear()%100})),V(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ln("gggg","weekYear"),ln("ggggg","weekYear"),ln("GGGG","isoWeekYear"),ln("GGGGG","isoWeekYear"),F("weekYear","gg"),F("isoWeekYear","GG"),U("weekYear",1),U("isoWeekYear",1),me("G",ue),me("g",ue),me("GG",re,X),me("gg",re,X),me("GGGG",ie,te),me("gggg",ie,te),me("GGGGG",le,ne),me("ggggg",le,ne),be(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=K(e)})),be(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),V("Q",0,"Qo","quarter"),F("quarter","Q"),U("quarter",7),me("Q",Z),Me("Q",(function(e,t){t[1]=3*(K(e)-1)})),V("D",["DD",2],"Do","date"),F("date","D"),U("date",9),me("D",re),me("DD",re,X),me("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),Me(["D","DD"],2),Me("Do",(function(e,t){t[2]=K(e.match(re)[0])}));var dn=J("Date",!0);V("DDD",["DDDD",3],"DDDo","dayOfYear"),F("dayOfYear","DDD"),U("dayOfYear",4),me("DDD",oe),me("DDDD",ee),Me(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=K(e)})),V("m",["mm",2],0,"minute"),F("minute","m"),U("minute",14),me("m",re),me("mm",re,X),Me(["m","mm"],4);var fn=J("Minutes",!1);V("s",["ss",2],0,"second"),F("second","s"),U("second",15),me("s",re),me("ss",re,X),Me(["s","ss"],5);var hn,mn,pn=J("Seconds",!1);for(V("S",0,0,(function(){return~~(this.millisecond()/100)})),V(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),V(0,["SSS",3],0,"millisecond"),V(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),V(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),V(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),V(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),V(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),V(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),F("millisecond","ms"),U("millisecond",16),me("S",oe,Z),me("SS",oe,X),me("SSS",oe,ee),hn="SSSS";hn.length<=9;hn+="S")me(hn,se);function vn(e,t){t[6]=K(1e3*("0."+e))}for(hn="S";hn.length<=9;hn+="S")Me(hn,vn);mn=J("Milliseconds",!1),V("z",0,0,"zoneAbbr"),V("zz",0,0,"zoneName");var _n=g.prototype;function yn(e){return e}_n.add=Kt,_n.calendar=function(e,t){1===arguments.length&&($t(arguments[0])?(e=arguments[0],t=void 0):Qt(arguments[0])&&(t=arguments[0],e=void 0));var n=e||Ht(),r=Pt(n,this).startOf("day"),c=a.calendarFormat(this,r)||"sameElse",o=t&&(Y(t[c])?t[c].call(this,n):t[c]);return this.format(o||this.localeData().calendar(c,this,Ht(n)))},_n.clone=function(){return new g(this)},_n.diff=function(e,t,n){var r,a,c;if(!this.isValid())return NaN;if(!(r=Pt(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=W(t)){case"year":c=Zt(this,r)/12;break;case"month":c=Zt(this,r);break;case"quarter":c=Zt(this,r)/3;break;case"second":c=(this-r)/1e3;break;case"minute":c=(this-r)/6e4;break;case"hour":c=(this-r)/36e5;break;case"day":c=(this-r-a)/864e5;break;case"week":c=(this-r-a)/6048e5;break;default:c=this-r}return n?c:q(c)},_n.endOf=function(e){var t,n;if(void 0===(e=W(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?an:rn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1}return this._d.setTime(t),a.updateOffset(this,!0),this},_n.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=P(this,e);return this.localeData().postformat(t)},_n.from=function(e,t){return this.isValid()&&(L(e)&&e.isValid()||Ht(e).isValid())?Rt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},_n.fromNow=function(e){return this.from(Ht(),e)},_n.to=function(e,t){return this.isValid()&&(L(e)&&e.isValid()||Ht(e).isValid())?Rt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},_n.toNow=function(e){return this.to(Ht(),e)},_n.get=function(e){return Y(this[e=W(e)])?this[e]():this},_n.invalidAt=function(){return p(this).overflow},_n.isAfter=function(e,t){var n=L(e)?e:Ht(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=W(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},_n.isBefore=function(e,t){var n=L(e)?e:Ht(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=W(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},_n.isBetween=function(e,t,n,r){var a=L(e)?e:Ht(e),c=L(t)?t:Ht(t);return!!(this.isValid()&&a.isValid()&&c.isValid())&&(("("===(r=r||"()")[0]?this.isAfter(a,n):!this.isBefore(a,n))&&(")"===r[1]?this.isBefore(c,n):!this.isAfter(c,n)))},_n.isSame=function(e,t){var n,r=L(e)?e:Ht(e);return!(!this.isValid()||!r.isValid())&&("millisecond"===(t=W(t)||"millisecond")?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},_n.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},_n.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},_n.isValid=function(){return v(this)},_n.lang=en,_n.locale=Xt,_n.localeData=tn,_n.max=Yt,_n.min=Tt,_n.parsingFlags=function(){return h({},p(this))},_n.set=function(e,t){if("object"==typeof e){var n,r=function(e){var t,n=[];for(t in e)i(e,t)&&n.push({unit:t,priority:I[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}(e=R(e));for(n=0;n<r.length;n++)this[r[n].unit](e[r[n].unit])}else if(Y(this[e=W(e)]))return this[e](t);return this},_n.startOf=function(e){var t,n;if(void 0===(e=W(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?an:rn,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=nn(t,6e4);break;case"second":t=this._d.valueOf(),t-=nn(t,1e3)}return this._d.setTime(t),a.updateOffset(this,!0),this},_n.subtract=Jt,_n.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},_n.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},_n.toDate=function(){return new Date(this.valueOf())},_n.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||n.year()>9999?P(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Y(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",P(n,"Z")):P(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},_n.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r="moment",a="";return this.isLocal()||(r=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z"),e="["+r+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=a+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(_n[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),_n.toJSON=function(){return this.isValid()?this.toISOString():null},_n.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},_n.unix=function(){return Math.floor(this.valueOf()/1e3)},_n.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},_n.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},_n.eraName=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].name;if(r[e].until<=n&&n<=r[e].since)return r[e].name}return""},_n.eraNarrow=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].narrow;if(r[e].until<=n&&n<=r[e].since)return r[e].narrow}return""},_n.eraAbbr=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].abbr;if(r[e].until<=n&&n<=r[e].since)return r[e].abbr}return""},_n.eraYear=function(){var e,t,n,r,c=this.localeData().eras();for(e=0,t=c.length;e<t;++e)if(n=c[e].since<=c[e].until?1:-1,r=this.startOf("day").valueOf(),c[e].since<=r&&r<=c[e].until||c[e].until<=r&&r<=c[e].since)return(this.year()-a(c[e].since).year())*n+c[e].offset;return this.year()},_n.year=Ce,_n.isLeapYear=function(){return B(this.year())},_n.weekYear=function(e){return sn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},_n.isoWeekYear=function(e){return sn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},_n.quarter=_n.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},_n.month=Oe,_n.daysInMonth=function(){return Le(this.year(),this.month())},_n.week=_n.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},_n.isoWeek=_n.isoWeeks=function(e){var t=Ne(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},_n.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},_n.weeksInWeekYear=function(){var e=this.localeData()._week;return Ae(this.weekYear(),e.dow,e.doy)},_n.isoWeeksInYear=function(){return Ae(this.year(),1,4)},_n.isoWeeksInISOWeekYear=function(){return Ae(this.isoWeekYear(),1,4)},_n.date=dn,_n.day=_n.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},_n.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},_n.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},_n.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},_n.hour=_n.hours=Xe,_n.minute=_n.minutes=fn,_n.second=_n.seconds=pn,_n.millisecond=_n.milliseconds=mn,_n.utcOffset=function(e,t,n){var r,c=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Vt(fe,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=Nt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),c!==e&&(!t||this._changeInProgress?qt(this,Rt(e-c,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?c:Nt(this)},_n.utc=function(e){return this.utcOffset(0,e)},_n.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Nt(this),"m")),this},_n.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Vt(de,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},_n.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Ht(e).utcOffset():0,(this.utcOffset()-e)%60==0)},_n.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},_n.isLocal=function(){return!!this.isValid()&&!this._isUTC},_n.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},_n.isUtc=At,_n.isUTC=At,_n.zoneAbbr=function(){return this._isUTC?"UTC":""},_n.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},_n.dates=w("dates accessor is deprecated. Use date instead.",dn),_n.months=w("months accessor is deprecated. Use month instead",Oe),_n.years=w("years accessor is deprecated. Use year instead",Ce),_n.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),_n.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e,t={};return b(t,this),(t=wt(t))._a?(e=t._isUTC?m(t._a):Ht(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var r,a=Math.min(e.length,t.length),c=Math.abs(e.length-t.length),o=0;for(r=0;r<a;r++)(n&&e[r]!==t[r]||!n&&K(e[r])!==K(t[r]))&&o++;return o+c}(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}));var Mn=O.prototype;function bn(e,t,n,r){var a=lt(),c=m().set(r,t);return a[n](c,e)}function gn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return bn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=bn(e,r,n,"month");return a}function Ln(e,t,n,r){"boolean"==typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var a,c=lt(),o=e?c._week.dow:0,i=[];if(null!=n)return bn(t,(n+o)%7,r,"day");for(a=0;a<7;a++)i[a]=bn(t,(a+o)%7,r,"day");return i}Mn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return Y(r)?r.call(t,n):r},Mn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(x).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},Mn.invalidDate=function(){return this._invalidDate},Mn.ordinal=function(e){return this._ordinal.replace("%d",e)},Mn.preparse=yn,Mn.postformat=yn,Mn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return Y(a)?a(e,t,n,r):a.replace(/%d/i,e)},Mn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return Y(n)?n(t):n.replace(/%s/i,t)},Mn.set=function(e){var t,n;for(n in e)i(e,n)&&(Y(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Mn.eras=function(e,t){var n,r,c,o=this._eras||lt("en")._eras;for(n=0,r=o.length;n<r;++n){switch(typeof o[n].since){case"string":c=a(o[n].since).startOf("day"),o[n].since=c.valueOf()}switch(typeof o[n].until){case"undefined":o[n].until=1/0;break;case"string":c=a(o[n].until).startOf("day").valueOf(),o[n].until=c.valueOf()}}return o},Mn.erasParse=function(e,t,n){var r,a,c,o,i,l=this.eras();for(e=e.toUpperCase(),r=0,a=l.length;r<a;++r)if(c=l[r].name.toUpperCase(),o=l[r].abbr.toUpperCase(),i=l[r].narrow.toUpperCase(),n)switch(t){case"N":case"NN":case"NNN":if(o===e)return l[r];break;case"NNNN":if(c===e)return l[r];break;case"NNNNN":if(i===e)return l[r]}else if([c,o,i].indexOf(e)>=0)return l[r]},Mn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*n},Mn.erasAbbrRegex=function(e){return i(this,"_erasAbbrRegex")||on.call(this),e?this._erasAbbrRegex:this._erasRegex},Mn.erasNameRegex=function(e){return i(this,"_erasNameRegex")||on.call(this),e?this._erasNameRegex:this._erasRegex},Mn.erasNarrowRegex=function(e){return i(this,"_erasNarrowRegex")||on.call(this),e?this._erasNarrowRegex:this._erasRegex},Mn.months=function(e,t){return e?c(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||ke).test(t)?"format":"standalone"][e.month()]:c(this._months)?this._months:this._months.standalone},Mn.monthsShort=function(e,t){return e?c(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[ke.test(t)?"format":"standalone"][e.month()]:c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Mn.monthsParse=function(e,t,n){var r,a,c;if(this._monthsParseExact)return Ye.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=m([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(c="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(c.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},Mn.monthsRegex=function(e){return this._monthsParseExact?(i(this,"_monthsRegex")||De.call(this),e?this._monthsStrictRegex:this._monthsRegex):(i(this,"_monthsRegex")||(this._monthsRegex=Te),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},Mn.monthsShortRegex=function(e){return this._monthsParseExact?(i(this,"_monthsRegex")||De.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(i(this,"_monthsShortRegex")||(this._monthsShortRegex=He),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},Mn.week=function(e){return Ne(e,this._week.dow,this._week.doy).week},Mn.firstDayOfYear=function(){return this._week.doy},Mn.firstDayOfWeek=function(){return this._week.dow},Mn.weekdays=function(e,t){var n=c(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Fe(n,this._week.dow):e?n[e.day()]:n},Mn.weekdaysMin=function(e){return!0===e?Fe(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},Mn.weekdaysShort=function(e){return!0===e?Fe(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},Mn.weekdaysParse=function(e,t,n){var r,a,c;if(this._weekdaysParseExact)return Ke.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=m([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(c="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(c.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},Mn.weekdaysRegex=function(e){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||Je.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(i(this,"_weekdaysRegex")||(this._weekdaysRegex=Ue),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},Mn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||Je.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(i(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Be),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Mn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(i(this,"_weekdaysRegex")||Je.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(i(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qe),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Mn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},Mn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ot("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===K(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=w("moment.lang is deprecated. Use moment.locale instead.",ot),a.langData=w("moment.langData is deprecated. Use moment.localeData instead.",lt);var zn=Math.abs;function wn(e,t,n,r){var a=Rt(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function kn(e){return e<0?Math.floor(e):Math.ceil(e)}function Hn(e){return 4800*e/146097}function Tn(e){return 146097*e/4800}function Yn(e){return function(){return this.as(e)}}var Sn=Yn("ms"),On=Yn("s"),Dn=Yn("m"),xn=Yn("h"),Cn=Yn("d"),jn=Yn("w"),En=Yn("M"),Vn=Yn("Q"),Pn=Yn("y");function Nn(e){return function(){return this.isValid()?this._data[e]:NaN}}var An=Nn("milliseconds"),Fn=Nn("seconds"),Wn=Nn("minutes"),Rn=Nn("hours"),In=Nn("days"),Un=Nn("months"),Bn=Nn("years"),qn=Math.round,Kn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Jn(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Gn=Math.abs;function $n(e){return(e>0)-(e<0)||+e}function Qn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,c,o,i,l=Gn(this._milliseconds)/1e3,s=Gn(this._days),u=Gn(this._months),d=this.asSeconds();return d?(e=q(l/60),t=q(e/60),l%=60,e%=60,n=q(u/12),u%=12,r=l?l.toFixed(3).replace(/\.?0+$/,""):"",a=d<0?"-":"",c=$n(this._months)!==$n(d)?"-":"",o=$n(this._days)!==$n(d)?"-":"",i=$n(this._milliseconds)!==$n(d)?"-":"",a+"P"+(n?c+n+"Y":"")+(u?c+u+"M":"")+(s?o+s+"D":"")+(t||e||l?"T":"")+(t?i+t+"H":"")+(e?i+e+"M":"")+(l?i+r+"S":"")):"P0D"}var Zn=Dt.prototype;return Zn.isValid=function(){return this._isValid},Zn.abs=function(){var e=this._data;return this._milliseconds=zn(this._milliseconds),this._days=zn(this._days),this._months=zn(this._months),e.milliseconds=zn(e.milliseconds),e.seconds=zn(e.seconds),e.minutes=zn(e.minutes),e.hours=zn(e.hours),e.months=zn(e.months),e.years=zn(e.years),this},Zn.add=function(e,t){return wn(this,e,t,1)},Zn.subtract=function(e,t){return wn(this,e,t,-1)},Zn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=W(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+Hn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Tn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Zn.asMilliseconds=Sn,Zn.asSeconds=On,Zn.asMinutes=Dn,Zn.asHours=xn,Zn.asDays=Cn,Zn.asWeeks=jn,Zn.asMonths=En,Zn.asQuarters=Vn,Zn.asYears=Pn,Zn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*K(this._months/12):NaN},Zn._bubble=function(){var e,t,n,r,a,c=this._milliseconds,o=this._days,i=this._months,l=this._data;return c>=0&&o>=0&&i>=0||c<=0&&o<=0&&i<=0||(c+=864e5*kn(Tn(i)+o),o=0,i=0),l.milliseconds=c%1e3,e=q(c/1e3),l.seconds=e%60,t=q(e/60),l.minutes=t%60,n=q(t/60),l.hours=n%24,o+=q(n/24),a=q(Hn(o)),i+=a,o-=kn(Tn(a)),r=q(i/12),i%=12,l.days=o,l.months=i,l.years=r,this},Zn.clone=function(){return Rt(this)},Zn.get=function(e){return e=W(e),this.isValid()?this[e+"s"]():NaN},Zn.milliseconds=An,Zn.seconds=Fn,Zn.minutes=Wn,Zn.hours=Rn,Zn.days=In,Zn.weeks=function(){return q(this.days()/7)},Zn.months=Un,Zn.years=Bn,Zn.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,c=Kn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(a=e),"object"==typeof t&&(c=Object.assign({},Kn,t),null!=t.s&&null==t.ss&&(c.ss=t.s-1)),n=this.localeData(),r=function(e,t,n,r){var a=Rt(e).abs(),c=qn(a.as("s")),o=qn(a.as("m")),i=qn(a.as("h")),l=qn(a.as("d")),s=qn(a.as("M")),u=qn(a.as("w")),d=qn(a.as("y")),f=c<=n.ss&&["s",c]||c<n.s&&["ss",c]||o<=1&&["m"]||o<n.m&&["mm",o]||i<=1&&["h"]||i<n.h&&["hh",i]||l<=1&&["d"]||l<n.d&&["dd",l];return null!=n.w&&(f=f||u<=1&&["w"]||u<n.w&&["ww",u]),(f=f||s<=1&&["M"]||s<n.M&&["MM",s]||d<=1&&["y"]||["yy",d])[2]=t,f[3]=+e>0,f[4]=r,Jn.apply(null,f)}(this,!a,c,n),a&&(r=n.pastFuture(+this,r)),n.postformat(r)},Zn.toISOString=Qn,Zn.toString=Qn,Zn.toJSON=Qn,Zn.locale=Xt,Zn.localeData=tn,Zn.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Qn),Zn.lang=en,V("X",0,0,"unix"),V("x",0,0,"valueOf"),me("x",ue),me("X",/[+-]?\d+(\.\d{1,3})?/),Me("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),Me("x",(function(e,t,n){n._d=new Date(K(e))})), //! moment.js a.version="2.27.0",t=Ht,a.fn=_n,a.min=function(){var e=[].slice.call(arguments,0);return St("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return St("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=m,a.unix=function(e){return Ht(1e3*e)},a.months=function(e,t){return gn(e,t,"months")},a.isDate=d,a.locale=ot,a.invalid=_,a.duration=Rt,a.isMoment=L,a.weekdays=function(e,t,n){return Ln(e,t,n,"weekdays")},a.parseZone=function(){return Ht.apply(null,arguments).parseZone()},a.localeData=lt,a.isDuration=xt,a.monthsShort=function(e,t){return gn(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return Ln(e,t,n,"weekdaysMin")},a.defineLocale=it,a.updateLocale=function(e,t){if(null!=t){var n,r,a=et;null!=tt[e]&&null!=tt[e].parentLocale?tt[e].set(S(tt[e]._config,t)):(null!=(r=ct(e))&&(a=r._config),t=S(a,t),null==r&&(t.abbr=e),(n=new O(t)).parentLocale=tt[e],tt[e]=n),ot(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?(tt[e]=tt[e].parentLocale,e===ot()&&ot(e)):null!=tt[e]&&delete tt[e]);return tt[e]},a.locales=function(){return k(tt)},a.weekdaysShort=function(e,t,n){return Ln(e,t,n,"weekdaysShort")},a.normalizeUnits=W,a.relativeTimeRounding=function(e){return void 0===e?qn:"function"==typeof e&&(qn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==Kn[e]&&(void 0===t?Kn[e]:(Kn[e]=t,"s"===e&&(Kn.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=_n,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()}).call(this,n(303)(e))},function(e,t,n){var r; /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var c=typeof r;if("string"===c||"number"===c)e.push(r);else if(Array.isArray(r)&&r.length){var o=a.apply(null,r);o&&e.push(o)}else if("object"===c)for(var i in r)n.call(r,i)&&r[i]&&e.push(i)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(265),c=(r=a)&&r.__esModule?r:{default:r};t.default=c.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return c}));var r=n(239),a=function(e,t){return"undefined"!=typeof wp&&wp.i18n?wp.i18n.__(e,t):e},c=function(){var e;return"undefined"!=typeof wp&&wp.i18n?(e=wp.i18n).sprintf.apply(e,arguments):r.sprintf.apply(void 0,arguments)}},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(229),c=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,c.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(50),c=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,c.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";t.__esModule=!0;var r=o(n(295)),a=o(n(299)),c=o(n(50));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,c.default)(t)));e.prototype=(0,a.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(r.default?(0,r.default)(e,t):e.__proto__=t)}},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(229),c=(r=a)&&r.__esModule?r:{default:r};t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,c.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(254)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ConfigConsumer",{enumerable:!0,get:function(){return i.ConfigConsumer}}),t.default=t.configConsumerProps=void 0;var r,a=s(n(0)),c=s(n(302)),o=(r=n(48))&&r.__esModule?r:{default:r},i=n(311);function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var a=_(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}t.configConsumerProps=["getPopupContainer","rootPrefixCls","getPrefixCls","renderEmpty","csp","autoInsertSpaceInButton","locale","pageHeader"];var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(s,e);var t,n,r,l=p(s);function s(){var e;return f(this,s),(e=l.apply(this,arguments)).getPrefixCls=function(t,n){var r=e.props.prefixCls,a=void 0===r?"ant":r;return n||(t?"".concat(a,"-").concat(t):a)},e.renderProvider=function(t,n){var r=e.props,o=r.children,l=r.getPopupContainer,s=r.renderEmpty,u=r.csp,f=r.autoInsertSpaceInButton,h=r.locale,m=r.pageHeader,p=d(d({},t),{getPrefixCls:e.getPrefixCls,csp:u,autoInsertSpaceInButton:f});return l&&(p.getPopupContainer=l),s&&(p.renderEmpty=s),m&&(p.pageHeader=m),a.createElement(i.ConfigContext.Provider,{value:p},a.createElement(c.default,{locale:h||n,_ANT_MARK__:c.ANT_MARK},o))},e}return t=s,(n=[{key:"render",value:function(){var e=this;return a.createElement(o.default,null,(function(t,n,r){return a.createElement(i.ConfigConsumer,null,(function(t){return e.renderProvider(t,r)}))}))}}])&&h(t.prototype,n),r&&h(t,r),s}(a.Component);t.default=y},function(e,t,n){var r=n(257),a=n(258),c=n(259),o=n(261);e.exports=function(e,t){return r(e)||a(e,t)||c(e,t)||o()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"selectAll",(function(){return a})),n.d(t,"plugins",(function(){return c})),n.d(t,"themes",(function(){return o})),n.d(t,"core",(function(){return i})),n.d(t,"stringTranslationPanelHeader",(function(){return l})),n.d(t,"stringTranslationPanelContent",(function(){return s})),n.d(t,"adminStringsCardHeader",(function(){return u})),n.d(t,"adminStringsCardContent",(function(){return d})),n.d(t,"adminStringsCardButtonText",(function(){return f})),n.d(t,"moScanCardHeader",(function(){return h})),n.d(t,"moScanCardContent",(function(){return m})),n.d(t,"moScanCardButtonText",(function(){return p})),n.d(t,"moScanCardProgressText",(function(){return v}));var r=n(5),a=Object(r.a)("Select all","wpml-string-translation"),c=Object(r.a)("Plugins:","wpml-string-translation"),o=Object(r.a)("Themes:","wpml-string-translation"),i=Object(r.a)("Core:","wpml-string-translation"),l=Object(r.a)("Can't find the strings you're looking to translate?","wpml-string-translation"),s=Object(r.a)("Most likely you cannot see the strings you want to translate because:","wpml-string-translation"),u=Object(r.a)("Texts are not selected for translation","wpml-string-translation"),d=Object(r.a)("Find additional texts that WordPress, the theme and plugins created and choose which ones to translate","wpml-string-translation"),f=Object(r.a)("Choose texts for translation","wpml-string-translation"),h=Object(r.a)("Some of the translations have changed","wpml-string-translation"),m=Object(r.a)("Scan the selected components to make new texts available for translation.","wpml-string-translation"),p=Object(r.a)("Scan translation files","wpml-string-translation"),v=Object(r.a)("Scanned %1$d of %2$d files...","wpml-string-translation")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(223).Col;t.default=r},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=p(n(0)),c=h(n(3)),o=p(n(339)),i=h(n(238)),l=h(n(344)),s=n(345),u=h(n(26)),d=h(n(48)),f=n(346);function h(e){return e&&e.__esModule?e:{default:e}}function m(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return m=function(){return e},e}function p(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=m();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var M,b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};i.default.add.apply(i.default,function(e){if(Array.isArray(e))return y(e)}(M=Object.keys(o).map((function(e){return o[e]})))||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(M)||function(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(M)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),(0,f.setTwoToneColor)("#1890ff");var g,L="outlined";var z=function(e){var t,n=e.className,r=e.type,o=e.component,l=e.viewBox,f=e.spin,h=e.rotate,m=e.tabIndex,p=e.onClick,y=e.children,M=e.theme,z=e.twoToneColor,w=b(e,["className","type","component","viewBox","spin","rotate","tabIndex","onClick","children","theme","twoToneColor"]);(0,u.default)(Boolean(r||o||y),"Icon","Should have `type` prop or `component` prop or `children`.");var k=(0,c.default)((_(t={},"anticon",!0),_(t,"anticon-".concat(r),Boolean(r)),t),n),H=(0,c.default)(_({},"anticon-spin",!!f||"loading"===r)),T=h?{msTransform:"rotate(".concat(h,"deg)"),transform:"rotate(".concat(h,"deg)")}:void 0,Y=v(v({},s.svgBaseProps),{className:H,style:T,viewBox:l});l||delete Y.viewBox;var S=m;return void 0===S&&p&&(S=-1),a.createElement(d.default,{componentName:"Icon"},(function(e){return a.createElement("i",v({"aria-label":r&&"".concat(e.icon,": ").concat(r)},w,{tabIndex:S,onClick:p,className:k}),function(){if(o)return a.createElement(o,Y,y);if(y)return(0,u.default)(Boolean(l)||1===a.Children.count(y)&&a.isValidElement(y)&&"use"===a.Children.only(y).type,"Icon","Make sure that you provide correct `viewBox` prop (default `0 0 1024 1024`) to the icon."),a.createElement("svg",v({},Y,{viewBox:l}),y);if("string"==typeof r){var e=r;if(M){var t=(0,s.getThemeFromTypeName)(r);(0,u.default)(!t||M===t,"Icon","The icon name '".concat(r,"' already specify a theme '").concat(t,"',")+" the 'theme' prop '".concat(M,"' will be ignored."))}return e=(0,s.withThemeSuffix)((0,s.removeTypeTheme)((0,s.alias)(e)),g||M||L),a.createElement(i.default,{className:H,type:e,primaryColor:z,style:T})}}())}))};z.createFromIconfontCN=l.default,z.getTwoToneColor=f.getTwoToneColor,z.setTwoToneColor=f.setTwoToneColor;var w=z;t.default=w},function(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function a(e){this.setState(function(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!=n?n:null}.bind(this))}function c(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function o(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,o=null,i=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?o="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(o="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?i="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(i="UNSAFE_componentWillUpdate"),null!==n||null!==o||null!==i){var l=e.displayName||e.name,s="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+l+" uses "+s+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==o?"\n "+o:"")+(null!==i?"\n "+i:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=r,t.componentWillReceiveProps=a),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=c;var u=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,e,t,r)}}return e}n.r(t),n.d(t,"polyfill",(function(){return o})),r.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,c.__suppressDeprecationWarning=!0},function(e,t){e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var c=Object.keys(e),o=Object.keys(t);if(c.length!==o.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),l=0;l<c.length;l++){var s=c[l];if(!i(s))return!1;var u=e[s],d=t[s];if(!1===(a=n?n.call(r,u,d,s):void 0)||void 0===a&&u!==d)return!1}return!0}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},function(e,t,n){e.exports=!n(38)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return d})),n.d(t,"d",(function(){return f})),n.d(t,"a",(function(){return m})),n.d(t,"b",(function(){return p})),n.d(t,"c",(function(){return v})),n.d(t,"f",(function(){return _}));var r=n(4),a=n.n(r),c=n(7),o=n.n(c),i=n(10),l=n.n(i),s=n(246),u=n(0);function d(t){e&&e.env||console.error("[@ant-design/icons-react]: "+t+".")}function f(e){return"object"==typeof e&&"string"==typeof e.name&&"string"==typeof e.theme&&("object"==typeof e.icon||"function"==typeof e.icon)}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:t[n]=r}return t}),{})}var m=function(){function e(){o()(this,e),this.collection={}}return l()(e,[{key:"clear",value:function(){this.collection={}}},{key:"delete",value:function(e){return delete this.collection[e]}},{key:"get",value:function(e){return this.collection[e]}},{key:"has",value:function(e){return Boolean(this.collection[e])}},{key:"set",value:function(e,t){return this.collection[e]=t,this}},{key:"size",get:function(){return Object.keys(this.collection).length}}]),e}();function p(e,t,n){return n?u.createElement(e.tag,a()({key:t},h(e.attrs),n),(e.children||[]).map((function(n,r){return p(n,t+"-"+e.tag+"-"+r)}))):u.createElement(e.tag,a()({key:t},h(e.attrs)),(e.children||[]).map((function(n,r){return p(n,t+"-"+e.tag+"-"+r)})))}function v(e){return Object(s.generate)(e)[0]}function _(e,t){switch(t){case"fill":return e+"-fill";case"outline":return e+"-o";case"twotone":return e+"-twotone";default:throw new TypeError("Unknown theme type: "+t+", name: "+e)}}}).call(this,n(230))},function(e,t,n){var r=n(37),a=n(76),c=n(55),o=Object.defineProperty;t.f=n(22)?Object.defineProperty:function(e,t,n){if(r(e),t=c(t,!0),r(n),a)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"resetWarned",{enumerable:!0,get:function(){return a.resetWarned}}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(309));function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}t.default=function(e,t,n){(0,a.default)(e,"[antd: ".concat(t,"] ").concat(n))}},function(e,t,n){var r=n(20),a=n(21),c=n(75),o=n(28),i=n(25),l=function(e,t,n){var s,u,d,f=e&l.F,h=e&l.G,m=e&l.S,p=e&l.P,v=e&l.B,_=e&l.W,y=h?a:a[t]||(a[t]={}),M=y.prototype,b=h?r:m?r[t]:(r[t]||{}).prototype;for(s in h&&(n=t),n)(u=!f&&b&&void 0!==b[s])&&i(y,s)||(d=u?b[s]:n[s],y[s]=h&&"function"!=typeof b[s]?n[s]:v&&u?c(d,r):_&&b[s]==d?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):p&&"function"==typeof d?c(Function.call,d):d,p&&((y.virtual||(y.virtual={}))[s]=d,e&l.R&&M&&!M[s]&&o(M,s,d)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,n){var r=n(24),a=n(43);e.exports=n(22)?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(79),a=n(56);e.exports=function(e){return r(a(e))}},function(e,t,n){var r=n(59)("wks"),a=n(46),c=n(20).Symbol,o="function"==typeof c;(e.exports=function(e){return r[e]||(r[e]=o&&c[e]||(o?c:a)("Symbol."+e))}).store=r},function(e,t,n){"use strict";n.r(t);var r=n(4),a=n.n(r);t.default=function(e,t){for(var n=a()({},e),r=0;r<t.length;r++){delete n[t[r]]}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(223).Row;t.default=r},function(e,t,n){(function(t){for(var r=n(355),a="undefined"==typeof window?t:window,c=["moz","webkit"],o="AnimationFrame",i=a["request"+o],l=a["cancel"+o]||a["cancelRequest"+o],s=0;!i&&s<c.length;s++)i=a[c[s]+"Request"+o],l=a[c[s]+"Cancel"+o]||a[c[s]+"CancelRequest"+o];if(!i||!l){var u=0,d=0,f=[];i=function(e){if(0===f.length){var t=r(),n=Math.max(0,1e3/60-(t-u));u=n+t,setTimeout((function(){var e=f.slice(0);f.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(u)}catch(e){setTimeout((function(){throw e}),0)}}),Math.round(n))}return f.push({handle:++d,callback:e,cancelled:!1}),d},l=function(e){for(var t=0;t<f.length;t++)f[t].handle===e&&(f[t].cancelled=!0)}}e.exports=function(e){return i.call(a,e)},e.exports.cancel=function(){l.apply(a,arguments)},e.exports.polyfill=function(e){e||(e=a),e.requestAnimationFrame=i,e.cancelAnimationFrame=l}}).call(this,n(39))},function(e,t,n){"use strict";n.r(t),n.d(t,"isCssAnimationSupported",(function(){return m}));var r=n(50),a=n.n(r),c={transitionstart:{transition:"transitionstart",WebkitTransition:"webkitTransitionStart",MozTransition:"mozTransitionStart",OTransition:"oTransitionStart",msTransition:"MSTransitionStart"},animationstart:{animation:"animationstart",WebkitAnimation:"webkitAnimationStart",MozAnimation:"mozAnimationStart",OAnimation:"oAnimationStart",msAnimation:"MSAnimationStart"}},o={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},i=[],l=[];function s(e,t,n){e.addEventListener(t,n,!1)}function u(e,t,n){e.removeEventListener(t,n,!1)}"undefined"!=typeof window&&"undefined"!=typeof document&&function(){var e=document.createElement("div").style;function t(t,n){for(var r in t)if(t.hasOwnProperty(r)){var a=t[r];for(var c in a)if(c in e){n.push(a[c]);break}}}"AnimationEvent"in window||(delete c.animationstart.animation,delete o.animationend.animation),"TransitionEvent"in window||(delete c.transitionstart.transition,delete o.transitionend.transition),t(c,i),t(o,l)}();var d={startEvents:i,addStartEventListener:function(e,t){0!==i.length?i.forEach((function(n){s(e,n,t)})):window.setTimeout(t,0)},removeStartEventListener:function(e,t){0!==i.length&&i.forEach((function(n){u(e,n,t)}))},endEvents:l,addEndEventListener:function(e,t){0!==l.length?l.forEach((function(n){s(e,n,t)})):window.setTimeout(t,0)},removeEndEventListener:function(e,t){0!==l.length&&l.forEach((function(n){u(e,n,t)}))}},f=n(247),h=n.n(f),m=0!==d.endEvents.length,p=["Webkit","Moz","O","ms"],v=["-webkit-","-moz-","-o-","ms-",""];function _(e,t){for(var n=window.getComputedStyle(e,null),r="",a=0;a<v.length&&!(r=n.getPropertyValue(v[a]+t));a++);return r}function y(e){if(m){var t=parseFloat(_(e,"transition-delay"))||0,n=parseFloat(_(e,"transition-duration"))||0,r=parseFloat(_(e,"animation-delay"))||0,a=parseFloat(_(e,"animation-duration"))||0,c=Math.max(n+t,a+r);e.rcEndAnimTimeout=setTimeout((function(){e.rcEndAnimTimeout=null,e.rcEndListener&&e.rcEndListener()}),1e3*c+200)}}function M(e){e.rcEndAnimTimeout&&(clearTimeout(e.rcEndAnimTimeout),e.rcEndAnimTimeout=null)}var b=function(e,t,n){var r="object"===(void 0===t?"undefined":a()(t)),c=r?t.name:t,o=r?t.active:t+"-active",i=n,l=void 0,s=void 0,u=h()(e);return n&&"[object Object]"===Object.prototype.toString.call(n)&&(i=n.end,l=n.start,s=n.active),e.rcEndListener&&e.rcEndListener(),e.rcEndListener=function(t){t&&t.target!==e||(e.rcAnimTimeout&&(clearTimeout(e.rcAnimTimeout),e.rcAnimTimeout=null),M(e),u.remove(c),u.remove(o),d.removeEndEventListener(e,e.rcEndListener),e.rcEndListener=null,i&&i())},d.addEndEventListener(e,e.rcEndListener),l&&l(),u.add(c),e.rcAnimTimeout=setTimeout((function(){e.rcAnimTimeout=null,u.add(o),s&&setTimeout(s,0),y(e)}),30),{stop:function(){e.rcEndListener&&e.rcEndListener()}}};b.style=function(e,t,n){e.rcEndListener&&e.rcEndListener(),e.rcEndListener=function(t){t&&t.target!==e||(e.rcAnimTimeout&&(clearTimeout(e.rcAnimTimeout),e.rcAnimTimeout=null),M(e),d.removeEndEventListener(e,e.rcEndListener),e.rcEndListener=null,n&&n())},d.addEndEventListener(e,e.rcEndListener),e.rcAnimTimeout=setTimeout((function(){for(var n in t)t.hasOwnProperty(n)&&(e.style[n]=t[n]);e.rcAnimTimeout=null,y(e)}),0)},b.setTransition=function(e,t,n){var r=t,a=n;void 0===n&&(a=r,r=""),r=r||"",p.forEach((function(t){e.style[t+"Transition"+r]=a}))},b.isCssAnimationSupported=m;t.default=b},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=((r=n(351))&&r.__esModule?r:{default:r}).default;t.default=a},function(e,t,n){var r=n(29);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n(6));t.toArray=o,t.getActiveIndex=function(e,t){for(var n=o(e),r=0;r<n.length;r++)if(n[r].key===t)return r;return-1},t.getActiveKey=function(e,t){return o(e)[t].key},t.setTransform=i,t.isTransform3dSupported=function(e){return("transform"in e||"webkitTransform"in e||"MozTransform"in e)&&window.atob},t.setTransition=function(e,t){e.transition=t,e.webkitTransition=t,e.MozTransition=t},t.getTransformPropValue=function(e){return{transform:e,WebkitTransform:e,MozTransform:e}},t.isVertical=l,t.getTransformByIndex=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",r=l(t)?"translateY":"translateX";if(!l(t)&&"rtl"===n)return r+"("+100*e+"%) translateZ(0)";return r+"("+100*-e+"%) translateZ(0)"},t.getMarginStyle=function(e,t){var n=l(t)?"marginTop":"marginLeft";return(0,r.default)({},n,100*-e+"%")},t.getStyle=s,t.setPxStyle=function(e,t,n){t=n?"0px, "+t+"px, 0px":t+"px, 0px, 0px",i(e.style,"translate3d("+t+")")},t.getDataAttr=function(e){return Object.keys(e).reduce((function(t,n){return"aria-"!==n.substr(0,5)&&"data-"!==n.substr(0,5)&&"role"!==n||(t[n]=e[n]),t}),{})},t.getLeft=function(e,t){return d("left","offsetWidth","right",e,t)},t.getTop=function(e,t){return d("top","offsetHeight","bottom",e,t)};var a=c(n(0));function c(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=[];return a.default.Children.forEach(e,(function(e){e&&t.push(e)})),t}function i(e,t){e.transform=t,e.webkitTransform=t,e.mozTransform=t}function l(e){return"left"===e||"right"===e}function s(e,t){return+window.getComputedStyle(e).getPropertyValue(t).replace("px","")}function u(e,t){return+e.getPropertyValue(t).replace("px","")}function d(e,t,n,r,a){var c=s(a,"padding-"+e);if(!r||!r.parentNode)return c;var o=r.parentNode.childNodes;return Array.prototype.some.call(o,(function(a){var o=window.getComputedStyle(a);return a!==r?(c+=u(o,"margin-"+e),c+=a[t],c+=u(o,"margin-"+n),"content-box"===o.boxSizing&&(c+=u(o,"border-"+e+"-width")+u(o,"border-"+n+"-width")),!1):(c+=u(o,"margin-"+e),!0)})),c}},function(e,t,n){"use strict";var r={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=r.F1&&t<=r.F12)return!1;switch(t){case r.ALT:case r.CAPS_LOCK:case r.CONTEXT_MENU:case r.CTRL:case r.DOWN:case r.END:case r.ESC:case r.HOME:case r.INSERT:case r.LEFT:case r.MAC_FF_META:case r.META:case r.NUMLOCK:case r.NUM_CENTER:case r.PAGE_DOWN:case r.PAGE_UP:case r.PAUSE:case r.PRINT_SCREEN:case r.RIGHT:case r.SHIFT:case r.UP:case r.WIN_KEY:case r.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=r.ZERO&&e<=r.NINE)return!0;if(e>=r.NUM_ZERO&&e<=r.NUM_MULTIPLY)return!0;if(e>=r.A&&e<=r.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case r.SPACE:case r.QUESTION_MARK:case r.NUM_PLUS:case r.NUM_MINUS:case r.NUM_PERIOD:case r.NUM_DIVISION:case r.SEMICOLON:case r.DASH:case r.EQUALS:case r.COMMA:case r.PERIOD:case r.SLASH:case r.APOSTROPHE:case r.SINGLE_QUOTE:case r.OPEN_SQUARE_BRACKET:case r.BACKSLASH:case r.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};t.a=r},function(e,t,n){"use strict";var r=n(4),a=n.n(r),c=n(6),o=n.n(c),i=n(7),l=n.n(i),s=n(10),u=n.n(s),d=n(8),f=n.n(d),h=n(9),m=n.n(h),p=n(0),v=n.n(p),_=n(1),y=n.n(_);function M(e){var t=[];return v.a.Children.forEach(e,(function(e){t.push(e)})),t}function b(e,t){var n=null;return e&&e.forEach((function(e){n||e&&e.key===t&&(n=e)})),n}function g(e,t,n){var r=null;return e&&e.forEach((function(e){if(e&&e.key===t&&e.props[n]){if(r)throw new Error("two child with same key for <rc-animate> children");r=e}})),r}var L=n(11),z=n.n(L),w=n(35),k={isAppearSupported:function(e){return e.transitionName&&e.transitionAppear||e.animation.appear},isEnterSupported:function(e){return e.transitionName&&e.transitionEnter||e.animation.enter},isLeaveSupported:function(e){return e.transitionName&&e.transitionLeave||e.animation.leave},allowAppearCallback:function(e){return e.transitionAppear||e.animation.appear},allowEnterCallback:function(e){return e.transitionEnter||e.animation.enter},allowLeaveCallback:function(e){return e.transitionLeave||e.animation.leave}},H={enter:"transitionEnter",appear:"transitionAppear",leave:"transitionLeave"},T=function(e){function t(){return l()(this,t),f()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return m()(t,e),u()(t,[{key:"componentWillUnmount",value:function(){this.stop()}},{key:"componentWillEnter",value:function(e){k.isEnterSupported(this.props)?this.transition("enter",e):e()}},{key:"componentWillAppear",value:function(e){k.isAppearSupported(this.props)?this.transition("appear",e):e()}},{key:"componentWillLeave",value:function(e){k.isLeaveSupported(this.props)?this.transition("leave",e):e()}},{key:"transition",value:function(e,t){var n=this,r=z.a.findDOMNode(this),a=this.props,c=a.transitionName,o="object"==typeof c;this.stop();var i=function(){n.stopper=null,t()};if((w.isCssAnimationSupported||!a.animation[e])&&c&&a[H[e]]){var l=o?c[e]:c+"-"+e,s=l+"-active";o&&c[e+"Active"]&&(s=c[e+"Active"]),this.stopper=Object(w.default)(r,{name:l,active:s},i)}else this.stopper=a.animation[e](r,i)}},{key:"stop",value:function(){var e=this.stopper;e&&(this.stopper=null,e.stop())}},{key:"render",value:function(){return this.props.children}}]),t}(v.a.Component);T.propTypes={children:y.a.any};var Y=T,S="rc_animate_"+Date.now();function O(e){var t=e.children;return v.a.isValidElement(t)&&!t.key?v.a.cloneElement(t,{key:S}):t}function D(){}var x=function(e){function t(e){l()(this,t);var n=f()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return C.call(n),n.currentlyAnimatingKeys={},n.keysToEnter=[],n.keysToLeave=[],n.state={children:M(O(e))},n.childrenRefs={},n}return m()(t,e),u()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.showProp,n=this.state.children;t&&(n=n.filter((function(e){return!!e.props[t]}))),n.forEach((function(t){t&&e.performAppear(t.key)}))}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.nextProps=e;var n=M(O(e)),r=this.props;r.exclusive&&Object.keys(this.currentlyAnimatingKeys).forEach((function(e){t.stop(e)}));var a,c,i,l,s=r.showProp,u=this.currentlyAnimatingKeys,d=r.exclusive?M(O(r)):this.state.children,f=[];s?(d.forEach((function(e){var t=e&&b(n,e.key),r=void 0;(r=t&&t.props[s]||!e.props[s]?t:v.a.cloneElement(t||e,o()({},s,!0)))&&f.push(r)})),n.forEach((function(e){e&&b(d,e.key)||f.push(e)}))):(a=n,c=[],i={},l=[],d.forEach((function(e){e&&b(a,e.key)?l.length&&(i[e.key]=l,l=[]):l.push(e)})),a.forEach((function(e){e&&Object.prototype.hasOwnProperty.call(i,e.key)&&(c=c.concat(i[e.key])),c.push(e)})),f=c=c.concat(l)),this.setState({children:f}),n.forEach((function(e){var n=e&&e.key;if(!e||!u[n]){var r=e&&b(d,n);if(s){var a=e.props[s];if(r)!g(d,n,s)&&a&&t.keysToEnter.push(n);else a&&t.keysToEnter.push(n)}else r||t.keysToEnter.push(n)}})),d.forEach((function(e){var r=e&&e.key;if(!e||!u[r]){var a=e&&b(n,r);if(s){var c=e.props[s];if(a)!g(n,r,s)&&c&&t.keysToLeave.push(r);else c&&t.keysToLeave.push(r)}else a||t.keysToLeave.push(r)}}))}},{key:"componentDidUpdate",value:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)}},{key:"isValidChildByKey",value:function(e,t){var n=this.props.showProp;return n?g(e,t,n):b(e,t)}},{key:"stop",value:function(e){delete this.currentlyAnimatingKeys[e];var t=this.childrenRefs[e];t&&t.stop()}},{key:"render",value:function(){var e=this,t=this.props;this.nextProps=t;var n=this.state.children,r=null;n&&(r=n.map((function(n){if(null==n)return n;if(!n.key)throw new Error("must set key for <rc-animate> children");return v.a.createElement(Y,{key:n.key,ref:function(t){e.childrenRefs[n.key]=t},animation:t.animation,transitionName:t.transitionName,transitionEnter:t.transitionEnter,transitionAppear:t.transitionAppear,transitionLeave:t.transitionLeave},n)})));var c=t.component;if(c){var o=t;return"string"==typeof c&&(o=a()({className:t.className,style:t.style},t.componentProps)),v.a.createElement(c,o,r)}return r[0]||null}}]),t}(v.a.Component);x.isAnimate=!0,x.propTypes={component:y.a.any,componentProps:y.a.object,animation:y.a.object,transitionName:y.a.oneOfType([y.a.string,y.a.object]),transitionEnter:y.a.bool,transitionAppear:y.a.bool,exclusive:y.a.bool,transitionLeave:y.a.bool,onEnd:y.a.func,onEnter:y.a.func,onLeave:y.a.func,onAppear:y.a.func,showProp:y.a.string,children:y.a.node},x.defaultProps={animation:{},component:"span",componentProps:{},transitionEnter:!0,transitionLeave:!0,transitionAppear:!1,onEnd:D,onEnter:D,onLeave:D,onAppear:D};var C=function(){var e=this;this.performEnter=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillEnter(e.handleDoneAdding.bind(e,t,"enter")))},this.performAppear=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillAppear(e.handleDoneAdding.bind(e,t,"appear")))},this.handleDoneAdding=function(t,n){var r=e.props;if(delete e.currentlyAnimatingKeys[t],!r.exclusive||r===e.nextProps){var a=M(O(r));e.isValidChildByKey(a,t)?"appear"===n?k.allowAppearCallback(r)&&(r.onAppear(t),r.onEnd(t,!0)):k.allowEnterCallback(r)&&(r.onEnter(t),r.onEnd(t,!0)):e.performLeave(t)}},this.performLeave=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillLeave(e.handleDoneLeaving.bind(e,t)))},this.handleDoneLeaving=function(t){var n=e.props;if(delete e.currentlyAnimatingKeys[t],!n.exclusive||n===e.nextProps){var r,a,c,o,i=M(O(n));if(e.isValidChildByKey(i,t))e.performEnter(t);else{var l=function(){k.allowLeaveCallback(n)&&(n.onLeave(t),n.onEnd(t,!1))};r=e.state.children,a=i,c=n.showProp,(o=r.length===a.length)&&r.forEach((function(e,t){var n=a[t];e&&n&&(e&&!n||!e&&n||e.key!==n.key||c&&e.props[c]!==n.props[c])&&(o=!1)})),o?l():e.setState({children:i},l)}}}};t.a=x},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(78),a=n(60);e.exports=Object.keys||function(e){return r(e,a)}},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=l(n(0)),c=l(n(1)),o=(r=n(310))&&r.__esModule?r:{default:r};function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function l(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v(e);if(t){var a=v(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return p(this,n)}}function p(e,t){return!t||"object"!==s(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var _=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(c,e);var t,n,r,a=m(c);function c(){return d(this,c),a.apply(this,arguments)}return t=c,(n=[{key:"getLocale",value:function(){var e=this.props,t=e.componentName,n=e.defaultLocale||o.default[t||"global"],r=this.context.antLocale,a=t&&r?r[t]:{};return u(u({},"function"==typeof n?n():n),a||{})}},{key:"getLocaleCode",value:function(){var e=this.context.antLocale,t=e&&e.locale;return e&&e.exist&&!t?o.default.locale:t}},{key:"render",value:function(){return this.props.children(this.getLocale(),this.getLocaleCode(),this.context.antLocale)}}])&&f(t.prototype,n),r&&f(t,r),c}(a.Component);t.default=_,_.defaultProps={componentName:"global"},_.contextTypes={antLocale:c.object}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tupleNum=t.tuple=void 0;t.tuple=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t};t.tupleNum=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t}},function(e,t,n){"use strict";t.__esModule=!0;var r=o(n(273)),a=o(n(285)),c="function"==typeof a.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":typeof e};function o(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof a.default&&"symbol"===c(r.default)?function(e){return void 0===e?"undefined":c(e)}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":void 0===e?"undefined":c(e)}},function(e,t,n){"use strict";t.__esModule=!0;var r=c(n(0)),a=c(n(312));function c(e){return e&&e.__esModule?e:{default:e}}t.default=r.default.createContext||a.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ItemsToScanList=t.ItemsToScan=void 0;var r=n(0),a=n(262);n(319);var c=n(14),o=n(0),i=a.default.Group;t.ItemsToScan=function(e){var t=e.heading,n=e.items,l=e.onSelected,s=o.useState([]),u=s[0],d=s[1],f=o.useCallback((function(e){d(e),l(e)}),[]),h=o.useCallback((function(e){var t=e.target.checked?n:[];d(t),l(t)}),[]);return r.createElement("div",{style:{marginBottom:10}},r.createElement("strong",null,t),r.createElement("br",null),n.length>1&&r.createElement("div",{style:{borderBottom:"1px solid #E9E9E9"}},r.createElement(a.default,{indeterminate:u.length>0&&u.length!=n.length,checked:u.length===n.length,onChange:h},c.selectAll)),r.createElement(i,{options:n,value:u,onChange:f}))},t.ItemsToScanList=function(e){var n=e.filesToScan,a=e.onSelected,i=o.useState([]),l=i[0],s=i[1],u=o.useState([]),d=u[0],f=u[1],h=o.useState([]),m=h[0],p=h[1];return o.useEffect((function(){a({plugins:l,themes:d,other:m})}),[l,d,m]),r.createElement(r.Fragment,null,n.plugins.length>0&&r.createElement(t.ItemsToScan,{heading:c.plugins,items:n.plugins,onSelected:function(e){return s(e)}}),n.themes.length>0&&r.createElement(t.ItemsToScan,{heading:c.themes,items:n.themes,onSelected:function(e){return f(e)}}),n.other.length>0&&r.createElement(t.ItemsToScan,{heading:c.core,items:n.other,onSelected:function(e){return p(e)}}))}},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT */var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,i,l=o(e),s=1;s<arguments.length;s++){for(var u in n=Object(arguments[s]))a.call(n,u)&&(l[u]=n[u]);if(r){i=r(n);for(var d=0;d<i.length;d++)c.call(n,i[d])&&(l[i[d]]=n[i[d]])}}return l}},function(e,t,n){},function(e,t,n){var r=n(29);e.exports=function(e,t){if(!r(e))return e;var n,a;if(t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;if("function"==typeof(n=e.valueOf)&&!r(a=n.call(e)))return a;if(!t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(59)("keys"),a=n(46);e.exports=function(e){return r[e]||(r[e]=a(e))}},function(e,t,n){var r=n(21),a=n(20),c=a["__core-js_shared__"]||(a["__core-js_shared__"]={});(e.exports=function(e,t){return c[e]||(c[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(45)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(56);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t,n){var r=n(37),a=n(278),c=n(60),o=n(58)("IE_PROTO"),i=function(){},l=function(){var e,t=n(77)("iframe"),r=c.length;for(t.style.display="none",n(279).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l.prototype[c[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(i.prototype=r(e),n=new i,i.prototype=null,n[o]=e):n=l(),void 0===t?n:a(n,t)}},function(e,t,n){var r=n(24).f,a=n(25),c=n(31)("toStringTag");e.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,c)&&r(e,c,{configurable:!0,value:t})}},function(e,t,n){t.f=n(31)},function(e,t,n){var r=n(20),a=n(21),c=n(45),o=n(66),i=n(24).f;e.exports=function(e){var t=a.Symbol||(a.Symbol=c?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||i(t,e,{value:o.f(e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.changeConfirmLocale=function(e){o=e?c(c({},o),e):c({},a.default.Modal)},t.getConfirmLocale=function(){return o};var r,a=(r=n(218))&&r.__esModule?r:{default:r};function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var o=c({},a.default.Modal)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validProgress=function(e){if(!e||e<0)return 0;if(e>100)return 100;return e}},function(e,t,n){e.exports=n(222)},function(e,t,n){e.exports=n(222)},function(e,t,n){"use strict";e.exports=n(352)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==p(e)&&"function"!=typeof e)return{default:e};var t=m();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=h(n(3)),c=h(n(32)),o=h(n(356)),i=h(n(357)),l=h(n(358)),s=h(n(33)),u=h(n(15)),d=n(12),f=h(n(26));function h(e){return e&&e.__esModule?e:{default:e}}function m(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return m=function(){return e},e}function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=z(e);if(t){var a=z(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return L(this,n)}}function L(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function k(e){return e.map((function(t,n){return r.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(n)},r.createElement("span",null,t))}))}var H=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(m,e);var t,n,i,h=g(m);function m(){var e;return y(this,m),(e=h.apply(this,arguments)).onTabChange=function(t){e.props.onTabChange&&e.props.onTabChange(t)},e.renderCard=function(t){var n,o,i,d=t.getPrefixCls,f=e.props,h=f.prefixCls,m=f.className,p=f.extra,y=f.headStyle,M=void 0===y?{}:y,b=f.bodyStyle,g=void 0===b?{}:b,L=f.title,z=f.loading,H=f.bordered,T=void 0===H||H,Y=f.size,S=void 0===Y?"default":Y,O=f.type,D=f.cover,x=f.actions,C=f.tabList,j=f.children,E=f.activeTabKey,V=f.defaultActiveTabKey,P=f.tabBarExtraContent,N=w(f,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent"]),A=d("card",h),F=(0,a.default)(A,m,(_(n={},"".concat(A,"-loading"),z),_(n,"".concat(A,"-bordered"),T),_(n,"".concat(A,"-hoverable"),e.getCompatibleHoverable()),_(n,"".concat(A,"-contain-grid"),e.isContainGrid()),_(n,"".concat(A,"-contain-tabs"),C&&C.length),_(n,"".concat(A,"-").concat(S),"default"!==S),_(n,"".concat(A,"-type-").concat(O),!!O),n)),W=0===g.padding||"0px"===g.padding?{padding:24}:void 0,R=r.createElement("div",{className:"".concat(A,"-loading-content"),style:W},r.createElement(s.default,{gutter:8},r.createElement(u.default,{span:22},r.createElement("div",{className:"".concat(A,"-loading-block")}))),r.createElement(s.default,{gutter:8},r.createElement(u.default,{span:8},r.createElement("div",{className:"".concat(A,"-loading-block")})),r.createElement(u.default,{span:15},r.createElement("div",{className:"".concat(A,"-loading-block")}))),r.createElement(s.default,{gutter:8},r.createElement(u.default,{span:6},r.createElement("div",{className:"".concat(A,"-loading-block")})),r.createElement(u.default,{span:18},r.createElement("div",{className:"".concat(A,"-loading-block")}))),r.createElement(s.default,{gutter:8},r.createElement(u.default,{span:13},r.createElement("div",{className:"".concat(A,"-loading-block")})),r.createElement(u.default,{span:9},r.createElement("div",{className:"".concat(A,"-loading-block")}))),r.createElement(s.default,{gutter:8},r.createElement(u.default,{span:4},r.createElement("div",{className:"".concat(A,"-loading-block")})),r.createElement(u.default,{span:3},r.createElement("div",{className:"".concat(A,"-loading-block")})),r.createElement(u.default,{span:16},r.createElement("div",{className:"".concat(A,"-loading-block")})))),I=void 0!==E,U=(_(o={},I?"activeKey":"defaultActiveKey",I?E:V),_(o,"tabBarExtraContent",P),o),B=C&&C.length?r.createElement(l.default,v({},U,{className:"".concat(A,"-head-tabs"),size:"large",onChange:e.onTabChange}),C.map((function(e){return r.createElement(l.default.TabPane,{tab:e.tab,disabled:e.disabled,key:e.key})}))):null;(L||p||B)&&(i=r.createElement("div",{className:"".concat(A,"-head"),style:M},r.createElement("div",{className:"".concat(A,"-head-wrapper")},L&&r.createElement("div",{className:"".concat(A,"-head-title")},L),p&&r.createElement("div",{className:"".concat(A,"-extra")},p)),B));var q=D?r.createElement("div",{className:"".concat(A,"-cover")},D):null,K=r.createElement("div",{className:"".concat(A,"-body"),style:g},z?R:j),J=x&&x.length?r.createElement("ul",{className:"".concat(A,"-actions")},k(x)):null,G=(0,c.default)(N,["onTabChange","noHovering","hoverable"]);return r.createElement("div",v({},G,{className:F}),i,q,K,J)},e}return t=m,(n=[{key:"componentDidMount",value:function(){"noHovering"in this.props&&((0,f.default)(!this.props.noHovering,"Card","`noHovering` is deprecated, you can remove it safely or use `hoverable` instead."),(0,f.default)(!!this.props.noHovering,"Card","`noHovering={false}` is deprecated, use `hoverable` instead."))}},{key:"getCompatibleHoverable",value:function(){var e=this.props,t=e.noHovering,n=e.hoverable;return"noHovering"in this.props?!t||n:!!n}},{key:"isContainGrid",value:function(){var e;return r.Children.forEach(this.props.children,(function(t){t&&t.type&&t.type===o.default&&(e=!0)})),e}},{key:"render",value:function(){return r.createElement(d.ConfigConsumer,null,this.renderCard)}}])&&M(t.prototype,n),i&&M(t,i),m}(r.Component);t.default=H,H.Grid=o.default,H.Meta=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=h(n(0)),a=h(n(1)),c=n(18),o=d(n(3)),i=d(n(394)),l=d(n(19)),s=n(12),u=d(n(26));function d(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function h(e){if(e&&e.__esModule)return e;if(null===e||"object"!==m(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function M(e,t){return(M=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=z(e);if(t){var a=z(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?L(e):t}function L(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&M(e,t)}(d,e);var t,n,a,c=b(d);function d(){var e;return _(this,d),(e=c.apply(this,arguments)).saveCheckbox=function(t){e.rcCheckbox=t},e.renderCheckbox=function(t){var n,a=t.getPrefixCls,c=L(e),l=c.props,s=c.context,u=l.prefixCls,d=l.className,f=l.children,h=l.indeterminate,m=l.style,_=l.onMouseEnter,y=l.onMouseLeave,M=w(l,["prefixCls","className","children","indeterminate","style","onMouseEnter","onMouseLeave"]),b=s.checkboxGroup,g=a("checkbox",u),z=v({},M);b&&(z.onChange=function(){M.onChange&&M.onChange.apply(M,arguments),b.toggleOption({label:f,value:l.value})},z.name=b.name,z.checked=-1!==b.value.indexOf(l.value),z.disabled=l.disabled||b.disabled);var k=(0,o.default)(d,(p(n={},"".concat(g,"-wrapper"),!0),p(n,"".concat(g,"-wrapper-checked"),z.checked),p(n,"".concat(g,"-wrapper-disabled"),z.disabled),n)),H=(0,o.default)(p({},"".concat(g,"-indeterminate"),h));return r.createElement("label",{className:k,style:m,onMouseEnter:_,onMouseLeave:y},r.createElement(i.default,v({},z,{prefixCls:g,className:H,ref:e.saveCheckbox})),void 0!==f&&r.createElement("span",null,f))},e}return t=d,(n=[{key:"componentDidMount",value:function(){var e=this.props.value,t=(this.context||{}).checkboxGroup,n=void 0===t?{}:t;n.registerValue&&n.registerValue(e),(0,u.default)("checked"in this.props||(this.context||{}).checkboxGroup||!("value"in this.props),"Checkbox","`value` is not validate prop, do you mean `checked`?")}},{key:"shouldComponentUpdate",value:function(e,t,n){return!(0,l.default)(this.props,e)||!(0,l.default)(this.state,t)||!(0,l.default)(this.context.checkboxGroup,n.checkboxGroup)}},{key:"componentDidUpdate",value:function(e){var t=e.value,n=this.props.value,r=(this.context||{}).checkboxGroup,a=void 0===r?{}:r;n!==t&&a.registerValue&&a.cancelValue&&(a.cancelValue(t),a.registerValue(n))}},{key:"componentWillUnmount",value:function(){var e=this.props.value,t=(this.context||{}).checkboxGroup,n=void 0===t?{}:t;n.cancelValue&&n.cancelValue(e)}},{key:"focus",value:function(){this.rcCheckbox.focus()}},{key:"blur",value:function(){this.rcCheckbox.blur()}},{key:"render",value:function(){return r.createElement(s.ConfigConsumer,null,this.renderCheckbox)}}])&&y(t.prototype,n),a&&y(t,a),d}(r.Component);k.__ANT_CHECKBOX=!0,k.defaultProps={indeterminate:!1},k.contextTypes={checkboxGroup:a.any},(0,c.polyfill)(k);var H=k;t.default=H},function(e,t,n){var r=n(268);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,a){return e.call(t,n,r,a)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){e.exports=!n(22)&&!n(38)((function(){return 7!=Object.defineProperty(n(77)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(29),a=n(20).document,c=r(a)&&r(a.createElement);e.exports=function(e){return c?a.createElement(e):{}}},function(e,t,n){var r=n(25),a=n(30),c=n(270)(!1),o=n(58)("IE_PROTO");e.exports=function(e,t){var n,i=a(e),l=0,s=[];for(n in i)n!=o&&r(i,n)&&s.push(n);for(;t.length>l;)r(i,n=t[l++])&&(~c(s,n)||s.push(n));return s}},function(e,t,n){var r=n(80);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){"use strict";var r=n(45),a=n(27),c=n(82),o=n(28),i=n(63),l=n(277),s=n(65),u=n(280),d=n(31)("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,m,p,v,_){l(n,t,m);var y,M,b,g=function(e){if(!f&&e in k)return k[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},L=t+" Iterator",z="values"==p,w=!1,k=e.prototype,H=k[d]||k["@@iterator"]||p&&k[p],T=H||g(p),Y=p?z?g("entries"):T:void 0,S="Array"==t&&k.entries||H;if(S&&(b=u(S.call(new e)))!==Object.prototype&&b.next&&(s(b,L,!0),r||"function"==typeof b[d]||o(b,d,h)),z&&H&&"values"!==H.name&&(w=!0,T=function(){return H.call(this)}),r&&!_||!f&&!w&&k[d]||o(k,d,T),i[t]=T,i[L]=h,p)if(y={values:z?T:g("values"),keys:v?T:g("keys"),entries:Y},_)for(M in y)M in k||c(k,M,y[M]);else a(a.P+a.F*(f||w),t,y);return y}},function(e,t,n){e.exports=n(28)},function(e,t,n){var r=n(78),a=n(60).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},function(e,t,n){var r=n(47),a=n(43),c=n(30),o=n(55),i=n(25),l=n(76),s=Object.getOwnPropertyDescriptor;t.f=n(22)?s:function(e,t){if(e=c(e),t=o(t,!0),l)try{return s(e,t)}catch(e){}if(i(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},c=function(e){return function(t,n,c,o){var i=r(t),l=a[e][r(t)];return 2===i&&(l=l[n?0:1]),l.replace(/%d/i,t)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:c("s"),ss:c("s"),m:c("m"),mm:c("m"),h:c("h"),hh:c("h"),d:c("d"),dd:c("d"),M:c("M"),MM:c("M"),y:c("y"),yy:c("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(r,a,c,o){var i=t(r),l=n[e][t(r)];return 2===i&&(l=l[a?0:1]),l.replace(/%d/i,r)}},a=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,c,o){var i=n(t),l=r[e][n(t)];return 2===i&&(l=l[a?0:1]),l.replace(/%d/i,t)}},c=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:c,monthsShort:c,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10;return e+(t[n]||t[e%100-n]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,a;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}var n=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],r=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,a=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:a,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:a,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(function e(t){return t>9?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function c(e){return e>1&&e<5&&1!=~~(e/10)}function o(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?a+(c(e)?"sekundy":"sekund"):a+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?a+(c(e)?"minuty":"minut"):a+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(c(e)?"hodiny":"hodin"):a+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?a+(c(e)?"dny":"dní"):a+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?a+(c(e)?"měsíce":"měsíců"):a+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?a+(c(e)?"roky":"let"):a+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:o,ss:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n,r=this._calendarEl[e],a=t&&t.hours();return n=r,("undefined"!=typeof Function&&n instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(r=r.apply(t)),r.replace("{}",a%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha invalida"})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,r,a,c){var o="";switch(a){case"s":return c?"muutaman sekunnin":"muutama sekunti";case"ss":o=c?"sekunnin":"sekuntia";break;case"m":return c?"minuutin":"minuutti";case"mm":o=c?"minuutin":"minuuttia";break;case"h":return c?"tunnin":"tunti";case"hh":o=c?"tunnin":"tuntia";break;case"d":return c?"päivän":"päivä";case"dd":o=c?"päivän":"päivää";break;case"M":return c?"kuukauden":"kuukausi";case"MM":o=c?"kuukauden":"kuukautta";break;case"y":return c?"vuoden":"vuosi";case"yy":o=c?"vuoden":"vuotta"}return o=function(e,r){return e<10?r?n[e]:t[e]:e}(e,c)+" "+o}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,n=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i];e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:t,monthsShortRegex:t,monthsStrictRegex:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,monthsShortStrictRegex:/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],weekdaysShort:["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],weekdaysMin:["Do","Lu","Má","Cé","Dé","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){switch(t){case"D":return e+"वेर";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e){return e%100==11||e%10!=1}function n(e,n,r,a){var c=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?c+(n||a?"sekúndur":"sekúndum"):c+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?c+(n||a?"mínútur":"mínútum"):n?c+"mínúta":c+"mínútu";case"hh":return t(e)?c+(n||a?"klukkustundir":"klukkustundum"):c+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?c+"dagar":c+(a?"daga":"dögum"):n?c+"dagur":c+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?c+"mánuðir":c+(a?"mánuði":"mánuðum"):n?c+"mánuður":c+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?c+(n||a?"ár":"árum"):c+(n||a?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){switch(this.day()){case 0:return"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT";default:return"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"}},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,(function(e,t,n){return"ი"===n?t+"ში":t+n+"ში"}))},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه".split("_"),weekdaysShort:"یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره|بهیانی/,isPM:function(e){return/ئێواره/.test(e)},meridiem:function(e,t,n){return e<12?"بهیانی":"ئێواره"},calendar:{sameDay:"[ئهمرۆ كاتژمێر] LT",nextDay:"[بهیانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له %s",past:"%s",s:"چهند چركهیهك",ss:"چركه %d",m:"یهك خولهك",mm:"%d خولهك",h:"یهك كاتژمێر",hh:"%d كاتژمێر",d:"یهك ڕۆژ",dd:"%d ڕۆژ",M:"یهك مانگ",MM:"%d مانگ",y:"یهك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?a[n][0]:a[n][1]}function n(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return n(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return n(e)}return n(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return n(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return n(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?a(n)[0]:r?a(n)[1]:a(n)[2]}function r(e){return e%10==0||e>10&&e<20}function a(e){return t[e].split("_")}function c(e,t,c,o){var i=e+" ";return 1===e?i+n(0,t,c[0],o):t?i+(r(e)?a(c)[1]:a(c)[0]):o?i+a(c)[1]:i+(r(e)?a(c)[1]:a(c)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"},ss:c,m:n,mm:c,h:n,hh:c,d:n,dd:c,M:n,MM:c,y:n,yy:c},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function r(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function a(e,t,n){var a=e+" ";switch(n){case"ss":return a+(r(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return a+(r(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return a+(r(e)?"godziny":"godzin");case"MM":return a+(r(e)?"miesiące":"miesięcy");case"yy":return a+(r(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?""===r?"("+n[e.month()]+"|"+t[e.month()]+")":/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:a,m:a,mm:a,h:a,hh:a,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:a,y:"rok",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,a;return"m"===n?t?"минута":"минуту":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function r(e){return e>1&&e<5}function a(e,t,n,a){var c=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?c+(r(e)?"sekundy":"sekúnd"):c+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?c+(r(e)?"minúty":"minút"):c+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?c+(r(e)?"hodiny":"hodín"):c+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?c+(r(e)?"dni":"dní"):c+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?c+(r(e)?"mesiace":"mesiacov"):c+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?c+(r(e)?"roky":"rokov"):c+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return a+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return a+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"дан",dd:t.translate,M:"месец",MM:t.translate,y:"годину",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e,n,r,a){var c=function(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,c="";return n>0&&(c+=t[n]+"vatlh"),r>0&&(c+=(""!==c?" ":"")+t[r]+"maH"),a>0&&(c+=(""!==c?" ":"")+t[a]),""===c?"pagh":c}(e);switch(r){case"ss":return c+" lup";case"mm":return c+" tup";case"hh":return c+" rep";case"dd":return c+" jaj";case"MM":return c+" jar";case"yy":return c+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"öö":"ÖÖ":n?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?a[n][0]:a[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js language configuration e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,a;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(r=+e,a={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}function n(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1200?"上午":1200===r?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(306)),a=i(n(219)),c=i(n(220)),o=i(n(308));function i(e){return e&&e.__esModule?e:{default:e}}var l={locale:"en",Pagination:r.default,DatePicker:a.default,TimePicker:c.default,Calendar:o.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",selectAll:"Select current page",selectInvert:"Invert current page",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"}};t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(307)),a=c(n(220));function c(e){return e&&e.__esModule?e:{default:e}}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var i={lang:o({placeholder:"Select date",rangePlaceholder:["Start date","End date"]},r.default),timePickerLocale:o({},a.default)};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={placeholder:"Select time"};t.default=r},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){var r=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",c=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function i(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{i({},"")}catch(e){i=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var a=t&&t.prototype instanceof d?t:d,c=Object.create(a.prototype),o=new z(r||[]);return c._invoke=function(e,t,n){var r="suspendedStart";return function(a,c){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw c;return k()}for(n.method=a,n.arg=c;;){var o=n.delegate;if(o){var i=b(o,n);if(i){if(i===u)continue;return i}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=s(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===u)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(e,n,o),c}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var u={};function d(){}function f(){}function h(){}var m={};m[a]=function(){return this};var p=Object.getPrototypeOf,v=p&&p(p(w([])));v&&v!==t&&n.call(v,a)&&(m=v);var _=h.prototype=d.prototype=Object.create(m);function y(e){["next","throw","return"].forEach((function(t){i(e,t,(function(e){return this._invoke(t,e)}))}))}function M(e,t){var r;this._invoke=function(a,c){function o(){return new t((function(r,o){!function r(a,c,o,i){var l=s(e[a],e,c);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,o,i)}),(function(e){r("throw",e,o,i)})):t.resolve(d).then((function(e){u.value=e,o(u)}),(function(e){return r("throw",e,o,i)}))}i(l.arg)}(a,c,r,o)}))}return r=r?r.then(o,o):o()}}function b(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,b(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=s(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,u;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function g(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(g,this),this.reset(!0)}function w(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,c=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return c.next=c}}return{next:k}}function k(){return{value:void 0,done:!0}}return f.prototype=_.constructor=h,h.constructor=f,f.displayName=i(h,o,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,i(e,o,"GeneratorFunction")),e.prototype=Object.create(_),e},e.awrap=function(e){return{__await:e}},y(M.prototype),M.prototype[c]=function(){return this},e.AsyncIterator=M,e.async=function(t,n,r,a,c){void 0===c&&(c=Promise);var o=new M(l(t,n,r,a),c);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},y(_),i(_,o,"Generator"),_[a]=function(){return this},_.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=w,z.prototype={constructor:z,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(L),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var c=this.tryEntries[a],o=c.completion;if("root"===c.tryLoc)return r("end");if(c.tryLoc<=this.prev){var i=n.call(c,"catchLoc"),l=n.call(c,"finallyLoc");if(i&&l){if(this.prev<c.catchLoc)return r(c.catchLoc,!0);if(this.prev<c.finallyLoc)return r(c.finallyLoc)}else if(i){if(this.prev<c.catchLoc)return r(c.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<c.finallyLoc)return r(c.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var c=a;break}}c&&("break"===e||"continue"===e)&&c.tryLoc<=t&&t<=c.finallyLoc&&(c=null);var o=c?c.completion:{};return o.type=e,o.arg=t,c?(this.method="next",this.next=c.finallyLoc,u):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;L(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:w(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Row",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Col",{enumerable:!0,get:function(){return a.default}});var r=c(n(322)),a=c(n(328));function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(0,((r=n(51))&&r.__esModule?r:{default:r}).default)({});t.default=a},function(e,t){e.exports={isFunction:function(e){return"function"==typeof e},isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},each:function(e,t){for(var n=0,r=e.length;n<r&&!1!==t(e[n],n);n++);}}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var r=n(331),a="object"==typeof self&&self&&self.Object===Object&&self,c=r||a||Function("return this")();e.exports=c},function(e,t,n){var r=n(227).Symbol;e.exports=r},function(e,t,n){e.exports={default:n(340),__esModule:!0}},function(e,t){var n,r,a=e.exports={};function c(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(n===setTimeout)return setTimeout(e,0);if((n===c||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:c}catch(e){n=c}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var l,s=[],u=!1,d=-1;function f(){u&&l&&(u=!1,l.length?s=l.concat(s):d=-1,s.length&&h())}function h(){if(!u){var e=i(f);u=!0;for(var t=s.length;t;){for(l=s,s=[];++d<t;)l&&l[d].run();d=-1,t=s.length}l=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function p(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new m(e,t)),1!==s.length||u||i(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=p,a.addListener=p,a.once=p,a.off=p,a.removeListener=p,a.removeAllListeners=p,a.emit=p,a.prependListener=p,a.prependOnceListener=p,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(e,t){e.exports=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;++n)if(e[n]===t)return n;return-1}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var r=n(368),a="object"==typeof self&&self&&self.Object===Object&&self,c=r||a||Function("return this")();e.exports=c},function(e,t,n){var r=n(233).Symbol;e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.destroyFns=void 0;var r=p(n(0)),a=h(n(390)),c=p(n(1)),o=h(n(3)),i=h(n(379)),l=n(68),s=h(n(17)),u=h(n(236)),d=h(n(48)),f=n(12);function h(e){return e&&e.__esModule?e:{default:e}}function m(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return m=function(){return e},e}function p(e){if(e&&e.__esModule)return e;if(null===e||"object"!==v(e)&&"function"!=typeof e)return{default:e};var t=m();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function M(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function L(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=w(e);if(t){var a=w(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return z(this,n)}}function z(e,t){return!t||"object"!==v(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var k,H=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};t.destroyFns=[];"undefined"!=typeof window&&window.document&&window.document.documentElement&&(0,i.default)(document.documentElement,"click",(function(e){k={x:e.pageX,y:e.pageY},setTimeout((function(){return k=null}),100)}));var T=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(h,e);var t,n,c,i=L(h);function h(){var e;return M(this,h),(e=i.apply(this,arguments)).handleCancel=function(t){var n=e.props.onCancel;n&&n(t)},e.handleOk=function(t){var n=e.props.onOk;n&&n(t)},e.renderFooter=function(t){var n=e.props,a=n.okText,c=n.okType,o=n.cancelText,i=n.confirmLoading;return r.createElement("div",null,r.createElement(u.default,y({onClick:e.handleCancel},e.props.cancelButtonProps),o||t.cancelText),r.createElement(u.default,y({type:c,loading:i,onClick:e.handleOk},e.props.okButtonProps),a||t.okText))},e.renderModal=function(t){var n=t.getPopupContainer,c=t.getPrefixCls,i=e.props,u=i.prefixCls,f=i.footer,h=i.visible,m=i.wrapClassName,p=i.centered,v=i.getContainer,M=i.closeIcon,b=H(i,["prefixCls","footer","visible","wrapClassName","centered","getContainer","closeIcon"]),g=c("modal",u),L=r.createElement(d.default,{componentName:"Modal",defaultLocale:(0,l.getConfirmLocale)()},e.renderFooter),z=r.createElement("span",{className:"".concat(g,"-close-x")},M||r.createElement(s.default,{className:"".concat(g,"-close-icon"),type:"close"}));return r.createElement(a.default,y({},b,{getContainer:void 0===v?n:v,prefixCls:g,wrapClassName:(0,o.default)(_({},"".concat(g,"-centered"),!!p),m),footer:void 0===f?L:f,visible:h,mousePosition:k,onClose:e.handleCancel,closeIcon:z}))},e}return t=h,(n=[{key:"render",value:function(){return r.createElement(f.ConfigConsumer,null,this.renderModal)}}])&&b(t.prototype,n),c&&b(t,c),h}(r.Component);t.default=T,T.defaultProps={width:520,transitionName:"zoom",maskTransitionName:"fade",confirmLoading:!1,visible:!1,okType:"primary"},T.propTypes={prefixCls:c.string,onOk:c.func,onCancel:c.func,okText:c.node,cancelText:c.node,centered:c.bool,width:c.oneOfType([c.number,c.string]),confirmLoading:c.bool,visible:c.bool,footer:c.node,title:c.node,closable:c.bool,closeIcon:c.node}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(383)),a=c(n(387));function c(e){return e&&e.__esModule?e:{default:e}}r.default.Group=a.default;var o=r.default;t.default=o},function(e,t,n){"use strict";n.r(t),n.d(t,"Panel",(function(){return j}));var r=n(0),a=n.n(r),c=n(1),o=n.n(c),i=n(3),l=n.n(i),s=n(19),u=n.n(s),d=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var p=function(e){function t(){return h(this,t),m(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"shouldComponentUpdate",value:function(e){return this.props.forceRender||!u()(this.props,e)}},{key:"render",value:function(){var e;if(this._isActived=this.props.forceRender||this._isActived||this.props.isActive,!this._isActived)return null;var t=this.props,n=t.prefixCls,r=t.isActive,c=t.children,o=t.destroyInactivePanel,i=t.forceRender,s=t.role,u=l()((f(e={},n+"-content",!0),f(e,n+"-content-active",r),f(e,n+"-content-inactive",!r),e)),d=i||r||!o?a.a.createElement("div",{className:n+"-content-box"},c):null;return a.a.createElement("div",{className:u,role:s},d)}}]),t}(r.Component);p.propTypes={prefixCls:o.a.string,isActive:o.a.bool,children:o.a.any,destroyInactivePanel:o.a.bool,forceRender:o.a.bool,role:o.a.string};var v=p,_=n(42),y=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function M(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var L=function(e){function t(){var e,n,r;b(this,t);for(var a=arguments.length,c=Array(a),o=0;o<a;o++)c[o]=arguments[o];return n=r=g(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(c))),r.handleItemClick=function(){var e=r.props,t=e.onItemClick,n=e.panelKey;"function"==typeof t&&t(n)},r.handleKeyPress=function(e){"Enter"!==e.key&&13!==e.keyCode&&13!==e.which||r.handleItemClick()},g(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),y(t,[{key:"shouldComponentUpdate",value:function(e){return!u()(this.props,e)}},{key:"render",value:function(){var e,t=this.props,n=t.className,r=t.id,c=t.style,o=t.prefixCls,i=t.header,s=t.headerClass,u=t.children,d=t.isActive,f=t.showArrow,h=t.destroyInactivePanel,m=t.disabled,p=t.accordion,y=t.forceRender,b=t.expandIcon,g=t.extra,L=l()(o+"-header",M({},s,s)),z=l()((M(e={},o+"-item",!0),M(e,o+"-item-active",d),M(e,o+"-item-disabled",m),e),n),w=a.a.createElement("i",{className:"arrow"});return f&&"function"==typeof b&&(w=b(this.props)),a.a.createElement("div",{className:z,style:c,id:r},a.a.createElement("div",{className:L,onClick:this.handleItemClick,role:p?"tab":"button",tabIndex:m?-1:0,"aria-expanded":""+d,onKeyPress:this.handleKeyPress},f&&w,i,g&&a.a.createElement("div",{className:o+"-extra"},g)),a.a.createElement(_.a,{showProp:"isActive",exclusive:!0,component:"",animation:this.props.openAnimation},a.a.createElement(v,{prefixCls:o,isActive:d,destroyInactivePanel:h,forceRender:y,role:p?"tabpanel":null},u)))}}]),t}(r.Component);L.propTypes={className:o.a.oneOfType([o.a.string,o.a.object]),id:o.a.string,children:o.a.any,openAnimation:o.a.object,prefixCls:o.a.string,header:o.a.oneOfType([o.a.string,o.a.number,o.a.node]),headerClass:o.a.string,showArrow:o.a.bool,isActive:o.a.bool,onItemClick:o.a.func,style:o.a.object,destroyInactivePanel:o.a.bool,disabled:o.a.bool,accordion:o.a.bool,forceRender:o.a.bool,expandIcon:o.a.func,extra:o.a.node,panelKey:o.a.any},L.defaultProps={showArrow:!0,isActive:!1,destroyInactivePanel:!1,onItemClick:function(){},headerClass:"",forceRender:!1};var z=L,w=n(35);function k(e,t,n,r){var a=void 0;return Object(w.default)(e,n,{start:function(){t?(a=e.offsetHeight,e.style.height=0):e.style.height=e.offsetHeight+"px"},active:function(){e.style.height=(t?a:0)+"px"},end:function(){e.style.height="",r()}})}var H=function(e){return{enter:function(t,n){return k(t,!0,e+"-anim",n)},leave:function(t,n){return k(t,!1,e+"-anim",n)}}},T=n(72),Y=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e){var t=e;return Array.isArray(t)||(t=t?[t]:[]),t}var D=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));x.call(n);var r=e.activeKey,a=e.defaultActiveKey;return"activeKey"in e&&(a=r),n.state={openAnimation:e.openAnimation||H(e.prefixCls),activeKey:O(a)},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),Y(t,[{key:"componentWillReceiveProps",value:function(e){"activeKey"in e&&this.setState({activeKey:O(e.activeKey)}),"openAnimation"in e&&this.setState({openAnimation:e.openAnimation})}},{key:"shouldComponentUpdate",value:function(e,t){return!u()(this.props,e)||!u()(this.state,t)}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,r=t.className,c=t.style,o=t.accordion,i=l()((S(e={},n,!0),S(e,r,!!r),e));return a.a.createElement("div",{className:i,style:c,role:o?"tablist":null},this.getItems())}}]),t}(r.Component),x=function(){var e=this;this.onClickItem=function(t){var n=e.state.activeKey;if(e.props.accordion)n=n[0]===t?[]:[t];else{var r=(n=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(n))).indexOf(t);r>-1?n.splice(r,1):n.push(t)}e.setActiveKey(n)},this.getNewChild=function(t,n){if(!t)return null;var r=e.state.activeKey,c=e.props,o=c.prefixCls,i=c.accordion,l=c.destroyInactivePanel,s=c.expandIcon,u=t.key||String(n),d=t.props,f=d.header,h=d.headerClass,m=d.disabled,p={key:u,panelKey:u,header:f,headerClass:h,isActive:i?r[0]===u:r.indexOf(u)>-1,prefixCls:o,destroyInactivePanel:l,openAnimation:e.state.openAnimation,accordion:i,children:t.props.children,onItemClick:m?null:e.onClickItem,expandIcon:s};return a.a.cloneElement(t,p)},this.getItems=function(){var t=e.props.children,n=Object(T.isFragment)(t)?t.props.children:t,c=r.Children.map(n,e.getNewChild);return Object(T.isFragment)(t)?a.a.createElement(a.a.Fragment,null,c):c},this.setActiveKey=function(t){"activeKey"in e.props||e.setState({activeKey:t}),e.props.onChange(e.props.accordion?t[0]:t)}};D.propTypes={children:o.a.any,prefixCls:o.a.string,activeKey:o.a.oneOfType([o.a.string,o.a.arrayOf(o.a.string)]),defaultActiveKey:o.a.oneOfType([o.a.string,o.a.arrayOf(o.a.string)]),openAnimation:o.a.object,onChange:o.a.func,accordion:o.a.bool,className:o.a.string,style:o.a.object,destroyInactivePanel:o.a.bool,expandIcon:o.a.func},D.defaultProps={prefixCls:"rc-collapse",onChange:function(){},accordion:!1,destroyInactivePanel:!1},D.Panel=z;var C=D,j=(t.default=C,C.Panel)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return g}));var r=n(6),a=n.n(r),c=n(4),o=n.n(c),i=n(16),l=n.n(i),s=n(7),u=n.n(s),d=n(10),f=n.n(d),h=n(8),m=n.n(h),p=n(9),v=n.n(p),_=n(0),y=n(23),M={primaryColor:"#333",secondaryColor:"#E6E6E6"},b=function(e){function t(){return u()(this,t),m()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return v()(t,e),f()(t,[{key:"render",value:function(){var e,n=this.props,r=n.type,c=n.className,i=n.onClick,s=n.style,u=n.primaryColor,d=n.secondaryColor,f=l()(n,["type","className","onClick","style","primaryColor","secondaryColor"]),h=void 0,m=M;if(u&&(m={primaryColor:u,secondaryColor:d||Object(y.c)(u)}),Object(y.d)(r))h=r;else if("string"==typeof r&&!(h=t.get(r,m)))return null;return h?(h&&"function"==typeof h.icon&&(h=o()({},h,{icon:h.icon(m.primaryColor,m.secondaryColor)})),Object(y.b)(h.icon,"svg-"+h.name,o()((e={className:c,onClick:i,style:s},a()(e,"data-icon",h.name),a()(e,"width","1em"),a()(e,"height","1em"),a()(e,"fill","currentColor"),a()(e,"aria-hidden","true"),a()(e,"focusable","false"),e),f))):(Object(y.e)("type should be string or icon definiton, but got "+r),null)}}],[{key:"add",value:function(){for(var e=this,t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];n.forEach((function(t){e.definitions.set(Object(y.f)(t.name,t.theme),t)}))}},{key:"clear",value:function(){this.definitions.clear()}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:M;if(e){var n=this.definitions.get(e);return n&&"function"==typeof n.icon&&(n=o()({},n,{icon:n.icon(t.primaryColor,t.secondaryColor)})),n}}},{key:"setTwoToneColors",value:function(e){var t=e.primaryColor,n=e.secondaryColor;M.primaryColor=t,M.secondaryColor=n||Object(y.c)(t)}},{key:"getTwoToneColors",value:function(){return o()({},M)}}]),t}(_.Component);b.displayName="IconReact",b.definitions=new y.a;var g=b},function(e,t,n){var r;!function(){"use strict";var a={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function c(e){return i(s(e),arguments)}function o(e,t){return c.apply(null,[e].concat(t||[]))}function i(e,t){var n,r,o,i,l,s,u,d,f,h=1,m=e.length,p="";for(r=0;r<m;r++)if("string"==typeof e[r])p+=e[r];else if("object"==typeof e[r]){if((i=e[r]).keys)for(n=t[h],o=0;o<i.keys.length;o++){if(null==n)throw new Error(c('[sprintf] Cannot access property "%s" of undefined value "%s"',i.keys[o],i.keys[o-1]));n=n[i.keys[o]]}else n=i.param_no?t[i.param_no]:t[h++];if(a.not_type.test(i.type)&&a.not_primitive.test(i.type)&&n instanceof Function&&(n=n()),a.numeric_arg.test(i.type)&&"number"!=typeof n&&isNaN(n))throw new TypeError(c("[sprintf] expecting number but found %T",n));switch(a.number.test(i.type)&&(d=n>=0),i.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,i.width?parseInt(i.width):0);break;case"e":n=i.precision?parseFloat(n).toExponential(i.precision):parseFloat(n).toExponential();break;case"f":n=i.precision?parseFloat(n).toFixed(i.precision):parseFloat(n);break;case"g":n=i.precision?String(Number(n.toPrecision(i.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=i.precision?n.substring(0,i.precision):n;break;case"t":n=String(!!n),n=i.precision?n.substring(0,i.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=i.precision?n.substring(0,i.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=i.precision?n.substring(0,i.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}a.json.test(i.type)?p+=n:(!a.number.test(i.type)||d&&!i.sign?f="":(f=d?"+":"-",n=n.toString().replace(a.sign,"")),s=i.pad_char?"0"===i.pad_char?"0":i.pad_char.charAt(1):" ",u=i.width-(f+n).length,l=i.width&&u>0?s.repeat(u):"",p+=i.align?f+n+l:"0"===s?f+l+n:l+f+n)}return p}var l=Object.create(null);function s(e){if(l[e])return l[e];for(var t,n=e,r=[],c=0;n;){if(null!==(t=a.text.exec(n)))r.push(t[0]);else if(null!==(t=a.modulo.exec(n)))r.push("%");else{if(null===(t=a.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){c|=1;var o=[],i=t[2],s=[];if(null===(s=a.key.exec(i)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(o.push(s[1]);""!==(i=i.substring(s[0].length));)if(null!==(s=a.key_access.exec(i)))o.push(s[1]);else{if(null===(s=a.index_access.exec(i)))throw new SyntaxError("[sprintf] failed to parse named argument key");o.push(s[1])}t[2]=o}else c|=2;if(3===c)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return l[e]=r}t.sprintf=c,t.vsprintf=o,"undefined"!=typeof window&&(window.sprintf=c,window.vsprintf=o,void 0===(r=function(){return{sprintf:c,vsprintf:o}}.call(t,n,t,e))||(e.exports=r))}()},function(e,t){function n(e,t,n,r,a,c,o){try{var i=e[c](o),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(r,a)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(a,c){var o=e.apply(t,r);function i(e){n(o,a,c,i,l,"next",e)}function l(e){n(o,a,c,i,l,"throw",e)}i(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(e,t,n,r,a,c,o){try{var i=e[c](o),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(r,a)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(a,c){var o=e.apply(t,r);function i(e){n(o,a,c,i,l,"next",e)}function l(e){n(o,a,c,i,l,"throw",e)}i(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=f(n(0)),a=f(n(1)),c=u(n(3)),o=u(n(32)),i=u(n(329)),l=n(12),s=n(49);function u(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function f(e){if(e&&e.__esModule)return e;if(null===e||"object"!==h(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var a=b(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return M(this,n)}}function M(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},L=(0,s.tuple)("small","default","large"),z=null;var w=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(u,e);var t,n,a,s=y(u);function u(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=s.call(this,e)).debouncifyUpdateSpinning=function(e){var n=(e||t.props).delay;n&&(t.cancelExistingSpin(),t.updateSpinning=(0,i.default)(t.originalUpdateSpinning,n))},t.updateSpinning=function(){var e=t.props.spinning;t.state.spinning!==e&&t.setState({spinning:e})},t.renderSpin=function(e){var n,a=e.getPrefixCls,i=t.props,l=i.prefixCls,s=i.className,u=i.size,d=i.tip,f=i.wrapperClassName,h=i.style,v=g(i,["prefixCls","className","size","tip","wrapperClassName","style"]),_=t.state.spinning,y=a("spin",l),M=(0,c.default)(y,(p(n={},"".concat(y,"-sm"),"small"===u),p(n,"".concat(y,"-lg"),"large"===u),p(n,"".concat(y,"-spinning"),_),p(n,"".concat(y,"-show-text"),!!d),n),s),b=(0,o.default)(v,["spinning","delay","indicator"]),L=r.createElement("div",m({},b,{style:h,className:M}),function(e,t){var n=t.indicator,a="".concat(e,"-dot");return null===n?null:r.isValidElement(n)?r.cloneElement(n,{className:(0,c.default)(n.props.className,a)}):r.isValidElement(z)?r.cloneElement(z,{className:(0,c.default)(z.props.className,a)}):r.createElement("span",{className:(0,c.default)(a,"".concat(e,"-dot-spin"))},r.createElement("i",{className:"".concat(e,"-dot-item")}),r.createElement("i",{className:"".concat(e,"-dot-item")}),r.createElement("i",{className:"".concat(e,"-dot-item")}),r.createElement("i",{className:"".concat(e,"-dot-item")}))}(y,t.props),d?r.createElement("div",{className:"".concat(y,"-text")},d):null);if(t.isNestedPattern()){var w=(0,c.default)("".concat(y,"-container"),p({},"".concat(y,"-blur"),_));return r.createElement("div",m({},b,{className:(0,c.default)("".concat(y,"-nested-loading"),f)}),_&&r.createElement("div",{key:"loading"},L),r.createElement("div",{className:w,key:"container"},t.props.children))}return L};var n=e.spinning,a=function(e,t){return!!e&&!!t&&!isNaN(Number(t))}(n,e.delay);return t.state={spinning:n&&!a},t.originalUpdateSpinning=t.updateSpinning,t.debouncifyUpdateSpinning(e),t}return t=u,a=[{key:"setDefaultIndicator",value:function(e){z=e}}],(n=[{key:"componentDidMount",value:function(){this.updateSpinning()}},{key:"componentDidUpdate",value:function(){this.debouncifyUpdateSpinning(),this.updateSpinning()}},{key:"componentWillUnmount",value:function(){this.cancelExistingSpin()}},{key:"cancelExistingSpin",value:function(){var e=this.updateSpinning;e&&e.cancel&&e.cancel()}},{key:"isNestedPattern",value:function(){return!(!this.props||!this.props.children)}},{key:"render",value:function(){return r.createElement(l.ConfigConsumer,null,this.renderSpin)}}])&&v(t.prototype,n),a&&v(t,a),u}(r.Component);w.defaultProps={spinning:!0,size:"default",wrapperClassName:""},w.propTypes={prefixCls:a.string,className:a.string,spinning:a.bool,size:a.oneOf(L),wrapperClassName:a.string,indicator:a.element};var k=w;t.default=k},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=((r=n(338))&&r.__esModule?r:{default:r}).default;t.default=a},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(342));t.generate=a.default;var c={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"};t.presetPrimaryColors=c;var o={};t.presetPalettes=o,Object.keys(c).forEach((function(e){o[e]=a.default(c[e]),o[e].primary=o[e][6]}));var i=o.red;t.red=i;var l=o.volcano;t.volcano=l;var s=o.gold;t.gold=s;var u=o.yellow;t.yellow=u;var d=o.lime;t.lime=d;var f=o.green;t.green=f;var h=o.cyan;t.cyan=h;var m=o.blue;t.blue=m;var p=o.geekblue;t.geekblue=p;var v=o.purple;t.purple=v;var _=o.magenta;t.magenta=_;var y=o.grey;t.grey=y},function(e,t,n){try{var r=n(231)}catch(e){r=n(231)}var a=/\s+/,c=Object.prototype.toString;function o(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}e.exports=function(e){return new o(e)},o.prototype.add=function(e){if(this.list)return this.list.add(e),this;var t=this.array();return~r(t,e)||t.push(e),this.el.className=t.join(" "),this},o.prototype.remove=function(e){if("[object RegExp]"==c.call(e))return this.removeMatching(e);if(this.list)return this.list.remove(e),this;var t=this.array(),n=r(t,e);return~n&&t.splice(n,1),this.el.className=t.join(" "),this},o.prototype.removeMatching=function(e){for(var t=this.array(),n=0;n<t.length;n++)e.test(t[n])&&this.remove(t[n]);return this},o.prototype.toggle=function(e,t){return this.list?(void 0!==t?t!==this.list.toggle(e,t)&&this.list.toggle(e):this.list.toggle(e),this):(void 0!==t?t?this.add(e):this.remove(e):this.has(e)?this.remove(e):this.add(e),this)},o.prototype.array=function(){var e=(this.el.getAttribute("class")||"").replace(/^\s+|\s+$/g,"").split(a);return""===e[0]&&e.shift(),e},o.prototype.has=o.prototype.contains=function(e){return this.list?this.list.contains(e):!!~r(this.array(),e)}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=u(n(0)),c=u(n(235)),o=l(n(388)),i=l(n(17));function l(e){return e&&e.__esModule?e:{default:e}}function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function u(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function f(e){var t=d({type:"warning",icon:a.createElement(i.default,{type:"exclamation-circle"}),okCancel:!1},e);return(0,o.default)(t)}c.default.info=function(e){var t=d({type:"info",icon:a.createElement(i.default,{type:"info-circle"}),okCancel:!1},e);return(0,o.default)(t)},c.default.success=function(e){var t=d({type:"success",icon:a.createElement(i.default,{type:"check-circle"}),okCancel:!1},e);return(0,o.default)(t)},c.default.error=function(e){var t=d({type:"error",icon:a.createElement(i.default,{type:"close-circle"}),okCancel:!1},e);return(0,o.default)(t)},c.default.warning=f,c.default.warn=f,c.default.confirm=function(e){var t=d({type:"confirm",okCancel:!0},e);return(0,o.default)(t)},c.default.destroyAll=function(){for(;c.destroyFns.length;){var e=c.destroyFns.pop();e&&e()}};var h=c.default;t.default=h},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(a,c){function o(e){try{l(r.next(e))}catch(e){c(e)}}function i(e){try{l(r.throw(e))}catch(e){c(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,i)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,a,c,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return c={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function i(c){return function(i){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(a=o.trys,(a=a.length>0&&a[a.length-1])||6!==c[0]&&2!==c[0])){o=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){o.label=c[1];break}if(6===c[0]&&o.label<a[1]){o.label=a[1],a=c;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(c);break}a[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,i])}}};Object.defineProperty(t,"__esModule",{value:!0});var c=function(){function e(e){this.restAPI=e}return e.prototype.set=function(e,t,n){return r(this,void 0,void 0,(function(){return a(this,(function(r){switch(r.label){case 0:return[4,this.restAPI.post("/wpml/st/v1/settings",{group:e,key:t,data:n})];case 1:return[2,r.sent()]}}))}))},e}();t.default=c},function(e,t,n){e.exports=n(391)},function(e,t,n){"use strict"; /** @license React v16.9.0 * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=n(53),a="function"==typeof Symbol&&Symbol.for,c=a?Symbol.for("react.element"):60103,o=a?Symbol.for("react.portal"):60106,i=a?Symbol.for("react.fragment"):60107,l=a?Symbol.for("react.strict_mode"):60108,s=a?Symbol.for("react.profiler"):60114,u=a?Symbol.for("react.provider"):60109,d=a?Symbol.for("react.context"):60110,f=a?Symbol.for("react.forward_ref"):60112,h=a?Symbol.for("react.suspense"):60113,m=a?Symbol.for("react.suspense_list"):60120,p=a?Symbol.for("react.memo"):60115,v=a?Symbol.for("react.lazy"):60116;a&&Symbol.for("react.fundamental"),a&&Symbol.for("react.responder");var _="function"==typeof Symbol&&Symbol.iterator;function y(e){for(var t=e.message,n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)n+="&args[]="+encodeURIComponent(arguments[r]);return e.message="Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",e}var M={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b={};function g(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||M}function L(){}function z(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||M}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw y(Error(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},L.prototype=g.prototype;var w=z.prototype=new L;w.constructor=z,r(w,g.prototype),w.isPureReactComponent=!0;var k={current:null},H={suspense:null},T={current:null},Y=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function O(e,t,n){var r=void 0,a={},o=null,i=null;if(null!=t)for(r in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(o=""+t.key),t)Y.call(t,r)&&!S.hasOwnProperty(r)&&(a[r]=t[r]);var l=arguments.length-2;if(1===l)a.children=n;else if(1<l){for(var s=Array(l),u=0;u<l;u++)s[u]=arguments[u+2];a.children=s}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===a[r]&&(a[r]=l[r]);return{$$typeof:c,type:e,key:o,ref:i,props:a,_owner:T.current}}function D(e){return"object"==typeof e&&null!==e&&e.$$typeof===c}var x=/\/+/g,C=[];function j(e,t,n,r){if(C.length){var a=C.pop();return a.result=e,a.keyPrefix=t,a.func=n,a.context=r,a.count=0,a}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function E(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>C.length&&C.push(e)}function V(e,t,n){return null==e?0:function e(t,n,r,a){var i=typeof t;"undefined"!==i&&"boolean"!==i||(t=null);var l=!1;if(null===t)l=!0;else switch(i){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case c:case o:l=!0}}if(l)return r(a,t,""===n?"."+P(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s<t.length;s++){var u=n+P(i=t[s],s);l+=e(i,u,r,a)}else if(null===t||"object"!=typeof t?u=null:u="function"==typeof(u=_&&t[_]||t["@@iterator"])?u:null,"function"==typeof u)for(t=u.call(t),s=0;!(i=t.next()).done;)l+=e(i=i.value,u=n+P(i,s++),r,a);else if("object"===i)throw r=""+t,y(Error(31),"[object Object]"===r?"object with keys {"+Object.keys(t).join(", ")+"}":r,"");return l}(e,"",t,n)}function P(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function N(e,t){e.func.call(e.context,t,e.count++)}function A(e,t,n){var r=e.result,a=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?F(e,r,n,(function(e){return e})):null!=e&&(D(e)&&(e=function(e,t){return{$$typeof:c,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,a+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(x,"$&/")+"/")+n)),r.push(e))}function F(e,t,n,r,a){var c="";null!=n&&(c=(""+n).replace(x,"$&/")+"/"),V(e,A,t=j(t,c,r,a)),E(t)}function W(){var e=k.current;if(null===e)throw y(Error(321));return e}var R={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return F(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;V(e,N,t=j(null,null,t,n)),E(t)},count:function(e){return V(e,(function(){return null}),null)},toArray:function(e){var t=[];return F(e,t,null,(function(e){return e})),t},only:function(e){if(!D(e))throw y(Error(143));return e}},createRef:function(){return{current:null}},Component:g,PureComponent:z,createContext:function(e,t){return void 0===t&&(t=null),(e={$$typeof:d,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:u,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:f,render:e}},lazy:function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},memo:function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return W().useCallback(e,t)},useContext:function(e,t){return W().useContext(e,t)},useEffect:function(e,t){return W().useEffect(e,t)},useImperativeHandle:function(e,t,n){return W().useImperativeHandle(e,t,n)},useDebugValue:function(){},useLayoutEffect:function(e,t){return W().useLayoutEffect(e,t)},useMemo:function(e,t){return W().useMemo(e,t)},useReducer:function(e,t,n){return W().useReducer(e,t,n)},useRef:function(e){return W().useRef(e)},useState:function(e){return W().useState(e)},Fragment:i,Profiler:s,StrictMode:l,Suspense:h,unstable_SuspenseList:m,createElement:O,cloneElement:function(e,t,n){if(null==e)throw y(Error(267),e);var a=void 0,o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){void 0!==t.ref&&(l=t.ref,s=T.current),void 0!==t.key&&(i=""+t.key);var u=void 0;for(a in e.type&&e.type.defaultProps&&(u=e.type.defaultProps),t)Y.call(t,a)&&!S.hasOwnProperty(a)&&(o[a]=void 0===t[a]&&void 0!==u?u[a]:t[a])}if(1===(a=arguments.length-2))o.children=n;else if(1<a){u=Array(a);for(var d=0;d<a;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:c,type:e.type,key:i,ref:l,props:o,_owner:s}},createFactory:function(e){var t=O.bind(null,e);return t.type=e,t},isValidElement:D,version:"16.9.0",unstable_withSuspenseConfig:function(e,t){var n=H.suspense;H.suspense=void 0===t?null:t;try{e()}finally{H.suspense=n}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:k,ReactCurrentBatchConfig:H,ReactCurrentOwner:T,IsSomeRendererActing:{current:!1},assign:r}},I={default:R},U=I&&R||I;e.exports=U.default||U},function(e,t,n){"use strict"; /** @license React v16.9.0 * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=n(0),a=n(53),c=n(255);function o(e){for(var t=e.message,n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)n+="&args[]="+encodeURIComponent(arguments[r]);return e.message="Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",e}if(!r)throw o(Error(227));var i=null,l={};function s(){if(i)for(var e in l){var t=l[e],n=i.indexOf(e);if(!(-1<n))throw o(Error(96),e);if(!d[n]){if(!t.extractEvents)throw o(Error(97),e);for(var r in d[n]=t,n=t.eventTypes){var a=void 0,c=n[r],s=t,h=r;if(f.hasOwnProperty(h))throw o(Error(99),h);f[h]=c;var m=c.phasedRegistrationNames;if(m){for(a in m)m.hasOwnProperty(a)&&u(m[a],s,h);a=!0}else c.registrationName?(u(c.registrationName,s,h),a=!0):a=!1;if(!a)throw o(Error(98),r,e)}}}}function u(e,t,n){if(h[e])throw o(Error(100),e);h[e]=t,m[e]=t.eventTypes[n].dependencies}var d=[],f={},h={},m={};function p(e,t,n,r,a,c,o,i,l){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var v=!1,_=null,y=!1,M=null,b={onError:function(e){v=!0,_=e}};function g(e,t,n,r,a,c,o,i,l){v=!1,_=null,p.apply(b,arguments)}var L=null,z=null,w=null;function k(e,t,n){var r=e.type||"unknown-event";e.currentTarget=w(n),function(e,t,n,r,a,c,i,l,s){if(g.apply(this,arguments),v){if(!v)throw o(Error(198));var u=_;v=!1,_=null,y||(y=!0,M=u)}}(r,t,void 0,e),e.currentTarget=null}function H(e,t){if(null==t)throw o(Error(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function T(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var Y=null;function S(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)k(e,t[r],n[r]);else t&&k(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function O(e){if(null!==e&&(Y=H(Y,e)),e=Y,Y=null,e){if(T(e,S),Y)throw o(Error(95));if(y)throw e=M,y=!1,M=null,e}}var D={injectEventPluginOrder:function(e){if(i)throw o(Error(101));i=Array.prototype.slice.call(e),s()},injectEventPluginsByName:function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!l.hasOwnProperty(t)||l[t]!==r){if(l[t])throw o(Error(102),t);l[t]=r,n=!0}}n&&s()}};function x(e,t){var n=e.stateNode;if(!n)return null;var r=L(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw o(Error(231),t,typeof n);return n}var C=Math.random().toString(36).slice(2),j="__reactInternalInstance$"+C,E="__reactEventHandlers$"+C;function V(e){if(e[j])return e[j];for(;!e[j];){if(!e.parentNode)return null;e=e.parentNode}return 5===(e=e[j]).tag||6===e.tag?e:null}function P(e){return!(e=e[j])||5!==e.tag&&6!==e.tag?null:e}function N(e){if(5===e.tag||6===e.tag)return e.stateNode;throw o(Error(33))}function A(e){return e[E]||null}function F(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function W(e,t,n){(t=x(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=H(n._dispatchListeners,t),n._dispatchInstances=H(n._dispatchInstances,e))}function R(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=F(t);for(t=n.length;0<t--;)W(n[t],"captured",e);for(t=0;t<n.length;t++)W(n[t],"bubbled",e)}}function I(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=x(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=H(n._dispatchListeners,t),n._dispatchInstances=H(n._dispatchInstances,e))}function U(e){e&&e.dispatchConfig.registrationName&&I(e._targetInst,null,e)}function B(e){T(e,R)}var q=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement);function K(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var J={animationend:K("Animation","AnimationEnd"),animationiteration:K("Animation","AnimationIteration"),animationstart:K("Animation","AnimationStart"),transitionend:K("Transition","TransitionEnd")},G={},$={};function Q(e){if(G[e])return G[e];if(!J[e])return e;var t,n=J[e];for(t in n)if(n.hasOwnProperty(t)&&t in $)return G[e]=n[t];return e}q&&($=document.createElement("div").style,"AnimationEvent"in window||(delete J.animationend.animation,delete J.animationiteration.animation,delete J.animationstart.animation),"TransitionEvent"in window||delete J.transitionend.transition);var Z=Q("animationend"),X=Q("animationiteration"),ee=Q("animationstart"),te=Q("transitionend"),ne="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),re=null,ae=null,ce=null;function oe(){if(ce)return ce;var e,t,n=ae,r=n.length,a="value"in re?re.value:re.textContent,c=a.length;for(e=0;e<r&&n[e]===a[e];e++);var o=r-e;for(t=1;t<=o&&n[r-t]===a[c-t];t++);return ce=a.slice(e,1<t?1-t:void 0)}function ie(){return!0}function le(){return!1}function se(e,t,n,r){for(var a in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface)e.hasOwnProperty(a)&&((t=e[a])?this[a]=t(n):"target"===a?this.target=r:this[a]=n[a]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?ie:le,this.isPropagationStopped=le,this}function ue(e,t,n,r){if(this.eventPool.length){var a=this.eventPool.pop();return this.call(a,e,t,n,r),a}return new this(e,t,n,r)}function de(e){if(!(e instanceof this))throw o(Error(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=ue,e.release=de}a(se.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ie)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ie)},persist:function(){this.isPersistent=ie},isPersistent:le,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=le,this._dispatchInstances=this._dispatchListeners=null}}),se.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},se.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var c=new t;return a(c,n.prototype),n.prototype=c,n.prototype.constructor=n,n.Interface=a({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(se);var he=se.extend({data:null}),me=se.extend({data:null}),pe=[9,13,27,32],ve=q&&"CompositionEvent"in window,_e=null;q&&"documentMode"in document&&(_e=document.documentMode);var ye=q&&"TextEvent"in window&&!_e,Me=q&&(!ve||_e&&8<_e&&11>=_e),be=String.fromCharCode(32),ge={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Le=!1;function ze(e,t){switch(e){case"keyup":return-1!==pe.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function we(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ke=!1;var He={eventTypes:ge,extractEvents:function(e,t,n,r){var a=void 0,c=void 0;if(ve)e:{switch(e){case"compositionstart":a=ge.compositionStart;break e;case"compositionend":a=ge.compositionEnd;break e;case"compositionupdate":a=ge.compositionUpdate;break e}a=void 0}else ke?ze(e,n)&&(a=ge.compositionEnd):"keydown"===e&&229===n.keyCode&&(a=ge.compositionStart);return a?(Me&&"ko"!==n.locale&&(ke||a!==ge.compositionStart?a===ge.compositionEnd&&ke&&(c=oe()):(ae="value"in(re=r)?re.value:re.textContent,ke=!0)),a=he.getPooled(a,t,n,r),c?a.data=c:null!==(c=we(n))&&(a.data=c),B(a),c=a):c=null,(e=ye?function(e,t){switch(e){case"compositionend":return we(t);case"keypress":return 32!==t.which?null:(Le=!0,be);case"textInput":return(e=t.data)===be&&Le?null:e;default:return null}}(e,n):function(e,t){if(ke)return"compositionend"===e||!ve&&ze(e,t)?(e=oe(),ce=ae=re=null,ke=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Me&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))?((t=me.getPooled(ge.beforeInput,t,n,r)).data=e,B(t)):t=null,null===c?t:null===t?c:[c,t]}},Te=null,Ye=null,Se=null;function Oe(e){if(e=z(e)){if("function"!=typeof Te)throw o(Error(280));var t=L(e.stateNode);Te(e.stateNode,e.type,t)}}function De(e){Ye?Se?Se.push(e):Se=[e]:Ye=e}function xe(){if(Ye){var e=Ye,t=Se;if(Se=Ye=null,Oe(e),t)for(e=0;e<t.length;e++)Oe(t[e])}}function Ce(e,t){return e(t)}function je(e,t,n,r){return e(t,n,r)}function Ee(){}var Ve=Ce,Pe=!1;function Ne(){null===Ye&&null===Se||(Ee(),xe())}var Ae={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Fe(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Ae[e.type]:"textarea"===t}function We(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function Re(e){if(!q)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"==typeof t[e]),t}function Ie(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Ue(e){e._valueTracker||(e._valueTracker=function(e){var t=Ie(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,c=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,c.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Be(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Ie(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}var qe=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;qe.hasOwnProperty("ReactCurrentDispatcher")||(qe.ReactCurrentDispatcher={current:null}),qe.hasOwnProperty("ReactCurrentBatchConfig")||(qe.ReactCurrentBatchConfig={suspense:null});var Ke=/^(.*)[\\\/]/,Je="function"==typeof Symbol&&Symbol.for,Ge=Je?Symbol.for("react.element"):60103,$e=Je?Symbol.for("react.portal"):60106,Qe=Je?Symbol.for("react.fragment"):60107,Ze=Je?Symbol.for("react.strict_mode"):60108,Xe=Je?Symbol.for("react.profiler"):60114,et=Je?Symbol.for("react.provider"):60109,tt=Je?Symbol.for("react.context"):60110,nt=Je?Symbol.for("react.concurrent_mode"):60111,rt=Je?Symbol.for("react.forward_ref"):60112,at=Je?Symbol.for("react.suspense"):60113,ct=Je?Symbol.for("react.suspense_list"):60120,ot=Je?Symbol.for("react.memo"):60115,it=Je?Symbol.for("react.lazy"):60116;Je&&Symbol.for("react.fundamental"),Je&&Symbol.for("react.responder");var lt="function"==typeof Symbol&&Symbol.iterator;function st(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=lt&&e[lt]||e["@@iterator"])?e:null}function ut(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case Qe:return"Fragment";case $e:return"Portal";case Xe:return"Profiler";case Ze:return"StrictMode";case at:return"Suspense";case ct:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case tt:return"Context.Consumer";case et:return"Context.Provider";case rt:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case ot:return ut(e.type);case it:if(e=1===e._status?e._result:null)return ut(e)}return null}function dt(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,a=e._debugSource,c=ut(e.type);n=null,r&&(n=ut(r.type)),r=c,c="",a?c=" (at "+a.fileName.replace(Ke,"")+":"+a.lineNumber+")":n&&(c=" (created by "+n+")"),n="\n in "+(r||"Unknown")+c}t+=n,e=e.return}while(e);return t}var ft=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ht=Object.prototype.hasOwnProperty,mt={},pt={};function vt(e,t,n,r,a,c){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=c}var _t={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){_t[e]=new vt(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];_t[t]=new vt(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){_t[e]=new vt(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){_t[e]=new vt(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){_t[e]=new vt(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){_t[e]=new vt(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){_t[e]=new vt(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){_t[e]=new vt(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){_t[e]=new vt(e,5,!1,e.toLowerCase(),null,!1)}));var yt=/[\-:]([a-z])/g;function Mt(e){return e[1].toUpperCase()}function bt(e,t,n,r){var a=_t.hasOwnProperty(t)?_t[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!ht.call(pt,e)||!ht.call(mt,e)&&(ft.test(e)?pt[e]=!0:(mt[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function gt(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Lt(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function zt(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=gt(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function wt(e,t){null!=(t=t.checked)&&bt(e,"checked",t,!1)}function kt(e,t){wt(e,t);var n=gt(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Tt(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tt(e,t.type,gt(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Ht(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Tt(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(yt,Mt);_t[t]=new vt(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(yt,Mt);_t[t]=new vt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(yt,Mt);_t[t]=new vt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){_t[e]=new vt(e,1,!1,e.toLowerCase(),null,!1)})),_t.xlinkHref=new vt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){_t[e]=new vt(e,1,!1,e.toLowerCase(),null,!0)}));var Yt={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function St(e,t,n){return(e=se.getPooled(Yt.change,e,t,n)).type="change",De(n),B(e),e}var Ot=null,Dt=null;function xt(e){O(e)}function Ct(e){if(Be(N(e)))return e}function jt(e,t){if("change"===e)return t}var Et=!1;function Vt(){Ot&&(Ot.detachEvent("onpropertychange",Pt),Dt=Ot=null)}function Pt(e){if("value"===e.propertyName&&Ct(Dt))if(e=St(Dt,e,We(e)),Pe)O(e);else{Pe=!0;try{Ce(xt,e)}finally{Pe=!1,Ne()}}}function Nt(e,t,n){"focus"===e?(Vt(),Dt=n,(Ot=t).attachEvent("onpropertychange",Pt)):"blur"===e&&Vt()}function At(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Ct(Dt)}function Ft(e,t){if("click"===e)return Ct(t)}function Wt(e,t){if("input"===e||"change"===e)return Ct(t)}q&&(Et=Re("input")&&(!document.documentMode||9<document.documentMode));var Rt={eventTypes:Yt,_isInputEventSupported:Et,extractEvents:function(e,t,n,r){var a=t?N(t):window,c=void 0,o=void 0,i=a.nodeName&&a.nodeName.toLowerCase();if("select"===i||"input"===i&&"file"===a.type?c=jt:Fe(a)?Et?c=Wt:(c=At,o=Nt):(i=a.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===a.type||"radio"===a.type)&&(c=Ft),c&&(c=c(e,t)))return St(c,n,r);o&&o(e,a,t),"blur"===e&&(e=a._wrapperState)&&e.controlled&&"number"===a.type&&Tt(a,"number",a.value)}},It=se.extend({view:null,detail:null}),Ut={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Bt(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Ut[e])&&!!t[e]}function qt(){return Bt}var Kt=0,Jt=0,Gt=!1,$t=!1,Qt=It.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:qt,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=Kt;return Kt=e.screenX,Gt?"mousemove"===e.type?e.screenX-t:0:(Gt=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Jt;return Jt=e.screenY,$t?"mousemove"===e.type?e.screenY-t:0:($t=!0,0)}}),Zt=Qt.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xt={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},en={eventTypes:Xt,extractEvents:function(e,t,n,r){var a="mouseover"===e||"pointerover"===e,c="mouseout"===e||"pointerout"===e;if(a&&(n.relatedTarget||n.fromElement)||!c&&!a)return null;if(a=r.window===r?r:(a=r.ownerDocument)?a.defaultView||a.parentWindow:window,c?(c=t,t=(t=n.relatedTarget||n.toElement)?V(t):null):c=null,c===t)return null;var o=void 0,i=void 0,l=void 0,s=void 0;"mouseout"===e||"mouseover"===e?(o=Qt,i=Xt.mouseLeave,l=Xt.mouseEnter,s="mouse"):"pointerout"!==e&&"pointerover"!==e||(o=Zt,i=Xt.pointerLeave,l=Xt.pointerEnter,s="pointer");var u=null==c?a:N(c);if(a=null==t?a:N(t),(e=o.getPooled(i,c,n,r)).type=s+"leave",e.target=u,e.relatedTarget=a,(n=o.getPooled(l,t,n,r)).type=s+"enter",n.target=a,n.relatedTarget=u,r=t,c&&r)e:{for(a=r,s=0,o=t=c;o;o=F(o))s++;for(o=0,l=a;l;l=F(l))o++;for(;0<s-o;)t=F(t),s--;for(;0<o-s;)a=F(a),o--;for(;s--;){if(t===a||t===a.alternate)break e;t=F(t),a=F(a)}t=null}else t=null;for(a=t,t=[];c&&c!==a&&(null===(s=c.alternate)||s!==a);)t.push(c),c=F(c);for(c=[];r&&r!==a&&(null===(s=r.alternate)||s!==a);)c.push(r),r=F(r);for(r=0;r<t.length;r++)I(t[r],"bubbled",e);for(r=c.length;0<r--;)I(c[r],"captured",n);return[e,n]}};function tn(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var nn=Object.prototype.hasOwnProperty;function rn(e,t){if(tn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!nn.call(t,n[r])||!tn(e[n[r]],t[n[r]]))return!1;return!0}function an(e,t){return{responder:e,props:t}}function cn(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function on(e){if(2!==cn(e))throw o(Error(188))}function ln(e){if(!(e=function(e){var t=e.alternate;if(!t){if(3===(t=cn(e)))throw o(Error(188));return 1===t?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var c=a.alternate;if(null===c){if(null!==(r=a.return)){n=r;continue}break}if(a.child===c.child){for(c=a.child;c;){if(c===n)return on(a),e;if(c===r)return on(a),t;c=c.sibling}throw o(Error(188))}if(n.return!==r.return)n=a,r=c;else{for(var i=!1,l=a.child;l;){if(l===n){i=!0,n=a,r=c;break}if(l===r){i=!0,r=a,n=c;break}l=l.sibling}if(!i){for(l=c.child;l;){if(l===n){i=!0,n=c,r=a;break}if(l===r){i=!0,r=c,n=a;break}l=l.sibling}if(!i)throw o(Error(189))}}if(n.alternate!==r)throw o(Error(190))}if(3!==n.tag)throw o(Error(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}new Map,new Map,new Set,new Map;var sn=se.extend({animationName:null,elapsedTime:null,pseudoElement:null}),un=se.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),dn=It.extend({relatedTarget:null});function fn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}for(var hn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},mn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},pn=It.extend({key:function(e){if(e.key){var t=hn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=fn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?mn[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:qt,charCode:function(e){return"keypress"===e.type?fn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?fn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),vn=Qt.extend({dataTransfer:null}),_n=It.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:qt}),yn=se.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),Mn=Qt.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),bn=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[Z,"animationEnd",2],[X,"animationIteration",2],[ee,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[te,"transitionEnd",2],["waiting","waiting",2]],gn={},Ln={},zn=0;zn<bn.length;zn++){var wn=bn[zn],kn=wn[0],Hn=wn[1],Tn=wn[2],Yn="on"+(Hn[0].toUpperCase()+Hn.slice(1)),Sn={phasedRegistrationNames:{bubbled:Yn,captured:Yn+"Capture"},dependencies:[kn],eventPriority:Tn};gn[Hn]=Sn,Ln[kn]=Sn}var On={eventTypes:gn,getEventPriority:function(e){return void 0!==(e=Ln[e])?e.eventPriority:2},extractEvents:function(e,t,n,r){var a=Ln[e];if(!a)return null;switch(e){case"keypress":if(0===fn(n))return null;case"keydown":case"keyup":e=pn;break;case"blur":case"focus":e=dn;break;case"click":if(2===n.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=Qt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=_n;break;case Z:case X:case ee:e=sn;break;case te:e=yn;break;case"scroll":e=It;break;case"wheel":e=Mn;break;case"copy":case"cut":case"paste":e=un;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=Zt;break;default:e=se}return B(t=e.getPooled(a,t,n,r)),t}},Dn=On.getEventPriority,xn=[];function Cn(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r;for(r=n;r.return;)r=r.return;if(!(r=3!==r.tag?null:r.stateNode.containerInfo))break;e.ancestors.push(n),n=V(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var a=We(e.nativeEvent);r=e.topLevelType;for(var c=e.nativeEvent,o=null,i=0;i<d.length;i++){var l=d[i];l&&(l=l.extractEvents(r,t,c,a))&&(o=H(o,l))}O(o)}}var jn=!0;function En(e,t){Vn(t,e,!1)}function Vn(e,t,n){switch(Dn(t)){case 0:var r=Pn.bind(null,t,1);break;case 1:r=Nn.bind(null,t,1);break;default:r=An.bind(null,t,1)}n?e.addEventListener(t,r,!0):e.addEventListener(t,r,!1)}function Pn(e,t,n){Pe||Ee();var r=An,a=Pe;Pe=!0;try{je(r,e,t,n)}finally{(Pe=a)||Ne()}}function Nn(e,t,n){An(e,t,n)}function An(e,t,n){if(jn){if(null===(t=V(t=We(n)))||"number"!=typeof t.tag||2===cn(t)||(t=null),xn.length){var r=xn.pop();r.topLevelType=e,r.nativeEvent=n,r.targetInst=t,e=r}else e={topLevelType:e,nativeEvent:n,targetInst:t,ancestors:[]};try{if(n=e,Pe)Cn(n);else{Pe=!0;try{Ve(Cn,n,void 0)}finally{Pe=!1,Ne()}}}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>xn.length&&xn.push(e)}}}var Fn=new("function"==typeof WeakMap?WeakMap:Map);function Wn(e){var t=Fn.get(e);return void 0===t&&(t=new Set,Fn.set(e,t)),t}function Rn(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function In(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Un(e,t){var n,r=In(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=In(r)}}function Bn(){for(var e=window,t=Rn();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Rn((e=t.contentWindow).document)}return t}function qn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var Kn=q&&"documentMode"in document&&11>=document.documentMode,Jn={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Gn=null,$n=null,Qn=null,Zn=!1;function Xn(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return Zn||null==Gn||Gn!==Rn(n)?null:("selectionStart"in(n=Gn)&&qn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},Qn&&rn(Qn,n)?null:(Qn=n,(e=se.getPooled(Jn.select,$n,e,t)).type="select",e.target=Gn,B(e),e))}var er={eventTypes:Jn,extractEvents:function(e,t,n,r){var a,c=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(a=!c)){e:{c=Wn(c),a=m.onSelect;for(var o=0;o<a.length;o++)if(!c.has(a[o])){c=!1;break e}c=!0}a=!c}if(a)return null;switch(c=t?N(t):window,e){case"focus":(Fe(c)||"true"===c.contentEditable)&&(Gn=c,$n=t,Qn=null);break;case"blur":Qn=$n=Gn=null;break;case"mousedown":Zn=!0;break;case"contextmenu":case"mouseup":case"dragend":return Zn=!1,Xn(n,r);case"selectionchange":if(Kn)break;case"keydown":case"keyup":return Xn(n,r)}return null}};function tr(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function nr(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+gt(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function rr(e,t){if(null!=t.dangerouslySetInnerHTML)throw o(Error(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ar(e,t){var n=t.value;if(null==n){if(n=t.defaultValue,null!=(t=t.children)){if(null!=n)throw o(Error(92));if(Array.isArray(t)){if(!(1>=t.length))throw o(Error(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:gt(n)}}function cr(e,t){var n=gt(t.value),r=gt(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function or(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}D.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),L=A,z=P,w=N,D.injectEventPluginsByName({SimpleEventPlugin:On,EnterLeaveEventPlugin:en,ChangeEventPlugin:Rt,SelectEventPlugin:er,BeforeInputEventPlugin:He});var ir="http://www.w3.org/1999/xhtml",lr="http://www.w3.org/2000/svg";function sr(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ur(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?sr(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var dr=void 0,fr=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,a){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==lr||"innerHTML"in e)e.innerHTML=t;else{for((dr=dr||document.createElement("div")).innerHTML="<svg>"+t+"</svg>",t=dr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function hr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var mr={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pr=["Webkit","ms","Moz","O"];function vr(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||mr.hasOwnProperty(e)&&mr[e]?(""+t).trim():t+"px"}function _r(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=vr(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(mr).forEach((function(e){pr.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),mr[t]=mr[e]}))}));var yr=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Mr(e,t){if(t){if(yr[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw o(Error(137),e,"");if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw o(Error(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw o(Error(61))}if(null!=t.style&&"object"!=typeof t.style)throw o(Error(62),"")}}function br(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function gr(e,t){var n=Wn(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=m[t];for(var r=0;r<t.length;r++){var a=t[r];if(!n.has(a)){switch(a){case"scroll":Vn(e,"scroll",!0);break;case"focus":case"blur":Vn(e,"focus",!0),Vn(e,"blur",!0),n.add("blur"),n.add("focus");break;case"cancel":case"close":Re(a)&&Vn(e,a,!0);break;case"invalid":case"submit":case"reset":break;default:-1===ne.indexOf(a)&&En(a,e)}n.add(a)}}}function Lr(){}var zr=null,wr=null;function kr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Tr="function"==typeof setTimeout?setTimeout:void 0,Yr="function"==typeof clearTimeout?clearTimeout:void 0;function Sr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}new Set;var Or=[],Dr=-1;function xr(e){0>Dr||(e.current=Or[Dr],Or[Dr]=null,Dr--)}function Cr(e,t){Dr++,Or[Dr]=e.current,e.current=t}var jr={},Er={current:jr},Vr={current:!1},Pr=jr;function Nr(e,t){var n=e.type.contextTypes;if(!n)return jr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,c={};for(a in n)c[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=c),c}function Ar(e){return null!=(e=e.childContextTypes)}function Fr(e){xr(Vr),xr(Er)}function Wr(e){xr(Vr),xr(Er)}function Rr(e,t,n){if(Er.current!==jr)throw o(Error(168));Cr(Er,t),Cr(Vr,n)}function Ir(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var c in r=r.getChildContext())if(!(c in e))throw o(Error(108),ut(t)||"Unknown",c);return a({},n,r)}function Ur(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||jr,Pr=Er.current,Cr(Er,t),Cr(Vr,Vr.current),!0}function Br(e,t,n){var r=e.stateNode;if(!r)throw o(Error(169));n?(t=Ir(e,t,Pr),r.__reactInternalMemoizedMergedChildContext=t,xr(Vr),xr(Er),Cr(Er,t)):xr(Vr),Cr(Vr,n)}var qr=c.unstable_runWithPriority,Kr=c.unstable_scheduleCallback,Jr=c.unstable_cancelCallback,Gr=c.unstable_shouldYield,$r=c.unstable_requestPaint,Qr=c.unstable_now,Zr=c.unstable_getCurrentPriorityLevel,Xr=c.unstable_ImmediatePriority,ea=c.unstable_UserBlockingPriority,ta=c.unstable_NormalPriority,na=c.unstable_LowPriority,ra=c.unstable_IdlePriority,aa={},ca=void 0!==$r?$r:function(){},oa=null,ia=null,la=!1,sa=Qr(),ua=1e4>sa?Qr:function(){return Qr()-sa};function da(){switch(Zr()){case Xr:return 99;case ea:return 98;case ta:return 97;case na:return 96;case ra:return 95;default:throw o(Error(332))}}function fa(e){switch(e){case 99:return Xr;case 98:return ea;case 97:return ta;case 96:return na;case 95:return ra;default:throw o(Error(332))}}function ha(e,t){return e=fa(e),qr(e,t)}function ma(e,t,n){return e=fa(e),Kr(e,t,n)}function pa(e){return null===oa?(oa=[e],ia=Kr(Xr,_a)):oa.push(e),aa}function va(){null!==ia&&Jr(ia),_a()}function _a(){if(!la&&null!==oa){la=!0;var e=0;try{var t=oa;ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),oa=null}catch(t){throw null!==oa&&(oa=oa.slice(e+1)),Kr(Xr,va),t}finally{la=!1}}}function ya(e,t){return 1073741823===t?99:1===t?95:0>=(e=10*(1073741821-t)-10*(1073741821-e))?99:250>=e?98:5250>=e?97:95}function Ma(e,t){if(e&&e.defaultProps)for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var ba={current:null},ga=null,La=null,za=null;function wa(){za=La=ga=null}function ka(e,t){var n=e.type._context;Cr(ba,n._currentValue),n._currentValue=t}function Ha(e){var t=ba.current;xr(ba),e.type._context._currentValue=t}function Ta(e,t){for(;null!==e;){var n=e.alternate;if(e.childExpirationTime<t)e.childExpirationTime=t,null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t);else{if(!(null!==n&&n.childExpirationTime<t))break;n.childExpirationTime=t}e=e.return}}function Ya(e,t){ga=e,za=La=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=t&&(eo=!0),e.firstContext=null)}function Sa(e,t){if(za!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(za=e,t=1073741823),t={context:e,observedBits:t,next:null},null===La){if(null===ga)throw o(Error(308));La=t,ga.dependencies={expirationTime:0,firstContext:t,responders:null}}else La=La.next=t;return e._currentValue}var Oa=!1;function Da(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function xa(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ca(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ja(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Ea(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,a=null;null===r&&(r=e.updateQueue=Da(e.memoizedState))}else r=e.updateQueue,a=n.updateQueue,null===r?null===a?(r=e.updateQueue=Da(e.memoizedState),a=n.updateQueue=Da(n.memoizedState)):r=e.updateQueue=xa(a):null===a&&(a=n.updateQueue=xa(r));null===a||r===a?ja(r,t):null===r.lastUpdate||null===a.lastUpdate?(ja(r,t),ja(a,t)):(ja(r,t),a.lastUpdate=t)}function Va(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Da(e.memoizedState):Pa(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function Pa(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=xa(t)),t}function Na(e,t,n,r,c,o){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(o,r,c):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null==(c="function"==typeof(e=n.payload)?e.call(o,r,c):e))break;return a({},r,c);case 2:Oa=!0}return r}function Aa(e,t,n,r,a){Oa=!1;for(var c=(t=Pa(e,t)).baseState,o=null,i=0,l=t.firstUpdate,s=c;null!==l;){var u=l.expirationTime;u<a?(null===o&&(o=l,c=s),i<u&&(i=u)):(gi(u,l.suspenseConfig),s=Na(e,0,l,s,n,r),null!==l.callback&&(e.effectTag|=32,l.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=l:(t.lastEffect.nextEffect=l,t.lastEffect=l))),l=l.next}for(u=null,l=t.firstCapturedUpdate;null!==l;){var d=l.expirationTime;d<a?(null===u&&(u=l,null===o&&(c=s)),i<d&&(i=d)):(s=Na(e,0,l,s,n,r),null!==l.callback&&(e.effectTag|=32,l.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=l:(t.lastCapturedEffect.nextEffect=l,t.lastCapturedEffect=l))),l=l.next}null===o&&(t.lastUpdate=null),null===u?t.lastCapturedUpdate=null:e.effectTag|=32,null===o&&null===u&&(c=s),t.baseState=c,t.firstUpdate=o,t.firstCapturedUpdate=u,e.expirationTime=i,e.memoizedState=s}function Fa(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),Wa(t.firstEffect,n),t.firstEffect=t.lastEffect=null,Wa(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function Wa(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;if("function"!=typeof n)throw o(Error(191),n);n.call(r)}e=e.nextEffect}}var Ra=qe.ReactCurrentBatchConfig,Ia=(new r.Component).refs;function Ua(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var Ba={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===cn(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=li(),a=Ra.suspense;(a=Ca(r=si(r,e,a),a)).payload=t,null!=n&&(a.callback=n),Ea(e,a),di(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=li(),a=Ra.suspense;(a=Ca(r=si(r,e,a),a)).tag=1,a.payload=t,null!=n&&(a.callback=n),Ea(e,a),di(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=li(),r=Ra.suspense;(r=Ca(n=si(n,e,r),r)).tag=2,null!=t&&(r.callback=t),Ea(e,r),di(e,n)}};function qa(e,t,n,r,a,c,o){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,c,o):!t.prototype||!t.prototype.isPureReactComponent||(!rn(n,r)||!rn(a,c))}function Ka(e,t,n){var r=!1,a=jr,c=t.contextType;return"object"==typeof c&&null!==c?c=Sa(c):(a=Ar(t)?Pr:Er.current,c=(r=null!=(r=t.contextTypes))?Nr(e,a):jr),t=new t(n,c),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Ba,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=c),t}function Ja(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ba.enqueueReplaceState(t,t.state,null)}function Ga(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Ia;var c=t.contextType;"object"==typeof c&&null!==c?a.context=Sa(c):(c=Ar(t)?Pr:Er.current,a.context=Nr(e,c)),null!==(c=e.updateQueue)&&(Aa(e,c,n,a,r),a.state=e.memoizedState),"function"==typeof(c=t.getDerivedStateFromProps)&&(Ua(e,t,c,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Ba.enqueueReplaceState(a,a.state,null),null!==(c=e.updateQueue)&&(Aa(e,c,n,a,r),a.state=e.memoizedState)),"function"==typeof a.componentDidMount&&(e.effectTag|=4)}var $a=Array.isArray;function Qa(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){n=n._owner;var r=void 0;if(n){if(1!==n.tag)throw o(Error(309));r=n.stateNode}if(!r)throw o(Error(147),e);var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:((t=function(e){var t=r.refs;t===Ia&&(t=r.refs={}),null===e?delete t[a]:t[a]=e})._stringRef=a,t)}if("string"!=typeof e)throw o(Error(284));if(!n._owner)throw o(Error(290),e)}return e}function Za(e,t){if("textarea"!==e.type)throw o(Error(31),"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function Xa(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t,n){return(e=Ni(e,t)).index=0,e.sibling=null,e}function c(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function i(t){return e&&null===t.alternate&&(t.effectTag=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Wi(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Qa(e,t,n),r.return=e,r):((r=Ai(n.type,n.key,n.props,null,e.mode,r)).ref=Qa(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ri(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,c){return null===t||7!==t.tag?((t=Fi(n,e.mode,r,c)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Wi(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case Ge:return(n=Ai(t.type,t.key,t.props,null,e.mode,n)).ref=Qa(e,null,t),n.return=e,n;case $e:return(t=Ri(t,e.mode,n)).return=e,t}if($a(t)||st(t))return(t=Fi(t,e.mode,n,null)).return=e,t;Za(e,t)}return null}function h(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case Ge:return n.key===a?n.type===Qe?d(e,t,n.props.children,r,a):s(e,t,n,r):null;case $e:return n.key===a?u(e,t,n,r):null}if($a(n)||st(n))return null!==a?null:d(e,t,n,r,null);Za(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case Ge:return e=e.get(null===r.key?n:r.key)||null,r.type===Qe?d(t,e,r.props.children,a,r.key):s(t,e,r,a);case $e:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if($a(r)||st(r))return d(t,e=e.get(n)||null,r,a,null);Za(t,r)}return null}function p(a,o,i,l){for(var s=null,u=null,d=o,p=o=0,v=null;null!==d&&p<i.length;p++){d.index>p?(v=d,d=null):v=d.sibling;var _=h(a,d,i[p],l);if(null===_){null===d&&(d=v);break}e&&d&&null===_.alternate&&t(a,d),o=c(_,o,p),null===u?s=_:u.sibling=_,u=_,d=v}if(p===i.length)return n(a,d),s;if(null===d){for(;p<i.length;p++)null!==(d=f(a,i[p],l))&&(o=c(d,o,p),null===u?s=d:u.sibling=d,u=d);return s}for(d=r(a,d);p<i.length;p++)null!==(v=m(d,a,p,i[p],l))&&(e&&null!==v.alternate&&d.delete(null===v.key?p:v.key),o=c(v,o,p),null===u?s=v:u.sibling=v,u=v);return e&&d.forEach((function(e){return t(a,e)})),s}function v(a,i,l,s){var u=st(l);if("function"!=typeof u)throw o(Error(150));if(null==(l=u.call(l)))throw o(Error(151));for(var d=u=null,p=i,v=i=0,_=null,y=l.next();null!==p&&!y.done;v++,y=l.next()){p.index>v?(_=p,p=null):_=p.sibling;var M=h(a,p,y.value,s);if(null===M){null===p&&(p=_);break}e&&p&&null===M.alternate&&t(a,p),i=c(M,i,v),null===d?u=M:d.sibling=M,d=M,p=_}if(y.done)return n(a,p),u;if(null===p){for(;!y.done;v++,y=l.next())null!==(y=f(a,y.value,s))&&(i=c(y,i,v),null===d?u=y:d.sibling=y,d=y);return u}for(p=r(a,p);!y.done;v++,y=l.next())null!==(y=m(p,a,v,y.value,s))&&(e&&null!==y.alternate&&p.delete(null===y.key?v:y.key),i=c(y,i,v),null===d?u=y:d.sibling=y,d=y);return e&&p.forEach((function(e){return t(a,e)})),u}return function(e,r,c,l){var s="object"==typeof c&&null!==c&&c.type===Qe&&null===c.key;s&&(c=c.props.children);var u="object"==typeof c&&null!==c;if(u)switch(c.$$typeof){case Ge:e:{for(u=c.key,s=r;null!==s;){if(s.key===u){if(7===s.tag?c.type===Qe:s.elementType===c.type){n(e,s.sibling),(r=a(s,c.type===Qe?c.props.children:c.props)).ref=Qa(e,s,c),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}c.type===Qe?((r=Fi(c.props.children,e.mode,l,c.key)).return=e,e=r):((l=Ai(c.type,c.key,c.props,null,e.mode,l)).ref=Qa(e,r,c),l.return=e,e=l)}return i(e);case $e:e:{for(s=c.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===c.containerInfo&&r.stateNode.implementation===c.implementation){n(e,r.sibling),(r=a(r,c.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ri(c,e.mode,l)).return=e,e=r}return i(e)}if("string"==typeof c||"number"==typeof c)return c=""+c,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,c)).return=e,e=r):(n(e,r),(r=Wi(c,e.mode,l)).return=e,e=r),i(e);if($a(c))return p(e,r,c,l);if(st(c))return v(e,r,c,l);if(u&&Za(e,c),void 0===c&&!s)switch(e.tag){case 1:case 0:throw e=e.type,o(Error(152),e.displayName||e.name||"Component")}return n(e,r)}}var ec=Xa(!0),tc=Xa(!1),nc={},rc={current:nc},ac={current:nc},cc={current:nc};function oc(e){if(e===nc)throw o(Error(174));return e}function ic(e,t){Cr(cc,t),Cr(ac,e),Cr(rc,nc);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ur(null,"");break;default:t=ur(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}xr(rc),Cr(rc,t)}function lc(e){xr(rc),xr(ac),xr(cc)}function sc(e){oc(cc.current);var t=oc(rc.current),n=ur(t,e.type);t!==n&&(Cr(ac,e),Cr(rc,n))}function uc(e){ac.current===e&&(xr(rc),xr(ac))}var dc={current:0};function fc(e){for(var t=e;null!==t;){if(13===t.tag){if(null!==t.memoizedState)return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var hc=qe.ReactCurrentDispatcher,mc=0,pc=null,vc=null,_c=null,yc=null,Mc=null,bc=null,gc=0,Lc=null,zc=0,wc=!1,kc=null,Hc=0;function Tc(){throw o(Error(321))}function Yc(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!tn(e[n],t[n]))return!1;return!0}function Sc(e,t,n,r,a,c){if(mc=c,pc=t,_c=null!==e?e.memoizedState:null,hc.current=null===_c?Rc:Ic,t=n(r,a),wc){do{wc=!1,Hc+=1,_c=null!==e?e.memoizedState:null,bc=yc,Lc=Mc=vc=null,hc.current=Ic,t=n(r,a)}while(wc);kc=null,Hc=0}if(hc.current=Wc,(e=pc).memoizedState=yc,e.expirationTime=gc,e.updateQueue=Lc,e.effectTag|=zc,e=null!==vc&&null!==vc.next,mc=0,bc=Mc=yc=_c=vc=pc=null,gc=0,Lc=null,zc=0,e)throw o(Error(300));return t}function Oc(){hc.current=Wc,mc=0,bc=Mc=yc=_c=vc=pc=null,gc=0,Lc=null,zc=0,wc=!1,kc=null,Hc=0}function Dc(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===Mc?yc=Mc=e:Mc=Mc.next=e,Mc}function xc(){if(null!==bc)bc=(Mc=bc).next,_c=null!==(vc=_c)?vc.next:null;else{if(null===_c)throw o(Error(310));var e={memoizedState:(vc=_c).memoizedState,baseState:vc.baseState,queue:vc.queue,baseUpdate:vc.baseUpdate,next:null};Mc=null===Mc?yc=e:Mc.next=e,_c=vc.next}return Mc}function Cc(e,t){return"function"==typeof t?t(e):t}function jc(e){var t=xc(),n=t.queue;if(null===n)throw o(Error(311));if(n.lastRenderedReducer=e,0<Hc){var r=n.dispatch;if(null!==kc){var a=kc.get(n);if(void 0!==a){kc.delete(n);var c=t.memoizedState;do{c=e(c,a.action),a=a.next}while(null!==a);return tn(c,t.memoizedState)||(eo=!0),t.memoizedState=c,t.baseUpdate===n.last&&(t.baseState=c),n.lastRenderedState=c,[c,r]}}return[t.memoizedState,r]}r=n.last;var i=t.baseUpdate;if(c=t.baseState,null!==i?(null!==r&&(r.next=null),r=i.next):r=null!==r?r.next:null,null!==r){var l=a=null,s=r,u=!1;do{var d=s.expirationTime;d<mc?(u||(u=!0,l=i,a=c),d>gc&&(gc=d)):(gi(d,s.suspenseConfig),c=s.eagerReducer===e?s.eagerState:e(c,s.action)),i=s,s=s.next}while(null!==s&&s!==r);u||(l=i,a=c),tn(c,t.memoizedState)||(eo=!0),t.memoizedState=c,t.baseUpdate=l,t.baseState=a,n.lastRenderedState=c}return[t.memoizedState,n.dispatch]}function Ec(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Lc?(Lc={lastEffect:null}).lastEffect=e.next=e:null===(t=Lc.lastEffect)?Lc.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Lc.lastEffect=e),e}function Vc(e,t,n,r){var a=Dc();zc|=e,a.memoizedState=Ec(t,n,void 0,void 0===r?null:r)}function Pc(e,t,n,r){var a=xc();r=void 0===r?null:r;var c=void 0;if(null!==vc){var o=vc.memoizedState;if(c=o.destroy,null!==r&&Yc(r,o.deps))return void Ec(0,n,c,r)}zc|=e,a.memoizedState=Ec(t,n,c,r)}function Nc(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ac(){}function Fc(e,t,n){if(!(25>Hc))throw o(Error(301));var r=e.alternate;if(e===pc||null!==r&&r===pc)if(wc=!0,e={expirationTime:mc,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===kc&&(kc=new Map),void 0===(n=kc.get(t)))kc.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var a=li(),c=Ra.suspense;c={expirationTime:a=si(a,e,c),suspenseConfig:c,action:n,eagerReducer:null,eagerState:null,next:null};var i=t.last;if(null===i)c.next=c;else{var l=i.next;null!==l&&(c.next=l),i.next=c}if(t.last=c,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var s=t.lastRenderedState,u=r(s,n);if(c.eagerReducer=r,c.eagerState=u,tn(u,s))return}catch(e){}di(e,a)}}var Wc={readContext:Sa,useCallback:Tc,useContext:Tc,useEffect:Tc,useImperativeHandle:Tc,useLayoutEffect:Tc,useMemo:Tc,useReducer:Tc,useRef:Tc,useState:Tc,useDebugValue:Tc,useResponder:Tc},Rc={readContext:Sa,useCallback:function(e,t){return Dc().memoizedState=[e,void 0===t?null:t],e},useContext:Sa,useEffect:function(e,t){return Vc(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Vc(4,36,Nc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Vc(4,36,e,t)},useMemo:function(e,t){var n=Dc();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Dc();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Fc.bind(null,pc,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Dc().memoizedState=e},useState:function(e){var t=Dc();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:Cc,lastRenderedState:e}).dispatch=Fc.bind(null,pc,e),[t.memoizedState,e]},useDebugValue:Ac,useResponder:an},Ic={readContext:Sa,useCallback:function(e,t){var n=xc();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Yc(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Sa,useEffect:function(e,t){return Pc(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Pc(4,36,Nc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Pc(4,36,e,t)},useMemo:function(e,t){var n=xc();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Yc(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:jc,useRef:function(){return xc().memoizedState},useState:function(e){return jc(Cc)},useDebugValue:Ac,useResponder:an},Uc=null,Bc=null,qc=!1;function Kc(e,t){var n=Vi(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Jc(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function Gc(e){if(qc){var t=Bc;if(t){var n=t;if(!Jc(e,t)){if(!(t=Sr(n.nextSibling))||!Jc(e,t))return e.effectTag|=2,qc=!1,void(Uc=e);Kc(Uc,n)}Uc=e,Bc=Sr(t.firstChild)}else e.effectTag|=2,qc=!1,Uc=e}}function $c(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;Uc=e}function Qc(e){if(e!==Uc)return!1;if(!qc)return $c(e),qc=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=Bc;t;)Kc(e,t),t=Sr(t.nextSibling);return $c(e),Bc=Uc?Sr(e.stateNode.nextSibling):null,!0}function Zc(){Bc=Uc=null,qc=!1}var Xc=qe.ReactCurrentOwner,eo=!1;function to(e,t,n,r){t.child=null===e?tc(t,null,n,r):ec(t,e.child,n,r)}function no(e,t,n,r,a){n=n.render;var c=t.ref;return Ya(t,a),r=Sc(e,t,n,r,c,a),null===e||eo?(t.effectTag|=1,to(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=a&&(e.expirationTime=0),po(e,t,a))}function ro(e,t,n,r,a,c){if(null===e){var o=n.type;return"function"!=typeof o||Pi(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ai(n.type,null,r,null,t.mode,c)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,ao(e,t,o,r,a,c))}return o=e.child,a<c&&(a=o.memoizedProps,(n=null!==(n=n.compare)?n:rn)(a,r)&&e.ref===t.ref)?po(e,t,c):(t.effectTag|=1,(e=Ni(o,r)).ref=t.ref,e.return=t,t.child=e)}function ao(e,t,n,r,a,c){return null!==e&&rn(e.memoizedProps,r)&&e.ref===t.ref&&(eo=!1,a<c)?po(e,t,c):oo(e,t,n,r,c)}function co(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function oo(e,t,n,r,a){var c=Ar(n)?Pr:Er.current;return c=Nr(t,c),Ya(t,a),n=Sc(e,t,n,r,c,a),null===e||eo?(t.effectTag|=1,to(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=a&&(e.expirationTime=0),po(e,t,a))}function io(e,t,n,r,a){if(Ar(n)){var c=!0;Ur(t)}else c=!1;if(Ya(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),Ka(t,n,r),Ga(t,n,r,a),r=!0;else if(null===e){var o=t.stateNode,i=t.memoizedProps;o.props=i;var l=o.context,s=n.contextType;"object"==typeof s&&null!==s?s=Sa(s):s=Nr(t,s=Ar(n)?Pr:Er.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof o.getSnapshotBeforeUpdate;d||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(i!==r||l!==s)&&Ja(t,o,r,s),Oa=!1;var f=t.memoizedState;l=o.state=f;var h=t.updateQueue;null!==h&&(Aa(t,h,r,o,a),l=t.memoizedState),i!==r||f!==l||Vr.current||Oa?("function"==typeof u&&(Ua(t,n,u,r),l=t.memoizedState),(i=Oa||qa(t,n,i,r,f,l,s))?(d||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.effectTag|=4)):("function"==typeof o.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=s,r=i):("function"==typeof o.componentDidMount&&(t.effectTag|=4),r=!1)}else o=t.stateNode,i=t.memoizedProps,o.props=t.type===t.elementType?i:Ma(t.type,i),l=o.context,"object"==typeof(s=n.contextType)&&null!==s?s=Sa(s):s=Nr(t,s=Ar(n)?Pr:Er.current),(d="function"==typeof(u=n.getDerivedStateFromProps)||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(i!==r||l!==s)&&Ja(t,o,r,s),Oa=!1,l=t.memoizedState,f=o.state=l,null!==(h=t.updateQueue)&&(Aa(t,h,r,o,a),f=t.memoizedState),i!==r||l!==f||Vr.current||Oa?("function"==typeof u&&(Ua(t,n,u,r),f=t.memoizedState),(u=Oa||qa(t,n,i,r,l,f,s))?(d||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,f,s),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,f,s)),"function"==typeof o.componentDidUpdate&&(t.effectTag|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=f),o.props=r,o.state=f,o.context=s,r=u):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=256),r=!1);return lo(e,t,n,r,c,a)}function lo(e,t,n,r,a,c){co(e,t);var o=0!=(64&t.effectTag);if(!r&&!o)return a&&Br(t,n,!1),po(e,t,c);r=t.stateNode,Xc.current=t;var i=o&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&o?(t.child=ec(t,e.child,null,c),t.child=ec(t,null,i,c)):to(e,t,i,c),t.memoizedState=r.state,a&&Br(t,n,!0),t.child}function so(e){var t=e.stateNode;t.pendingContext?Rr(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Rr(0,t.context,!1),ic(e,t.containerInfo)}var uo={};function fo(e,t,n){var r,a=t.mode,c=t.pendingProps,o=dc.current,i=null,l=!1;if((r=0!=(64&t.effectTag))||(r=0!=(2&o)&&(null===e||null!==e.memoizedState)),r?(i=uo,l=!0,t.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===c.fallback||!0===c.unstable_avoidThisFallback||(o|=1),Cr(dc,o&=1),null===e)if(l){if(c=c.fallback,(e=Fi(null,a,0,null)).return=t,0==(2&t.mode))for(l=null!==t.memoizedState?t.child.child:t.child,e.child=l;null!==l;)l.return=e,l=l.sibling;(n=Fi(c,a,n,null)).return=t,e.sibling=n,a=e}else a=n=tc(t,null,c.children,n);else{if(null!==e.memoizedState)if(a=(o=e.child).sibling,l){if(c=c.fallback,(n=Ni(o,o.pendingProps)).return=t,0==(2&t.mode)&&(l=null!==t.memoizedState?t.child.child:t.child)!==o.child)for(n.child=l;null!==l;)l.return=n,l=l.sibling;(c=Ni(a,c,a.expirationTime)).return=t,n.sibling=c,a=n,n.childExpirationTime=0,n=c}else a=n=ec(t,o.child,c.children,n);else if(o=e.child,l){if(l=c.fallback,(c=Fi(null,a,0,null)).return=t,c.child=o,null!==o&&(o.return=c),0==(2&t.mode))for(o=null!==t.memoizedState?t.child.child:t.child,c.child=o;null!==o;)o.return=c,o=o.sibling;(n=Fi(l,a,n,null)).return=t,c.sibling=n,n.effectTag|=2,a=c,c.childExpirationTime=0}else n=a=ec(t,o,c.children,n);t.stateNode=e.stateNode}return t.memoizedState=i,t.child=a,n}function ho(e,t,n,r,a){var c=e.memoizedState;null===c?e.memoizedState={isBackwards:t,rendering:null,last:r,tail:n,tailExpiration:0,tailMode:a}:(c.isBackwards=t,c.rendering=null,c.last=r,c.tail=n,c.tailExpiration=0,c.tailMode=a)}function mo(e,t,n){var r=t.pendingProps,a=r.revealOrder,c=r.tail;if(to(e,t,r.children,n),0!=(2&(r=dc.current)))r=1&r|2,t.effectTag|=64;else{if(null!==e&&0!=(64&e.effectTag))e:for(e=t.child;null!==e;){if(13===e.tag){if(null!==e.memoizedState){e.expirationTime<n&&(e.expirationTime=n);var o=e.alternate;null!==o&&o.expirationTime<n&&(o.expirationTime=n),Ta(e.return,n)}}else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Cr(dc,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(r=n.alternate)&&null===fc(r)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),ho(t,!1,a,n,c);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(r=a.alternate)&&null===fc(r)){t.child=a;break}r=a.sibling,a.sibling=n,n=a,a=r}ho(t,!0,n,null,c);break;case"together":ho(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function po(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child)throw o(Error(153));if(null!==t.child){for(n=Ni(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ni(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function vo(e){e.effectTag|=4}var _o,yo,Mo;function bo(e,t){switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function go(e){switch(e.tag){case 1:Ar(e.type)&&Fr();var t=e.effectTag;return 2048&t?(e.effectTag=-2049&t|64,e):null;case 3:if(lc(),Wr(),0!=(64&(t=e.effectTag)))throw o(Error(285));return e.effectTag=-2049&t|64,e;case 5:return uc(e),null;case 13:return xr(dc),2048&(t=e.effectTag)?(e.effectTag=-2049&t|64,e):null;case 18:return null;case 19:return xr(dc),null;case 4:return lc(),null;case 10:return Ha(e),null;default:return null}}function Lo(e,t){return{value:e,source:t,stack:dt(t)}}_o=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(20===n.tag)e.appendChild(n.stateNode.instance);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},yo=function(e,t,n,r,c){var o=e.memoizedProps;if(o!==r){var i=t.stateNode;switch(oc(rc.current),e=null,n){case"input":o=Lt(i,o),r=Lt(i,r),e=[];break;case"option":o=tr(i,o),r=tr(i,r),e=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),e=[];break;case"textarea":o=rr(i,o),r=rr(i,r),e=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(i.onclick=Lr)}Mr(n,r),i=n=void 0;var l=null;for(n in o)if(!r.hasOwnProperty(n)&&o.hasOwnProperty(n)&&null!=o[n])if("style"===n){var s=o[n];for(i in s)s.hasOwnProperty(i)&&(l||(l={}),l[i]="")}else"dangerouslySetInnerHTML"!==n&&"children"!==n&&"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&"autoFocus"!==n&&(h.hasOwnProperty(n)?e||(e=[]):(e=e||[]).push(n,null));for(n in r){var u=r[n];if(s=null!=o?o[n]:void 0,r.hasOwnProperty(n)&&u!==s&&(null!=u||null!=s))if("style"===n)if(s){for(i in s)!s.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(l||(l={}),l[i]="");for(i in u)u.hasOwnProperty(i)&&s[i]!==u[i]&&(l||(l={}),l[i]=u[i])}else l||(e||(e=[]),e.push(n,l)),l=u;else"dangerouslySetInnerHTML"===n?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(e=e||[]).push(n,""+u)):"children"===n?s===u||"string"!=typeof u&&"number"!=typeof u||(e=e||[]).push(n,""+u):"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&(h.hasOwnProperty(n)?(null!=u&&gr(c,n),e||s===u||(e=[])):(e=e||[]).push(n,u))}l&&(e=e||[]).push("style",l),c=e,(t.updateQueue=c)&&vo(t)}},Mo=function(e,t,n,r){n!==r&&vo(t)};var zo="function"==typeof WeakSet?WeakSet:Set;function wo(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=dt(n)),null!==n&&ut(n.type),t=t.value,null!==e&&1===e.tag&&ut(e.type);try{console.error(t)}catch(e){setTimeout((function(){throw e}))}}function ko(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Si(e,t)}else t.current=null}function Ho(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if(0!=(r.tag&e)){var a=r.destroy;r.destroy=void 0,void 0!==a&&a()}0!=(r.tag&t)&&(a=r.create,r.destroy=a()),r=r.next}while(r!==n)}}function To(e,t){switch("function"==typeof ji&&ji(e),e.tag){case 0:case 11:case 14:case 15:var n=e.updateQueue;if(null!==n&&null!==(n=n.lastEffect)){var r=n.next;ha(97<t?97:t,(function(){var t=r;do{var n=t.destroy;if(void 0!==n){var a=e;try{n()}catch(e){Si(a,e)}}t=t.next}while(t!==r)}))}break;case 1:ko(e),"function"==typeof(t=e.stateNode).componentWillUnmount&&function(e,t){try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Si(e,t)}}(e,t);break;case 5:ko(e);break;case 4:Do(e,t)}}function Yo(e,t){for(var n=e;;)if(To(n,t),null!==n.child&&4!==n.tag)n.child.return=n,n=n.child;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function So(e){return 5===e.tag||3===e.tag||4===e.tag}function Oo(e){e:{for(var t=e.return;null!==t;){if(So(t)){var n=t;break e}t=t.return}throw o(Error(160))}switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw o(Error(161))}16&n.effectTag&&(hr(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||So(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var a=e;;){var c=5===a.tag||6===a.tag;if(c||20===a.tag){var i=c?a.stateNode:a.stateNode.instance;if(n)if(r){var l=i;i=n,8===(c=t).nodeType?c.parentNode.insertBefore(l,i):c.insertBefore(l,i)}else t.insertBefore(i,n);else r?(8===(l=t).nodeType?(c=l.parentNode).insertBefore(i,l):(c=l).appendChild(i),null!=(l=l._reactRootContainer)||null!==c.onclick||(c.onclick=Lr)):t.appendChild(i)}else if(4!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===e)break;for(;null===a.sibling;){if(null===a.return||a.return===e)return;a=a.return}a.sibling.return=a.return,a=a.sibling}}function Do(e,t){for(var n=e,r=!1,a=void 0,c=void 0;;){if(!r){r=n.return;e:for(;;){if(null===r)throw o(Error(160));switch(a=r.stateNode,r.tag){case 5:c=!1;break e;case 3:case 4:a=a.containerInfo,c=!0;break e}r=r.return}r=!0}if(5===n.tag||6===n.tag)if(Yo(n,t),c){var i=a,l=n.stateNode;8===i.nodeType?i.parentNode.removeChild(l):i.removeChild(l)}else a.removeChild(n.stateNode);else if(20===n.tag)l=n.stateNode.instance,Yo(n,t),c?8===(i=a).nodeType?i.parentNode.removeChild(l):i.removeChild(l):a.removeChild(l);else if(4===n.tag){if(null!==n.child){a=n.stateNode.containerInfo,c=!0,n.child.return=n,n=n.child;continue}}else if(To(n,t),null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;4===(n=n.return).tag&&(r=!1)}n.sibling.return=n.return,n=n.sibling}}function xo(e,t){switch(t.tag){case 0:case 11:case 14:case 15:Ho(4,8,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps,a=null!==e?e.memoizedProps:r;e=t.type;var c=t.updateQueue;if(t.updateQueue=null,null!==c){for(n[E]=r,"input"===e&&"radio"===r.type&&null!=r.name&&wt(n,r),br(e,a),t=br(e,r),a=0;a<c.length;a+=2){var i=c[a],l=c[a+1];"style"===i?_r(n,l):"dangerouslySetInnerHTML"===i?fr(n,l):"children"===i?hr(n,l):bt(n,i,l,t)}switch(e){case"input":kt(n,r);break;case"textarea":cr(n,r);break;case"select":t=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(e=r.value)?nr(n,!!r.multiple,e,!1):t!==!!r.multiple&&(null!=r.defaultValue?nr(n,!!r.multiple,r.defaultValue,!0):nr(n,!!r.multiple,r.multiple?[]:"",!1))}}}break;case 6:if(null===t.stateNode)throw o(Error(162));t.stateNode.nodeValue=t.memoizedProps;break;case 3:case 12:break;case 13:if(n=t,null===t.memoizedState?r=!1:(r=!0,n=t.child,Go=ua()),null!==n)e:for(e=n;;){if(5===e.tag)c=e.stateNode,r?"function"==typeof(c=c.style).setProperty?c.setProperty("display","none","important"):c.display="none":(c=e.stateNode,a=null!=(a=e.memoizedProps.style)&&a.hasOwnProperty("display")?a.display:null,c.style.display=vr("display",a));else if(6===e.tag)e.stateNode.nodeValue=r?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState){(c=e.child.sibling).return=e,e=c;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}Co(t);break;case 19:Co(t);break;case 17:case 20:break;default:throw o(Error(163))}}function Co(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new zo),t.forEach((function(t){var r=Di.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}var jo="function"==typeof WeakMap?WeakMap:Map;function Eo(e,t,n){(n=Ca(n,null)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Qo||(Qo=!0,Zo=r),wo(e,t)},n}function Vo(e,t,n){(n=Ca(n,null)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return wo(e,t),r(a)}}var c=e.stateNode;return null!==c&&"function"==typeof c.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xo?Xo=new Set([this]):Xo.add(this),wo(e,t));var n=t.stack;this.componentDidCatch(t.value,{componentStack:null!==n?n:""})}),n}var Po=Math.ceil,No=qe.ReactCurrentDispatcher,Ao=qe.ReactCurrentOwner,Fo=0,Wo=null,Ro=null,Io=0,Uo=0,Bo=1073741823,qo=1073741823,Ko=null,Jo=!1,Go=0,$o=null,Qo=!1,Zo=null,Xo=null,ei=!1,ti=null,ni=90,ri=0,ai=null,ci=0,oi=null,ii=0;function li(){return 0!=(48&Fo)?1073741821-(ua()/10|0):0!==ii?ii:ii=1073741821-(ua()/10|0)}function si(e,t,n){if(0==(2&(t=t.mode)))return 1073741823;var r=da();if(0==(4&t))return 99===r?1073741823:1073741822;if(0!=(16&Fo))return Io;if(null!==n)e=1073741821-25*(1+((1073741821-e+(0|n.timeoutMs||5e3)/10)/25|0));else switch(r){case 99:e=1073741823;break;case 98:e=1073741821-10*(1+((1073741821-e+15)/10|0));break;case 97:case 96:e=1073741821-25*(1+((1073741821-e+500)/25|0));break;case 95:e=1;break;default:throw o(Error(326))}return null!==Wo&&e===Io&&--e,e}var ui=0;function di(e,t){if(50<ci)throw ci=0,oi=null,o(Error(185));if(null!==(e=fi(e,t))){e.pingTime=0;var n=da();if(1073741823===t)if(0!=(8&Fo)&&0==(48&Fo))for(var r=bi(e,1073741823,!0);null!==r;)r=r(!0);else hi(e,99,1073741823),0===Fo&&va();else hi(e,n,t);0==(4&Fo)||98!==n&&99!==n||(null===ai?ai=new Map([[e,t]]):(void 0===(n=ai.get(e))||n>t)&&ai.set(e,t))}}function fi(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,a=null;if(null===r&&3===e.tag)a=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){a=r.stateNode;break}r=r.return}return null!==a&&(t>a.firstPendingTime&&(a.firstPendingTime=t),0===(e=a.lastPendingTime)||t<e)&&(a.lastPendingTime=t),a}function hi(e,t,n){if(e.callbackExpirationTime<n){var r=e.callbackNode;null!==r&&r!==aa&&Jr(r),e.callbackExpirationTime=n,1073741823===n?e.callbackNode=pa(mi.bind(null,e,bi.bind(null,e,n))):(r=null,1!==n&&(r={timeout:10*(1073741821-n)-ua()}),e.callbackNode=ma(t,mi.bind(null,e,bi.bind(null,e,n)),r))}}function mi(e,t,n){var r=e.callbackNode,a=null;try{return null!==(a=t(n))?mi.bind(null,e,a):null}finally{null===a&&r===e.callbackNode&&(e.callbackNode=null,e.callbackExpirationTime=0)}}function pi(){0==(49&Fo)&&(function(){if(null!==ai){var e=ai;ai=null,e.forEach((function(e,t){pa(bi.bind(null,t,e))})),va()}}(),Hi())}function vi(e,t){var n=Fo;Fo|=1;try{return e(t)}finally{0===(Fo=n)&&va()}}function _i(e,t,n,r){var a=Fo;Fo|=4;try{return ha(98,e.bind(null,t,n,r))}finally{0===(Fo=a)&&va()}}function yi(e,t){var n=Fo;Fo&=-2,Fo|=8;try{return e(t)}finally{0===(Fo=n)&&va()}}function Mi(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Yr(n)),null!==Ro)for(n=Ro.return;null!==n;){var r=n;switch(r.tag){case 1:var a=r.type.childContextTypes;null!=a&&Fr();break;case 3:lc(),Wr();break;case 5:uc(r);break;case 4:lc();break;case 13:case 19:xr(dc);break;case 10:Ha(r)}n=n.return}Wo=e,Ro=Ni(e.current,null),Io=t,Uo=0,qo=Bo=1073741823,Ko=null,Jo=!1}function bi(e,t,n){if(0!=(48&Fo))throw o(Error(327));if(e.firstPendingTime<t)return null;if(n&&e.finishedExpirationTime===t)return wi.bind(null,e);if(Hi(),e!==Wo||t!==Io)Mi(e,t);else if(3===Uo)if(Jo)Mi(e,t);else{var r=e.lastPendingTime;if(r<t)return bi.bind(null,e,r)}if(null!==Ro){r=Fo,Fo|=16;var a=No.current;if(null===a&&(a=Wc),No.current=Wc,n){if(1073741823!==t){var c=li();if(c<t)return Fo=r,wa(),No.current=a,bi.bind(null,e,c)}}else ii=0;for(;;)try{if(n)for(;null!==Ro;)Ro=Li(Ro);else for(;null!==Ro&&!Gr();)Ro=Li(Ro);break}catch(n){if(wa(),Oc(),null===(c=Ro)||null===c.return)throw Mi(e,t),Fo=r,n;e:{var i=e,l=c.return,s=c,u=n,d=Io;if(s.effectTag|=1024,s.firstEffect=s.lastEffect=null,null!==u&&"object"==typeof u&&"function"==typeof u.then){var f=u,h=0!=(1&dc.current);u=l;do{var m;if((m=13===u.tag)&&(null!==u.memoizedState?m=!1:m=void 0!==(m=u.memoizedProps).fallback&&(!0!==m.unstable_avoidThisFallback||!h)),m){if(null===(l=u.updateQueue)?((l=new Set).add(f),u.updateQueue=l):l.add(f),0==(2&u.mode)){u.effectTag|=64,s.effectTag&=-1957,1===s.tag&&(null===s.alternate?s.tag=17:((d=Ca(1073741823,null)).tag=2,Ea(s,d))),s.expirationTime=1073741823;break e}s=i,i=d,null===(h=s.pingCache)?(h=s.pingCache=new jo,l=new Set,h.set(f,l)):void 0===(l=h.get(f))&&(l=new Set,h.set(f,l)),l.has(i)||(l.add(i),s=Oi.bind(null,s,f,i),f.then(s,s)),u.effectTag|=2048,u.expirationTime=d;break e}u=u.return}while(null!==u);u=Error((ut(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+dt(s))}4!==Uo&&(Uo=1),u=Lo(u,s),s=l;do{switch(s.tag){case 3:s.effectTag|=2048,s.expirationTime=d,Va(s,d=Eo(s,u,d));break e;case 1:if(f=u,i=s.type,l=s.stateNode,0==(64&s.effectTag)&&("function"==typeof i.getDerivedStateFromError||null!==l&&"function"==typeof l.componentDidCatch&&(null===Xo||!Xo.has(l)))){s.effectTag|=2048,s.expirationTime=d,Va(s,d=Vo(s,f,d));break e}}s=s.return}while(null!==s)}Ro=zi(c)}if(Fo=r,wa(),No.current=a,null!==Ro)return bi.bind(null,e,t)}if(e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,function(e,t){var n=e.firstBatch;return!!(null!==n&&n._defer&&n._expirationTime>=t)&&(ma(97,(function(){return n._onComplete(),null})),!0)}(e,t))return null;switch(Wo=null,Uo){case 0:throw o(Error(328));case 1:return(r=e.lastPendingTime)<t?bi.bind(null,e,r):n?wi.bind(null,e):(Mi(e,t),pa(bi.bind(null,e,t)),null);case 2:return 1073741823===Bo&&!n&&10<(n=Go+500-ua())?Jo?(Mi(e,t),bi.bind(null,e,t)):(r=e.lastPendingTime)<t?bi.bind(null,e,r):(e.timeoutHandle=Tr(wi.bind(null,e),n),null):wi.bind(null,e);case 3:if(!n){if(Jo)return Mi(e,t),bi.bind(null,e,t);if((n=e.lastPendingTime)<t)return bi.bind(null,e,n);if(1073741823!==qo?n=10*(1073741821-qo)-ua():1073741823===Bo?n=0:(n=10*(1073741821-Bo)-5e3,0>(n=(r=ua())-n)&&(n=0),(t=10*(1073741821-t)-r)<(n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Po(n/1960))-n)&&(n=t)),10<n)return e.timeoutHandle=Tr(wi.bind(null,e),n),null}return wi.bind(null,e);case 4:return!n&&1073741823!==Bo&&null!==Ko&&(r=Bo,0>=(t=0|(a=Ko).busyMinDurationMs)?t=0:(n=0|a.busyDelayMs,t=(r=ua()-(10*(1073741821-r)-(0|a.timeoutMs||5e3)))<=n?0:n+t-r),10<t)?(e.timeoutHandle=Tr(wi.bind(null,e),t),null):wi.bind(null,e);default:throw o(Error(329))}}function gi(e,t){e<Bo&&1<e&&(Bo=e),null!==t&&e<qo&&1<e&&(qo=e,Ko=t)}function Li(e){var t=xi(e.alternate,e,Io);return e.memoizedProps=e.pendingProps,null===t&&(t=zi(e)),Ao.current=null,t}function zi(e){Ro=e;do{var t=Ro.alternate;if(e=Ro.return,0==(1024&Ro.effectTag)){e:{var n=t,r=Io,c=(t=Ro).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:Ar(t.type)&&Fr();break;case 3:lc(),Wr(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==n&&null!==n.child||(Qc(t),t.effectTag&=-3);break;case 5:uc(t),r=oc(cc.current);var i=t.type;if(null!==n&&null!=t.stateNode)yo(n,t,i,c,r),n.ref!==t.ref&&(t.effectTag|=128);else if(c){var l=oc(rc.current);if(Qc(t)){c=void 0,i=(n=t).stateNode;var s=n.type,u=n.memoizedProps;switch(i[j]=n,i[E]=u,s){case"iframe":case"object":case"embed":En("load",i);break;case"video":case"audio":for(var d=0;d<ne.length;d++)En(ne[d],i);break;case"source":En("error",i);break;case"img":case"image":case"link":En("error",i),En("load",i);break;case"form":En("reset",i),En("submit",i);break;case"details":En("toggle",i);break;case"input":zt(i,u),En("invalid",i),gr(r,"onChange");break;case"select":i._wrapperState={wasMultiple:!!u.multiple},En("invalid",i),gr(r,"onChange");break;case"textarea":ar(i,u),En("invalid",i),gr(r,"onChange")}for(c in Mr(s,u),d=null,u)u.hasOwnProperty(c)&&(l=u[c],"children"===c?"string"==typeof l?i.textContent!==l&&(d=["children",l]):"number"==typeof l&&i.textContent!==""+l&&(d=["children",""+l]):h.hasOwnProperty(c)&&null!=l&&gr(r,c));switch(s){case"input":Ue(i),Ht(i,u,!0);break;case"textarea":Ue(i),or(i);break;case"select":case"option":break;default:"function"==typeof u.onClick&&(i.onclick=Lr)}r=d,n.updateQueue=r,null!==r&&vo(t)}else{u=i,n=c,s=t,d=9===r.nodeType?r:r.ownerDocument,l===ir&&(l=sr(u)),l===ir?"script"===u?((u=d.createElement("div")).innerHTML="<script><\/script>",d=u.removeChild(u.firstChild)):"string"==typeof n.is?d=d.createElement(u,{is:n.is}):(d=d.createElement(u),"select"===u&&(u=d,n.multiple?u.multiple=!0:n.size&&(u.size=n.size))):d=d.createElementNS(l,u),(u=d)[j]=s,u[E]=n,_o(n=u,t),s=n;var f=r,m=br(i,c);switch(i){case"iframe":case"object":case"embed":En("load",s),r=c;break;case"video":case"audio":for(r=0;r<ne.length;r++)En(ne[r],s);r=c;break;case"source":En("error",s),r=c;break;case"img":case"image":case"link":En("error",s),En("load",s),r=c;break;case"form":En("reset",s),En("submit",s),r=c;break;case"details":En("toggle",s),r=c;break;case"input":zt(s,c),r=Lt(s,c),En("invalid",s),gr(f,"onChange");break;case"option":r=tr(s,c);break;case"select":s._wrapperState={wasMultiple:!!c.multiple},r=a({},c,{value:void 0}),En("invalid",s),gr(f,"onChange");break;case"textarea":ar(s,c),r=rr(s,c),En("invalid",s),gr(f,"onChange");break;default:r=c}Mr(i,r),u=void 0,d=i,l=s;var p=r;for(u in p)if(p.hasOwnProperty(u)){var v=p[u];"style"===u?_r(l,v):"dangerouslySetInnerHTML"===u?null!=(v=v?v.__html:void 0)&&fr(l,v):"children"===u?"string"==typeof v?("textarea"!==d||""!==v)&&hr(l,v):"number"==typeof v&&hr(l,""+v):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(h.hasOwnProperty(u)?null!=v&&gr(f,u):null!=v&&bt(l,u,v,m))}switch(i){case"input":Ue(s),Ht(s,c,!1);break;case"textarea":Ue(s),or(s);break;case"option":null!=c.value&&s.setAttribute("value",""+gt(c.value));break;case"select":r=s,s=c,r.multiple=!!s.multiple,null!=(u=s.value)?nr(r,!!s.multiple,u,!1):null!=s.defaultValue&&nr(r,!!s.multiple,s.defaultValue,!0);break;default:"function"==typeof r.onClick&&(s.onclick=Lr)}kr(i,c)&&vo(t),t.stateNode=n}null!==t.ref&&(t.effectTag|=128)}else if(null===t.stateNode)throw o(Error(166));break;case 6:if(n&&null!=t.stateNode)Mo(0,t,n.memoizedProps,c);else{if("string"!=typeof c&&null===t.stateNode)throw o(Error(166));n=oc(cc.current),oc(rc.current),Qc(t)?(r=t.stateNode,n=t.memoizedProps,r[j]=t,r.nodeValue!==n&&vo(t)):(r=t,(n=(9===n.nodeType?n:n.ownerDocument).createTextNode(c))[j]=t,r.stateNode=n)}break;case 11:break;case 13:if(xr(dc),c=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=r;break e}r=null!==c,c=!1,null===n?Qc(t):(c=null!==(i=n.memoizedState),r||null===i||null!==(i=n.child.sibling)&&(null!==(s=t.firstEffect)?(t.firstEffect=i,i.nextEffect=s):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8)),r&&!c&&0!=(2&t.mode)&&(null===n&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&dc.current)?0===Uo&&(Uo=2):0!==Uo&&2!==Uo||(Uo=3)),(r||c)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:lc();break;case 10:Ha(t);break;case 9:case 14:break;case 17:Ar(t.type)&&Fr();break;case 18:break;case 19:if(xr(dc),null===(c=t.memoizedState))break;if(i=0!=(64&t.effectTag),null===(s=c.rendering)){if(i)bo(c,!1);else if(0!==Uo||null!==n&&0!=(64&n.effectTag))for(n=t.child;null!==n;){if(null!==(s=fc(n))){for(t.effectTag|=64,bo(c,!1),null!==(n=s.updateQueue)&&(t.updateQueue=n,t.effectTag|=4),t.firstEffect=t.lastEffect=null,n=t.child;null!==n;)i=r,(c=n).effectTag&=2,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null,null===(s=c.alternate)?(c.childExpirationTime=0,c.expirationTime=i,c.child=null,c.memoizedProps=null,c.memoizedState=null,c.updateQueue=null,c.dependencies=null):(c.childExpirationTime=s.childExpirationTime,c.expirationTime=s.expirationTime,c.child=s.child,c.memoizedProps=s.memoizedProps,c.memoizedState=s.memoizedState,c.updateQueue=s.updateQueue,i=s.dependencies,c.dependencies=null===i?null:{expirationTime:i.expirationTime,firstContext:i.firstContext,responders:i.responders}),n=n.sibling;Cr(dc,1&dc.current|2),t=t.child;break e}n=n.sibling}}else{if(!i)if(null!==(n=fc(s))){if(t.effectTag|=64,i=!0,bo(c,!0),null===c.tail&&"hidden"===c.tailMode){null!==(r=n.updateQueue)&&(t.updateQueue=r,t.effectTag|=4),null!==(t=t.lastEffect=c.lastEffect)&&(t.nextEffect=null);break}}else ua()>c.tailExpiration&&1<r&&(t.effectTag|=64,i=!0,bo(c,!1),t.expirationTime=t.childExpirationTime=r-1);c.isBackwards?(s.sibling=t.child,t.child=s):(null!==(r=c.last)?r.sibling=s:t.child=s,c.last=s)}if(null!==c.tail){0===c.tailExpiration&&(c.tailExpiration=ua()+500),r=c.tail,c.rendering=r,c.tail=r.sibling,c.lastEffect=t.lastEffect,r.sibling=null,n=dc.current,Cr(dc,n=i?1&n|2:1&n),t=r;break e}break;case 20:break;default:throw o(Error(156))}t=null}if(r=Ro,1===Io||1!==r.childExpirationTime){for(n=0,c=r.child;null!==c;)(i=c.expirationTime)>n&&(n=i),(s=c.childExpirationTime)>n&&(n=s),c=c.sibling;r.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(1024&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Ro.firstEffect),null!==Ro.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Ro.firstEffect),e.lastEffect=Ro.lastEffect),1<Ro.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=Ro:e.firstEffect=Ro,e.lastEffect=Ro))}else{if(null!==(t=go(Ro)))return t.effectTag&=1023,t;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=1024)}if(null!==(t=Ro.sibling))return t;Ro=e}while(null!==Ro);return 0===Uo&&(Uo=4),null}function wi(e){var t=da();return ha(99,ki.bind(null,e,t)),null!==ti&&ma(97,(function(){return Hi(),null})),null}function ki(e,t){if(Hi(),0!=(48&Fo))throw o(Error(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw o(Error(177));e.callbackNode=null,e.callbackExpirationTime=0;var a=n.expirationTime,c=n.childExpirationTime;if(a=c>a?c:a,e.firstPendingTime=a,a<e.lastPendingTime&&(e.lastPendingTime=a),e===Wo&&(Ro=Wo=null,Io=0),1<n.effectTag?null!==n.lastEffect?(n.lastEffect.nextEffect=n,a=n.firstEffect):a=n:a=n.firstEffect,null!==a){c=Fo,Fo|=32,Ao.current=null,zr=jn;var i=Bn();if(qn(i)){if("selectionStart"in i)var l={start:i.selectionStart,end:i.selectionEnd};else e:{var s=(l=(l=i.ownerDocument)&&l.defaultView||window).getSelection&&l.getSelection();if(s&&0!==s.rangeCount){l=s.anchorNode;var u=s.anchorOffset,d=s.focusNode;s=s.focusOffset;try{l.nodeType,d.nodeType}catch(e){l=null;break e}var f=0,h=-1,m=-1,p=0,v=0,_=i,y=null;t:for(;;){for(var M;_!==l||0!==u&&3!==_.nodeType||(h=f+u),_!==d||0!==s&&3!==_.nodeType||(m=f+s),3===_.nodeType&&(f+=_.nodeValue.length),null!==(M=_.firstChild);)y=_,_=M;for(;;){if(_===i)break t;if(y===l&&++p===u&&(h=f),y===d&&++v===s&&(m=f),null!==(M=_.nextSibling))break;y=(_=y).parentNode}_=M}l=-1===h||-1===m?null:{start:h,end:m}}else l=null}l=l||{start:0,end:0}}else l=null;wr={focusedElem:i,selectionRange:l},jn=!1,$o=a;do{try{for(;null!==$o;){if(0!=(256&$o.effectTag)){var b=$o.alternate;switch((i=$o).tag){case 0:case 11:case 15:Ho(2,0,i);break;case 1:if(256&i.effectTag&&null!==b){var g=b.memoizedProps,L=b.memoizedState,z=i.stateNode,w=z.getSnapshotBeforeUpdate(i.elementType===i.type?g:Ma(i.type,g),L);z.__reactInternalSnapshotBeforeUpdate=w}break;case 3:case 5:case 6:case 4:case 17:break;default:throw o(Error(163))}}$o=$o.nextEffect}}catch(e){if(null===$o)throw o(Error(330));Si($o,e),$o=$o.nextEffect}}while(null!==$o);$o=a;do{try{for(b=t;null!==$o;){var k=$o.effectTag;if(16&k&&hr($o.stateNode,""),128&k){var H=$o.alternate;if(null!==H){var T=H.ref;null!==T&&("function"==typeof T?T(null):T.current=null)}}switch(14&k){case 2:Oo($o),$o.effectTag&=-3;break;case 6:Oo($o),$o.effectTag&=-3,xo($o.alternate,$o);break;case 4:xo($o.alternate,$o);break;case 8:Do(g=$o,b),g.return=null,g.child=null,g.memoizedState=null,g.updateQueue=null,g.dependencies=null;var Y=g.alternate;null!==Y&&(Y.return=null,Y.child=null,Y.memoizedState=null,Y.updateQueue=null,Y.dependencies=null)}$o=$o.nextEffect}}catch(e){if(null===$o)throw o(Error(330));Si($o,e),$o=$o.nextEffect}}while(null!==$o);if(T=wr,H=Bn(),k=T.focusedElem,b=T.selectionRange,H!==k&&k&&k.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(k.ownerDocument.documentElement,k)){null!==b&&qn(k)&&(H=b.start,void 0===(T=b.end)&&(T=H),"selectionStart"in k?(k.selectionStart=H,k.selectionEnd=Math.min(T,k.value.length)):(T=(H=k.ownerDocument||document)&&H.defaultView||window).getSelection&&(T=T.getSelection(),g=k.textContent.length,Y=Math.min(b.start,g),b=void 0===b.end?Y:Math.min(b.end,g),!T.extend&&Y>b&&(g=b,b=Y,Y=g),g=Un(k,Y),L=Un(k,b),g&&L&&(1!==T.rangeCount||T.anchorNode!==g.node||T.anchorOffset!==g.offset||T.focusNode!==L.node||T.focusOffset!==L.offset)&&((H=H.createRange()).setStart(g.node,g.offset),T.removeAllRanges(),Y>b?(T.addRange(H),T.extend(L.node,L.offset)):(H.setEnd(L.node,L.offset),T.addRange(H))))),H=[];for(T=k;T=T.parentNode;)1===T.nodeType&&H.push({element:T,left:T.scrollLeft,top:T.scrollTop});for("function"==typeof k.focus&&k.focus(),k=0;k<H.length;k++)(T=H[k]).element.scrollLeft=T.left,T.element.scrollTop=T.top}wr=null,jn=!!zr,zr=null,e.current=n,$o=a;do{try{for(k=r;null!==$o;){var S=$o.effectTag;if(36&S){var O=$o.alternate;switch(T=k,(H=$o).tag){case 0:case 11:case 15:Ho(16,32,H);break;case 1:var D=H.stateNode;if(4&H.effectTag)if(null===O)D.componentDidMount();else{var x=H.elementType===H.type?O.memoizedProps:Ma(H.type,O.memoizedProps);D.componentDidUpdate(x,O.memoizedState,D.__reactInternalSnapshotBeforeUpdate)}var C=H.updateQueue;null!==C&&Fa(0,C,D);break;case 3:var j=H.updateQueue;if(null!==j){if(Y=null,null!==H.child)switch(H.child.tag){case 5:Y=H.child.stateNode;break;case 1:Y=H.child.stateNode}Fa(0,j,Y)}break;case 5:var E=H.stateNode;null===O&&4&H.effectTag&&(T=E,kr(H.type,H.memoizedProps)&&T.focus());break;case 6:case 4:case 12:break;case 13:case 19:case 17:case 20:break;default:throw o(Error(163))}}if(128&S){var V=$o.ref;if(null!==V){var P=$o.stateNode;switch($o.tag){case 5:var N=P;break;default:N=P}"function"==typeof V?V(N):V.current=N}}512&S&&(ei=!0),$o=$o.nextEffect}}catch(e){if(null===$o)throw o(Error(330));Si($o,e),$o=$o.nextEffect}}while(null!==$o);$o=null,ca(),Fo=c}else e.current=n;if(ei)ei=!1,ti=e,ri=r,ni=t;else for($o=a;null!==$o;)t=$o.nextEffect,$o.nextEffect=null,$o=t;if(0!==(t=e.firstPendingTime)?hi(e,S=ya(S=li(),t),t):Xo=null,"function"==typeof Ci&&Ci(n.stateNode,r),1073741823===t?e===oi?ci++:(ci=0,oi=e):ci=0,Qo)throw Qo=!1,e=Zo,Zo=null,e;return 0!=(8&Fo)||va(),null}function Hi(){if(null===ti)return!1;var e=ti,t=ri,n=ni;return ti=null,ri=0,ni=90,ha(97<n?97:n,Ti.bind(null,e,t))}function Ti(e){if(0!=(48&Fo))throw o(Error(331));var t=Fo;for(Fo|=32,e=e.current.firstEffect;null!==e;){try{var n=e;if(0!=(512&n.effectTag))switch(n.tag){case 0:case 11:case 15:Ho(128,0,n),Ho(0,64,n)}}catch(t){if(null===e)throw o(Error(330));Si(e,t)}n=e.nextEffect,e.nextEffect=null,e=n}return Fo=t,va(),!0}function Yi(e,t,n){Ea(e,t=Eo(e,t=Lo(n,t),1073741823)),null!==(e=fi(e,1073741823))&&hi(e,99,1073741823)}function Si(e,t){if(3===e.tag)Yi(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Yi(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xo||!Xo.has(r))){Ea(n,e=Vo(n,e=Lo(t,e),1073741823)),null!==(n=fi(n,1073741823))&&hi(n,99,1073741823);break}}n=n.return}}function Oi(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),Wo===e&&Io===n?3===Uo||2===Uo&&1073741823===Bo&&ua()-Go<500?Mi(e,Io):Jo=!0:e.lastPendingTime<n||(0!==(t=e.pingTime)&&t<n||(e.pingTime=n,e.finishedExpirationTime===n&&(e.finishedExpirationTime=0,e.finishedWork=null),hi(e,t=ya(t=li(),n),n)))}function Di(e,t){var n=e.stateNode;null!==n&&n.delete(t),n=ya(n=li(),t=si(n,e,null)),null!==(e=fi(e,t))&&hi(e,n,t)}var xi=void 0;xi=function(e,t,n){var r=t.expirationTime;if(null!==e){var a=t.pendingProps;if(e.memoizedProps!==a||Vr.current)eo=!0;else if(r<n){switch(eo=!1,t.tag){case 3:so(t),Zc();break;case 5:if(sc(t),4&t.mode&&1!==n&&a.hidden)return t.expirationTime=t.childExpirationTime=1,null;break;case 1:Ar(t.type)&&Ur(t);break;case 4:ic(t,t.stateNode.containerInfo);break;case 10:ka(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?fo(e,t,n):(Cr(dc,1&dc.current),null!==(t=po(e,t,n))?t.sibling:null);Cr(dc,1&dc.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return mo(e,t,n);t.effectTag|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null),Cr(dc,dc.current),!r)return null}return po(e,t,n)}}else eo=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,a=Nr(t,Er.current),Ya(t,n),a=Sc(null,t,r,e,a,n),t.effectTag|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,Oc(),Ar(r)){var c=!0;Ur(t)}else c=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null;var i=r.getDerivedStateFromProps;"function"==typeof i&&Ua(t,r,i,e),a.updater=Ba,t.stateNode=a,a._reactInternalFiber=t,Ga(t,r,e,n),t=lo(null,t,r,!0,c,n)}else t.tag=0,to(null,t,a,n),t=t.child;return t;case 16:switch(a=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,a=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)})),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(a),t.type=a,c=t.tag=function(e){if("function"==typeof e)return Pi(e)?1:0;if(null!=e){if((e=e.$$typeof)===rt)return 11;if(e===ot)return 14}return 2}(a),e=Ma(a,e),c){case 0:t=oo(null,t,a,e,n);break;case 1:t=io(null,t,a,e,n);break;case 11:t=no(null,t,a,e,n);break;case 14:t=ro(null,t,a,Ma(a.type,e),r,n);break;default:throw o(Error(306),a,"")}return t;case 0:return r=t.type,a=t.pendingProps,oo(e,t,r,a=t.elementType===r?a:Ma(r,a),n);case 1:return r=t.type,a=t.pendingProps,io(e,t,r,a=t.elementType===r?a:Ma(r,a),n);case 3:if(so(t),null===(r=t.updateQueue))throw o(Error(282));return a=null!==(a=t.memoizedState)?a.element:null,Aa(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===a?(Zc(),t=po(e,t,n)):(a=t.stateNode,(a=(null===e||null===e.child)&&a.hydrate)&&(Bc=Sr(t.stateNode.containerInfo.firstChild),Uc=t,a=qc=!0),a?(t.effectTag|=2,t.child=tc(t,null,r,n)):(to(e,t,r,n),Zc()),t=t.child),t;case 5:return sc(t),null===e&&Gc(t),r=t.type,a=t.pendingProps,c=null!==e?e.memoizedProps:null,i=a.children,Hr(r,a)?i=null:null!==c&&Hr(r,c)&&(t.effectTag|=16),co(e,t),4&t.mode&&1!==n&&a.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(to(e,t,i,n),t=t.child),t;case 6:return null===e&&Gc(t),null;case 13:return fo(e,t,n);case 4:return ic(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ec(t,null,r,n):to(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,no(e,t,r,a=t.elementType===r?a:Ma(r,a),n);case 7:return to(e,t,t.pendingProps,n),t.child;case 8:case 12:return to(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,ka(t,c=a.value),null!==i){var l=i.value;if(0===(c=tn(l,c)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(l,c):1073741823))){if(i.children===a.children&&!Vr.current){t=po(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var s=l.dependencies;if(null!==s){i=l.child;for(var u=s.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&c)){1===l.tag&&((u=Ca(n,null)).tag=2,Ea(l,u)),l.expirationTime<n&&(l.expirationTime=n),null!==(u=l.alternate)&&u.expirationTime<n&&(u.expirationTime=n),Ta(l.return,n),s.expirationTime<n&&(s.expirationTime=n);break}u=u.next}}else i=10===l.tag&&l.type===t.type?null:l.child;if(null!==i)i.return=l;else for(i=l;null!==i;){if(i===t){i=null;break}if(null!==(l=i.sibling)){l.return=i.return,i=l;break}i=i.return}l=i}}to(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(c=t.pendingProps).children,Ya(t,n),r=r(a=Sa(a,c.unstable_observedBits)),t.effectTag|=1,to(e,t,r,n),t.child;case 14:return c=Ma(a=t.type,t.pendingProps),ro(e,t,a,c=Ma(a.type,c),r,n);case 15:return ao(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ma(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,Ar(r)?(e=!0,Ur(t)):e=!1,Ya(t,n),Ka(t,r,a),Ga(t,r,a,n),lo(null,t,r,!0,e,n);case 19:return mo(e,t,n)}throw o(Error(156))};var Ci=null,ji=null;function Ei(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Vi(e,t,n,r){return new Ei(e,t,n,r)}function Pi(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ni(e,t){var n=e.alternate;return null===n?((n=Vi(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{expirationTime:t.expirationTime,firstContext:t.firstContext,responders:t.responders},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ai(e,t,n,r,a,c){var i=2;if(r=e,"function"==typeof e)Pi(e)&&(i=1);else if("string"==typeof e)i=5;else e:switch(e){case Qe:return Fi(n.children,a,c,t);case nt:i=8,a|=7;break;case Ze:i=8,a|=1;break;case Xe:return(e=Vi(12,n,t,8|a)).elementType=Xe,e.type=Xe,e.expirationTime=c,e;case at:return(e=Vi(13,n,t,a)).type=at,e.elementType=at,e.expirationTime=c,e;case ct:return(e=Vi(19,n,t,a)).elementType=ct,e.expirationTime=c,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case et:i=10;break e;case tt:i=9;break e;case rt:i=11;break e;case ot:i=14;break e;case it:i=16,r=null;break e}throw o(Error(130),null==e?e:typeof e,"")}return(t=Vi(i,n,t,a)).elementType=e,t.type=r,t.expirationTime=c,t}function Fi(e,t,n,r){return(e=Vi(7,e,r,t)).expirationTime=n,e}function Wi(e,t,n){return(e=Vi(6,e,null,t)).expirationTime=n,e}function Ri(e,t,n){return(t=Vi(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ii(e,t,n){this.tag=t,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=this.firstBatch=null,this.pingTime=this.lastPendingTime=this.firstPendingTime=this.callbackExpirationTime=0}function Ui(e,t,n){return e=new Ii(e,t,n),t=Vi(3,null,null,2===t?7:1===t?3:0),e.current=t,t.stateNode=e}function Bi(e,t,n,r,a,c){var i=t.current;e:if(n){t:{if(2!==cn(n=n._reactInternalFiber)||1!==n.tag)throw o(Error(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(Ar(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw o(Error(171))}if(1===n.tag){var s=n.type;if(Ar(s)){n=Ir(n,s,l);break e}}n=l}else n=jr;return null===t.context?t.context=n:t.pendingContext=n,t=c,(a=Ca(r,a)).payload={element:e},null!==(t=void 0===t?null:t)&&(a.callback=t),Ea(i,a),di(i,r),r}function qi(e,t,n,r){var a=t.current,c=li(),o=Ra.suspense;return Bi(e,t,n,a=si(c,a,o),o,r)}function Ki(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Ji(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$e,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Gi(e){var t=1073741821-25*(1+((1073741821-li()+500)/25|0));t<=ui&&--t,this._expirationTime=ui=t,this._root=e,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function $i(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function Qi(e,t,n){this._internalRoot=Ui(e,t,n)}function Zi(e,t){this._internalRoot=Ui(e,2,t)}function Xi(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function el(e,t,n,r,a){var c=n._reactRootContainer,o=void 0;if(c){if(o=c._internalRoot,"function"==typeof a){var i=a;a=function(){var e=Ki(o);i.call(e)}}qi(t,o,e,a)}else{if(c=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Qi(e,0,t)}(n,r),o=c._internalRoot,"function"==typeof a){var l=a;a=function(){var e=Ki(o);l.call(e)}}yi((function(){qi(t,o,e,a)}))}return Ki(o)}function tl(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Xi(t))throw o(Error(200));return Ji(e,t,null,n)}Te=function(e,t,n){switch(t){case"input":if(kt(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=A(r);if(!a)throw o(Error(90));Be(r),kt(r,a)}}}break;case"textarea":cr(e,n);break;case"select":null!=(t=n.value)&&nr(e,!!n.multiple,t,!1)}},Gi.prototype.render=function(e){if(!this._defer)throw o(Error(250));this._hasChildren=!0,this._children=e;var t=this._root._internalRoot,n=this._expirationTime,r=new $i;return Bi(e,t,null,n,null,r._onCommit),r},Gi.prototype.then=function(e){if(this._didComplete)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Gi.prototype.commit=function(){var e=this._root._internalRoot,t=e.firstBatch;if(!this._defer||null===t)throw o(Error(251));if(this._hasChildren){var n=this._expirationTime;if(t!==this){this._hasChildren&&(n=this._expirationTime=t._expirationTime,this.render(this._children));for(var r=null,a=t;a!==this;)r=a,a=a._next;if(null===r)throw o(Error(251));r._next=a._next,this._next=t,e.firstBatch=this}if(this._defer=!1,t=n,0!=(48&Fo))throw o(Error(253));pa(bi.bind(null,e,t)),va(),t=this._next,this._next=null,null!==(t=e.firstBatch=t)&&t._hasChildren&&t.render(t._children)}else this._next=null,this._defer=!1},Gi.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++)(0,e[t])()}},$i.prototype.then=function(e){if(this._didCommit)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},$i.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)throw o(Error(191),n);n()}}},Zi.prototype.render=Qi.prototype.render=function(e,t){var n=this._internalRoot,r=new $i;return null!==(t=void 0===t?null:t)&&r.then(t),qi(e,n,null,r._onCommit),r},Zi.prototype.unmount=Qi.prototype.unmount=function(e){var t=this._internalRoot,n=new $i;return null!==(e=void 0===e?null:e)&&n.then(e),qi(null,t,null,n._onCommit),n},Zi.prototype.createBatch=function(){var e=new Gi(this),t=e._expirationTime,n=this._internalRoot,r=n.firstBatch;if(null===r)n.firstBatch=e,e._next=null;else{for(n=null;null!==r&&r._expirationTime>=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},Ce=vi,je=_i,Ee=pi,Ve=function(e,t){var n=Fo;Fo|=2;try{return e(t)}finally{0===(Fo=n)&&va()}};var nl,rl,al={createPortal:tl,findDOMNode:function(e){if(null==e)e=null;else if(1!==e.nodeType){var t=e._reactInternalFiber;if(void 0===t){if("function"==typeof e.render)throw o(Error(188));throw o(Error(268),Object.keys(e))}e=null===(e=ln(t))?null:e.stateNode}return e},hydrate:function(e,t,n){if(!Xi(t))throw o(Error(200));return el(null,e,t,!0,n)},render:function(e,t,n){if(!Xi(t))throw o(Error(200));return el(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){if(!Xi(n))throw o(Error(200));if(null==e||void 0===e._reactInternalFiber)throw o(Error(38));return el(e,t,n,!1,r)},unmountComponentAtNode:function(e){if(!Xi(e))throw o(Error(40));return!!e._reactRootContainer&&(yi((function(){el(null,null,e,!1,(function(){e._reactRootContainer=null}))})),!0)},unstable_createPortal:function(){return tl.apply(void 0,arguments)},unstable_batchedUpdates:vi,unstable_interactiveUpdates:function(e,t,n,r){return pi(),_i(e,t,n,r)},unstable_discreteUpdates:_i,unstable_flushDiscreteUpdates:pi,flushSync:function(e,t){if(0!=(48&Fo))throw o(Error(187));var n=Fo;Fo|=1;try{return ha(99,e.bind(null,t))}finally{Fo=n,va()}},unstable_createRoot:function(e,t){if(!Xi(e))throw o(Error(299),"unstable_createRoot");return new Zi(e,null!=t&&!0===t.hydrate)},unstable_createSyncRoot:function(e,t){if(!Xi(e))throw o(Error(299),"unstable_createRoot");return new Qi(e,1,null!=t&&!0===t.hydrate)},unstable_flushControlled:function(e){var t=Fo;Fo|=1;try{ha(99,e)}finally{0===(Fo=t)&&va()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[P,N,A,D.injectEventPluginsByName,f,B,function(e){T(e,U)},De,xe,An,O,Hi,{current:!1}]}};rl=(nl={findFiberByHostInstance:V,bundleType:0,version:"16.9.0",rendererPackageName:"react-dom"}).findFiberByHostInstance,function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ci=function(e){try{t.onCommitFiberRoot(n,e,void 0,64==(64&e.current.effectTag))}catch(e){}},ji=function(e){try{t.onCommitFiberUnmount(n,e)}catch(e){}}}catch(e){}}(a({},nl,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:qe.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=ln(e))?null:e.stateNode},findFiberByHostInstance:function(e){return rl?rl(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}));var cl={default:al},ol=cl&&al||cl;e.exports=ol.default||ol},function(e,t,n){"use strict";e.exports=n(256)},function(e,t,n){"use strict"; /** @license React v0.15.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */Object.defineProperty(t,"__esModule",{value:!0});var r=void 0,a=void 0,c=void 0,o=void 0,i=void 0;if(t.unstable_now=void 0,t.unstable_forceFrameRate=void 0,"undefined"==typeof window||"function"!=typeof MessageChannel){var l=null,s=null,u=function(){if(null!==l)try{var e=t.unstable_now();l(!0,e),l=null}catch(e){throw setTimeout(u,0),e}};t.unstable_now=function(){return Date.now()},r=function(e){null!==l?setTimeout(r,0,e):(l=e,setTimeout(u,0))},a=function(e,t){s=setTimeout(e,t)},c=function(){clearTimeout(s)},o=function(){return!1},i=t.unstable_forceFrameRate=function(){}}else{var d=window.performance,f=window.Date,h=window.setTimeout,m=window.clearTimeout,p=window.requestAnimationFrame,v=window.cancelAnimationFrame;"undefined"!=typeof console&&("function"!=typeof p&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof v&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),t.unstable_now="object"==typeof d&&"function"==typeof d.now?function(){return d.now()}:function(){return f.now()};var _=!1,y=null,M=-1,b=-1,g=33.33,L=-1,z=-1,w=0,k=!1;o=function(){return t.unstable_now()>=w},i=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<e?(g=Math.floor(1e3/e),k=!0):(g=33.33,k=!1)};var H=function(){if(null!==y){var e=t.unstable_now(),n=0<w-e;try{y(n,e)||(y=null)}catch(e){throw Y.postMessage(null),e}}},T=new MessageChannel,Y=T.port2;T.port1.onmessage=H;var S=function(e){if(null===y)z=L=-1,_=!1;else{_=!0,p((function(e){m(M),S(e)}));var n=function(){w=t.unstable_now()+g/2,H(),M=h(n,3*g)};if(M=h(n,3*g),-1!==L&&.1<e-L){var r=e-L;!k&&-1!==z&&r<g&&z<g&&(8.33>(g=r<z?z:r)&&(g=8.33)),z=r}L=e,w=e+g,Y.postMessage(null)}};r=function(e){y=e,_||(_=!0,p((function(e){S(e)})))},a=function(e,n){b=h((function(){e(t.unstable_now())}),n)},c=function(){m(b),b=-1}}var O=null,D=null,x=null,C=3,j=!1,E=!1,V=!1;function P(e,t){var n=e.next;if(n===e)O=null;else{e===O&&(O=n);var r=e.previous;r.next=n,n.previous=r}e.next=e.previous=null,n=e.callback,r=C;var a=x;C=e.priorityLevel,x=e;try{var c=e.expirationTime<=t;switch(C){case 1:var o=n(c);break;case 2:case 3:case 4:o=n(c);break;case 5:o=n(c)}}catch(e){throw e}finally{C=r,x=a}if("function"==typeof o)if(t=e.expirationTime,e.callback=o,null===O)O=e.next=e.previous=e;else{o=null,c=O;do{if(t<=c.expirationTime){o=c;break}c=c.next}while(c!==O);null===o?o=O:o===O&&(O=e),(t=o.previous).next=o.previous=e,e.next=o,e.previous=t}}function N(e){if(null!==D&&D.startTime<=e)do{var t=D,n=t.next;if(t===n)D=null;else{D=n;var r=t.previous;r.next=n,n.previous=r}t.next=t.previous=null,R(t,t.expirationTime)}while(null!==D&&D.startTime<=e)}function A(e){V=!1,N(e),E||(null!==O?(E=!0,r(F)):null!==D&&a(A,D.startTime-e))}function F(e,n){E=!1,V&&(V=!1,c()),N(n),j=!0;try{if(e){if(null!==O)do{P(O,n),N(n=t.unstable_now())}while(null!==O&&!o())}else for(;null!==O&&O.expirationTime<=n;)P(O,n),N(n=t.unstable_now());return null!==O||(null!==D&&a(A,D.startTime-n),!1)}finally{j=!1}}function W(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}function R(e,t){if(null===O)O=e.next=e.previous=e;else{var n=null,r=O;do{if(t<r.expirationTime){n=r;break}r=r.next}while(r!==O);null===n?n=O:n===O&&(O=e),(t=n.previous).next=n.previous=e,e.next=n,e.previous=t}}var I=i;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=C;C=e;try{return t()}finally{C=n}},t.unstable_next=function(e){switch(C){case 1:case 2:case 3:var t=3;break;default:t=C}var n=C;C=t;try{return e()}finally{C=n}},t.unstable_scheduleCallback=function(e,n,o){var i=t.unstable_now();if("object"==typeof o&&null!==o){var l=o.delay;l="number"==typeof l&&0<l?i+l:i,o="number"==typeof o.timeout?o.timeout:W(e)}else o=W(e),l=i;if(e={callback:n,priorityLevel:e,startTime:l,expirationTime:o=l+o,next:null,previous:null},l>i){if(o=l,null===D)D=e.next=e.previous=e;else{n=null;var s=D;do{if(o<s.startTime){n=s;break}s=s.next}while(s!==D);null===n?n=D:n===D&&(D=e),(o=n.previous).next=n.previous=e,e.next=n,e.previous=o}null===O&&D===e&&(V?c():V=!0,a(A,l-i))}else R(e,o),E||j||(E=!0,r(F));return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(e===t)e===O?O=null:e===D&&(D=null);else{e===O?O=t:e===D&&(D=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var t=C;return function(){var n=C;C=t;try{return e.apply(this,arguments)}finally{C=n}}},t.unstable_getCurrentPriorityLevel=function(){return C},t.unstable_shouldYield=function(){var e=t.unstable_now();return N(e),null!==x&&null!==O&&O.startTime<=e&&O.expirationTime<x.expirationTime||o()},t.unstable_requestPaint=I,t.unstable_continueExecution=function(){E||j||(E=!0,r(F))},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return O}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,a,c=[],o=!0,i=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(c.push(r.value),!t||c.length!==t);o=!0);}catch(e){i=!0,a=e}finally{try{o||null==n.return||n.return()}finally{if(i)throw a}}return c}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(260);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(74)),a=c(n(318));function c(e){return e&&e.__esModule?e:{default:e}}r.default.Group=a.default;var o=r.default;t.default=o},function(e,t,n){"use strict";var r=n(264);function a(){}function c(){}c.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,c,o){if(o!==r){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:c,resetWarningCache:a};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){e.exports={default:n(266),__esModule:!0}},function(e,t,n){n(267),e.exports=n(21).Object.assign},function(e,t,n){var r=n(27);r(r.S+r.F,"Object",{assign:n(269)})},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var r=n(22),a=n(44),c=n(61),o=n(47),i=n(62),l=n(79),s=Object.assign;e.exports=!s||n(38)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=s({},e)[n]||Object.keys(s({},t)).join("")!=r}))?function(e,t){for(var n=i(e),s=arguments.length,u=1,d=c.f,f=o.f;s>u;)for(var h,m=l(arguments[u++]),p=d?a(m).concat(d(m)):a(m),v=p.length,_=0;v>_;)h=p[_++],r&&!f.call(m,h)||(n[h]=m[h]);return n}:s},function(e,t,n){var r=n(30),a=n(271),c=n(272);e.exports=function(e){return function(t,n,o){var i,l=r(t),s=a(l.length),u=c(o,s);if(e&&n!=n){for(;s>u;)if((i=l[u++])!=i)return!0}else for(;s>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(57),a=Math.min;e.exports=function(e){return e>0?a(r(e),9007199254740991):0}},function(e,t,n){var r=n(57),a=Math.max,c=Math.min;e.exports=function(e,t){return(e=r(e))<0?a(e+t,0):c(e,t)}},function(e,t,n){e.exports={default:n(274),__esModule:!0}},function(e,t,n){n(275),n(281),e.exports=n(66).f("iterator")},function(e,t,n){"use strict";var r=n(276)(!0);n(81)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t,n){var r=n(57),a=n(56);e.exports=function(e){return function(t,n){var c,o,i=String(a(t)),l=r(n),s=i.length;return l<0||l>=s?e?"":void 0:(c=i.charCodeAt(l))<55296||c>56319||l+1===s||(o=i.charCodeAt(l+1))<56320||o>57343?e?i.charAt(l):c:e?i.slice(l,l+2):o-56320+(c-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(64),a=n(43),c=n(65),o={};n(28)(o,n(31)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(o,{next:a(1,n)}),c(e,t+" Iterator")}},function(e,t,n){var r=n(24),a=n(37),c=n(44);e.exports=n(22)?Object.defineProperties:function(e,t){a(e);for(var n,o=c(t),i=o.length,l=0;i>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){var r=n(20).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(25),a=n(62),c=n(58)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=a(e),r(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){n(282);for(var r=n(20),a=n(28),c=n(63),o=n(31)("toStringTag"),i="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<i.length;l++){var s=i[l],u=r[s],d=u&&u.prototype;d&&!d[o]&&a(d,o,s),c[s]=c.Array}},function(e,t,n){"use strict";var r=n(283),a=n(284),c=n(63),o=n(30);e.exports=n(81)(Array,"Array",(function(e,t){this._t=o(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,a(1)):a(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),c.Arguments=c.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(286),__esModule:!0}},function(e,t,n){n(287),n(292),n(293),n(294),e.exports=n(21).Symbol},function(e,t,n){"use strict";var r=n(20),a=n(25),c=n(22),o=n(27),i=n(82),l=n(288).KEY,s=n(38),u=n(59),d=n(65),f=n(46),h=n(31),m=n(66),p=n(67),v=n(289),_=n(290),y=n(37),M=n(29),b=n(62),g=n(30),L=n(55),z=n(43),w=n(64),k=n(291),H=n(84),T=n(61),Y=n(24),S=n(44),O=H.f,D=Y.f,x=k.f,C=r.Symbol,j=r.JSON,E=j&&j.stringify,V=h("_hidden"),P=h("toPrimitive"),N={}.propertyIsEnumerable,A=u("symbol-registry"),F=u("symbols"),W=u("op-symbols"),R=Object.prototype,I="function"==typeof C&&!!T.f,U=r.QObject,B=!U||!U.prototype||!U.prototype.findChild,q=c&&s((function(){return 7!=w(D({},"a",{get:function(){return D(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=O(R,t);r&&delete R[t],D(e,t,n),r&&e!==R&&D(R,t,r)}:D,K=function(e){var t=F[e]=w(C.prototype);return t._k=e,t},J=I&&"symbol"==typeof C.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof C},G=function(e,t,n){return e===R&&G(W,t,n),y(e),t=L(t,!0),y(n),a(F,t)?(n.enumerable?(a(e,V)&&e[V][t]&&(e[V][t]=!1),n=w(n,{enumerable:z(0,!1)})):(a(e,V)||D(e,V,z(1,{})),e[V][t]=!0),q(e,t,n)):D(e,t,n)},$=function(e,t){y(e);for(var n,r=v(t=g(t)),a=0,c=r.length;c>a;)G(e,n=r[a++],t[n]);return e},Q=function(e){var t=N.call(this,e=L(e,!0));return!(this===R&&a(F,e)&&!a(W,e))&&(!(t||!a(this,e)||!a(F,e)||a(this,V)&&this[V][e])||t)},Z=function(e,t){if(e=g(e),t=L(t,!0),e!==R||!a(F,t)||a(W,t)){var n=O(e,t);return!n||!a(F,t)||a(e,V)&&e[V][t]||(n.enumerable=!0),n}},X=function(e){for(var t,n=x(g(e)),r=[],c=0;n.length>c;)a(F,t=n[c++])||t==V||t==l||r.push(t);return r},ee=function(e){for(var t,n=e===R,r=x(n?W:g(e)),c=[],o=0;r.length>o;)!a(F,t=r[o++])||n&&!a(R,t)||c.push(F[t]);return c};I||(i((C=function(){if(this instanceof C)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===R&&t.call(W,n),a(this,V)&&a(this[V],e)&&(this[V][e]=!1),q(this,e,z(1,n))};return c&&B&&q(R,e,{configurable:!0,set:t}),K(e)}).prototype,"toString",(function(){return this._k})),H.f=Z,Y.f=G,n(83).f=k.f=X,n(47).f=Q,T.f=ee,c&&!n(45)&&i(R,"propertyIsEnumerable",Q,!0),m.f=function(e){return K(h(e))}),o(o.G+o.W+o.F*!I,{Symbol:C});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)h(te[ne++]);for(var re=S(h.store),ae=0;re.length>ae;)p(re[ae++]);o(o.S+o.F*!I,"Symbol",{for:function(e){return a(A,e+="")?A[e]:A[e]=C(e)},keyFor:function(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var t in A)if(A[t]===e)return t},useSetter:function(){B=!0},useSimple:function(){B=!1}}),o(o.S+o.F*!I,"Object",{create:function(e,t){return void 0===t?w(e):$(w(e),t)},defineProperty:G,defineProperties:$,getOwnPropertyDescriptor:Z,getOwnPropertyNames:X,getOwnPropertySymbols:ee});var ce=s((function(){T.f(1)}));o(o.S+o.F*ce,"Object",{getOwnPropertySymbols:function(e){return T.f(b(e))}}),j&&o(o.S+o.F*(!I||s((function(){var e=C();return"[null]"!=E([e])||"{}"!=E({a:e})||"{}"!=E(Object(e))}))),"JSON",{stringify:function(e){for(var t,n,r=[e],a=1;arguments.length>a;)r.push(arguments[a++]);if(n=t=r[1],(M(t)||void 0!==e)&&!J(e))return _(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!J(t))return t}),r[1]=t,E.apply(j,r)}}),C.prototype[P]||n(28)(C.prototype,P,C.prototype.valueOf),d(C,"Symbol"),d(Math,"Math",!0),d(r.JSON,"JSON",!0)},function(e,t,n){var r=n(46)("meta"),a=n(29),c=n(25),o=n(24).f,i=0,l=Object.isExtensible||function(){return!0},s=!n(38)((function(){return l(Object.preventExtensions({}))})),u=function(e){o(e,r,{value:{i:"O"+ ++i,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!c(e,r)){if(!l(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!c(e,r)){if(!l(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return s&&d.NEED&&l(e)&&!c(e,r)&&u(e),e}}},function(e,t,n){var r=n(44),a=n(61),c=n(47);e.exports=function(e){var t=r(e),n=a.f;if(n)for(var o,i=n(e),l=c.f,s=0;i.length>s;)l.call(e,o=i[s++])&&t.push(o);return t}},function(e,t,n){var r=n(80);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(30),a=n(83).f,c={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==c.call(e)?function(e){try{return a(e)}catch(e){return o.slice()}}(e):a(r(e))}},function(e,t){},function(e,t,n){n(67)("asyncIterator")},function(e,t,n){n(67)("observable")},function(e,t,n){e.exports={default:n(296),__esModule:!0}},function(e,t,n){n(297),e.exports=n(21).Object.setPrototypeOf},function(e,t,n){var r=n(27);r(r.S,"Object",{setPrototypeOf:n(298).set})},function(e,t,n){var r=n(29),a=n(37),c=function(e,t){if(a(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(75)(Function.call,n(84).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return c(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:c}},function(e,t,n){e.exports={default:n(300),__esModule:!0}},function(e,t,n){n(301);var r=n(21).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(27);r(r.S,"Object",{create:n(64)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.ANT_MARK=void 0;var r=d(n(0)),a=d(n(1)),c=d(n(2)),o=s(n(305)),i=n(68),l=s(n(26));function s(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function d(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var a=y(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return _(this,n)}}function _(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function M(e){e&&e.locale?(0,o.default)(c).locale(e.locale):(0,o.default)(c).locale("en")}t.ANT_MARK="internalMark";var b=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(c,e);var t,n,r,a=v(c);function c(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),t=a.call(this,e),M(e.locale),(0,i.changeConfirmLocale)(e.locale&&e.locale.Modal),(0,l.default)("internalMark"===e._ANT_MARK__,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale"),t}return t=c,(n=[{key:"getChildContext",value:function(){return{antLocale:h(h({},this.props.locale),{exist:!0})}}},{key:"componentDidUpdate",value:function(e){var t=this.props.locale;e.locale!==t&&(M(t),(0,i.changeConfirmLocale)(t&&t.Modal))}},{key:"componentWillUnmount",value:function(){(0,i.changeConfirmLocale)()}},{key:"render",value:function(){return this.props.children}}])&&m(t.prototype,n),r&&m(t,r),c}(r.Component);t.default=b,b.propTypes={locale:a.object},b.defaultProps={locale:{}},b.childContextTypes={antLocale:a.object}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r={"./af":85,"./af.js":85,"./ar":86,"./ar-dz":87,"./ar-dz.js":87,"./ar-kw":88,"./ar-kw.js":88,"./ar-ly":89,"./ar-ly.js":89,"./ar-ma":90,"./ar-ma.js":90,"./ar-sa":91,"./ar-sa.js":91,"./ar-tn":92,"./ar-tn.js":92,"./ar.js":86,"./az":93,"./az.js":93,"./be":94,"./be.js":94,"./bg":95,"./bg.js":95,"./bm":96,"./bm.js":96,"./bn":97,"./bn.js":97,"./bo":98,"./bo.js":98,"./br":99,"./br.js":99,"./bs":100,"./bs.js":100,"./ca":101,"./ca.js":101,"./cs":102,"./cs.js":102,"./cv":103,"./cv.js":103,"./cy":104,"./cy.js":104,"./da":105,"./da.js":105,"./de":106,"./de-at":107,"./de-at.js":107,"./de-ch":108,"./de-ch.js":108,"./de.js":106,"./dv":109,"./dv.js":109,"./el":110,"./el.js":110,"./en-au":111,"./en-au.js":111,"./en-ca":112,"./en-ca.js":112,"./en-gb":113,"./en-gb.js":113,"./en-ie":114,"./en-ie.js":114,"./en-il":115,"./en-il.js":115,"./en-in":116,"./en-in.js":116,"./en-nz":117,"./en-nz.js":117,"./en-sg":118,"./en-sg.js":118,"./eo":119,"./eo.js":119,"./es":120,"./es-do":121,"./es-do.js":121,"./es-us":122,"./es-us.js":122,"./es.js":120,"./et":123,"./et.js":123,"./eu":124,"./eu.js":124,"./fa":125,"./fa.js":125,"./fi":126,"./fi.js":126,"./fil":127,"./fil.js":127,"./fo":128,"./fo.js":128,"./fr":129,"./fr-ca":130,"./fr-ca.js":130,"./fr-ch":131,"./fr-ch.js":131,"./fr.js":129,"./fy":132,"./fy.js":132,"./ga":133,"./ga.js":133,"./gd":134,"./gd.js":134,"./gl":135,"./gl.js":135,"./gom-deva":136,"./gom-deva.js":136,"./gom-latn":137,"./gom-latn.js":137,"./gu":138,"./gu.js":138,"./he":139,"./he.js":139,"./hi":140,"./hi.js":140,"./hr":141,"./hr.js":141,"./hu":142,"./hu.js":142,"./hy-am":143,"./hy-am.js":143,"./id":144,"./id.js":144,"./is":145,"./is.js":145,"./it":146,"./it-ch":147,"./it-ch.js":147,"./it.js":146,"./ja":148,"./ja.js":148,"./jv":149,"./jv.js":149,"./ka":150,"./ka.js":150,"./kk":151,"./kk.js":151,"./km":152,"./km.js":152,"./kn":153,"./kn.js":153,"./ko":154,"./ko.js":154,"./ku":155,"./ku.js":155,"./ky":156,"./ky.js":156,"./lb":157,"./lb.js":157,"./lo":158,"./lo.js":158,"./lt":159,"./lt.js":159,"./lv":160,"./lv.js":160,"./me":161,"./me.js":161,"./mi":162,"./mi.js":162,"./mk":163,"./mk.js":163,"./ml":164,"./ml.js":164,"./mn":165,"./mn.js":165,"./mr":166,"./mr.js":166,"./ms":167,"./ms-my":168,"./ms-my.js":168,"./ms.js":167,"./mt":169,"./mt.js":169,"./my":170,"./my.js":170,"./nb":171,"./nb.js":171,"./ne":172,"./ne.js":172,"./nl":173,"./nl-be":174,"./nl-be.js":174,"./nl.js":173,"./nn":175,"./nn.js":175,"./oc-lnc":176,"./oc-lnc.js":176,"./pa-in":177,"./pa-in.js":177,"./pl":178,"./pl.js":178,"./pt":179,"./pt-br":180,"./pt-br.js":180,"./pt.js":179,"./ro":181,"./ro.js":181,"./ru":182,"./ru.js":182,"./sd":183,"./sd.js":183,"./se":184,"./se.js":184,"./si":185,"./si.js":185,"./sk":186,"./sk.js":186,"./sl":187,"./sl.js":187,"./sq":188,"./sq.js":188,"./sr":189,"./sr-cyrl":190,"./sr-cyrl.js":190,"./sr.js":189,"./ss":191,"./ss.js":191,"./sv":192,"./sv.js":192,"./sw":193,"./sw.js":193,"./ta":194,"./ta.js":194,"./te":195,"./te.js":195,"./tet":196,"./tet.js":196,"./tg":197,"./tg.js":197,"./th":198,"./th.js":198,"./tk":199,"./tk.js":199,"./tl-ph":200,"./tl-ph.js":200,"./tlh":201,"./tlh.js":201,"./tr":202,"./tr.js":202,"./tzl":203,"./tzl.js":203,"./tzm":204,"./tzm-latn":205,"./tzm-latn.js":205,"./tzm.js":204,"./ug-cn":206,"./ug-cn.js":206,"./uk":207,"./uk.js":207,"./ur":208,"./ur.js":208,"./uz":209,"./uz-latn":210,"./uz-latn.js":210,"./uz.js":209,"./vi":211,"./vi.js":211,"./x-pseudo":212,"./x-pseudo.js":212,"./yo":213,"./yo.js":213,"./zh-cn":214,"./zh-cn.js":214,"./zh-hk":215,"./zh-hk.js":215,"./zh-mo":216,"./zh-mo.js":216,"./zh-tw":217,"./zh-tw.js":217};function a(e){var t=c(e);return n(t)}function c(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=c,e.exports=a,a.id=304},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.default||e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default={today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},e.exports=t.default},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=((r=n(219))&&r.__esModule?r:{default:r}).default;t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.warning=a,t.note=c,t.resetWarned=function(){r={}},t.call=o,t.warningOnce=i,t.noteOnce=function(e,t){o(c,e,t)},t.default=void 0;var r={};function a(e,t){0}function c(e,t){0}function o(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}function i(e,t){o(a,e,t)}var l=i;t.default=l},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=((r=n(218))&&r.__esModule?r:{default:r}).default;t.default=a},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.withConfigConsumer=function(e){return function(t){var n=function(n){return a.createElement(d,null,(function(r){var c=e.prefixCls,o=(0,r.getPrefixCls)(c,n.prefixCls);return a.createElement(t,s({},r,n,{prefixCls:o}))}))},r=t.constructor,c=r&&r.displayName||t.name||"Component";return n.displayName="withConfigConsumer(".concat(c,")"),n}},t.ConfigConsumer=t.ConfigContext=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),c=i(n(51)),o=i(n(314));function i(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=(0,c.default)({getPrefixCls:function(e,t){return t||"ant-".concat(e)},renderEmpty:o.default});t.ConfigContext=u;var d=u.Consumer;t.ConfigConsumer=d},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0),a=(o(r),o(n(1))),c=o(n(313));o(n(221));function o(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}t.default=function(e,t){var n,o,d="__create-react-context-"+(0,c.default)()+"__",f=function(e){function n(){var t,r;i(this,n);for(var a=arguments.length,c=Array(a),o=0;o<a;o++)c[o]=arguments[o];return t=r=l(this,e.call.apply(e,[this].concat(c))),r.emitter=u(r.props.value),l(r,t)}return s(n,e),n.prototype.getChildContext=function(){var e;return(e={})[d]=this.emitter,e},n.prototype.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n=this.props.value,r=e.value,a=void 0;((c=n)===(o=r)?0!==c||1/c==1/o:c!=c&&o!=o)?a=0:(a="function"==typeof t?t(n,r):1073741823,0!==(a|=0)&&this.emitter.set(e.value,a))}var c,o},n.prototype.render=function(){return this.props.children},n}(r.Component);f.childContextTypes=((n={})[d]=a.default.object.isRequired,n);var h=function(t){function n(){var e,r;i(this,n);for(var a=arguments.length,c=Array(a),o=0;o<a;o++)c[o]=arguments[o];return e=r=l(this,t.call.apply(t,[this].concat(c))),r.state={value:r.getValue()},r.onUpdate=function(e,t){0!=((0|r.observedBits)&t)&&r.setState({value:r.getValue()})},l(r,e)}return s(n,t),n.prototype.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?1073741823:t},n.prototype.componentDidMount=function(){this.context[d]&&this.context[d].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?1073741823:e},n.prototype.componentWillUnmount=function(){this.context[d]&&this.context[d].off(this.onUpdate)},n.prototype.getValue=function(){return this.context[d]?this.context[d].get():e},n.prototype.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(r.Component);return h.contextTypes=((o={})[d]=a.default.object,o),{Provider:f,Consumer:h}},e.exports=t.default},function(e,t,n){"use strict";(function(t){var n="__global_unique_id__";e.exports=function(){return t[n]=(t[n]||0)+1}}).call(this,n(39))},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,c=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=(a=n(315))&&a.__esModule?a:{default:a},i=n(12);function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}var s=function(e){return c.createElement(i.ConfigConsumer,null,(function(t){var n=(0,t.getPrefixCls)("empty");switch(e){case"Table":case"List":return c.createElement(o.default,{image:o.default.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return c.createElement(o.default,{image:o.default.PRESENTED_IMAGE_SIMPLE,className:"".concat(n,"-small")});default:return c.createElement(o.default,null)}}))};t.default=s},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),c=u(n(3)),o=n(12),i=u(n(48)),l=u(n(316)),s=u(n(317));function u(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},m=a.createElement(l.default,null),p=a.createElement(s.default,null),v=function(e){return a.createElement(o.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.className,o=e.prefixCls,l=e.image,s=void 0===l?m:l,u=e.description,d=e.children,v=e.imageStyle,_=h(e,["className","prefixCls","image","description","children","imageStyle"]);return a.createElement(i.default,{componentName:"Empty"},(function(e){var t,i,l,h=n("empty",o),m=void 0!==u?u:e.description,y="string"==typeof m?m:"empty",M=null;return M="string"==typeof s?a.createElement("img",{alt:y,src:s}):s,a.createElement("div",f({className:(0,c.default)(h,(t={},i="".concat(h,"-normal"),l=s===p,i in t?Object.defineProperty(t,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):t[i]=l,t),r)},_),a.createElement("div",{className:"".concat(h,"-image"),style:v},M),m&&a.createElement("p",{className:"".concat(h,"-description")},m),d&&a.createElement("div",{className:"".concat(h,"-footer")},d))}))}))};v.PRESENTED_IMAGE_DEFAULT=m,v.PRESENTED_IMAGE_SIMPLE=p;var _=v;t.default=_},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0));function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}var o=function(){return a.createElement("svg",{width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("g",{transform:"translate(24 31.67)"},a.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),a.createElement("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"}),a.createElement("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),a.createElement("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"}),a.createElement("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"})),a.createElement("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"}),a.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},a.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),a.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))};t.default=o},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0));function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}var o=function(){return a.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},a.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},a.createElement("ellipse",{fill:"#F5F5F5",cx:"32",cy:"33",rx:"32",ry:"7"}),a.createElement("g",{fillRule:"nonzero",stroke:"#D9D9D9"},a.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),a.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:"#FAFAFA"}))))};t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=h(n(0)),a=h(n(1)),c=n(18),o=d(n(3)),i=d(n(19)),l=d(n(32)),s=d(n(74)),u=n(12);function d(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function h(e){if(e&&e.__esModule)return e;if(null===e||"object"!==m(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e){return function(e){if(Array.isArray(e))return _(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return _(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function M(e,t){return(M=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=z(e);if(t){var a=z(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?L(e):t}function L(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&M(e,t)}(d,e);var t,n,a,c=b(d);function d(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),(t=c.call(this,e)).cancelValue=function(e){t.setState((function(t){return{registeredValues:t.registeredValues.filter((function(t){return t!==e}))}}))},t.registerValue=function(e){t.setState((function(t){var n=t.registeredValues;return{registeredValues:[].concat(v(n),[e])}}))},t.toggleOption=function(e){var n=t.state.registeredValues,r=t.state.value.indexOf(e.value),a=v(t.state.value);-1===r?a.push(e.value):a.splice(r,1),"value"in t.props||t.setState({value:a});var c=t.props.onChange;if(c){var o=t.getOptions();c(a.filter((function(e){return-1!==n.indexOf(e)})).sort((function(e,t){return o.findIndex((function(t){return t.value===e}))-o.findIndex((function(e){return e.value===t}))})))}},t.renderGroup=function(e){var n=e.getPrefixCls,a=L(t),c=a.props,i=a.state,u=c.prefixCls,d=c.className,f=c.style,h=c.options,m=w(c,["prefixCls","className","style","options"]),v=n("checkbox",u),_="".concat(v,"-group"),y=(0,l.default)(m,["children","defaultValue","value","onChange","disabled"]),M=c.children;h&&h.length>0&&(M=t.getOptions().map((function(e){return r.createElement(s.default,{prefixCls:v,key:e.value.toString(),disabled:"disabled"in e?e.disabled:c.disabled,value:e.value,checked:-1!==i.value.indexOf(e.value),onChange:e.onChange,className:"".concat(_,"-item")},e.label)})));var b=(0,o.default)(_,d);return r.createElement("div",p({className:b,style:f},y),M)},t.state={value:e.value||e.defaultValue||[],registeredValues:[]},t}return t=d,a=[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value||[]}:null}}],(n=[{key:"getChildContext",value:function(){return{checkboxGroup:{toggleOption:this.toggleOption,value:this.state.value,disabled:this.props.disabled,name:this.props.name,registerValue:this.registerValue,cancelValue:this.cancelValue}}}},{key:"shouldComponentUpdate",value:function(e,t){return!(0,i.default)(this.props,e)||!(0,i.default)(this.state,t)}},{key:"getOptions",value:function(){return this.props.options.map((function(e){return"string"==typeof e?{label:e,value:e}:e}))}},{key:"render",value:function(){return r.createElement(u.ConfigConsumer,null,this.renderGroup)}}])&&y(t.prototype,n),a&&y(t,a),d}(r.Component);k.defaultProps={options:[]},k.propTypes={defaultValue:a.array,value:a.array,options:a.array.isRequired,onChange:a.func},k.childContextTypes={checkboxGroup:a.any},(0,c.polyfill)(k);var H=k;t.default=H},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=f(n(0)),a=u(n(3)),c=f(n(1)),o=n(12),i=u(n(224)),l=n(49),s=f(n(323));function u(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function f(e){if(e&&e.__esModule)return e;if(null===e||"object"!==h(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=g(e);if(t){var a=g(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return b(this,n)}}function b(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var L=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},z=(0,l.tuple)("top","middle","bottom","stretch"),w=(0,l.tuple)("start","end","center","space-around","space-between"),k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(u,e);var t,n,c,l=M(u);function u(){var e;return v(this,u),(e=l.apply(this,arguments)).state={screens:{}},e.renderRow=function(t){var n,c=t.getPrefixCls,o=e.props,l=o.prefixCls,s=o.type,u=o.justify,d=o.align,f=o.className,h=o.style,v=o.children,_=L(o,["prefixCls","type","justify","align","className","style","children"]),y=c("row",l),M=e.getGutter(),b=(0,a.default)((p(n={},y,!s),p(n,"".concat(y,"-").concat(s),s),p(n,"".concat(y,"-").concat(s,"-").concat(u),s&&u),p(n,"".concat(y,"-").concat(s,"-").concat(d),s&&d),n),f),g=m(m(m({},M[0]>0?{marginLeft:M[0]/-2,marginRight:M[0]/-2}:{}),M[1]>0?{marginTop:M[1]/-2,marginBottom:M[1]/-2}:{}),h),z=m({},_);return delete z.gutter,r.createElement(i.default.Provider,{value:{gutter:M}},r.createElement("div",m({},z,{className:b,style:g}),v))},e}return t=u,(n=[{key:"componentDidMount",value:function(){var e=this;this.token=s.default.subscribe((function(t){var n=e.props.gutter;("object"===h(n)||Array.isArray(n)&&("object"===h(n[0])||"object"===h(n[1])))&&e.setState({screens:t})}))}},{key:"componentWillUnmount",value:function(){s.default.unsubscribe(this.token)}},{key:"getGutter",value:function(){var e=[0,0],t=this.props.gutter,n=this.state.screens;return(Array.isArray(t)?t:[t,0]).forEach((function(t,r){if("object"===h(t))for(var a=0;a<s.responsiveArray.length;a++){var c=s.responsiveArray[a];if(n[c]&&void 0!==t[c]){e[r]=t[c];break}}else e[r]=t||0})),e}},{key:"render",value:function(){return r.createElement(o.ConfigConsumer,null,this.renderRow)}}])&&_(t.prototype,n),c&&_(t,c),u}(r.Component);t.default=k,k.defaultProps={gutter:0},k.propTypes={type:c.oneOf(["flex"]),align:c.oneOf(z),justify:c.oneOf(w),className:c.string,children:c.node,gutter:c.oneOfType([c.object,c.number,c.array]),prefixCls:c.string}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var c;if(Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.responsiveMap=t.responsiveArray=void 0,"undefined"!=typeof window){window.matchMedia||(window.matchMedia=function(e){return{media:e,matches:!1,addListener:function(){},removeListener:function(){}}}),c=n(324)}t.responsiveArray=["xxl","xl","lg","md","sm","xs"];var o={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"};t.responsiveMap=o;var i=[],l=-1,s={},u={dispatch:function(e){return s=e,!(i.length<1)&&(i.forEach((function(e){e.func(s)})),!0)},subscribe:function(e){0===i.length&&this.register();var t=(++l).toString();return i.push({token:t,func:e}),e(s),t},unsubscribe:function(e){0===(i=i.filter((function(t){return t.token!==e}))).length&&this.unregister()},unregister:function(){Object.keys(o).map((function(e){return c.unregister(o[e])}))},register:function(){var e=this;Object.keys(o).map((function(t){return c.register(o[t],{match:function(){var n=a(a({},s),r({},t,!0));e.dispatch(n)},unmatch:function(){var n=a(a({},s),r({},t,!1));e.dispatch(n)},destroy:function(){}})}))}};t.default=u},function(e,t,n){var r=n(325);e.exports=new r},function(e,t,n){var r=n(326),a=n(225),c=a.each,o=a.isFunction,i=a.isArray;function l(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}l.prototype={constructor:l,register:function(e,t,n){var a=this.queries,l=n&&this.browserIsIncapable;return a[e]||(a[e]=new r(e,l)),o(t)&&(t={match:t}),i(t)||(t=[t]),c(t,(function(t){o(t)&&(t={match:t}),a[e].addHandler(t)})),this},unregister:function(e,t){var n=this.queries[e];return n&&(t?n.removeHandler(t):(n.clear(),delete this.queries[e])),this}},e.exports=l},function(e,t,n){var r=n(327),a=n(225).each;function c(e,t){this.query=e,this.isUnconditional=t,this.handlers=[],this.mql=window.matchMedia(e);var n=this;this.listener=function(e){n.mql=e.currentTarget||e,n.assess()},this.mql.addListener(this.listener)}c.prototype={constuctor:c,addHandler:function(e){var t=new r(e);this.handlers.push(t),this.matches()&&t.on()},removeHandler:function(e){var t=this.handlers;a(t,(function(n,r){if(n.equals(e))return n.destroy(),!t.splice(r,1)}))},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){a(this.handlers,(function(e){e.destroy()})),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var e=this.matches()?"on":"off";a(this.handlers,(function(t){t[e]()}))}},e.exports=c},function(e,t){function n(e){this.options=e,!e.deferSetup&&this.setup()}n.prototype={constructor:n,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(e){return this.options===e||this.options.match===e}},e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(0)),a=u(n(1)),c=l(n(3)),o=l(n(224)),i=n(12);function l(e){return e&&e.__esModule?e:{default:e}}function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function u(e){if(e&&e.__esModule)return e;if(null===e||"object"!==h(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var a=b(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?M(e):t}function M(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},L=a.oneOfType([a.object,a.number]),z=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(s,e);var t,n,a,l=_(s);function s(){var e;return m(this,s),(e=l.apply(this,arguments)).renderCol=function(t){var n,a=t.getPrefixCls,i=M(e).props,l=i.prefixCls,s=i.span,u=i.order,m=i.offset,p=i.push,v=i.pull,_=i.className,y=i.children,b=g(i,["prefixCls","span","order","offset","push","pull","className","children"]),L=a("col",l),z={};["xs","sm","md","lg","xl","xxl"].forEach((function(e){var t,n={},r=i[e];"number"==typeof r?n.span=r:"object"===h(r)&&(n=r||{}),delete b[e],z=f(f({},z),(d(t={},"".concat(L,"-").concat(e,"-").concat(n.span),void 0!==n.span),d(t,"".concat(L,"-").concat(e,"-order-").concat(n.order),n.order||0===n.order),d(t,"".concat(L,"-").concat(e,"-offset-").concat(n.offset),n.offset||0===n.offset),d(t,"".concat(L,"-").concat(e,"-push-").concat(n.push),n.push||0===n.push),d(t,"".concat(L,"-").concat(e,"-pull-").concat(n.pull),n.pull||0===n.pull),t))}));var w=(0,c.default)(L,(d(n={},"".concat(L,"-").concat(s),void 0!==s),d(n,"".concat(L,"-order-").concat(u),u),d(n,"".concat(L,"-offset-").concat(m),m),d(n,"".concat(L,"-push-").concat(p),p),d(n,"".concat(L,"-pull-").concat(v),v),n),_,z);return r.createElement(o.default.Consumer,null,(function(e){var t=e.gutter,n=b.style;return t&&(n=f(f(f({},t[0]>0?{paddingLeft:t[0]/2,paddingRight:t[0]/2}:{}),t[1]>0?{paddingTop:t[1]/2,paddingBottom:t[1]/2}:{}),n)),r.createElement("div",f({},b,{style:n,className:w}),y)}))},e}return t=s,(n=[{key:"render",value:function(){return r.createElement(i.ConfigConsumer,null,this.renderCol)}}])&&p(t.prototype,n),a&&p(t,a),s}(r.Component);t.default=z,z.propTypes={span:a.number,order:a.number,offset:a.number,push:a.number,pull:a.number,className:a.string,children:a.node,xs:L,sm:L,md:L,lg:L,xl:L,xxl:L}},function(e,t,n){var r=n(226),a=n(330),c=n(332),o=Math.max,i=Math.min;e.exports=function(e,t,n){var l,s,u,d,f,h,m=0,p=!1,v=!1,_=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var n=l,r=s;return l=s=void 0,m=t,d=e.apply(r,n)}function M(e){return m=e,f=setTimeout(g,t),p?y(e):d}function b(e){var n=e-h;return void 0===h||n>=t||n<0||v&&e-m>=u}function g(){var e=a();if(b(e))return L(e);f=setTimeout(g,function(e){var n=t-(e-h);return v?i(n,u-(e-m)):n}(e))}function L(e){return f=void 0,_&&l?y(e):(l=s=void 0,d)}function z(){var e=a(),n=b(e);if(l=arguments,s=this,h=e,n){if(void 0===f)return M(h);if(v)return clearTimeout(f),f=setTimeout(g,t),y(h)}return void 0===f&&(f=setTimeout(g,t)),d}return t=c(t)||0,r(n)&&(p=!!n.leading,u=(v="maxWait"in n)?o(c(n.maxWait)||0,t):u,_="trailing"in n?!!n.trailing:_),z.cancel=function(){void 0!==f&&clearTimeout(f),m=0,l=h=s=f=void 0},z.flush=function(){return void 0===f?d:L(a())},z}},function(e,t,n){var r=n(227);e.exports=function(){return r.Date.now()}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(39))},function(e,t,n){var r=n(226),a=n(333),c=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,l=/^0o[0-7]+$/i,s=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(c,"");var n=i.test(e);return n||l.test(e)?s(e.slice(2),n?2:8):o.test(e)?NaN:+e}},function(e,t,n){var r=n(334),a=n(337);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},function(e,t,n){var r=n(228),a=n(335),c=n(336),o=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":o&&o in Object(e)?a(e):c(e)}},function(e,t,n){var r=n(228),a=Object.prototype,c=a.hasOwnProperty,o=a.toString,i=r?r.toStringTag:void 0;e.exports=function(e){var t=c.call(e,i),n=e[i];try{e[i]=void 0;var r=!0}catch(e){}var a=o.call(e);return r&&(t?e[i]=n:delete e[i]),a}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=p(n(1)),a=p(n(0)),c=h(n(3)),o=h(n(32)),i=h(n(17)),l=n(12),s=n(49),u=h(n(347)),d=h(n(348)),f=n(69);function h(e){return e&&e.__esModule?e:{default:e}}function m(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return m=function(){return e},e}function p(e){if(e&&e.__esModule)return e;if(null===e||"object"!==v(e)&&"function"!=typeof e)return{default:e};var t=m();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function M(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function L(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=k(e);if(t){var a=k(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return z(this,n)}}function z(e,t){return!t||"object"!==v(t)&&"function"!=typeof t?w(e):t}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var H=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},T=(0,s.tuple)("line","circle","dashboard"),Y=(0,s.tuple)("normal","exception","active","success"),S=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(h,e);var t,n,r,s=L(h);function h(){var e;return M(this,h),(e=s.apply(this,arguments)).renderProgress=function(t){var n,r,i=t.getPrefixCls,l=w(e).props,s=l.prefixCls,f=l.className,h=l.size,m=l.type,p=l.showInfo,v=H(l,["prefixCls","className","size","type","showInfo"]),M=i("progress",s),b=e.getProgressStatus(),g=e.renderProcessInfo(M,b);"line"===m?r=a.createElement(u.default,y({},e.props,{prefixCls:M}),g):"circle"!==m&&"dashboard"!==m||(r=a.createElement(d.default,y({},e.props,{prefixCls:M,progressStatus:b}),g));var L=(0,c.default)(M,(_(n={},"".concat(M,"-").concat("dashboard"===m?"circle":m),!0),_(n,"".concat(M,"-status-").concat(b),!0),_(n,"".concat(M,"-show-info"),p),_(n,"".concat(M,"-").concat(h),h),n),f);return a.createElement("div",y({},(0,o.default)(v,["status","format","trailColor","successPercent","strokeWidth","width","gapDegree","gapPosition","strokeColor","strokeLinecap","percent"]),{className:L}),r)},e}return t=h,(n=[{key:"getPercentNumber",value:function(){var e=this.props,t=e.successPercent,n=e.percent,r=void 0===n?0:n;return parseInt(void 0!==t?t.toString():r.toString(),10)}},{key:"getProgressStatus",value:function(){var e=this.props.status;return Y.indexOf(e)<0&&this.getPercentNumber()>=100?"success":e||"normal"}},{key:"renderProcessInfo",value:function(e,t){var n,r=this.props,c=r.showInfo,o=r.format,l=r.type,s=r.percent,u=r.successPercent;if(!c)return null;var d="circle"===l||"dashboard"===l?"":"-circle";return o||"exception"!==t&&"success"!==t?n=(o||function(e){return"".concat(e,"%")})((0,f.validProgress)(s),(0,f.validProgress)(u)):"exception"===t?n=a.createElement(i.default,{type:"close".concat(d),theme:"line"===l?"filled":"outlined"}):"success"===t&&(n=a.createElement(i.default,{type:"check".concat(d),theme:"line"===l?"filled":"outlined"})),a.createElement("span",{className:"".concat(e,"-text"),title:"string"==typeof n?n:void 0},n)}},{key:"render",value:function(){return a.createElement(l.ConfigConsumer,null,this.renderProgress)}}])&&b(t.prototype,n),r&&b(t,r),h}(a.Component);t.default=S,S.defaultProps={type:"line",percent:0,showInfo:!0,trailColor:"#f3f3f3",size:"default",gapDegree:0,strokeLinecap:"round"},S.propTypes={status:r.oneOf(Y),type:r.oneOf(T),showInfo:r.bool,percent:r.number,width:r.number,strokeWidth:r.number,strokeLinecap:r.oneOf(["round","square"]),strokeColor:r.oneOfType([r.string,r.object]),trailColor:r.string,format:r.func,gapDegree:r.number}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="0 0 1024 1024",a="64 64 896 896",c="fill",o="outline",i="twotone";function l(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return{tag:"svg",attrs:{viewBox:e,focusable:!1},children:t.map((function(e){return Array.isArray(e)?{tag:"path",attrs:{fill:e[0],d:e[1]}}:{tag:"path",attrs:{d:e}}}))}}function s(e,t,n){return{name:e,theme:t,icon:n}}t.AccountBookFill=s("account-book",c,l(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM648.3 426.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V752c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z")),t.AlertFill=s("alert",c,l(a,"M512 244c176.18 0 319 142.82 319 319v233a32 32 0 0 1-32 32H225a32 32 0 0 1-32-32V563c0-176.18 142.82-319 319-319zM484 68h56a8 8 0 0 1 8 8v96a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8V76a8 8 0 0 1 8-8zM177.25 191.66a8 8 0 0 1 11.32 0l67.88 67.88a8 8 0 0 1 0 11.31l-39.6 39.6a8 8 0 0 1-11.31 0l-67.88-67.88a8 8 0 0 1 0-11.31l39.6-39.6zm669.6 0l39.6 39.6a8 8 0 0 1 0 11.3l-67.88 67.9a8 8 0 0 1-11.32 0l-39.6-39.6a8 8 0 0 1 0-11.32l67.89-67.88a8 8 0 0 1 11.31 0zM192 892h640a32 32 0 0 1 32 32v24a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-24a32 32 0 0 1 32-32zm148-317v253h64V575h-64z")),t.AlipaySquareFill=s("alipay-square",c,l(a,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm29.4 663.2S703 689.4 598.7 639.5C528.8 725.2 438.6 777.3 345 777.3c-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9 114.3 38.2 140.2 40.2 140.2 40.2v122.3z")),t.AliwangwangFill=s("aliwangwang",c,l(a,"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-325.2 79c0 20.4-16.6 37.1-37.1 37.1-20.4 0-37.1-16.7-37.1-37.1v-55.1c0-20.4 16.6-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1zm175.2 0c0 20.4-16.6 37.1-37.1 37.1S644 476.8 644 456.4v-55.1c0-20.4 16.7-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1z")),t.AlipayCircleFill=s("alipay-circle",c,l(a,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z")),t.AmazonCircleFill=s("amazon-circle",c,l(a,"M485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm35.8 262.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9 4.7-12.2 11.8-23.9 21.4-35 9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7z")),t.AndroidFill=s("android",c,l(a,"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z")),t.AmazonSquareFill=s("amazon-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM547.8 326.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9s11.8-23.9 21.4-35c9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7zM485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4z")),t.ApiFill=s("api",c,l(a,"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 68.9-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2z")),t.AppstoreFill=s("appstore",c,l(a,"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zM464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z")),t.AudioFill=s("audio",c,l(a,"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm330-170c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z")),t.AppleFill=s("apple",c,l(a,"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-105.1-305c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z")),t.BackwardFill=s("backward",c,l(r,"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z")),t.BankFill=s("bank",c,l(a,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374z")),t.BehanceCircleFill=s("behance-circle",c,l(a,"M420.3 470.3c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1a50.5 50.5 0 0 0 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm86.5 286.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7z")),t.BellFill=s("bell",c,l(a,"M816 768h-24V428c0-141.1-104.3-257.8-240-277.2V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.8C336.3 170.2 232 286.9 232 428v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48z")),t.BehanceSquareFill=s("behance-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z")),t.BookFill=s("book",c,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM668 345.9L621.5 312 572 347.4V124h96v221.9z")),t.BoxPlotFill=s("box-plot",c,l(a,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H448v432h344c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-728 80v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h152V296H232c-4.4 0-8 3.6-8 8z")),t.BugFill=s("bug",c,l(a,"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z","M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5a281.38 281.38 0 0 0 123.2-149.5A120.4 120.4 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.CalculatorFill=s("calculator",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM440.2 765h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zm7.8-382c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48zm328 369c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-104c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-265c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48z")),t.BulbFill=s("bulb",c,l(a,"M348 676.1C250 619.4 184 513.4 184 392c0-181.1 146.9-328 328-328s328 146.9 328 328c0 121.4-66 227.4-164 284.1V792c0 17.7-14.3 32-32 32H380c-17.7 0-32-14.3-32-32V676.1zM392 888h240c4.4 0 8 3.6 8 8v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32v-32c0-4.4 3.6-8 8-8z")),t.BuildFill=s("build",c,l(a,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM612 746H412V546h200v200zm268-268H680V278h200v200z")),t.CalendarFill=s("calendar",c,l(a,"M112 880c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V460H112v420zm768-696H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v176h800V216c0-17.7-14.3-32-32-32z")),t.CameraFill=s("camera",c,l(a,"M864 260H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 260H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V340c0-44.2-35.8-80-80-80zM512 716c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160zm-96-160a96 96 0 1 0 192 0 96 96 0 1 0-192 0z")),t.CarFill=s("car",c,l(a,"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM220 418l72.7-199.9.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220z")),t.CaretDownFill=s("caret-down",c,l(r,"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z")),t.CaretLeftFill=s("caret-left",c,l(r,"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z")),t.CaretRightFill=s("caret-right",c,l(r,"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z")),t.CarryOutFill=s("carry-out",c,l(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM694.5 432.7L481.9 725.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z")),t.CaretUpFill=s("caret-up",c,l(r,"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z")),t.CheckCircleFill=s("check-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z")),t.CheckSquareFill=s("check-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM695.5 365.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L308.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H689c6.5 0 10.3 7.4 6.5 12.7z")),t.ChromeFill=s("chrome",c,l(a,"M371.8 512c0 77.5 62.7 140.2 140.2 140.2S652.2 589.5 652.2 512 589.5 371.8 512 371.8 371.8 434.4 371.8 512zM900 362.4l-234.3 12.1c63.6 74.3 64.6 181.5 11.1 263.7l-188 289.2c78 4.2 158.4-12.9 231.2-55.2 180-104 253-322.1 180-509.8zM320.3 591.9L163.8 284.1A415.35 415.35 0 0 0 96 512c0 208 152.3 380.3 351.4 410.8l106.9-209.4c-96.6 18.2-189.9-34.8-234-121.5zm218.5-285.5l344.4 18.1C848 254.7 792.6 194 719.8 151.7 653.9 113.6 581.5 95.5 510.5 96c-122.5.5-242.2 55.2-322.1 154.5l128.2 196.9c32-91.9 124.8-146.7 222.2-141z")),t.CiCircleFill=s("ci-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-63.6 656c-103 0-162.4-68.6-162.4-182.6v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-4-46.1-37.6-77.6-87-77.6-61.1 0-95.6 45.4-95.6 126.9v49.3c0 80.3 34.5 125.1 95.6 125.1 49.3 0 82.8-29.5 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z")),t.ClockCircleFill=s("clock-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm176.5 585.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z")),t.CloseCircleFill=s("close-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 0 1-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z")),t.CloudFill=s("cloud",c,l(a,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3z")),t.CloseSquareFill=s("close-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM676.1 657.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9z")),t.CodeSandboxSquareFill=s("code-sandbox-square",c,l(a,"M307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM755.7 653.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zm-223.9 83.7l97.3-56.2v-94.1l87-49.5V418.5L531.8 525zm-20-352L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8z")),t.CodeSandboxCircleFill=s("code-sandbox-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm243.7 589.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zM307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zm203.9-151.8L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8zm20 352l97.3-56.2v-94.1l87-49.5V418.5L531.8 525z")),t.CodeFill=s("code",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM513.1 518.1l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3zM716 673c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8h185c4.1 0 7.5 3.6 7.5 8v48z")),t.CompassFill=s("compass",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM327.3 702.4c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2l98.7-225.5 132.1 132.1-225.5 98.7zm375.1-375.1l-98.7 225.5-132.1-132.1L697.1 322c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z")),t.CodepenCircleFill=s("codepen-circle",c,l(a,"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z")),t.CodepenSquareFill=s("codepen-square",c,l(a,"M723.1 428L535.9 303.4v111.3l103.6 69.1zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zm23.9 154.2v111.3L723.1 597l-83.6-55.8zm-151.4-69.1L300.9 597l187.2 124.6V610.3l-103.6-69.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-90 485c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-47.8-44.6v-79.8l-59.8 39.9zm-460.4-79.8v79.8l59.8-39.9zm206.3-57.9V303.4L300.9 428l83.6 55.8z")),t.ContactsFill=s("contacts",c,l(a,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM661 736h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.6-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H363a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112 61.5 0 111.4 50.1 111.4 112 0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zM512 474c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52c28.5 0 51.7-23.3 51.7-52s-23.2-52-51.7-52z")),t.ControlFill=s("control",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM404 683v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99zm279.6-143.9c.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1zM616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM403.4 566.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5z")),t.ContainerFill=s("container",c,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v529c0-.6.4-1 1-1h219.3l5.2 24.7C397.6 708.5 450.8 752 512 752s114.4-43.5 126.4-103.3l5.2-24.7H863c.6 0 1 .4 1 1V96c0-17.7-14.3-32-32-32zM712 493c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm0-160c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm151 354H694.1c-11.6 32.8-32 62.3-59.1 84.7-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H161c-.6 0-1-.4-1-1v242c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V686c0 .6-.4 1-1 1z")),t.CopyFill=s("copy",c,l(a,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM382 896h-.2L232 746.2v-.2h150v150z")),t.CopyrightCircleFill=s("copyright-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm5.4 670c-110 0-173.4-73.2-173.4-194.9v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.6-3.2-8-7.4-4-49.5-40-83.4-93-83.4-65.3 0-102.1 48.5-102.1 135.5v52.6c0 85.7 36.9 133.6 102.1 133.6 52.8 0 88.7-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4z")),t.CreditCardFill=s("credit-card",c,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v160h896V192c0-17.7-14.3-32-32-32zM64 832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V440H64v392zm579-184c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72z")),t.CrownFill=s("crown",c,l(a,"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zM512 734.2c-62.1 0-112.6-50.5-112.6-112.6S449.9 509 512 509s112.6 50.5 112.6 112.6S574.1 734.2 512 734.2zm0-160.9c-26.6 0-48.2 21.6-48.2 48.3 0 26.6 21.6 48.3 48.2 48.3s48.2-21.6 48.2-48.3c0-26.6-21.6-48.3-48.2-48.3z")),t.CustomerServiceFill=s("customer-service",c,l(a,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384z")),t.DashboardFill=s("dashboard",c,l(a,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM482 232c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.5l-31.1 31.1a8.03 8.03 0 0 1-11.3 0L261.7 352a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.6l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.1 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44z")),t.DeleteFill=s("delete",c,l(a,"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-200 0H360v-72h304v72z")),t.DiffFill=s("diff",c,l(a,"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z")),t.DingtalkCircleFill=s("dingtalk-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm227 385.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z")),t.DatabaseFill=s("database",c,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM288 232c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm128-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm128-168c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z")),t.DingtalkSquareFill=s("dingtalk-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM739 449.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z")),t.DislikeFill=s("dislike",c,l(a,"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z")),t.DollarCircleFill=s("dollar-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm22.3 665.2l.2 31.7c0 4.4-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4C401.3 723 359.5 672.4 355 617.4c-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.7 29.8 55.4 74.1 61.3V533.9l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-72.9 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.9 46.9 125.9 109.2.5 4.7-3.2 8.8-8 8.8h-44.9c-4 0-7.4-3-7.9-6.9-4-29.2-27.4-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 108.9 116.4 0 75.3-56 117.3-134.3 124.1zM426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-36.9 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.8-.6-5.6-1.3-8.8-2.2V677c42.6-3.8 72-27.2 72-66.4 0-30.7-15.9-50.7-63.2-65.1z")),t.DownCircleFill=s("down-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm184.5 353.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z")),t.DownSquareFill=s("down-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM696.5 412.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z")),t.DribbbleCircleFill=s("dribbble-circle",c,l(a,"M675.1 328.3a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6zm47.7-11.9c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 736c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm53.1-346.2c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm30.6 82.5c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4z")),t.DribbbleSquareFill=s("dribbble-square",c,l(a,"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z")),t.DropboxCircleFill=s("dropbox-circle",c,l(a,"M663.8 455.5zm-151.5-93.8l-151.8 93.8 151.8 93.9 151.5-93.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm151.2 595.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1z")),t.DropboxSquareFill=s("dropbox-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM663.2 659.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1zM512.3 361.7l-151.8 93.8 151.8 93.9 151.5-93.9zm151.5 93.8z")),t.EnvironmentFill=s("environment",c,l(a,"M512 327c-29.9 0-58 11.6-79.2 32.8A111.6 111.6 0 0 0 400 439c0 29.9 11.7 58 32.8 79.2A111.6 111.6 0 0 0 512 551c29.9 0 58-11.7 79.2-32.8C612.4 497 624 468.9 624 439c0-29.9-11.6-58-32.8-79.2S541.9 327 512 327zm342.6-37.9a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z")),t.EditFill=s("edit",c,l(a,"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9z")),t.ExclamationCircleFill=s("exclamation-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.EuroCircleFill=s("euro-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm63.5 375.8c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8h-136c-.3 4.4-.3 9.1-.3 13.8v36h136.2c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H444.9c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.2 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.3 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.8.3-12.8H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.7c19.7-94.2 92-149.9 198.6-149.9 20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346h.1c0 5.1-4.6 8.8-9.6 7.8-14.7-2.9-31.8-4.4-51.7-4.4-65.4 0-110.4 33.5-127.6 90.4h128.4z")),t.ExperimentFill=s("experiment",c,l(a,"M218.9 636.3l42.6 26.6c.1.1.3.2.4.3l12.7 8 .3.3a186.9 186.9 0 0 0 94.1 25.1c44.9 0 87.2-15.7 121-43.8a256.27 256.27 0 0 1 164.9-59.9c52.3 0 102.2 15.7 144.6 44.5l7.9 5-111.6-289V179.8h63.5c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8H264.7c-4.4 0-8 3.6-8 8v51.9c0 4.4 3.6 8 8 8h63.5v173.6L218.9 636.3zm333-203.1c22 0 39.9 17.9 39.9 39.9S573.9 513 551.9 513 512 495.1 512 473.1s17.9-39.9 39.9-39.9zM878 825.1l-29.9-77.4-85.7-53.5-.1.1c-.7-.5-1.5-1-2.2-1.5l-8.1-5-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-53 0-103.5-16.1-146.2-45.6l-28.9-18.1L146 825.1c-2.8 7.4-4.3 15.2-4.3 23 0 35.2 28.6 63.8 63.8 63.8h612.9c7.9 0 15.7-1.5 23-4.3a63.6 63.6 0 0 0 36.6-82.5z")),t.EyeInvisibleFill=s("eye-invisible",c,l(a,"M508 624a112 112 0 0 0 112-112c0-3.28-.15-6.53-.43-9.74L498.26 623.57c3.21.28 6.45.43 9.74.43zm370.72-458.44L836 122.88a8 8 0 0 0-11.31 0L715.37 232.23Q624.91 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.7 119.43 136.55 191.45L112.56 835a8 8 0 0 0 0 11.31L155.25 889a8 8 0 0 0 11.31 0l712.16-712.12a8 8 0 0 0 0-11.32zM332 512a176 176 0 0 1 258.88-155.28l-48.62 48.62a112.08 112.08 0 0 0-140.92 140.92l-48.62 48.62A175.09 175.09 0 0 1 332 512z","M942.2 486.2Q889.4 375 816.51 304.85L672.37 449A176.08 176.08 0 0 1 445 676.37L322.74 798.63Q407.82 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z")),t.EyeFill=s("eye",c,l(a,"M396 512a112 112 0 1 0 224 0 112 112 0 1 0-224 0zm546.2-25.8C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM508 688c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z")),t.FacebookFill=s("facebook",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-92.4 233.5h-63.9c-50.1 0-59.8 23.8-59.8 58.8v77.1h119.6l-15.6 120.7h-104V912H539.2V602.2H434.9V481.4h104.3v-89c0-103.3 63.1-159.6 155.3-159.6 44.2 0 82.1 3.3 93.2 4.8v107.9z")),t.FastBackwardFill=s("fast-backward",c,l(r,"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FastForwardFill=s("fast-forward",c,l(r,"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FileAddFill=s("file-add",c,l(a,"M480 580H372a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h108v108a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V644h108a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H544V472a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v108zm374.6-291.3c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z")),t.FileExcelFill=s("file-excel",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM575.34 477.84l-61.22 102.3L452.3 477.8a12 12 0 0 0-10.27-5.79h-38.44a12 12 0 0 0-6.4 1.85 12 12 0 0 0-3.75 16.56l82.34 130.42-83.45 132.78a12 12 0 0 0-1.84 6.39 12 12 0 0 0 12 12h34.46a12 12 0 0 0 10.21-5.7l62.7-101.47 62.3 101.45a12 12 0 0 0 10.23 5.72h37.48a12 12 0 0 0 6.48-1.9 12 12 0 0 0 3.62-16.58l-83.83-130.55 85.3-132.47a12 12 0 0 0 1.9-6.5 12 12 0 0 0-12-12h-35.7a12 12 0 0 0-10.29 5.84z")),t.FileExclamationFill=s("file-exclamation",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 784a40 40 0 1 0 0-80 40 40 0 0 0 0 80zm32-152V448a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v184a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8z")),t.FileImageFill=s("file-image",c,l(a,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM400 402c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8 8 0 0 1 12.6 0l136.5 174c4.3 5.2.5 12.9-6.1 12.9zm-94-370V137.8L790.2 326H602z")),t.FileMarkdownFill=s("file-markdown",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM426.13 600.93l59.11 132.97a16 16 0 0 0 14.62 9.5h24.06a16 16 0 0 0 14.63-9.51l59.1-133.35V758a16 16 0 0 0 16.01 16H641a16 16 0 0 0 16-16V486a16 16 0 0 0-16-16h-34.75a16 16 0 0 0-14.67 9.62L512.1 662.2l-79.48-182.59a16 16 0 0 0-14.67-9.61H383a16 16 0 0 0-16 16v272a16 16 0 0 0 16 16h27.13a16 16 0 0 0 16-16V600.93z")),t.FilePdfFill=s("file-pdf",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM633.22 637.26c-15.18-.5-31.32.67-49.65 2.96-24.3-14.99-40.66-35.58-52.28-65.83l1.07-4.38 1.24-5.18c4.3-18.13 6.61-31.36 7.3-44.7.52-10.07-.04-19.36-1.83-27.97-3.3-18.59-16.45-29.46-33.02-30.13-15.45-.63-29.65 8-33.28 21.37-5.91 21.62-2.45 50.07 10.08 98.59-15.96 38.05-37.05 82.66-51.2 107.54-18.89 9.74-33.6 18.6-45.96 28.42-16.3 12.97-26.48 26.3-29.28 40.3-1.36 6.49.69 14.97 5.36 21.92 5.3 7.88 13.28 13 22.85 13.74 24.15 1.87 53.83-23.03 86.6-79.26 3.29-1.1 6.77-2.26 11.02-3.7l11.9-4.02c7.53-2.54 12.99-4.36 18.39-6.11 23.4-7.62 41.1-12.43 57.2-15.17 27.98 14.98 60.32 24.8 82.1 24.8 17.98 0 30.13-9.32 34.52-23.99 3.85-12.88.8-27.82-7.48-36.08-8.56-8.41-24.3-12.43-45.65-13.12zM385.23 765.68v-.36l.13-.34a54.86 54.86 0 0 1 5.6-10.76c4.28-6.58 10.17-13.5 17.47-20.87 3.92-3.95 8-7.8 12.79-12.12 1.07-.96 7.91-7.05 9.19-8.25l11.17-10.4-8.12 12.93c-12.32 19.64-23.46 33.78-33 43-3.51 3.4-6.6 5.9-9.1 7.51a16.43 16.43 0 0 1-2.61 1.42c-.41.17-.77.27-1.13.3a2.2 2.2 0 0 1-1.12-.15 2.07 2.07 0 0 1-1.27-1.91zM511.17 547.4l-2.26 4-1.4-4.38c-3.1-9.83-5.38-24.64-6.01-38-.72-15.2.49-24.32 5.29-24.32 6.74 0 9.83 10.8 10.07 27.05.22 14.28-2.03 29.14-5.7 35.65zm-5.81 58.46l1.53-4.05 2.09 3.8c11.69 21.24 26.86 38.96 43.54 51.31l3.6 2.66-4.39.9c-16.33 3.38-31.54 8.46-52.34 16.85 2.17-.88-21.62 8.86-27.64 11.17l-5.25 2.01 2.8-4.88c12.35-21.5 23.76-47.32 36.05-79.77zm157.62 76.26c-7.86 3.1-24.78.33-54.57-12.39l-7.56-3.22 8.2-.6c23.3-1.73 39.8-.45 49.42 3.07 4.1 1.5 6.83 3.39 8.04 5.55a4.64 4.64 0 0 1-1.36 6.31 6.7 6.7 0 0 1-2.17 1.28z")),t.FilePptFill=s("file-ppt",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM468.53 760v-91.54h59.27c60.57 0 100.2-39.65 100.2-98.12 0-58.22-39.58-98.34-99.98-98.34H424a12 12 0 0 0-12 12v276a12 12 0 0 0 12 12h32.53a12 12 0 0 0 12-12zm0-139.33h34.9c47.82 0 67.19-12.93 67.19-50.33 0-32.05-18.12-50.12-49.87-50.12h-52.22v100.45z")),t.FileTextFill=s("file-text",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM320 482a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h384a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320zm0 136a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h184a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320z")),t.FileWordFill=s("file-word",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 566.1l52.81 197a12 12 0 0 0 11.6 8.9h31.77a12 12 0 0 0 11.6-8.88l74.37-276a12 12 0 0 0 .4-3.12 12 12 0 0 0-12-12h-35.57a12 12 0 0 0-11.7 9.31l-45.78 199.1-49.76-199.32A12 12 0 0 0 528.1 472h-32.2a12 12 0 0 0-11.64 9.1L434.6 680.01 388.5 481.3a12 12 0 0 0-11.68-9.29h-35.39a12 12 0 0 0-3.11.41 12 12 0 0 0-8.47 14.7l74.17 276A12 12 0 0 0 415.6 772h31.99a12 12 0 0 0 11.59-8.9l52.81-197z")),t.FileUnknownFill=s("file-unknown",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm110 227a32 32 0 1 0 0-64 32 32 0 0 0 0 64z")),t.FileZipFill=s("file-zip",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM296 136v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm0 64v160h128V584H296zm48 48h32v64h-32v-64z")),t.FileFill=s("file",c,l(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z")),t.FilterFill=s("filter",c,l(a,"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z")),t.FireFill=s("fire",c,l(a,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9z")),t.FlagFill=s("flag",c,l(a,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32z")),t.FolderAddFill=s("folder-add",c,l(a,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM632 577c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.2 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.8 0 7 3.2 7 7.1V528h84.5c4.1 0 7.5 3.2 7.5 7v42z")),t.FolderFill=s("folder",c,l(a,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32z")),t.FolderOpenFill=s("folder-open",c,l(a,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zm-180 0H238c-13 0-24.8 7.9-29.7 20L136 643.2V256h188.5l119.6 114.4H748V444z")),t.ForwardFill=s("forward",c,l(r,"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z")),t.FrownFill=s("frown",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.FundFill=s("fund",c,l(a,"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 0 1-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 0 1-11.3 0l-36.8-36.8a8.03 8.03 0 0 1 0-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z")),t.FunnelPlotFill=s("funnel-plot",c,l(a,"M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z")),t.GiftFill=s("gift",c,l(a,"M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z")),t.GithubFill=s("github",c,l(a,"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z")),t.GitlabFill=s("gitlab",c,l(a,"M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z")),t.GoldenFill=s("golden",c,l(a,"M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z")),t.GoogleCircleFill=s("google-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm167 633.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9C281.5 589 272 551.6 272 512s9.5-77 26.1-110.1c40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z")),t.GooglePlusCircleFill=s("google-plus-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm36.5 558.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z")),t.GooglePlusSquareFill=s("google-plus-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM548.5 622.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z")),t.GoogleSquareFill=s("google-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM679 697.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9A245.02 245.02 0 0 1 272 512c0-39.6 9.5-77 26.1-110.1 40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z")),t.HddFill=s("hdd",c,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM456 216c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm576-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm96-152c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48z")),t.HeartFill=s("heart",c,l(a,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9z")),t.HighlightFill=s("highlight",c,l(a,"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2z")),t.HomeFill=s("home",c,l(a,"M946.5 505L534.6 93.4a31.93 31.93 0 0 0-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z")),t.HourglassFill=s("hourglass",c,l(a,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194z")),t.Html5Fill=s("html5",c,l(a,"M145.2 96l66 746.6L512 928l299.6-85.4L878.9 96H145.2zm595 177.1l-4.8 47.2-1.7 19.5H382.3l8.2 94.2h335.1l-3.3 24.3-21.2 242.2-1.7 16.2-187 51.6v.3h-1.2l-.3.1v-.1h-.1l-188.6-52L310.8 572h91.1l6.5 73.2 102.4 27.7h.4l102-27.6 11.4-118.6H510.9v-.1H306l-22.8-253.5-1.7-24.3h460.3l-1.6 24.3z")),t.IdcardFill=s("idcard",c,l(a,"M373 411c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52 51.7-23.3 51.7-52-23.2-52-51.7-52zm555-251H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM608 420c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm-86 253h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zm278.9-53H615.1c-3.9 0-7.1-3.6-7.1-8v-48c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48h.1c0 4.4-3.2 8-7.1 8z")),t.IeCircleFill=s("ie-circle",c,l(a,"M693.6 284.4c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm253.9 492.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z")),t.IeSquareFill=s("ie-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM765.9 556.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zm-72.3-272.5c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z")),t.InfoCircleFill=s("info-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.InstagramFill=s("instagram",c,l(a,"M512 378.7c-73.4 0-133.3 59.9-133.3 133.3S438.6 645.3 512 645.3 645.3 585.4 645.3 512 585.4 378.7 512 378.7zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zM512 717.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 306.9 512 306.9 717.1 398.5 717.1 512 625.5 717.1 512 717.1zm213.5-370.7c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.4 47.9 47.9a47.84 47.84 0 0 1-47.9 47.9z")),t.InsuranceFill=s("insurance",c,l(a,"M519.9 358.8h97.9v41.6h-97.9zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM411.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm296.5-49.2l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a5.9 5.9 0 0 1-8.9-1.4L430 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5z")),t.InteractionFill=s("interaction",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z")),t.InterationFill=s("interation",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z")),t.LayoutFill=s("layout",c,l(a,"M384 912h496c17.7 0 32-14.3 32-32V340H384v572zm496-800H384v164h528V144c0-17.7-14.3-32-32-32zm-768 32v736c0 17.7 14.3 32 32 32h176V112H144c-17.7 0-32 14.3-32 32z")),t.LeftCircleFill=s("left-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm104 316.9c0 10.2-4.9 19.9-13.2 25.9L457.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178a8 8 0 0 1 12.7 6.5v46.8z")),t.LeftSquareFill=s("left-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM624 380.9c0 10.2-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.8z")),t.LikeFill=s("like",c,l(a,"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z")),t.LockFill=s("lock",c,l(a,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z")),t.LinkedinFill=s("linkedin",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM349.3 793.7H230.6V411.9h118.7v381.8zm-59.3-434a68.8 68.8 0 1 1 68.8-68.8c-.1 38-30.9 68.8-68.8 68.8zm503.7 434H675.1V608c0-44.3-.8-101.2-61.7-101.2-61.7 0-71.2 48.2-71.2 98v188.9H423.7V411.9h113.8v52.2h1.6c15.8-30 54.5-61.7 112.3-61.7 120.2 0 142.3 79.1 142.3 181.9v209.4z")),t.MailFill=s("mail",c,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-80.8 108.9L531.7 514.4c-7.8 6.1-18.7 6.1-26.5 0L189.6 268.9A7.2 7.2 0 0 1 194 256h648.8a7.2 7.2 0 0 1 4.4 12.9z")),t.MedicineBoxFill=s("medicine-box",c,l(a,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48zm4-372H360v-72h304v72z")),t.MediumCircleFill=s("medium-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm256 253.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z")),t.MediumSquareFill=s("medium-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM768 317.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z")),t.MehFill=s("meh",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.MessageFill=s("message",c,l(a,"M924.3 338.4a447.57 447.57 0 0 0-96.1-143.3 443.09 443.09 0 0 0-143-96.3A443.91 443.91 0 0 0 512 64h-2c-60.5.3-119 12.3-174.1 35.9a444.08 444.08 0 0 0-141.7 96.5 445 445 0 0 0-95 142.8A449.89 449.89 0 0 0 65 514.1c.3 69.4 16.9 138.3 47.9 199.9v152c0 25.4 20.6 46 45.9 46h151.8a447.72 447.72 0 0 0 199.5 48h2.1c59.8 0 117.7-11.6 172.3-34.3A443.2 443.2 0 0 0 827 830.5c41.2-40.9 73.6-88.7 96.3-142 23.5-55.2 35.5-113.9 35.8-174.5.2-60.9-11.6-120-34.8-175.6zM312.4 560c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.4 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48z")),t.MinusCircleFill=s("minus-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z")),t.MinusSquareFill=s("minus-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z")),t.MobileFill=s("mobile",c,l(a,"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z")),t.MoneyCollectFill=s("money-collect",c,l(a,"M911.5 699.7a8 8 0 0 0-10.3-4.8L840 717.2V179c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V762c0 3.3 2.1 6.3 5.3 7.5L501 909.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zm-243.8-377L564 514.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V703c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 322.8c-2.1-3.8-.7-8.7 3.2-10.8 1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 484.2h3.3L599 315.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8z")),t.PauseCircleFill=s("pause-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z")),t.PayCircleFill=s("pay-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm166.6 246.8L567.5 515.6h62c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V603h82c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V717c0 4.4-3.6 8-8 8h-54.3c-4.4 0-8-3.6-8-8v-68.1h-81.7c-4.4 0-8-3.6-8-8V611c0-4.4 3.6-8 8-8h81.7v-41.5h-81.7c-4.4 0-8-3.6-8-8v-29.9c0-4.4 3.6-8 8-8h61.4L345.4 310.8a8.07 8.07 0 0 1 7-11.9h60.7c3 0 5.8 1.7 7.1 4.4l90.6 180h3.4l90.6-180a8 8 0 0 1 7.1-4.4h59.5c4.4 0 8 3.6 8 8 .2 1.4-.2 2.7-.8 3.9z")),t.NotificationFill=s("notification",c,l(a,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.6c-3.7 11.6-5.6 23.9-5.6 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1z")),t.PhoneFill=s("phone",c,l(a,"M885.6 230.2L779.1 123.8a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L549.8 238.4a80.83 80.83 0 0 0-23.8 57.3c0 21.7 8.5 42.1 23.8 57.4l83.8 83.8A393.82 393.82 0 0 1 553.1 553 395.34 395.34 0 0 1 437 633.8L353.2 550a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L123.8 664.5a80.89 80.89 0 0 0-23.8 57.4c0 21.7 8.5 42.1 23.8 57.4l106.3 106.3c24.4 24.5 58.1 38.4 92.7 38.4 7.3 0 14.3-.6 21.2-1.8 134.8-22.2 268.5-93.9 376.4-201.7C828.2 612.8 899.8 479.2 922.3 344c6.8-41.3-6.9-83.8-36.7-113.8z")),t.PictureFill=s("picture",c,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 0 1-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z")),t.PieChartFill=s("pie-chart",c,l(a,"M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 0 0-282.5 117 397.47 397.47 0 0 0-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 0 0 155.6 31.5 398.57 398.57 0 0 0 282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0 0 31.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 0 0 588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z")),t.PlayCircleFill=s("play-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 0 1-12.7-6.5V353.7a8 8 0 0 1 12.7-6.5L656.1 506a7.9 7.9 0 0 1 0 12.9z")),t.PlaySquareFill=s("play-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM641.7 520.8L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6z")),t.PlusCircleFill=s("plus-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z")),t.PlusSquareFill=s("plus-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z")),t.PoundCircleFill=s("pound-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm146 658c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8V722z")),t.PrinterFill=s("printer",c,l(a,"M732 120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v148h440V120zm120 212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM664 844H360V568h304v276zm164-360c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z")),t.ProfileFill=s("profile",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM380 696c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm304 272c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48z")),t.ProjectFill=s("project",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM368 744c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464zm192-280c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184zm192 72c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256z")),t.PushpinFill=s("pushpin",c,l(a,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z")),t.PropertySafetyFill=s("property-safety",c,l(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM648.3 332.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z")),t.QqCircleFill=s("qq-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z")),t.QqSquareFill=s("qq-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM722.5 676.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z")),t.QuestionCircleFill=s("question-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z")),t.ReadFill=s("read",c,l(a,"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM404 553.5c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm416 140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45z")),t.ReconciliationFill=s("reconciliation",c,l(a,"M676 623c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34-15.2-34-34-34zm204-455H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zM448 848H176V616h272v232zm0-296H176v-88h272v88zm20-272v-48h72v-56h64v56h72v48H468zm180 168v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8zm28 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-245c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v96zm-92 61c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z")),t.RedEnvelopeFill=s("red-envelope",c,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM647 470.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4v25.1c0 4.6-3.8 8.4-8.4 8.4h-63.3v28.6h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.6-3.6 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4l-87.5-161c-2.2-4.1-.7-9.1 3.4-11.4 1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.9 141.8 71.9-141.9a8.5 8.5 0 0 1 7.5-4.6h47.8c4.6 0 8.4 3.8 8.4 8.4-.1 1.5-.5 2.9-1.1 4.1zM512.6 323L289 148h446L512.6 323z")),t.RedditCircleFill=s("reddit-circle",c,l(a,"M584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm245 477.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zm-171.3 83c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm72 108a36 36 0 1 0 72 0 36 36 0 1 0-72 0z")),t.RedditSquareFill=s("reddit-square",c,l(a,"M296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm289.7 184.9c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM757 541.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zM584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM368 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0z")),t.RestFill=s("rest",c,l(a,"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zM508 704c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zM291 256l22.4-76h397.2l22.4 76H291zm137 304a80 80 0 1 0 160 0 80 80 0 1 0-160 0z")),t.RightCircleFill=s("right-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm154.7 454.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z")),t.RocketFill=s("rocket",c,l(a,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zM512 352a48.01 48.01 0 0 1 0 96 48.01 48.01 0 0 1 0-96zm116.1 432.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5z")),t.RightSquareFill=s("right-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM658.7 518.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z")),t.SafetyCertificateFill=s("safety-certificate",c,l(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM694.5 340.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z")),t.SaveFill=s("save",c,l(a,"M893.3 293.3L730.7 130.7c-12-12-28.3-18.7-45.3-18.7H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 176h256v112H384V176zm128 554c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zm0-224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80z")),t.ScheduleFill=s("schedule",c,l(a,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.5-91.3l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.2c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.5 12.9 6.6l52.8 73.1 103.7-143.7c3-4.2 7.8-6.6 12.9-6.6H792c6.5.1 10.3 7.5 6.5 12.8z")),t.SecurityScanFill=s("security-scan",c,l(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM626.8 554c-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0 56.3 56.3 56.3 147.5 0 203.8zm-158.54-45.27a80.1 80.1 0 1 0 113.27-113.28 80.1 80.1 0 1 0-113.27 113.28z")),t.SettingFill=s("setting",c,l(a,"M512.5 390.6c-29.9 0-57.9 11.6-79.1 32.8-21.1 21.2-32.8 49.2-32.8 79.1 0 29.9 11.7 57.9 32.8 79.1 21.2 21.1 49.2 32.8 79.1 32.8 29.9 0 57.9-11.7 79.1-32.8 21.1-21.2 32.8-49.2 32.8-79.1 0-29.9-11.7-57.9-32.8-79.1a110.96 110.96 0 0 0-79.1-32.8zm412.3 235.5l-65.4-55.9c3.1-19 4.7-38.4 4.7-57.7s-1.6-38.8-4.7-57.7l65.4-55.9a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a442.5 442.5 0 0 0-79.6-137.7l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.2 28.9c-30-24.6-63.4-44-99.6-57.5l-15.7-84.9a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52-9.4-106.8-9.4-158.8 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.3a353.44 353.44 0 0 0-98.9 57.3l-81.8-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a445.93 445.93 0 0 0-79.6 137.7l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.2 56.5c-3.1 18.8-4.6 38-4.6 57 0 19.2 1.5 38.4 4.6 57l-66 56.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.3 44.8 96.8 79.6 137.7l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.8-29.1c29.8 24.5 63 43.9 98.9 57.3l15.8 85.3a32.05 32.05 0 0 0 25.8 25.7l2.7.5a448.27 448.27 0 0 0 158.8 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c4.3-12.4.6-26.3-9.5-35zm-412.3 52.2c-97.1 0-175.8-78.7-175.8-175.8s78.7-175.8 175.8-175.8 175.8 78.7 175.8 175.8-78.7 175.8-175.8 175.8z")),t.ShopFill=s("shop",c,l(a,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h274V736h128v176h274c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zm-72 568H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm0-568.1H214v-88h596v88z")),t.ShoppingFill=s("shopping",c,l(a,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-208 0H400v-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16z")),t.SketchCircleFill=s("sketch-circle",c,l(a,"M582.3 625.6l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zm-274.7 36L512 684.5l114.4-225.2zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm286.7 380.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-190.5-20.9L512 326.1l-96.2 97.2zM420.3 301.1l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8zm-222.4 7.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3z")),t.SketchSquareFill=s("sketch-square",c,l(a,"M608.2 423.3L512 326.1l-96.2 97.2zm-25.9 202.3l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-81.3 332.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-401.1 15.1L512 684.5l114.4-225.2zm-16.3-151.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3zm126.5-158.2l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8z")),t.SkinFill=s("skin",c,l(a,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44z")),t.SlackCircleFill=s("slack-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm83.7-50.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM579.3 765c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8S529 593.6 529 580.2c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SlackSquareFill=s("slack-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SkypeFill=s("skype",c,l(a,"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-370 162.9c-134.2 0-194.2-66-194.2-115.4 0-25.4 18.7-43.1 44.5-43.1 57.4 0 42.6 82.5 149.7 82.5 54.9 0 85.2-29.8 85.2-60.3 0-18.3-9-38.7-45.2-47.6l-119.4-29.8c-96.1-24.1-113.6-76.1-113.6-124.9 0-101.4 95.5-139.5 185.2-139.5 82.6 0 180 45.7 180 106.5 0 26.1-22.6 41.2-48.4 41.2-49 0-40-67.8-138.7-67.8-49 0-76.1 22.2-76.1 53.9s38.7 41.8 72.3 49.5l88.4 19.6c96.8 21.6 121.3 78.1 121.3 131.3 0 82.3-63.3 143.9-191 143.9z")),t.SlidersFill=s("sliders",c,l(a,"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-584-72h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm292 180h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8z")),t.SmileFill=s("smile",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.SnippetsFill=s("snippets",c,l(a,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 486H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z")),t.SoundFill=s("sound",c,l(a,"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zm174 132H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1z")),t.StarFill=s("star",c,l(a,"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z")),t.StepBackwardFill=s("step-backward",c,l(r,"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8")),t.StepForwardFill=s("step-forward",c,l(r,"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8")),t.StopFill=s("stop",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z")),t.SwitcherFill=s("switcher",c,l(a,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zM596 606c0 4.4-3.6 8-8 8H308c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h280c4.4 0 8 3.6 8 8v48zm284-494H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z")),t.TabletFill=s("tablet",c,l(a,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z")),t.TagFill=s("tag",c,l(a,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM699 387c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z")),t.TagsFill=s("tags",c,l(a,"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm122.7-533.4c18.7-18.7 49.1-18.7 67.9 0 18.7 18.7 18.7 49.1 0 67.9-18.7 18.7-49.1 18.7-67.9 0-18.7-18.7-18.7-49.1 0-67.9zm283.8 282.9l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z")),t.TaobaoCircleFill=s("taobao-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.TaobaoSquareFill=s("taobao-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.ToolFill=s("tool",c,l(a,"M865.3 244.7c-.3-.3-61.1 59.8-182.1 180.6l-84.9-84.9 180.9-180.9c-95.2-57.3-217.5-42.6-296.8 36.7A244.42 244.42 0 0 0 419 432l1.8 6.7-283.5 283.4c-6.2 6.2-6.2 16.4 0 22.6l141.4 141.4c6.2 6.2 16.4 6.2 22.6 0l283.3-283.3 6.7 1.8c83.7 22.3 173.6-.9 236-63.3 79.4-79.3 94.1-201.6 38-296.6z")),t.ThunderboltFill=s("thunderbolt",c,l(a,"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7z")),t.TrademarkCircleFill=s("trademark-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm164.7 660.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H378c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7zM523.9 357h-83.4v148H522c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z")),t.TwitterCircleFill=s("twitter-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm215.3 337.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z")),t.TrophyFill=s("trophy",c,l(a,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.6 630.2 359 721.8 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.8 758.4 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6c-37.1-11.9-64-46.7-64-87.6V232h64v207.6zM840 352c0 41-26.9 75.8-64 87.6V232h64v120z")),t.TwitterSquareFill=s("twitter-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM727.3 401.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z")),t.UnlockFill=s("unlock",c,l(a,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0z")),t.UpCircleFill=s("up-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z")),t.UpSquareFill=s("up-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM690 624h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z")),t.UsbFill=s("usb",c,l(a,"M408 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm352 120V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-72 0H336V184h352v248zM568 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.WalletFill=s("wallet",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 464H528V448h320v128zm-268-64a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.VideoCameraFill=s("video-camera",c,l(a,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM328 352c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48zm560 273l-104-59.8V458.9L888 399v226z")),t.WarningFill=s("warning",c,l(a,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.WeiboCircleFill=s("weibo-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.WechatFill=s("wechat",c,l(a,"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z")),t.WindowsFill=s("windows",c,l(a,"M523.8 191.4v288.9h382V128.1zm0 642.2l382 62.2v-352h-382zM120.1 480.2H443V201.9l-322.9 53.5zm0 290.4L443 823.2V543.8H120.1z")),t.YahooFill=s("yahoo",c,l(a,"M937.3 231H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7zm-77.4 450.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm225.2 225.2h-65.3L458.9 559.8v65.3h84.4v56.3H318.2v-56.3h84.4v-65.3L242.9 399.9h-37v-56.3h168.5v56.3h-37l93.4 93.5 28.1-28.1V400h168.8v56.2z")),t.WeiboSquareFill=s("weibo-square",c,l(a,"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.YuqueFill=s("yuque",c,l(a,"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.9-8.1-195-3-195-3s87.4 55.6 52.4 154.7c-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6z")),t.YoutubeFill=s("youtube",c,l(a,"M941.3 296.1a112.3 112.3 0 0 0-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7A112.12 112.12 0 0 0 82.7 296C64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z")),t.ZhihuSquareFill=s("zhihu-square",c,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM432.3 592.8l71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7h-110l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24.1-18.1zm335.5 116h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z")),t.ZhihuCircleFill=s("zhihu-circle",c,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-90.7 477.8l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24-18.1 71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7H421.3zm346.5 167h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z")),t.AccountBookOutline=s("account-book",o,l(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z")),t.AlertOutline=s("alert",o,l(a,"M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z")),t.AlipayCircleOutline=s("alipay-circle",o,l(a,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z")),t.AliwangwangOutline=s("aliwangwang",o,l(a,"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10.1 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-66.4 266.5a307.08 307.08 0 0 1-65.9 98c-28.4 28.5-61.3 50.7-97.7 65.9h-.1c-38 16-78.3 24.2-119.9 24.2a306.51 306.51 0 0 1-217.5-90.2c-28.4-28.5-50.6-61.4-65.8-97.8v-.1c-16-37.8-24.1-78.2-24.1-119.9 0-55.4 14.8-109.7 42.8-157l13.2-22.1-9.5-23.9L206 192c14.9.6 35.9 2.1 59.7 5.6 43.8 6.5 82.5 17.5 114.9 32.6l19 8.9 19.9-6.8c31.5-10.8 64.8-16.2 98.9-16.2a306.51 306.51 0 0 1 217.5 90.2c28.4 28.5 50.6 61.4 65.8 97.8l.1.1.1.1c16 37.6 24.1 78 24.2 119.8-.1 41.7-8.3 82-24.3 119.8zM681.1 364.2c-20.4 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.6 37.1 37.1 37.1s37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1zm-175.2 0c-20.5 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.7 37.1 37.1 37.1 20.5 0 37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1z")),t.AndroidOutline=s("android",o,l(a,"M448.3 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32-13.4 32-31.9.1-18.4-13.4-31.9-32-31.9zm393.9 96.4c-13.8-13.8-32.7-21.5-53.2-21.5-3.9 0-7.4.4-10.7 1v-1h-3.6c-5.5-30.6-18.6-60.5-38.1-87.4-18.7-25.7-43-47.9-70.8-64.9l25.1-35.8v-3.3c0-.8.4-2.3.7-3.8.6-2.4 1.4-5.5 1.4-8.9 0-18.5-13.5-31.9-32-31.9-9.8 0-19.5 5.7-25.9 15.4l-29.3 42.1c-30-9.8-62.4-15-93.8-15-31.3 0-63.7 5.2-93.8 15L389 79.4c-6.6-9.6-16.1-15.4-26-15.4-18.6 0-32 13.4-32 31.9 0 6.2 2.5 12.8 6.7 17.4l22.6 32.3c-28.7 17-53.5 39.4-72.2 65.1-19.4 26.9-32 56.8-36.7 87.4h-5.5v1c-3.2-.6-6.7-1-10.7-1-20.3 0-39.2 7.5-53.1 21.3-13.8 13.8-21.5 32.6-21.5 53v235c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 3.9 0 7.4-.4 10.7-1v93.5c0 29.2 23.9 53.1 53.2 53.1H331v58.3c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-58.2H544v58.1c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.4 0 39.2-7.5 53.1-21.6 13.8-13.8 21.5-32.6 21.5-53v-58.2h31.9c29.3 0 53.2-23.8 53.2-53.1v-91.4c3.2.6 6.7 1 10.7 1 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-235c-.1-20.3-7.6-39-21.4-52.9zM246 609.6c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zm131.1-396.8c37.5-27.3 85.3-42.3 135-42.3s97.5 15.1 135 42.5c32.4 23.7 54.2 54.2 62.7 87.5H314.4c8.5-33.4 30.5-64 62.7-87.7zm39.3 674.7c-.6 5.6-4.4 8.7-10.5 8.7-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1zm202.3 8.7c-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1c-.6 5.6-4.3 8.7-10.5 8.7zm95.8-132.6H309.9V364h404.6v399.6zm85.2-154c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zM576.1 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32.1-13.4 32.1-32-.1-18.6-13.4-31.8-32.1-31.8z")),t.ApiOutline=s("api",o,l(a,"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 0 1-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z")),t.AppstoreOutline=s("appstore",o,l(a,"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z")),t.AudioOutline=s("audio",o,l(a,"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z")),t.AppleOutline=s("apple",o,l(a,"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-10.6 267c-14.3 19.9-28.7 35.6-41.9 45.7-10.5 8-18.6 11.4-24 11.6-9-.1-17.7-2.3-34.7-8.8-1.2-.5-2.5-1-4.2-1.6l-4.4-1.7c-17.4-6.7-27.8-10.3-41.1-13.8-18.6-4.8-37.1-7.4-56.9-7.4-20.2 0-39.2 2.5-58.1 7.2-13.9 3.5-25.6 7.4-42.7 13.8-.7.3-8.1 3.1-10.2 3.9-3.5 1.3-6.2 2.3-8.7 3.2-10.4 3.6-17 5.1-22.9 5.2-.7 0-1.3-.1-1.8-.2-1.1-.2-2.5-.6-4.1-1.3-4.5-1.8-9.9-5.1-16-9.8-14-10.9-29.4-28-45.1-49.9-27.5-38.6-53.5-89.8-66-125.7-15.4-44.8-23-87.7-23-128.6 0-60.2 17.8-106 48.4-137.1 26.3-26.6 61.7-41.5 97.8-42.3 5.9.1 14.5 1.5 25.4 4.5 8.6 2.3 18 5.4 30.7 9.9 3.8 1.4 16.9 6.1 18.5 6.7 7.7 2.8 13.5 4.8 19.2 6.6 18.2 5.8 32.3 9 47.6 9 15.5 0 28.8-3.3 47.7-9.8 7.1-2.4 32.9-12 37.5-13.6 25.6-9.1 44.5-14 60.8-15.2 4.8-.4 9.1-.4 13.2-.1 22.7 1.8 42.1 6.3 58.6 13.8-37.6 43.4-57 96.5-56.9 158.4-.3 14.7.9 31.7 5.1 51.8 6.4 30.5 18.6 60.7 37.9 89 14.7 21.5 32.9 40.9 54.7 57.8-11.5 23.7-25.6 48.2-40.4 68.8zm-94.5-572c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z")),t.BackwardOutline=s("backward",o,l(r,"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z")),t.BankOutline=s("bank",o,l(a,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z")),t.BellOutline=s("bell",o,l(a,"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z")),t.BehanceSquareOutline=s("behance-square",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z")),t.BookOutline=s("book",o,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z")),t.BoxPlotOutline=s("box-plot",o,l(a,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM296 368h88v288h-88V368zm432 288H448V368h280v288z")),t.BulbOutline=s("bulb",o,l(a,"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z")),t.BugOutline=s("bug",o,l(a,"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z","M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 0 0 123.2-149.5A120 120 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 0 1 308 680V412h408v268z")),t.CalculatorOutline=s("calculator",o,l(a,"M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-36 732H180V180h664v664z")),t.BuildOutline=s("build",o,l(a,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zm-504 68h200v200H412V278zm-68 468H144V546h200v200zm268 0H412V546h200v200zm268-268H680V278h200v200z")),t.CalendarOutline=s("calendar",o,l(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z")),t.CameraOutline=s("camera",o,l(a,"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456zM512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z")),t.CarOutline=s("car",o,l(a,"M380 704h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8zm340-123a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm239-167.6L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM840 517v237H184V517l15.6-43h624.8l15.6 43zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.CaretDownOutline=s("caret-down",o,l(r,"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z")),t.CaretLeftOutline=s("caret-left",o,l(r,"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z")),t.CaretRightOutline=s("caret-right",o,l(r,"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z")),t.CarryOutOutline=s("carry-out",o,l(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z")),t.CheckCircleOutline=s("check-circle",o,l(a,"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.CaretUpOutline=s("caret-up",o,l(r,"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z")),t.CheckSquareOutline=s("check-square",o,l(a,"M433.1 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7H642c-10.2 0-19.9 4.9-25.9 13.3L459 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H315c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.ChromeOutline=s("chrome",o,l(a,"M928 512.3v-.3c0-229.8-186.2-416-416-416S96 282.2 96 512v.4c0 229.8 186.2 416 416 416s416-186.2 416-416v-.3.2zm-6.7-74.6l.6 3.3-.6-3.3zM676.7 638.2c53.5-82.2 52.5-189.4-11.1-263.7l162.4-8.4c20.5 44.4 32 93.8 32 145.9 0 185.2-144.6 336.6-327.1 347.4l143.8-221.2zM512 652.3c-77.5 0-140.2-62.7-140.2-140.2 0-77.7 62.7-140.2 140.2-140.2S652.2 434.5 652.2 512 589.5 652.3 512 652.3zm369.2-331.7l-3-5.7 3 5.7zM512 164c121.3 0 228.2 62.1 290.4 156.2l-263.6-13.9c-97.5-5.7-190.2 49.2-222.3 141.1L227.8 311c63.1-88.9 166.9-147 284.2-147zM102.5 585.8c26 145 127.1 264 261.6 315.1C229.6 850 128.5 731 102.5 585.8zM164 512c0-55.9 13.2-108.7 36.6-155.5l119.7 235.4c44.1 86.7 137.4 139.7 234 121.6l-74 145.1C302.9 842.5 164 693.5 164 512zm324.7 415.4c4 .2 8 .4 12 .5-4-.2-8-.3-12-.5z")),t.ClockCircleOutline=s("clock-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z")),t.CloseCircleOutline=s("close-circle",o,l(a,"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z","M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.CloudOutline=s("cloud",o,l(a,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z")),t.CloseSquareOutline=s("close-square",o,l(a,"M354 671h58.9c4.7 0 9.2-2.1 12.3-5.7L512 561.8l86.8 103.5c3 3.6 7.5 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.4-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.7 0-9.2 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3-3.6-7.5-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.CodeOutline=s("code",o,l(a,"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.CodepenCircleOutline=s("codepen-circle",o,l(a,"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z")),t.CompassOutline=s("compass",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm198.4-588.1a32 32 0 0 0-24.5.5L414.9 415 296.4 686c-3.6 8.2-3.6 17.5 0 25.7 3.4 7.8 9.7 13.9 17.7 17 3.8 1.5 7.7 2.2 11.7 2.2 4.4 0 8.7-.9 12.8-2.7l271-118.6 118.5-271a32.06 32.06 0 0 0-17.7-42.7zM576.8 534.4l26.2 26.2-42.4 42.4-26.2-26.2L380 644.4 447.5 490 422 464.4l42.4-42.4 25.5 25.5L644.4 380l-67.6 154.4zM464.4 422L422 464.4l25.5 25.6 86.9 86.8 26.2 26.2 42.4-42.4-26.2-26.2-86.8-86.9z")),t.ContactsOutline=s("contacts",o,l(a,"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52zm416-354H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z")),t.ContainerOutline=s("container",o,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.ControlOutline=s("control",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8s0 .1.1.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8 0 0 0 .1-.1.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7zM620 539v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8v.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8v.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7z")),t.CopyOutline=s("copy",o,l(a,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z")),t.CreditCardOutline=s("credit-card",o,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z")),t.CrownOutline=s("crown",o,l(a,"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z")),t.CustomerServiceOutline=s("customer-service",o,l(a,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z")),t.DashboardOutline=s("dashboard",o,l(a,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z")),t.DeleteOutline=s("delete",o,l(a,"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z")),t.DiffOutline=s("diff",o,l(a,"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7zm-7.1-502.6c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888zm190.2-581.4L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z")),t.DatabaseOutline=s("database",o,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.DislikeOutline=s("dislike",o,l(a,"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z")),t.DownCircleOutline=s("down-circle",o,l(a,"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.DownSquareOutline=s("down-square",o,l(a,"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.8-5.3 0-12.7-6.5-12.7H643c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.DribbbleSquareOutline=s("dribbble-square",o,l(a,"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z")),t.EnvironmentOutline=s("environment",o,l(a,"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z")),t.EditOutline=s("edit",o,l(a,"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z")),t.ExclamationCircleOutline=s("exclamation-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z")),t.ExperimentOutline=s("experiment",o,l(a,"M512 472a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z")),t.EyeInvisibleOutline=s("eye-invisible",o,l(a,"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5zm-63.57-320.64L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z","M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z")),t.EyeOutline=s("eye",o,l(a,"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z")),t.FacebookOutline=s("facebook",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 736H663.9V602.2h104l15.6-120.7H663.9v-77.1c0-35 9.7-58.8 59.8-58.8h63.9v-108c-11.1-1.5-49-4.8-93.2-4.8-92.2 0-155.3 56.3-155.3 159.6v89H434.9v120.7h104.3V848H176V176h672v672z")),t.FastBackwardOutline=s("fast-backward",o,l(r,"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FastForwardOutline=s("fast-forward",o,l(r,"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FileAddOutline=s("file-add",o,l(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z")),t.FileExcelOutline=s("file-excel",o,l(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z")),t.FileExclamationOutline=s("file-exclamation",o,l(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM472 744a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm16-104h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8z")),t.FileImageOutline=s("file-image",o,l(a,"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileMarkdownOutline=s("file-markdown",o,l(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z")),t.FilePptOutline=s("file-ppt",o,l(a,"M424 476c-4.4 0-8 3.6-8 8v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.3c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1zm280-281.7L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileTextOutline=s("file-text",o,l(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z")),t.FilePdfOutline=s("file-pdf",o,l(a,"M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileZipOutline=s("file-zip",o,l(a,"M296 392h64v64h-64zm0 190v160h128V582h-64v-62h-64v62zm80 48v64h-32v-64h32zm-16-302h64v64h-64zm-64-64h64v64h-64zm64 192h64v64h-64zm0-256h64v64h-64zm494.6 88.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z")),t.FileOutline=s("file",o,l(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FilterOutline=s("filter",o,l(a,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z")),t.FileWordOutline=s("file-word",o,l(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z")),t.FireOutline=s("fire",o,l(a,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z")),t.FileUnknownOutline=s("file-unknown",o,l(a,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm78 195a32 32 0 1 0 64 0 32 32 0 1 0-64 0z")),t.FlagOutline=s("flag",o,l(a,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z")),t.FolderAddOutline=s("folder-add",o,l(a,"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z")),t.FolderOutline=s("folder",o,l(a,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z")),t.FolderOpenOutline=s("folder-open",o,l(a,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z")),t.ForwardOutline=s("forward",o,l(r,"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z")),t.FrownOutline=s("frown",o,l(a,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM512 533c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4C420 636.1 461.5 597 512 597s92.1 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533z")),t.FundOutline=s("fund",o,l(a,"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L531 565 416.6 450.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z")),t.FunnelPlotOutline=s("funnel-plot",o,l(a,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V650h182.9v148zm9.6-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z")),t.GiftOutline=s("gift",o,l(a,"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z")),t.GithubOutline=s("github",o,l(a,"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z")),t.GitlabOutline=s("gitlab",o,l(a,"M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z")),t.HeartOutline=s("heart",o,l(a,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z")),t.HddOutline=s("hdd",o,l(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.HighlightOutline=s("highlight",o,l(a,"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z")),t.HomeOutline=s("home",o,l(a,"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z")),t.HourglassOutline=s("hourglass",o,l(a,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z")),t.Html5Outline=s("html5",o,l(a,"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2zM281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z")),t.IdcardOutline=s("idcard",o,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560zM610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z")),t.InfoCircleOutline=s("info-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z")),t.InstagramOutline=s("instagram",o,l(a,"M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 0 0-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z")),t.InsuranceOutline=s("insurance",o,l(a,"M441.6 306.8L403 288.6a6.1 6.1 0 0 0-8.4 3.7c-17.5 58.5-45.2 110.1-82.2 153.6a6.05 6.05 0 0 0-1.2 5.6l13.2 43.5c1.3 4.4 7 5.7 10.2 2.4 7.7-8.1 15.4-16.9 23.1-26V656c0 4.4 3.6 8 8 8H403c4.4 0 8-3.6 8-8V393.1a429.2 429.2 0 0 0 33.6-79c1-2.9-.3-6-3-7.3zm26.8 9.2v127.2c0 4.4 3.6 8 8 8h65.9v18.6h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c1.9 3.1 6.2 3.8 8.9 1.4 31.6-26.8 58.7-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V536c21.3 41.7 47.5 77.5 78.1 106.9 2.6 2.5 6.8 2.1 8.9-.7l26.3-35.3c2-2.7 1.4-6.5-1.2-8.4-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8V478c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H476.4c-4.4 0-8 3.6-8 8zm51.5 42.8h97.9v41.6h-97.9v-41.6zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z")),t.InteractionOutline=s("interaction",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z")),t.InterationOutline=s("interation",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z")),t.LayoutOutline=s("layout",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z")),t.LeftCircleOutline=s("left-circle",o,l(a,"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.LeftSquareOutline=s("left-square",o,l(a,"M365.3 518.5l246 178c5.3 3.8 12.7 0 12.7-6.5v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a8.05 8.05 0 0 0 0 13z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.LikeOutline=s("like",o,l(a,"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0 1 42.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z")),t.LinkedinOutline=s("linkedin",o,l(a,"M847.7 112H176.3c-35.5 0-64.3 28.8-64.3 64.3v671.4c0 35.5 28.8 64.3 64.3 64.3h671.4c35.5 0 64.3-28.8 64.3-64.3V176.3c0-35.5-28.8-64.3-64.3-64.3zm0 736c-447.8-.1-671.7-.2-671.7-.3.1-447.8.2-671.7.3-671.7 447.8.1 671.7.2 671.7.3-.1 447.8-.2 671.7-.3 671.7zM230.6 411.9h118.7v381.8H230.6zm59.4-52.2c37.9 0 68.8-30.8 68.8-68.8a68.8 68.8 0 1 0-137.6 0c-.1 38 30.7 68.8 68.8 68.8zm252.3 245.1c0-49.8 9.5-98 71.2-98 60.8 0 61.7 56.9 61.7 101.2v185.7h118.6V584.3c0-102.8-22.2-181.9-142.3-181.9-57.7 0-96.4 31.7-112.3 61.7h-1.6v-52.2H423.7v381.8h118.6V604.8z")),t.LockOutline=s("lock",o,l(a,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z")),t.MedicineBoxOutline=s("medicine-box",o,l(a,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840zM652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.MehOutline=s("meh",o,l(a,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 565H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.MailOutline=s("mail",o,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z")),t.MessageOutline=s("message",o,l(a,"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm200 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z")),t.MinusCircleOutline=s("minus-circle",o,l(a,"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.MinusSquareOutline=s("minus-square",o,l(a,"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.MobileOutline=s("mobile",o,l(a,"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.MoneyCollectOutline=s("money-collect",o,l(a,"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z")),t.PauseCircleOutline=s("pause-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z")),t.PayCircleOutline=s("pay-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm159.6-585h-59.5c-3 0-5.8 1.7-7.1 4.4l-90.6 180H511l-90.6-180a8 8 0 0 0-7.1-4.4h-60.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9L457 515.7h-61.4c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V603h-81.7c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V717c0 4.4 3.6 8 8 8h54.3c4.4 0 8-3.6 8-8v-68.1h82c4.4 0 8-3.6 8-8V611c0-4.4-3.6-8-8-8h-82v-41.5h82c4.4 0 8-3.6 8-8v-29.9c0-4.4-3.6-8-8-8h-62l111.1-204.8c.6-1.2 1-2.5 1-3.8-.1-4.4-3.7-8-8.1-8z")),t.NotificationOutline=s("notification",o,l(a,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z")),t.PhoneOutline=s("phone",o,l(a,"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z")),t.PictureOutline=s("picture",o,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z")),t.PieChartOutline=s("pie-chart",o,l(a,"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552a398.46 398.46 0 0 0 117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952a398.46 398.46 0 0 0 282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z")),t.PlaySquareOutline=s("play-square",o,l(a,"M442.3 677.6l199.4-156.7a11.3 11.3 0 0 0 0-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.PlayCircleOutline=s("play-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M719.4 499.1l-296.1-215A15.9 15.9 0 0 0 398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 0 0 0-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z")),t.PlusCircleOutline=s("plus-circle",o,l(a,"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.PrinterOutline=s("printer",o,l(a,"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z")),t.PlusSquareOutline=s("plus-square",o,l(a,"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.ProfileOutline=s("profile",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM492 400h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM340 368a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ProjectOutline=s("project",o,l(a,"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8zm216-432H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.PushpinOutline=s("pushpin",o,l(a,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z")),t.PropertySafetyOutline=s("property-safety",o,l(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM430.5 318h-46c-1.7 0-3.3.4-4.8 1.2a10.1 10.1 0 0 0-4 13.6l88 161.1h-45.2c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7h-63.1c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1a10.05 10.05 0 0 0-8.8-14.8h-45c-3.8 0-7.2 2.1-8.9 5.5l-73.2 144.3-72.9-144.3c-1.7-3.4-5.2-5.5-9-5.5z")),t.QuestionCircleOutline=s("question-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ReadOutline=s("read",o,l(a,"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z")),t.ReconciliationOutline=s("reconciliation",o,l(a,"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm204-523H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552zM704 408v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zM592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.RedEnvelopeOutline=s("red-envelope",o,l(a,"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142zM832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z")),t.RestOutline=s("rest",o,l(a,"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z","M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z")),t.RightCircleOutline=s("right-circle",o,l(a,"M666.7 505.5l-246-178A8 8 0 0 0 408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.RocketOutline=s("rocket",o,l(a,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0 1 62.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z")),t.RightSquareOutline=s("right-square",o,l(a,"M412.7 696.5l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5V381c0 10.2 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.SafetyCertificateOutline=s("safety-certificate",o,l(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z")),t.ScheduleOutline=s("schedule",o,l(a,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z")),t.SaveOutline=s("save",o,l(a,"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z")),t.SecurityScanOutline=s("security-scan",o,l(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM402.9 528.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.7 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 123-20.1 178.6zm65.4-133.3c31.3-31.3 82-31.3 113.2 0 31.3 31.3 31.3 82 0 113.2-31.3 31.3-82 31.3-113.2 0s-31.3-81.9 0-113.2z")),t.SettingOutline=s("setting",o,l(a,"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z")),t.ShoppingOutline=s("shopping",o,l(a,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z")),t.SkinOutline=s("skin",o,l(a,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z")),t.SkypeOutline=s("skype",o,l(a,"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-88.1 216C766.9 823.4 729 839 688.4 839c-26.1 0-51.8-6.8-74.6-19.7l-22.5-12.7-25.5 4.5c-17.8 3.2-35.8 4.8-53.6 4.8-41.4 0-81.3-8.1-119.1-24.1-36.3-15.3-69-37.3-97.2-65.5a304.29 304.29 0 0 1-65.5-97.1c-16-37.7-24-77.6-24-119 0-17.4 1.6-35.2 4.6-52.8l4.4-25.1L203 410a151.02 151.02 0 0 1-19.1-73.4c0-40.6 15.7-78.5 44.4-107.2C257.1 200.7 295 185 335.6 185a153 153 0 0 1 71.4 17.9l22.4 11.8 24.8-4.8c18.9-3.6 38.4-5.5 58-5.5 41.4 0 81.3 8.1 119 24 36.5 15.4 69.1 37.4 97.2 65.5 28.2 28.1 50.2 60.8 65.6 97.2 16 37.7 24 77.6 24 119 0 18.4-1.7 37-5.1 55.5l-4.7 25.5 12.6 22.6c12.6 22.5 19.2 48 19.2 73.7 0 40.7-15.7 78.5-44.4 107.2zM583.4 466.2L495 446.6c-33.6-7.7-72.3-17.8-72.3-49.5s27.1-53.9 76.1-53.9c98.7 0 89.7 67.8 138.7 67.8 25.8 0 48.4-15.2 48.4-41.2 0-60.8-97.4-106.5-180-106.5-89.7 0-185.2 38.1-185.2 139.5 0 48.8 17.4 100.8 113.6 124.9l119.4 29.8c36.1 8.9 45.2 29.2 45.2 47.6 0 30.5-30.3 60.3-85.2 60.3-107.2 0-92.3-82.5-149.7-82.5-25.8 0-44.5 17.8-44.5 43.1 0 49.4 60 115.4 194.2 115.4 127.7 0 191-61.5 191-144 0-53.1-24.5-109.6-121.3-131.2z")),t.SlackSquareOutline=s("slack-square",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SlidersOutline=s("sliders",o,l(a,"M320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440zm644-436h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74z")),t.SmileOutline=s("smile",o,l(a,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z")),t.SnippetsOutline=s("snippets",o,l(a,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z")),t.SoundOutline=s("sound",o,l(a,"M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344z")),t.StarOutline=s("star",o,l(a,"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z")),t.StepBackwardOutline=s("step-backward",o,l(r,"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8")),t.StepForwardOutline=s("step-forward",o,l(r,"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8")),t.StopOutline=s("stop",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z")),t.SwitcherOutline=s("switcher",o,l(a,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z")),t.TagOutline=s("tag",o,l(a,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7zM680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z")),t.TabletOutline=s("tablet",o,l(a,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ShopOutline=s("shop",o,l(a,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z")),t.TagsOutline=s("tags",o,l(a,"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1 0 67.88-67.89 48 48 0 1 0-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z")),t.TaobaoCircleOutline=s("taobao-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.ToolOutline=s("tool",o,l(a,"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z")),t.ThunderboltOutline=s("thunderbolt",o,l(a,"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z")),t.TrophyOutline=s("trophy",o,l(a,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM184 352V232h64v207.6a91.99 91.99 0 0 1-64-87.6zm520 128c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z")),t.UnlockOutline=s("unlock",o,l(a,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z")),t.UpCircleOutline=s("up-circle",o,l(a,"M518.5 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.UpSquareOutline=s("up-square",o,l(a,"M334 624h46.9c10.2 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246A7.96 7.96 0 0 0 334 624z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.UsbOutline=s("usb",o,l(a,"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-424 0V184h352v248H336zm120-184h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.VideoCameraOutline=s("video-camera",o,l(a,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.WalletOutline=s("wallet",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.WarningOutline=s("warning",o,l(a,"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z")),t.WechatOutline=s("wechat",o,l(a,"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z")),t.WeiboCircleOutline=s("weibo-circle",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.WindowsOutline=s("windows",o,l(a,"M120.1 770.6L443 823.2V543.8H120.1v226.8zm63.4-163.5h196.2v141.6l-196.2-31.9V607.1zm340.3 226.5l382 62.2v-352h-382v289.8zm63.4-226.5h255.3v214.4l-255.3-41.6V607.1zm-63.4-415.7v288.8h382V128.1l-382 63.3zm318.7 225.5H587.3V245l255.3-42.3v214.2zm-722.4 63.3H443V201.9l-322.9 53.5v224.8zM183.5 309l196.2-32.5v140.4H183.5V309z")),t.YahooOutline=s("yahoo",o,l(a,"M859.9 681.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm0 507C245.1 738 121 634.6 121 512.5c0-62.3 32.3-119.7 84.9-161v48.4h37l159.8 159.9v65.3h-84.4v56.3h225.1v-56.3H459v-65.3l103.5-103.6h65.3v-56.3H459v65.3l-28.1 28.1-93.4-93.5h37v-56.3H216.4c49.4-35 114.3-56.6 186.2-56.6 157.6 0 281.6 103.4 281.6 225.5S560.2 738 402.6 738zm534.7-507H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7z")),t.WeiboSquareOutline=s("weibo-square",o,l(a,"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.YuqueOutline=s("yuque",o,l(a,"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.8-8.1-194.9-3-195-3 .1 0 87.4 55.6 52.4 154.7-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6zm-204.1 334c-10.6 0-26.2.1-46.8.3l-23.6.2-17.8 15.5c-47.1 41-104.4 71.5-171.4 87.6-52.5 12.6-110 16.2-172.7 9.6 18-20.5 36.5-41.6 55.4-63.1 92-104.6 173.8-197.5 236.9-268.5l1.4-1.4 1.3-1.5c4.1-4.6 20.6-23.3 24.7-28.1 9.7-11.1 17.3-19.9 24.5-28.6 30.7-36.7 52.2-67.8 69-102.2l1.6-3.3 1.2-3.4c13.7-38.8 15.4-76.9 6.2-112.8 22.5.7 46.5 1.9 71.7 3.6 33.3 2.3 55.5 12.9 71.1 29.2 5.8 6 10.2 12.5 13.4 18.7 1 2 1.7 3.6 2.3 5l5 17.7c-15.7 34.5-19.9 73.3-11.4 107.2 3 11.8 6.9 22.4 12.3 34.4 2.1 4.7 9.5 20.1 11 23.3 10.3 22.7 15.4 43 16.7 78.7 3.3 94.6-82.7 181.9-182 181.9z")),t.YoutubeOutline=s("youtube",o,l(a,"M960 509.2c0-2.2 0-4.7-.1-7.6-.1-8.1-.3-17.2-.5-26.9-.8-27.9-2.2-55.7-4.4-81.9-3-36.1-7.4-66.2-13.4-88.8a139.52 139.52 0 0 0-98.3-98.5c-28.3-7.6-83.7-12.3-161.7-15.2-37.1-1.4-76.8-2.3-116.5-2.8-13.9-.2-26.8-.3-38.4-.4h-29.4c-11.6.1-24.5.2-38.4.4-39.7.5-79.4 1.4-116.5 2.8-78 3-133.5 7.7-161.7 15.2A139.35 139.35 0 0 0 82.4 304C76.3 326.6 72 356.7 69 392.8c-2.2 26.2-3.6 54-4.4 81.9-.3 9.7-.4 18.8-.5 26.9 0 2.9-.1 5.4-.1 7.6v5.6c0 2.2 0 4.7.1 7.6.1 8.1.3 17.2.5 26.9.8 27.9 2.2 55.7 4.4 81.9 3 36.1 7.4 66.2 13.4 88.8 12.8 47.9 50.4 85.7 98.3 98.5 28.2 7.6 83.7 12.3 161.7 15.2 37.1 1.4 76.8 2.3 116.5 2.8 13.9.2 26.8.3 38.4.4h29.4c11.6-.1 24.5-.2 38.4-.4 39.7-.5 79.4-1.4 116.5-2.8 78-3 133.5-7.7 161.7-15.2 47.9-12.8 85.5-50.5 98.3-98.5 6.1-22.6 10.4-52.7 13.4-88.8 2.2-26.2 3.6-54 4.4-81.9.3-9.7.4-18.8.5-26.9 0-2.9.1-5.4.1-7.6v-5.6zm-72 5.2c0 2.1 0 4.4-.1 7.1-.1 7.8-.3 16.4-.5 25.7-.7 26.6-2.1 53.2-4.2 77.9-2.7 32.2-6.5 58.6-11.2 76.3-6.2 23.1-24.4 41.4-47.4 47.5-21 5.6-73.9 10.1-145.8 12.8-36.4 1.4-75.6 2.3-114.7 2.8-13.7.2-26.4.3-37.8.3h-28.6l-37.8-.3c-39.1-.5-78.2-1.4-114.7-2.8-71.9-2.8-124.9-7.2-145.8-12.8-23-6.2-41.2-24.4-47.4-47.5-4.7-17.7-8.5-44.1-11.2-76.3-2.1-24.7-3.4-51.3-4.2-77.9-.3-9.3-.4-18-.5-25.7 0-2.7-.1-5.1-.1-7.1v-4.8c0-2.1 0-4.4.1-7.1.1-7.8.3-16.4.5-25.7.7-26.6 2.1-53.2 4.2-77.9 2.7-32.2 6.5-58.6 11.2-76.3 6.2-23.1 24.4-41.4 47.4-47.5 21-5.6 73.9-10.1 145.8-12.8 36.4-1.4 75.6-2.3 114.7-2.8 13.7-.2 26.4-.3 37.8-.3h28.6l37.8.3c39.1.5 78.2 1.4 114.7 2.8 71.9 2.8 124.9 7.2 145.8 12.8 23 6.2 41.2 24.4 47.4 47.5 4.7 17.7 8.5 44.1 11.2 76.3 2.1 24.7 3.4 51.3 4.2 77.9.3 9.3.4 18 .5 25.7 0 2.7.1 5.1.1 7.1v4.8zM423 646l232-135-232-133z")),t.AlibabaOutline=s("alibaba",o,l(a,"M602.9 669.8c-37.2 2.6-33.6-17.3-11.5-46.2 50.4-67.2 143.7-158.5 147.9-225.2 5.8-86.6-81.3-113.4-171-113.4-62.4 1.6-127 18.9-171 34.6-151.6 53.5-246.6 137.5-306.9 232-62.4 93.4-43 183.2 91.8 185.8 101.8-4.2 170.5-32.5 239.7-68.2.5 0-192.5 55.1-263.9 14.7-7.9-4.2-15.7-10-17.8-26.2 0-33.1 54.6-67.7 86.6-78.7v-56.7c64.5 22.6 140.6 16.3 205.7-32 2.1 5.8 4.2 13.1 3.7 21h11c2.6-22.6-12.6-44.6-37.8-46.2 7.3 5.8 12.6 10.5 15.2 14.7l-1 1-.5.5c-83.9 58.8-165.3 31.5-173.1 29.9l46.7-45.7-13.1-33.1c92.9-32.5 169.5-56.2 296.9-78.7l-28.5-23 14.7-8.9c75.5 21 126.4 36.7 123.8 76.6-1 6.8-3.7 14.7-7.9 23.1C660.1 466.1 594 538 567.2 569c-17.3 20.5-34.6 39.4-46.7 58.3-13.6 19.4-20.5 37.3-21 53.5 2.6 131.8 391.4-61.9 468-112.9-111.7 47.8-232.9 93.5-364.6 101.9zm85-302.9c2.8 5.2 4.1 11.6 4.1 19.1-.1-6.8-1.4-13.3-4.1-19.1z")),t.AlignCenterOutline=s("align-center",o,l(a,"M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlignLeftOutline=s("align-left",o,l(a,"M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlignRightOutline=s("align-right",o,l(a,"M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlipayOutline=s("alipay",o,l(a,"M789 610.3c-38.7-12.9-90.7-32.7-148.5-53.6 34.8-60.3 62.5-129 80.7-203.6H530.5v-68.6h233.6v-38.3H530.5V132h-95.4c-16.7 0-16.7 16.5-16.7 16.5v97.8H182.2v38.3h236.3v68.6H223.4v38.3h378.4a667.18 667.18 0 0 1-54.5 132.9c-122.8-40.4-253.8-73.2-336.1-53-52.6 13-86.5 36.1-106.5 60.3-91.4 111-25.9 279.6 167.2 279.6C386 811.2 496 747.6 581.2 643 708.3 704 960 808.7 960 808.7V659.4s-31.6-2.5-171-49.1zM253.9 746.6c-150.5 0-195-118.3-120.6-183.1 24.8-21.9 70.2-32.6 94.4-35 89.4-8.8 172.2 25.2 269.9 72.8-68.8 89.5-156.3 145.3-243.7 145.3z")),t.AliyunOutline=s("aliyun",o,l(a,"M959.2 383.9c-.3-82.1-66.9-148.6-149.1-148.6H575.9l21.6 85.2 201 43.7a42.58 42.58 0 0 1 32.9 39.7c.1.5.1 216.1 0 216.6a42.58 42.58 0 0 1-32.9 39.7l-201 43.7-21.6 85.3h234.2c82.1 0 148.8-66.5 149.1-148.6V383.9zM225.5 660.4a42.58 42.58 0 0 1-32.9-39.7c-.1-.6-.1-216.1 0-216.6.8-19.4 14.6-35.5 32.9-39.7l201-43.7 21.6-85.2H213.8c-82.1 0-148.8 66.4-149.1 148.6V641c.3 82.1 67 148.6 149.1 148.6H448l-21.6-85.3-200.9-43.9zm200.9-158.8h171v21.3h-171z")),t.AmazonOutline=s("amazon",o,l(a,"M825 768.9c-3.3-.9-7.3-.4-11.9 1.3-61.6 28.2-121.5 48.3-179.7 60.2C507.7 856 385.2 842.6 266 790.3c-33.1-14.6-79.1-39.2-138-74a9.36 9.36 0 0 0-5.3-2c-2-.1-3.7.1-5.3.9-1.6.8-2.8 1.8-3.7 3.1-.9 1.3-1.1 3.1-.4 5.4.6 2.2 2.1 4.7 4.6 7.4 10.4 12.2 23.3 25.2 38.6 39s35.6 29.4 60.9 46.8c25.3 17.4 51.8 32.9 79.3 46.4 27.6 13.5 59.6 24.9 96.1 34.1s73 13.8 109.4 13.8c36.2 0 71.4-3.7 105.5-10.9 34.2-7.3 63-15.9 86.5-25.9 23.4-9.9 45-21 64.8-33 19.8-12 34.4-22.2 43.9-30.3 9.5-8.2 16.3-14.6 20.2-19.4 4.6-5.7 6.9-10.6 6.9-14.9.1-4.5-1.7-7.1-5-7.9zM527.4 348.1c-15.2 1.3-33.5 4.1-55 8.3-21.5 4.1-41.4 9.3-59.8 15.4s-37.2 14.6-56.3 25.4c-19.2 10.8-35.5 23.2-49 37s-24.5 31.1-33.1 52c-8.6 20.8-12.9 43.7-12.9 68.7 0 27.1 4.7 51.2 14.3 72.5 9.5 21.3 22.2 38 38.2 50.4 15.9 12.4 34 22.1 54 29.2 20 7.1 41.2 10.3 63.2 9.4 22-.9 43.5-4.3 64.4-10.3 20.8-5.9 40.4-15.4 58.6-28.3 18.2-12.9 33.1-28.2 44.8-45.7 4.3 6.6 8.1 11.5 11.5 14.7l8.7 8.9c5.8 5.9 14.7 14.6 26.7 26.1 11.9 11.5 24.1 22.7 36.3 33.7l104.4-99.9-6-4.9c-4.3-3.3-9.4-8-15.2-14.3-5.8-6.2-11.6-13.1-17.2-20.5-5.7-7.4-10.6-16.1-14.7-25.9-4.1-9.8-6.2-19.3-6.2-28.5V258.7c0-10.1-1.9-21-5.7-32.8-3.9-11.7-10.7-24.5-20.7-38.3-10-13.8-22.4-26.2-37.2-37-14.9-10.8-34.7-20-59.6-27.4-24.8-7.4-52.6-11.1-83.2-11.1-31.3 0-60.4 3.7-87.6 10.9-27.1 7.3-50.3 17-69.7 29.2-19.3 12.2-35.9 26.3-49.7 42.4-13.8 16.1-24.1 32.9-30.8 50.4-6.7 17.5-10.1 35.2-10.1 53.1L408 310c5.5-16.4 12.9-30.6 22-42.8 9.2-12.2 17.9-21 25.8-26.5 8-5.5 16.6-9.9 25.7-13.2 9.2-3.3 15.4-5 18.6-5.4 3.2-.3 5.7-.4 7.6-.4 26.7 0 45.2 7.9 55.6 23.6 6.5 9.5 9.7 23.9 9.7 43.3v56.6c-15.2.6-30.4 1.6-45.6 2.9zM573.1 500c0 16.6-2.2 31.7-6.5 45-9.2 29.1-26.7 47.4-52.4 54.8-22.4 6.6-43.7 3.3-63.9-9.8-21.5-14-32.2-33.8-32.2-59.3 0-19.9 5-36.9 15-51.1 10-14.1 23.3-24.7 40-31.7s33-12 49-14.9c15.9-3 33-4.8 51-5.4V500zm335.2 218.9c-4.3-5.4-15.9-8.9-34.9-10.7-19-1.8-35.5-1.7-49.7.4-15.3 1.8-31.1 6.2-47.3 13.4-16.3 7.1-23.4 13.1-21.6 17.8l.7 1.3.9.7 1.4.2h4.6c.8 0 1.8-.1 3.2-.2 1.4-.1 2.7-.3 3.9-.4 1.2-.1 2.9-.3 5.1-.4 2.1-.1 4.1-.4 6-.7.3 0 3.7-.3 10.3-.9 6.6-.6 11.4-1 14.3-1.3 2.9-.3 7.8-.6 14.5-.9 6.7-.3 12.1-.3 16.1 0 4 .3 8.5.7 13.6 1.1 5.1.4 9.2 1.3 12.4 2.7 3.2 1.3 5.6 3 7.1 5.1 5.2 6.6 4.2 21.2-3 43.9s-14 40.8-20.4 54.2c-2.8 5.7-2.8 9.2 0 10.7s6.7.1 11.9-4c15.6-12.2 28.6-30.6 39.1-55.3 6.1-14.6 10.5-29.8 13.1-45.7 2.4-15.9 2-26.2-1.3-31z")),t.AntCloudOutline=s("ant-cloud",o,l(a,"M378.9 738c-3.1 0-6.1-.5-8.8-1.5l4.4 30.7h26.3l-15.5-29.9c-2.1.5-4.2.7-6.4.7zm421-291.2c-12.6 0-24.8 1.5-36.5 4.2-21.4-38.4-62.3-64.3-109.3-64.3-6.9 0-13.6.6-20.2 1.6-35.4-77.4-113.4-131.1-203.9-131.1-112.3 0-205.3 82.6-221.6 190.4C127.3 455.5 64 523.8 64 607c0 88.4 71.6 160.1 160 160.2h50l13.2-27.6c-26.2-8.3-43.3-29-39.1-48.8 4.6-21.6 32.8-33.9 63.1-27.5 22.9 4.9 40.4 19.1 45.5 35.1a26.1 26.1 0 0 1 22.1-12.4h.2c-.8-3.2-1.2-6.5-1.2-9.9 0-20.1 14.8-36.7 34.1-39.6v-25.4c0-4.4 3.6-8 8-8s8 3.6 8 8v26.3c4.6 1.2 8.8 3.2 12.6 5.8l19.5-21.4c3-3.3 8-3.5 11.3-.5 3.3 3 3.5 8 .5 11.3l-20 22-.2.2a40 40 0 0 1-46.9 59.2c-.4 5.6-2.6 10.7-6 14.8l20 38.4H804v-.1c86.5-2.2 156-73 156-160.1 0-88.5-71.7-160.2-160.1-160.2zM338.2 737.2l-4.3 30h24.4l-5.9-41.5c-3.5 4.6-8.3 8.5-14.2 11.5zM797.5 305a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-65.7 61.3a24 24 0 1 0 48 0 24 24 0 1 0-48 0zM303.4 742.9l-11.6 24.3h26l3.5-24.7c-5.7.8-11.7 1-17.9.4z")),t.ApartmentOutline=s("apartment",o,l(a,"M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z")),t.AntDesignOutline=s("ant-design",o,l(a,"M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 0 0 0 76.4L474.6 944a54.14 54.14 0 0 0 76.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 0 0-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 1 0 212.6 0 106.3 106.2 0 1 0-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 0 0 0 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 0 0 0 68.6 48.7 48.7 0 0 0 68.7 0l121.8-121.7a53.93 53.93 0 0 0-.1-76.4z")),t.AreaChartOutline=s("area-chart",o,l(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 0 0-11.3 0l-189 189.6a7.87 7.87 0 0 0-2.3 5.6V720c0 4.4 3.6 8 8 8z")),t.ArrowLeftOutline=s("arrow-left",o,l(a,"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 0 0 0 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.ArrowDownOutline=s("arrow-down",o,l(a,"M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0 0 48.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z")),t.ArrowUpOutline=s("arrow-up",o,l(a,"M868 545.5L536.1 163a31.96 31.96 0 0 0-48.3 0L156 545.5a7.97 7.97 0 0 0 6 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z")),t.ArrowsAltOutline=s("arrows-alt",o,l(a,"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L863.9 169a7.9 7.9 0 0 0-8.9-8.9zM416.6 562.3a8.03 8.03 0 0 0-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z")),t.ArrowRightOutline=s("arrow-right",o,l(a,"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 0 0 0-48.4z")),t.AuditOutline=s("audit",o,l(a,"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z")),t.BarChartOutline=s("bar-chart",o,l(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z")),t.BarcodeOutline=s("barcode",o,l(a,"M120 160H72c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm833 0h-48c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zM200 736h112c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm321 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm126 0h178c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H647c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-255 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-79 64H201c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm257 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm256 0H648c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h178c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-385 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.BarsOutline=s("bars",o,l(r,"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.BgColorsOutline=s("bg-colors",o,l(a,"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 0 0-12.8 0l-48 48a9.11 9.11 0 0 0 0 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z")),t.BehanceOutline=s("behance",o,l(a,"M634 294.3h199.5v48.4H634zM434.1 485.8c44.1-21.1 67.2-53.2 67.2-102.8 0-98.1-73-121.9-157.3-121.9H112v492.4h238.5c89.4 0 173.3-43 173.3-143 0-61.8-29.2-107.5-89.7-124.7zM220.2 345.1h101.5c39.1 0 74.2 10.9 74.2 56.3 0 41.8-27.3 58.6-66 58.6H220.2V345.1zm115.5 324.8H220.1V534.3H338c47.6 0 77.7 19.9 77.7 70.3 0 49.6-35.9 65.3-80 65.3zm575.8-89.5c0-105.5-61.7-193.4-173.3-193.4-108.5 0-182.3 81.7-182.3 188.8 0 111 69.9 187.2 182.3 187.2 85.1 0 140.2-38.3 166.7-120h-86.3c-9.4 30.5-47.6 46.5-77.3 46.5-57.4 0-87.4-33.6-87.4-90.7h256.9c.3-5.9.7-12.1.7-18.4zM653.9 537c3.1-46.9 34.4-76.2 81.2-76.2 49.2 0 73.8 28.9 78.1 76.2H653.9z")),t.BlockOutline=s("block",o,l(a,"M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z")),t.BoldOutline=s("bold",o,l(a,"M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z")),t.BorderBottomOutline=s("border-bottom",o,l(a,"M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.BorderLeftOutline=s("border-left",o,l(a,"M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderOuterOutline=s("border-outer",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.BorderInnerOutline=s("border-inner",o,l(a,"M872 476H548V144h-72v332H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v332h72V548h324c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-426h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 260h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderRightOutline=s("border-right",o,l(a,"M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderHorizontalOutline=s("border-horizontal",o,l(a,"M540 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderTopOutline=s("border-top",o,l(a,"M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderVerticleOutline=s("border-verticle",o,l(a,"M872 476H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM152 382h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 642h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderOutline=s("border",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.BranchesOutline=s("branches",o,l(a,"M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0 0 34.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm408-491a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.CheckOutline=s("check",o,l(a,"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z")),t.CiOutline=s("ci",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z")),t.CloseOutline=s("close",o,l(a,"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z")),t.CloudDownloadOutline=s("cloud-download",o,l(a,"M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z","M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z")),t.CloudServerOutline=s("cloud-server",o,l(a,"M704 446H320c-4.4 0-8 3.6-8 8v402c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8V454c0-4.4-3.6-8-8-8zm-328 64h272v117H376V510zm272 290H376V683h272v117z","M424 748a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm0-178a32 32 0 1 0 64 0 32 32 0 1 0-64 0z","M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z")),t.CloudSyncOutline=s("cloud-sync",o,l(a,"M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z","M376.9 656.4c1.8-33.5 15.7-64.7 39.5-88.6 25.4-25.5 60-39.8 96-39.8 36.2 0 70.3 14.1 96 39.8 1.4 1.4 2.7 2.8 4.1 4.3l-25 19.6a8 8 0 0 0 3 14.1l98.2 24c5 1.2 9.9-2.6 9.9-7.7l.5-101.3c0-6.7-7.6-10.5-12.9-6.3L663 532.7c-36.6-42-90.4-68.6-150.5-68.6-107.4 0-195 85.1-199.4 191.7-.2 4.5 3.4 8.3 8 8.3H369c4.2-.1 7.7-3.4 7.9-7.7zM703 664h-47.9c-4.2 0-7.7 3.3-8 7.6-1.8 33.5-15.7 64.7-39.5 88.6-25.4 25.5-60 39.8-96 39.8-36.2 0-70.3-14.1-96-39.8-1.4-1.4-2.7-2.8-4.1-4.3l25-19.6a8 8 0 0 0-3-14.1l-98.2-24c-5-1.2-9.9 2.6-9.9 7.7l-.4 101.4c0 6.7 7.6 10.5 12.9 6.3l23.2-18.2c36.6 42 90.4 68.6 150.5 68.6 107.4 0 195-85.1 199.4-191.7.2-4.5-3.4-8.3-8-8.3z")),t.CloudUploadOutline=s("cloud-upload",o,l(a,"M518.3 459a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z","M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z")),t.ClusterOutline=s("cluster",o,l(a,"M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.CodepenOutline=s("codepen",o,l(a,"M911.7 385.3l-.3-1.5c-.2-1-.3-1.9-.6-2.9-.2-.6-.4-1.1-.5-1.7-.3-.8-.5-1.7-.9-2.5-.2-.6-.5-1.1-.8-1.7-.4-.8-.8-1.5-1.2-2.3-.3-.5-.6-1.1-1-1.6-.8-1.2-1.7-2.4-2.6-3.6-.5-.6-1.1-1.3-1.7-1.9-.4-.5-.9-.9-1.4-1.3-.6-.6-1.3-1.1-1.9-1.6-.5-.4-1-.8-1.6-1.2-.2-.1-.4-.3-.6-.4L531.1 117.8a34.3 34.3 0 0 0-38.1 0L127.3 361.3c-.2.1-.4.3-.6.4-.5.4-1 .8-1.6 1.2-.7.5-1.3 1.1-1.9 1.6-.5.4-.9.9-1.4 1.3-.6.6-1.2 1.2-1.7 1.9-1 1.1-1.8 2.3-2.6 3.6-.3.5-.7 1-1 1.6-.4.7-.8 1.5-1.2 2.3-.3.5-.5 1.1-.8 1.7-.3.8-.6 1.7-.9 2.5-.2.6-.4 1.1-.5 1.7-.2.9-.4 1.9-.6 2.9l-.3 1.5c-.2 1.5-.3 3-.3 4.5v243.5c0 1.5.1 3 .3 4.5l.3 1.5.6 2.9c.2.6.3 1.1.5 1.7.3.9.6 1.7.9 2.5.2.6.5 1.1.8 1.7.4.8.7 1.5 1.2 2.3.3.5.6 1.1 1 1.6.5.7.9 1.4 1.5 2.1l1.2 1.5c.5.6 1.1 1.3 1.7 1.9.4.5.9.9 1.4 1.3.6.6 1.3 1.1 1.9 1.6.5.4 1 .8 1.6 1.2.2.1.4.3.6.4L493 905.7c5.6 3.8 12.3 5.8 19.1 5.8 6.6 0 13.3-1.9 19.1-5.8l365.6-243.5c.2-.1.4-.3.6-.4.5-.4 1-.8 1.6-1.2.7-.5 1.3-1.1 1.9-1.6.5-.4.9-.9 1.4-1.3.6-.6 1.2-1.2 1.7-1.9l1.2-1.5 1.5-2.1c.3-.5.7-1 1-1.6.4-.8.8-1.5 1.2-2.3.3-.5.5-1.1.8-1.7.3-.8.6-1.7.9-2.5.2-.5.4-1.1.5-1.7.3-.9.4-1.9.6-2.9l.3-1.5c.2-1.5.3-3 .3-4.5V389.8c-.3-1.5-.4-3-.6-4.5zM546.4 210.5l269.4 179.4-120.3 80.4-149-99.6V210.5zm-68.8 0v160.2l-149 99.6-120.3-80.4 269.3-179.4zM180.7 454.1l86 57.5-86 57.5v-115zm296.9 358.5L208.3 633.2l120.3-80.4 149 99.6v160.2zM512 592.8l-121.6-81.2L512 430.3l121.6 81.2L512 592.8zm34.4 219.8V652.4l149-99.6 120.3 80.4-269.3 179.4zM843.3 569l-86-57.5 86-57.5v115z")),t.CodeSandboxOutline=s("code-sandbox",o,l(a,"M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z")),t.ColumHeightOutline=s("colum-height",o,l(a,"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z")),t.ColumnWidthOutline=s("column-width",o,l(a,"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z")),t.ColumnHeightOutline=s("column-height",o,l(a,"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z")),t.CoffeeOutline=s("coffee",o,l(r,"M275 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm613 144H768c0-39.8-32.2-72-72-72H200c-39.8 0-72 32.2-72 72v248c0 3.4.2 6.7.7 9.9-.5 7-.7 14-.7 21.1 0 176.7 143.3 320 320 320 160.1 0 292.7-117.5 316.3-271H888c39.8 0 72-32.2 72-72V497c0-39.8-32.2-72-72-72zM696 681h-1.1c.7 7.6 1.1 15.2 1.1 23 0 137-111 248-248 248S200 841 200 704c0-7.8.4-15.4 1.1-23H200V425h496v256zm192-8H776V497h112v176zM613 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm-170 0c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36z")),t.CopyrightOutline=s("copyright",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z")),t.DashOutline=s("dash",o,l(a,"M112 476h160v72H112zm320 0h160v72H432zm320 0h160v72H752z")),t.DeploymentUnitOutline=s("deployment-unit",o,l(a,"M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 0 1-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0 1 65.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z")),t.DesktopOutline=s("desktop",o,l(a,"M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z")),t.DingdingOutline=s("dingding",o,l(a,"M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z")),t.DisconnectOutline=s("disconnect",o,l(a,"M832.6 191.4c-84.6-84.6-221.5-84.6-306 0l-96.9 96.9 51 51 96.9-96.9c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204l-96.9 96.9 51.1 51.1 96.9-96.9c84.4-84.6 84.4-221.5-.1-306.1zM446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l96.9-96.9-51.1-51.1-96.9 96.9c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l96.9-96.9-51-51-96.8 97zM260.3 209.4a8.03 8.03 0 0 0-11.3 0L209.4 249a8.03 8.03 0 0 0 0 11.3l554.4 554.4c3.1 3.1 8.2 3.1 11.3 0l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3L260.3 209.4z")),t.DollarOutline=s("dollar",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z")),t.DoubleRightOutline=s("double-right",o,l(a,"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 0 0 188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 0 0 492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z")),t.DotChartOutline=s("dot-chart",o,l(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm118-224a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm158 228a96 96 0 1 0 192 0 96 96 0 1 0-192 0zm148-314a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.DoubleLeftOutline=s("double-left",o,l(a,"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z")),t.DownloadOutline=s("download",o,l(a,"M505.7 661a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z")),t.DribbbleOutline=s("dribbble",o,l(a,"M512 96C282.6 96 96 282.6 96 512s186.6 416 416 416 416-186.6 416-416S741.4 96 512 96zm275.1 191.8c49.5 60.5 79.5 137.5 80.2 221.4-11.7-2.5-129.2-26.3-247.4-11.4-2.5-6.1-5-12.2-7.6-18.3-7.4-17.3-15.3-34.6-23.6-51.5C720 374.3 779.6 298 787.1 287.8zM512 157.2c90.3 0 172.8 33.9 235.5 89.5-6.4 9.1-59.9 81-186.2 128.4-58.2-107-122.7-194.8-132.6-208 27.3-6.6 55.2-9.9 83.3-9.9zM360.9 191c9.4 12.8 72.9 100.9 131.7 205.5C326.4 440.6 180 440 164.1 439.8c23.1-110.3 97.4-201.9 196.8-248.8zM156.7 512.5c0-3.6.1-7.3.2-10.9 15.5.3 187.7 2.5 365.2-50.6 10.2 19.9 19.9 40.1 28.8 60.3-4.7 1.3-9.4 2.7-14 4.2C353.6 574.9 256.1 736.4 248 750.1c-56.7-63-91.3-146.3-91.3-237.6zM512 867.8c-82.2 0-157.9-28-218.1-75 6.4-13.1 78.3-152 278.7-221.9l2.3-.8c49.9 129.6 70.5 238.3 75.8 269.5A350.46 350.46 0 0 1 512 867.8zm198.5-60.7c-3.6-21.6-22.5-125.6-69-253.3C752.9 536 850.7 565.2 862.8 569c-15.8 98.8-72.5 184.2-152.3 238.1z")),t.DropboxOutline=s("dropbox",o,l(a,"M64 556.9l264.2 173.5L512.5 577 246.8 412.7zm896-290.3zm0 0L696.8 95 512.5 248.5l265.2 164.2L512.5 577l184.3 153.4L960 558.8 777.7 412.7zM513 609.8L328.2 763.3l-79.4-51.5v57.8L513 928l263.7-158.4v-57.8l-78.9 51.5zM328.2 95L64 265.1l182.8 147.6 265.7-164.2zM64 556.9z")),t.EllipsisOutline=s("ellipsis",o,l(a,"M176 511a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.EnterOutline=s("enter",o,l(a,"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z")),t.EuroOutline=s("euro",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z")),t.ExceptionOutline=s("exception",o,l(a,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM640 812a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm12-64h40c4.4 0 8-3.6 8-8V628c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.ExclamationOutline=s("exclamation",o,l(a,"M448 804a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z")),t.ExportOutline=s("export",o,l(a,"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z")),t.FallOutline=s("fall",o,l(a,"M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 0 0-11.3 0l-45 45.2a8.03 8.03 0 0 0 0 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 0 0 4.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z")),t.FileDoneOutline=s("file-done",o,l(a,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 0 0-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.FileSyncOutline=s("file-sync",o,l(a,"M296 256c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm192 200v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8zm-48 396H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm104.1-115.6c1.8-34.5 16.2-66.8 40.8-91.4 26.2-26.2 62-41 99.1-41 37.4 0 72.6 14.6 99.1 41 3.2 3.2 6.3 6.6 9.2 10.1L769.2 673a8 8 0 0 0 3 14.1l93.3 22.5c5 1.2 9.8-2.6 9.9-7.7l.6-95.4a8 8 0 0 0-12.9-6.4l-20.3 15.8C805.4 569.6 748.1 540 684 540c-109.9 0-199.6 86.9-204 195.7-.2 4.5 3.5 8.3 8 8.3h48.1c4.3 0 7.8-3.3 8-7.6zM880 744h-48.1c-4.3 0-7.8 3.3-8 7.6-1.8 34.5-16.2 66.8-40.8 91.4-26.2 26.2-62 41-99.1 41-37.4 0-72.6-14.6-99.1-41-3.2-3.2-6.3-6.6-9.2-10.1l23.1-17.9a8 8 0 0 0-3-14.1l-93.3-22.5c-5-1.2-9.8 2.6-9.9 7.7l-.6 95.4a8 8 0 0 0 12.9 6.4l20.3-15.8C562.6 918.4 619.9 948 684 948c109.9 0 199.6-86.9 204-195.7.2-4.5-3.5-8.3-8-8.3z")),t.FileProtectOutline=s("file-protect",o,l(a,"M644.7 669.2a7.92 7.92 0 0 0-6.5-3.3H594c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.8-5.3 0-12.7-6.5-12.7h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-22.9-31.9zM688 306v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 458H208V148h560v296c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h312c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm402.6-320.8l-192-66.7c-.9-.3-1.7-.4-2.6-.4s-1.8.1-2.6.4l-192 66.7a7.96 7.96 0 0 0-5.4 7.5v251.1c0 2.5 1.1 4.8 3.1 6.3l192 150.2c1.4 1.1 3.2 1.7 4.9 1.7s3.5-.6 4.9-1.7l192-150.2c1.9-1.5 3.1-3.8 3.1-6.3V538.7c0-3.4-2.2-6.4-5.4-7.5zM826 763.7L688 871.6 550 763.7V577l138-48 138 48v186.7z")),t.FileSearchOutline=s("file-search",o,l(a,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 0 0 0-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z")),t.FileJpgOutline=s("file-jpg",o,l(r,"M874.6 301.8L596.8 21.3c-4.5-4.5-9.4-8.3-14.7-11.5-1.4-.8-2.8-1.6-4.3-2.3-.9-.5-1.9-.9-2.8-1.3-9-4-18.9-6.2-29-6.2H201c-39.8 0-73 32.2-73 72v880c0 39.8 33.2 72 73 72h623c39.8 0 71-32.2 71-72V352.5c0-19-7-37.2-20.4-50.7zM583 110.4L783.8 312H583V110.4zM823 952H200V72h311v240c0 39.8 33.2 72 73 72h239v568zM350 696.5c0 24.2-7.5 31.4-21.9 31.4-9 0-18.4-5.8-24.8-18.5L272.9 732c13.4 22.9 32.3 34.2 61.3 34.2 41.6 0 60.8-29.9 60.8-66.2V577h-45v119.5zM501.3 577H437v186h44v-62h21.6c39.1 0 73.1-19.6 73.1-63.6 0-45.8-33.5-60.4-74.4-60.4zm-.8 89H481v-53h18.2c21.5 0 33.4 6.2 33.4 24.9 0 18.1-10.5 28.1-32.1 28.1zm182.5-9v36h30v30.1c-4 2.9-11 4.7-17.7 4.7-34.3 0-50.7-21.4-50.7-58.2 0-36.1 19.7-57.4 47.1-57.4 15.3 0 25 6.2 34 14.4l23.7-28.3c-12.7-12.8-32.1-24.2-59.2-24.2-49.6 0-91.1 35.3-91.1 97 0 62.7 40 95.1 91.5 95.1 25.9 0 49.2-10.2 61.5-22.6V657H683z")),t.FontColorsOutline=s("font-colors",o,l(a,"M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 0 0 6-12.4L573.6 118.6a9.9 9.9 0 0 0-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z")),t.FontSizeOutline=s("font-size",o,l(a,"M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z")),t.ForkOutline=s("fork",o,l(a,"M752 100c-61.8 0-112 50.2-112 112 0 47.7 29.9 88.5 72 104.6v27.6L512 601.4 312 344.2v-27.6c42.1-16.1 72-56.9 72-104.6 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 50.6 33.8 93.5 80 107.3v34.4c0 9.7 3.3 19.3 9.3 27L476 672.3v33.6c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-33.6l226.7-291.6c6-7.7 9.3-17.3 9.3-27v-34.4c46.2-13.8 80-56.7 80-107.3 0-61.8-50.2-112-112-112zM224 212a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm336 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm192-552a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.FormOutline=s("form",o,l(a,"M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z","M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 0 0-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z")),t.FullscreenExitOutline=s("fullscreen-exit",o,l(a,"M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 0 0 0 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 0 0 391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 0 0-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z")),t.FullscreenOutline=s("fullscreen",o,l(a,"M290 236.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0 0 13.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 0 0 0 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 0 0-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z")),t.GatewayOutline=s("gateway",o,l(a,"M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z")),t.DownOutline=s("down",o,l(a,"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z")),t.DragOutline=s("drag",o,l(a,"M909.3 506.3L781.7 405.6a7.23 7.23 0 0 0-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 0 0-11.3 0L405.6 242.3a7.23 7.23 0 0 0 5.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 0 0 .1-11.4z")),t.GlobalOutline=s("global",o,l(a,"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0 0 10-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 0 0 3.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 0 0-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 0 1 887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 0 1-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 0 1 115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 0 1 540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 0 0 540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 0 1-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 0 0-81.5 55.9A373.86 373.86 0 0 1 137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 0 1-107.6 69.2z")),t.GooglePlusOutline=s("google-plus",o,l(a,"M879.5 470.4c-.3-27-.4-54.2-.5-81.3h-80.8c-.3 27-.5 54.1-.7 81.3-27.2.1-54.2.3-81.2.6v80.9c27 .3 54.2.5 81.2.8.3 27 .3 54.1.5 81.1h80.9c.1-27 .3-54.1.5-81.3 27.2-.3 54.2-.4 81.2-.7v-80.9c-26.9-.2-54.1-.2-81.1-.5zm-530 .4c-.1 32.3 0 64.7.1 97 54.2 1.8 108.5 1 162.7 1.8-23.9 120.3-187.4 159.3-273.9 80.7-89-68.9-84.8-220 7.7-284 64.7-51.6 156.6-38.9 221.3 5.8 25.4-23.5 49.2-48.7 72.1-74.7-53.8-42.9-119.8-73.5-190-70.3-146.6-4.9-281.3 123.5-283.7 270.2-9.4 119.9 69.4 237.4 180.6 279.8 110.8 42.7 252.9 13.6 323.7-86 46.7-62.9 56.8-143.9 51.3-220-90.7-.7-181.3-.6-271.9-.3z")),t.GoogleOutline=s("google",o,l(a,"M881 442.4H519.7v148.5h206.4c-8.9 48-35.9 88.6-76.6 115.8-34.4 23-78.3 36.6-129.9 36.6-99.9 0-184.4-67.5-214.6-158.2-7.6-23-12-47.6-12-72.9s4.4-49.9 12-72.9c30.3-90.6 114.8-158.1 214.7-158.1 56.3 0 106.8 19.4 146.6 57.4l110-110.1c-66.5-62-153.2-100-256.6-100-149.9 0-279.6 86-342.7 211.4-26 51.8-40.8 110.4-40.8 172.4S151 632.8 177 684.6C240.1 810 369.8 896 519.7 896c103.6 0 190.4-34.4 253.8-93 72.5-66.8 114.4-165.2 114.4-282.1 0-27.2-2.4-53.3-6.9-78.5z")),t.HeatMapOutline=s("heat-map",o,l(a,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-790.4-23.9L512 231.9 858.7 832H165.3zm319-474.1l-228 394c-12.3 21.3 3.1 48 27.7 48h455.8c24.7 0 40.1-26.7 27.7-48L539.7 358c-6.2-10.7-17-16-27.7-16-10.8 0-21.6 5.3-27.7 16zm214 386H325.7L512 422l186.3 322zm-214-194.1l-57 98.4C415 669.5 430.4 696 455 696h114c24.6 0 39.9-26.5 27.7-47.7l-57-98.4c-6.1-10.6-16.9-15.9-27.7-15.9s-21.5 5.3-27.7 15.9zm57.1 98.4h-58.7l29.4-50.7 29.3 50.7z")),t.GoldOutline=s("gold",o,l(a,"M342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128zm2.5 282.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z")),t.HistoryOutline=s("history",o,l(a,"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 0 0 3 14.1zm167.7 301.1l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 0 1-112.5 75.9 352.18 352.18 0 0 1-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 0 1-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 0 1 171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 0 1 112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 0 1 775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z")),t.IeOutline=s("ie",o,l(a,"M852.6 367.6c16.3-36.9 32.1-90.7 32.1-131.8 0-109.1-119.5-147.6-314.5-57.9-161.4-10.8-316.8 110.5-355.6 279.7 46.3-52.3 117.4-123.4 183-151.7C316.1 378.3 246.7 470 194 565.6c-31.1 56.9-66 148.8-66 217.5 0 147.9 139.3 129.8 270.4 63 47.1 23.1 99.8 23.4 152.5 23.4 145.7 0 276.4-81.4 325.2-219H694.9c-78.8 132.9-295.2 79.5-295.2-71.2h493.2c9.6-65.4-2.5-143.6-40.3-211.7zM224.8 648.3c26.6 76.7 80.6 143.8 150.4 185-133.1 73.4-259.9 43.6-150.4-185zm174-163.3c3-82.7 75.4-142.3 156-142.3 80.1 0 153 59.6 156 142.3h-312zm276.8-281.4c32.1-15.4 72.8-33 108.8-33 47.1 0 81.4 32.6 81.4 80.6 0 30-11.1 73.5-21.9 101.8-39.3-63.5-98.9-122.4-168.3-149.4z")),t.InboxOutline=s("inbox",o,l(r,"M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0 0 60.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z")),t.ImportOutline=s("import",o,l(a,"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zM902 476H588v-76c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-76h314c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.InfoOutline=s("info",o,l(a,"M448 224a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96 168h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z")),t.ItalicOutline=s("italic",o,l(a,"M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z")),t.IssuesCloseOutline=s("issues-close",o,l(a,"M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72-112c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 0 0-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0 0 26 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 0 1-49.8 62.2A355.92 355.92 0 0 1 651.1 840a355 355 0 0 1-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 0 1-113.3-76.3A353.06 353.06 0 0 1 184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 0 1 138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 0 0 892 694z")),t.KeyOutline=s("key",o,l(a,"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 0 0 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z")),t.LaptopOutline=s("laptop",o,l(a,"M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z")),t.LeftOutline=s("left",o,l(a,"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z")),t.LinkOutline=s("link",o,l(a,"M574 665.4a8.03 8.03 0 0 0-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 0 0-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 0 0 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 0 0 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 0 0-11.3 0L372.3 598.7a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z")),t.LineChartOutline=s("line-chart",o,l(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z")),t.LineHeightOutline=s("line-height",o,l(a,"M648 160H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm272.8 546H856V318h64.8c6 0 9.4-7 5.7-11.7L825.7 178.7a7.14 7.14 0 0 0-11.3 0L713.6 306.3a7.23 7.23 0 0 0 5.7 11.7H784v388h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5a7.2 7.2 0 0 0-5.6-11.7z")),t.LineOutline=s("line",o,l(a,"M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.Loading3QuartersOutline=s("loading-3-quarters",o,l(r,"M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z")),t.LoadingOutline=s("loading",o,l(r,"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z")),t.LoginOutline=s("login",o,l(a,"M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z")),t.LogoutOutline=s("logout",o,l(a,"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 0 1-112.7 75.9A352.8 352.8 0 0 1 512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 0 1-112.7-75.9 353.28 353.28 0 0 1-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z")),t.ManOutline=s("man",o,l(a,"M874 120H622c-3.3 0-6 2.7-6 6v56c0 3.3 2.7 6 6 6h160.4L583.1 387.3c-50-38.5-111-59.3-175.1-59.3-76.9 0-149.3 30-203.6 84.4S120 539.1 120 616s30 149.3 84.4 203.6C258.7 874 331.1 904 408 904s149.3-30 203.6-84.4C666 765.3 696 692.9 696 616c0-64.1-20.8-124.9-59.2-174.9L836 241.9V402c0 3.3 2.7 6 6 6h56c3.3 0 6-2.7 6-6V150c0-16.5-13.5-30-30-30zM408 828c-116.9 0-212-95.1-212-212s95.1-212 212-212 212 95.1 212 212-95.1 212-212 212z")),t.MediumOutline=s("medium",o,l(a,"M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 0 1-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 0 1 6.8-17.2z")),t.MediumWorkmarkOutline=s("medium-workmark",o,l(r,"M517.2 590.55c0 3.55 0 4.36 2.4 6.55l13.43 13.25v.57h-59.57v-25.47a41.44 41.44 0 0 1-39.5 27.65c-30.61 0-52.84-24.25-52.84-68.87 0-41.8 23.99-69.69 57.65-69.69a35.15 35.15 0 0 1 34.61 21.67v-56.19a6.99 6.99 0 0 0-2.71-6.79l-12.8-12.45v-.56l59.33-7.04v177.37zm-43.74-8.09v-83.83a22.2 22.2 0 0 0-17.74-8.4c-14.48 0-28.47 13.25-28.47 52.62 0 36.86 12.07 49.88 27.1 49.88a23.91 23.91 0 0 0 19.11-10.27zm83.23 28.46V497.74a7.65 7.65 0 0 0-2.4-6.79l-13.19-13.74v-.57h59.56v114.8c0 3.55 0 4.36 2.4 6.54l13.12 12.45v.57l-59.49-.08zm-2.16-175.67c0-13.4 10.74-24.25 23.99-24.25 13.25 0 23.98 10.86 23.98 24.25 0 13.4-10.73 24.25-23.98 24.25s-23.99-10.85-23.99-24.25zm206.83 155.06c0 3.55 0 4.6 2.4 6.79l13.43 13.25v.57h-59.88V581.9a43.4 43.4 0 0 1-41.01 31.2c-26.55 0-40.78-19.56-40.78-56.59 0-17.86 0-37.43.56-59.41a6.91 6.91 0 0 0-2.4-6.55L620.5 477.2v-.57h59.09v73.81c0 24.25 3.51 40.42 18.54 40.42a23.96 23.96 0 0 0 19.35-12.2v-80.85a7.65 7.65 0 0 0-2.4-6.79l-13.27-13.82v-.57h59.56V590.3zm202.76 20.6c0-4.36.8-59.97.8-72.75 0-24.25-3.76-40.98-20.63-40.98a26.7 26.7 0 0 0-21.19 11.64 99.68 99.68 0 0 1 2.4 23.04c0 16.81-.56 38.23-.8 59.66a6.91 6.91 0 0 0 2.4 6.55l13.43 12.45v.56h-60.12c0-4.04.8-59.98.8-72.76 0-24.65-3.76-40.98-20.39-40.98-8.2.3-15.68 4.8-19.83 11.96v82.46c0 3.56 0 4.37 2.4 6.55l13.11 12.45v.56h-59.48V498.15a7.65 7.65 0 0 0-2.4-6.8l-13.19-14.14v-.57H841v28.78c5.53-19 23.13-31.76 42.7-30.96 19.82 0 33.26 11.16 38.93 32.34a46.41 46.41 0 0 1 44.77-32.34c26.55 0 41.58 19.8 41.58 57.23 0 17.87-.56 38.24-.8 59.66a6.5 6.5 0 0 0 2.72 6.55l13.11 12.45v.57h-59.88zM215.87 593.3l17.66 17.05v.57h-89.62v-.57l17.99-17.05a6.91 6.91 0 0 0 2.4-6.55V477.69c0-4.6 0-10.83.8-16.16L104.66 613.1h-.72l-62.6-139.45c-1.37-3.47-1.77-3.72-2.65-6.06v91.43a32.08 32.08 0 0 0 2.96 17.87l25.19 33.46v.57H0v-.57l25.18-33.55a32.16 32.16 0 0 0 2.96-17.78V457.97A19.71 19.71 0 0 0 24 444.15L6.16 420.78v-.56h63.96l53.56 118.1 47.17-118.1h62.6v.56l-17.58 19.8a6.99 6.99 0 0 0-2.72 6.8v139.37a6.5 6.5 0 0 0 2.72 6.55zm70.11-54.65v.56c0 34.6 17.67 48.5 38.38 48.5a43.5 43.5 0 0 0 40.77-24.97h.56c-7.2 34.2-28.14 50.36-59.48 50.36-33.82 0-65.72-20.61-65.72-68.39 0-50.2 31.98-70.25 67.32-70.25 28.46 0 58.76 13.58 58.76 57.24v6.95h-80.59zm0-6.95h39.42v-7.04c0-35.57-7.28-45.03-18.23-45.03-13.27 0-21.35 14.15-21.35 52.07h.16z")),t.MenuUnfoldOutline=s("menu-unfold",o,l(a,"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z")),t.MenuFoldOutline=s("menu-fold",o,l(a,"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z")),t.MenuOutline=s("menu",o,l(a,"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z")),t.MinusOutline=s("minus",o,l(a,"M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.MonitorOutline=s("monitor",o,l(a,"M692.8 412.7l.2-.2-34.6-44.3a7.97 7.97 0 0 0-11.2-1.4l-50.4 39.3-70.5-90.1a7.97 7.97 0 0 0-11.2-1.4l-37.9 29.7a7.97 7.97 0 0 0-1.4 11.2l70.5 90.2-.2.1 34.6 44.3c2.7 3.5 7.7 4.1 11.2 1.4l50.4-39.3 64.1 82c2.7 3.5 7.7 4.1 11.2 1.4l37.9-29.6c3.5-2.7 4.1-7.7 1.4-11.2l-64.1-82.1zM608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L114.3 856.1a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6C473 696.1 537.7 720 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2z")),t.MoreOutline=s("more",o,l(a,"M456 231a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.OrderedListOutline=s("ordered-list",o,l(a,"M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 0 0-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 0 0 2.1-5.4V432c0-2.2-1.8-4-4-4z")),t.NumberOutline=s("number",o,l(a,"M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z")),t.PauseOutline=s("pause",o,l(a,"M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z")),t.PercentageOutline=s("percentage",o,l(a,"M855.7 210.8l-42.4-42.4a8.03 8.03 0 0 0-11.3 0L168.3 801.9a8.03 8.03 0 0 0 0 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0L855.6 222c3.2-3 3.2-8.1.1-11.2zM304 448c79.4 0 144-64.6 144-144s-64.6-144-144-144-144 64.6-144 144 64.6 144 144 144zm0-216c39.7 0 72 32.3 72 72s-32.3 72-72 72-72-32.3-72-72 32.3-72 72-72zm416 344c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144-64.6-144-144-144zm0 216c-39.7 0-72-32.3-72-72s32.3-72 72-72 72 32.3 72 72-32.3 72-72 72z")),t.PaperClipOutline=s("paper-clip",o,l(a,"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z")),t.PicCenterOutline=s("pic-center",o,l(a,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM848 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h672zM232 436h560v152H232V436z")),t.PicLeftOutline=s("pic-left",o,l(a,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.PlusOutline=s("plus",o,l(a,"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z","M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z")),t.PicRightOutline=s("pic-right",o,l(a,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-24 500c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H416c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM472 436h400v152H472V436zM80 646c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.PoundOutline=s("pound",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z")),t.PoweroffOutline=s("poweroff",o,l(a,"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z")),t.PullRequestOutline=s("pull-request",o,l(a,"M788 705.9V192c0-8.8-7.2-16-16-16H602v-68.8c0-6-7-9.4-11.7-5.7L462.7 202.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V240h114v465.9c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c.1-49.2-31.7-91-75.9-106.1zM752 860a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zM384 212c0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1V318.1c44.2-15.1 76-56.9 76-106.1zm-160 0a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0z")),t.QqOutline=s("qq",o,l(a,"M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z")),t.QuestionOutline=s("question",o,l(a,"M764 280.9c-14-30.6-33.9-58.1-59.3-81.6C653.1 151.4 584.6 125 512 125s-141.1 26.4-192.7 74.2c-25.4 23.6-45.3 51-59.3 81.7-14.6 32-22 65.9-22 100.9v27c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-27c0-99.5 88.6-180.4 197.6-180.4s197.6 80.9 197.6 180.4c0 40.8-14.5 79.2-42 111.2-27.2 31.7-65.6 54.4-108.1 64-24.3 5.5-46.2 19.2-61.7 38.8a110.85 110.85 0 0 0-23.9 68.6v31.4c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-31.4c0-15.7 10.9-29.5 26-32.9 58.4-13.2 111.4-44.7 149.3-88.7 19.1-22.3 34-47.1 44.3-74 10.7-27.9 16.1-57.2 16.1-87 0-35-7.4-69-22-100.9zM512 787c-30.9 0-56 25.1-56 56s25.1 56 56 56 56-25.1 56-56-25.1-56-56-56z")),t.RadarChartOutline=s("radar-chart",o,l(a,"M926.8 397.1l-396-288a31.81 31.81 0 0 0-37.6 0l-396 288a31.99 31.99 0 0 0-11.6 35.8l151.3 466a32 32 0 0 0 30.4 22.1h489.5c13.9 0 26.1-8.9 30.4-22.1l151.3-466c4.2-13.2-.5-27.6-11.7-35.8zM838.6 417l-98.5 32-200-144.7V199.9L838.6 417zM466 567.2l-89.1 122.3-55.2-169.2L466 567.2zm-116.3-96.8L484 373.3v140.8l-134.3-43.7zM512 599.2l93.9 128.9H418.1L512 599.2zm28.1-225.9l134.2 97.1L540.1 514V373.3zM558 567.2l144.3-46.9-55.2 169.2L558 567.2zm-74-367.3v104.4L283.9 449l-98.5-32L484 199.9zM169.3 470.8l86.5 28.1 80.4 246.4-53.8 73.9-113.1-348.4zM327.1 853l50.3-69h269.3l50.3 69H327.1zm414.5-33.8l-53.8-73.9 80.4-246.4 86.5-28.1-113.1 348.4z")),t.QrcodeOutline=s("qrcode",o,l(a,"M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.RadiusBottomleftOutline=s("radius-bottomleft",o,l(a,"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.RadiusBottomrightOutline=s("radius-bottomright",o,l(a,"M368 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-58-624h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm578 102h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm292 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm174 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 276h-56c-4.4 0-8 3.6-8 8v182c0 87.3-70.7 158-158 158H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c127 0 230-103 230-230V484c0-4.4-3.6-8-8-8z")),t.RadiusUpleftOutline=s("radius-upleft",o,l(a,"M656 200h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm58 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 650h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm696-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174-696H358c-127 0-230 103-230 230v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-87.3 70.7-158 158-158h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.RadiusUprightOutline=s("radius-upright",o,l(a,"M368 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-2 696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm522-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-48-696H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c87.3 0 158 70.7 158 158v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-127-103-230-230-230z")),t.RadiusSettingOutline=s("radius-setting",o,l(a,"M396 140h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-44 684h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm524-204h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 344h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm320 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm160 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm140-284c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V370c0-127-103-230-230-230H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h170c87.3 0 158 70.7 158 158v170zM236 96H92c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2zM920 780H776c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V788c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2z")),t.RedditOutline=s("reddit",o,l(a,"M288 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm338.7 119.7c-23.1 18.2-68.9 37.8-114.7 37.8s-91.6-19.6-114.7-37.8c-14.4-11.3-35.3-8.9-46.7 5.5s-8.9 35.3 5.5 46.7C396.3 771.6 457.5 792 512 792s115.7-20.4 155.9-52.1a33.25 33.25 0 1 0-41.2-52.2zM960 456c0-61.9-50.1-112-112-112-42.1 0-78.7 23.2-97.9 57.6-57.6-31.5-127.7-51.8-204.1-56.5L612.9 195l127.9 36.9c11.5 32.6 42.6 56.1 79.2 56.1 46.4 0 84-37.6 84-84s-37.6-84-84-84c-32 0-59.8 17.9-74 44.2L603.5 123a33.2 33.2 0 0 0-39.6 18.4l-90.8 203.9c-74.5 5.2-142.9 25.4-199.2 56.2A111.94 111.94 0 0 0 176 344c-61.9 0-112 50.1-112 112 0 45.8 27.5 85.1 66.8 102.5-7.1 21-10.8 43-10.8 65.5 0 154.6 175.5 280 392 280s392-125.4 392-280c0-22.6-3.8-44.5-10.8-65.5C932.5 541.1 960 501.8 960 456zM820 172.5a31.5 31.5 0 1 1 0 63 31.5 31.5 0 0 1 0-63zM120 456c0-30.9 25.1-56 56-56a56 56 0 0 1 50.6 32.1c-29.3 22.2-53.5 47.8-71.5 75.9a56.23 56.23 0 0 1-35.1-52zm392 381.5c-179.8 0-325.5-95.6-325.5-213.5S332.2 410.5 512 410.5 837.5 506.1 837.5 624 691.8 837.5 512 837.5zM868.8 508c-17.9-28.1-42.2-53.7-71.5-75.9 9-18.9 28.3-32.1 50.6-32.1 30.9 0 56 25.1 56 56 .1 23.5-14.5 43.7-35.1 52zM624 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.RedoOutline=s("redo",o,l(a,"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 0 0-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z")),t.ReloadOutline=s("reload",o,l(a,"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z")),t.RetweetOutline=s("retweet",o,l(r,"M136 552h63.6c4.4 0 8-3.6 8-8V288.7h528.6v72.6c0 1.9.6 3.7 1.8 5.2a8.3 8.3 0 0 0 11.7 1.4L893 255.4c4.3-5 3.6-10.3 0-13.2L749.7 129.8a8.22 8.22 0 0 0-5.2-1.8c-4.6 0-8.4 3.8-8.4 8.4V209H199.7c-39.5 0-71.7 32.2-71.7 71.8V544c0 4.4 3.6 8 8 8zm752-80h-63.6c-4.4 0-8 3.6-8 8v255.3H287.8v-72.6c0-1.9-.6-3.7-1.8-5.2a8.3 8.3 0 0 0-11.7-1.4L131 768.6c-4.3 5-3.6 10.3 0 13.2l143.3 112.4c1.5 1.2 3.3 1.8 5.2 1.8 4.6 0 8.4-3.8 8.4-8.4V815h536.6c39.5 0 71.7-32.2 71.7-71.8V480c-.2-4.4-3.8-8-8.2-8z")),t.RightOutline=s("right",o,l(a,"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z")),t.RiseOutline=s("rise",o,l(a,"M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 0 0 0 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0 0 13.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z")),t.RollbackOutline=s("rollback",o,l(a,"M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 0 0 0 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z")),t.SafetyOutline=s("safety",o,l(r,"M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z","M378.4 475.1a35.91 35.91 0 0 0-50.9 0 35.91 35.91 0 0 0 0 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0 0 48.1 0L730.6 434a33.98 33.98 0 0 0 0-48.1l-2.8-2.8a33.98 33.98 0 0 0-48.1 0L483 579.7 378.4 475.1z")),t.RobotOutline=s("robot",o,l(a,"M300 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SearchOutline=s("search",o,l(a,"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0 0 11.6 0l43.6-43.5a8.2 8.2 0 0 0 0-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z")),t.ScanOutline=s("scan",o,l(a,"M136 384h56c4.4 0 8-3.6 8-8V200h176c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-37.6 0-68 30.4-68 68v180c0 4.4 3.6 8 8 8zm512-184h176v176c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V196c0-37.6-30.4-68-68-68H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM376 824H200V648c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v180c0 37.6 30.4 68 68 68h180c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm512-184h-56c-4.4 0-8 3.6-8 8v176H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h180c37.6 0 68-30.4 68-68V648c0-4.4-3.6-8-8-8zm16-164H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.ScissorOutline=s("scissor",o,l(a,"M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 0 0 288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z")),t.SelectOutline=s("select",o,l(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 0 0-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z")),t.ShakeOutline=s("shake",o,l(a,"M324 666a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm616.7-309.6L667.6 83.2C655.2 70.9 638.7 64 621.1 64s-34.1 6.8-46.5 19.2L83.3 574.5a65.85 65.85 0 0 0 0 93.1l273.2 273.2c12.3 12.3 28.9 19.2 46.5 19.2s34.1-6.8 46.5-19.2l491.3-491.3c25.6-25.7 25.6-67.5-.1-93.1zM403 880.1L143.9 621l477.2-477.2 259 259.2L403 880.1zM152.8 373.7a7.9 7.9 0 0 0 11.2 0L373.7 164a7.9 7.9 0 0 0 0-11.2l-38.4-38.4a7.9 7.9 0 0 0-11.2 0L114.3 323.9a7.9 7.9 0 0 0 0 11.2l38.5 38.6zm718.6 276.6a7.9 7.9 0 0 0-11.2 0L650.3 860.1a7.9 7.9 0 0 0 0 11.2l38.4 38.4a7.9 7.9 0 0 0 11.2 0L909.7 700a7.9 7.9 0 0 0 0-11.2l-38.3-38.5z")),t.ShareAltOutline=s("share-alt",o,l(a,"M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z")),t.ShoppingCartOutline=s("shopping-cart",o,l(r,"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 0 0-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 1 0 0 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 0 0-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 0 0-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6z")),t.ShrinkOutline=s("shrink",o,l(a,"M881.7 187.4l-45.1-45.1a8.03 8.03 0 0 0-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L447.9 585a7.9 7.9 0 0 0-8.9-8.9z")),t.SlackOutline=s("slack",o,l(a,"M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 0 0-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z")),t.SmallDashOutline=s("small-dash",o,l(a,"M112 476h72v72h-72zm182 0h72v72h-72zm364 0h72v72h-72zm182 0h72v72h-72zm-364 0h72v72h-72z")),t.SolutionOutline=s("solution",o,l(a,"M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z")),t.SketchOutline=s("sketch",o,l(a,"M925.6 405.1l-203-253.7a6.5 6.5 0 0 0-5-2.4H306.4c-1.9 0-3.8.9-5 2.4l-203 253.7a6.5 6.5 0 0 0 .2 8.3l408.6 459.5c1.2 1.4 3 2.1 4.8 2.1 1.8 0 3.5-.8 4.8-2.1l408.6-459.5a6.5 6.5 0 0 0 .2-8.3zM645.2 206.4l34.4 133.9-132.5-133.9h98.1zm8.2 178.5H370.6L512 242l141.4 142.9zM378.8 206.4h98.1L344.3 340.3l34.5-133.9zm-53.4 7l-44.1 171.5h-93.1l137.2-171.5zM194.6 434.9H289l125.8 247.7-220.2-247.7zM512 763.4L345.1 434.9h333.7L512 763.4zm97.1-80.8L735 434.9h94.4L609.1 682.6zm133.6-297.7l-44.1-171.5 137.2 171.5h-93.1z")),t.SortDescendingOutline=s("sort-descending",o,l(a,"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM310.3 167.1a8 8 0 0 0-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z")),t.SortAscendingOutline=s("sort-ascending",o,l(a,"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0 0 12.6 0l112-141.9c4.1-5.2.4-13-6.3-13z")),t.StockOutline=s("stock",o,l(a,"M904 747H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM165.7 621.8l39.7 39.5c3.1 3.1 8.2 3.1 11.3 0l234.7-233.9 97.6 97.3a32.11 32.11 0 0 0 45.2 0l264.2-263.2c3.1-3.1 3.1-8.2 0-11.3l-39.7-39.6a8.03 8.03 0 0 0-11.3 0l-235.7 235-97.7-97.3a32.11 32.11 0 0 0-45.2 0L165.7 610.5a7.94 7.94 0 0 0 0 11.3z")),t.SwapLeftOutline=s("swap-left",o,l(r,"M872 572H266.8l144.3-183c4.1-5.2.4-13-6.3-13H340c-9.8 0-19.1 4.5-25.1 12.2l-164 208c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SwapRightOutline=s("swap-right",o,l(r,"M873.1 596.2l-164-208A32 32 0 0 0 684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z")),t.StrikethroughOutline=s("strikethrough",o,l(a,"M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 0 0-8-7.9z")),t.SwapOutline=s("swap",o,l(a,"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SyncOutline=s("sync",o,l(a,"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 0 1 755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 0 1 512.1 856a342.24 342.24 0 0 1-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 0 0-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 0 0-8-8.2z")),t.TableOutline=s("table",o,l(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z")),t.TeamOutline=s("team",o,l(a,"M824.2 699.9a301.55 301.55 0 0 0-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 0 1 612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 0 0 8-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 0 1 612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z")),t.TaobaoOutline=s("taobao",o,l(a,"M168.5 273.7a68.7 68.7 0 1 0 137.4 0 68.7 68.7 0 1 0-137.4 0zm730 79.2s-23.7-184.4-426.9-70.1c17.3-30 25.6-49.5 25.6-49.5L396.4 205s-40.6 132.6-113 194.4c0 0 70.1 40.6 69.4 39.4 20.1-20.1 38.2-40.6 53.7-60.4 16.1-7 31.5-13.6 46.7-19.8-18.6 33.5-48.7 83.8-78.8 115.6l42.4 37s28.8-27.7 60.4-61.2h36v61.8H372.9v49.5h140.3v118.5c-1.7 0-3.6 0-5.4-.2-15.4-.7-39.5-3.3-49-18.2-11.5-18.1-3-51.5-2.4-71.9h-97l-3.4 1.8s-35.5 159.1 102.3 155.5c129.1 3.6 203-36 238.6-63.1l14.2 52.6 79.6-33.2-53.9-131.9-64.6 20.1 12.1 45.2c-16.6 12.4-35.6 21.7-56.2 28.4V561.3h137.1v-49.5H628.1V450h137.6v-49.5H521.3c17.6-21.4 31.5-41.1 35-53.6l-42.5-11.6c182.8-65.5 284.5-54.2 283.6 53.2v282.8s10.8 97.1-100.4 90.1l-60.2-12.9-14.2 57.1S882.5 880 903.7 680.2c21.3-200-5.2-327.3-5.2-327.3zm-707.4 18.3l-45.4 69.7 83.6 52.1s56 28.5 29.4 81.9C233.8 625.5 112 736.3 112 736.3l109 68.1c75.4-163.7 70.5-142 89.5-200.7 19.5-60.1 23.7-105.9-9.4-139.1-42.4-42.6-47-46.6-110-93.4z")),t.ToTopOutline=s("to-top",o,l(a,"M885 780H165c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM400 325.7h73.9V664c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V325.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 171a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13z")),t.TrademarkOutline=s("trademark",o,l(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 0 0 7.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z")),t.TransactionOutline=s("transaction",o,l(a,"M668.6 320c0-4.4-3.6-8-8-8h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.5-1.1.9-2.4.9-3.7zM157.9 504.2a352.7 352.7 0 0 1 103.5-242.4c32.5-32.5 70.3-58.1 112.4-75.9 43.6-18.4 89.9-27.8 137.6-27.8 47.8 0 94.1 9.3 137.6 27.8 42.1 17.8 79.9 43.4 112.4 75.9 10 10 19.3 20.5 27.9 31.4l-50 39.1a8 8 0 0 0 3 14.1l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3l-47.8 37.4C770.7 146.3 648.6 82 511.5 82 277 82 86.3 270.1 82 503.8a8 8 0 0 0 8 8.2h60c4.3 0 7.8-3.5 7.9-7.8zM934 512h-60c-4.3 0-7.9 3.5-8 7.8a352.7 352.7 0 0 1-103.5 242.4 352.57 352.57 0 0 1-112.4 75.9c-43.6 18.4-89.9 27.8-137.6 27.8s-94.1-9.3-137.6-27.8a352.57 352.57 0 0 1-112.4-75.9c-10-10-19.3-20.5-27.9-31.4l49.9-39.1a8 8 0 0 0-3-14.1l-156.8-38.3c-5-1.2-9.9 2.6-9.9 7.7l-.8 161.7c0 6.7 7.7 10.5 12.9 6.3l47.8-37.4C253.3 877.7 375.4 942 512.5 942 747 942 937.7 753.9 942 520.2a8 8 0 0 0-8-8.2z")),t.TwitterOutline=s("twitter",o,l(a,"M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0 0 75-94 336.64 336.64 0 0 1-108.2 41.2A170.1 170.1 0 0 0 672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 0 0-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 0 1-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 0 1-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z")),t.UnderlineOutline=s("underline",o,l(a,"M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z")),t.UndoOutline=s("undo",o,l(a,"M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 0 0-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 0 0-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z")),t.UnorderedListOutline=s("unordered-list",o,l(a,"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.UpOutline=s("up",o,l(a,"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 0 0 140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z")),t.UploadOutline=s("upload",o,l(a,"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z")),t.UserAddOutline=s("user-add",o,l(a,"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 888.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.UsergroupAddOutline=s("usergroup-add",o,l(a,"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z")),t.UserOutline=s("user",o,l(a,"M858.5 763.6a374 374 0 0 0-80.6-119.5 375.63 375.63 0 0 0-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 0 0-80.6 119.5A371.7 371.7 0 0 0 136 901.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 0 0 8-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z")),t.UserDeleteOutline=s("user-delete",o,l(a,"M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 901.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.UsergroupDeleteOutline=s("usergroup-delete",o,l(a,"M888 784H664c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7zM824 484c0-109.4-87.9-198.3-196.9-200C516.3 282.3 424 373.2 424 484c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 754.6 326 826.8 324 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 707.7 563 684 624 684c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 598.7 658.2 612 624 612s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z")),t.VerticalAlignBottomOutline=s("vertical-align-bottom",o,l(a,"M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z")),t.VerticalAlignMiddleOutline=s("vertical-align-middle",o,l(a,"M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 0 0-11.3 0L405.6 752.3a7.23 7.23 0 0 0 5.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z")),t.VerticalAlignTopOutline=s("vertical-align-top",o,l(a,"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z")),t.VerticalRightOutline=s("vertical-right",o,l(a,"M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z")),t.VerticalLeftOutline=s("vertical-left",o,l(a,"M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512 265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512 267.1 157.9A7.95 7.95 0 0 0 254 164z")),t.WifiOutline=s("wifi",o,l(a,"M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6a8.1 8.1 0 0 0-.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-.9l36-42.9c2.8-3.3 2.4-8.3-.9-11.2zm117.4-140.1C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4a8.05 8.05 0 0 0-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3zm116.7-139C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4a8 8 0 0 0-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3zM448 778a64 64 0 1 0 128 0 64 64 0 1 0-128 0z")),t.ZhihuOutline=s("zhihu",o,l(a,"M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z")),t.WeiboOutline=s("weibo",o,l(a,"M457.3 543c-68.1-17.7-145 16.2-174.6 76.2-30.1 61.2-1 129.1 67.8 151.3 71.2 23 155.2-12.2 184.4-78.3 28.7-64.6-7.2-131-77.6-149.2zm-52 156.2c-13.8 22.1-43.5 31.7-65.8 21.6-22-10-28.5-35.7-14.6-57.2 13.7-21.4 42.3-31 64.4-21.7 22.4 9.5 29.6 35 16 57.3zm45.5-58.5c-5 8.6-16.1 12.7-24.7 9.1-8.5-3.5-11.2-13.1-6.4-21.5 5-8.4 15.6-12.4 24.1-9.1 8.7 3.2 11.8 12.9 7 21.5zm334.5-197.2c15 4.8 31-3.4 35.9-18.3 11.8-36.6 4.4-78.4-23.2-109a111.39 111.39 0 0 0-106-34.3 28.45 28.45 0 0 0-21.9 33.8 28.39 28.39 0 0 0 33.8 21.8c18.4-3.9 38.3 1.8 51.9 16.7a54.2 54.2 0 0 1 11.3 53.3 28.45 28.45 0 0 0 18.2 36zm99.8-206c-56.7-62.9-140.4-86.9-217.7-70.5a32.98 32.98 0 0 0-25.4 39.3 33.12 33.12 0 0 0 39.3 25.5c55-11.7 114.4 5.4 154.8 50.1 40.3 44.7 51.2 105.7 34 159.1-5.6 17.4 3.9 36 21.3 41.7 17.4 5.6 36-3.9 41.6-21.2v-.1c24.1-75.4 8.9-161.1-47.9-223.9zM729 499c-12.2-3.6-20.5-6.1-14.1-22.1 13.8-34.7 15.2-64.7.3-86-28-40.1-104.8-37.9-192.8-1.1 0 0-27.6 12.1-20.6-9.8 13.5-43.5 11.5-79.9-9.6-101-47.7-47.8-174.6 1.8-283.5 110.6C127.3 471.1 80 557.5 80 632.2 80 775.1 263.2 862 442.5 862c235 0 391.3-136.5 391.3-245 0-65.5-55.2-102.6-104.8-118zM443 810.8c-143 14.1-266.5-50.5-275.8-144.5-9.3-93.9 99.2-181.5 242.2-195.6 143-14.2 266.5 50.5 275.8 144.4C694.4 709 586 796.6 443 810.8z")),t.WomanOutline=s("woman",o,l(a,"M712.8 548.8c53.6-53.6 83.2-125 83.2-200.8 0-75.9-29.5-147.2-83.2-200.8C659.2 93.6 587.8 64 512 64s-147.2 29.5-200.8 83.2C257.6 200.9 228 272.1 228 348c0 63.8 20.9 124.4 59.4 173.9 7.3 9.4 15.2 18.3 23.7 26.9 8.5 8.5 17.5 16.4 26.8 23.7 39.6 30.8 86.3 50.4 136.1 57V736H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h114v140c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V812h114c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H550V629.5c61.5-8.2 118.2-36.1 162.8-80.7zM512 556c-55.6 0-107.7-21.6-147.1-60.9C325.6 455.8 304 403.6 304 348s21.6-107.7 60.9-147.1C404.2 161.5 456.4 140 512 140s107.7 21.6 147.1 60.9C698.4 240.2 720 292.4 720 348s-21.6 107.7-60.9 147.1C619.7 534.4 567.6 556 512 556z")),t.ZoomInOutline=s("zoom-in",o,l(a,"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z")),t.AccountBookTwoTone=s("account-book",i,(function(e,t){return l(a,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-65.6 121.8l-89.3 164.1h49.1c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4v33.7h65.4c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4V752c0 4.4-3.6 8-8 8h-41.3c-4.4 0-8-3.6-8-8v-53.8h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8h65.1v-33.7h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8H467l-89.3-164c-2.1-3.9-.7-8.8 3.2-10.9 1.1-.7 2.5-1 3.8-1h46a8 8 0 0 1 7.1 4.4l73.4 145.4h2.8l73.4-145.4c1.3-2.7 4.1-4.4 7.1-4.4h45c4.5 0 8 3.6 7.9 8 0 1.3-.4 2.6-1 3.8z"],[e,"M639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z"])})),t.ZoomOutOutline=s("zoom-out",o,l(a,"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z")),t.AlertTwoTone=s("alert",i,(function(e,t){return l(a,[t,"M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75V585z"],[e,"M216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8zm348 712H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zm-639-96c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z"])})),t.ApiTwoTone=s("api",i,(function(e,t){return l(a,[t,"M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z"],[e,"M578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 0 0-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z"])})),t.AppstoreTwoTone=s("appstore",i,(function(e,t){return l(a,[e,"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm52-668H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"],[t,"M212 212h200v200H212zm400 0h200v200H612zM212 612h200v200H212zm400 0h200v200H612z"])})),t.BankTwoTone=s("bank",i,(function(e,t){return l(a,[t,"M240.9 393.9h542.2L512 196.7z"],[e,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374zM240.9 393.9L512 196.7l271.1 197.2H240.9z"])})),t.AudioTwoTone=s("audio",i,(function(e,t){return l(a,[t,"M512 552c54.3 0 98-43.2 98-96V232c0-52.8-43.7-96-98-96s-98 43.2-98 96v224c0 52.8 43.7 96 98 96z"],[e,"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z"],[e,"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-98-392c0-52.8 43.7-96 98-96s98 43.2 98 96v224c0 52.8-43.7 96-98 96s-98-43.2-98-96V232z"])})),t.BellTwoTone=s("bell",i,(function(e,t){return l(a,[t,"M512 220c-55.6 0-107.8 21.6-147.1 60.9S304 372.4 304 428v340h416V428c0-55.6-21.6-107.8-60.9-147.1S567.6 220 512 220zm280 208c0-141.1-104.3-257.8-240-277.2v.1c135.7 19.4 240 136 240 277.1zM472 150.9v-.1C336.3 170.2 232 286.9 232 428c0-141.1 104.3-257.7 240-277.1z"],[e,"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zm208-120H304V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340z"])})),t.BookTwoTone=s("book",i,(function(e,t){return l(a,[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z"],[t,"M668 345.9V136h-96v211.4l49.5-35.4z"],[t,"M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 0 1-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z"])})),t.BoxPlotTwoTone=s("box-plot",i,(function(e,t){return l(a,[t,"M296 368h88v288h-88zm152 0h280v288H448z"],[e,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM384 656h-88V368h88v288zm344 0H448V368h280v288z"])})),t.BugTwoTone=s("bug",i,(function(e,t){return l(a,[e,"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 0 1-22.66 49.02 281.39 281.39 0 0 1-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 0 1-100.45-100.45 278.63 278.63 0 0 1-22.66-49.02A119.95 119.95 0 0 0 188 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 0 1 232 680v-96H84a8 8 0 0 1-8-8v-56a8 8 0 0 1 8-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 0 1 8-8h60a8 8 0 0 1 8 8 63 63 0 0 0 63 63h560a63 63 0 0 0 63-63 8 8 0 0 1 8-8h60a8 8 0 0 1 8 8c0 76.77-62.23 139-139 139v100h148a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8H792zM368 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0 1 74.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0 1 74.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 0 0-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 0 0-45.4 45.39C373.95 218.85 368 243.67 368 272z"],[t,"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308z"])})),t.BulbTwoTone=s("bulb",i,(function(e,t){return l(a,[t,"M512 136c-141.4 0-256 114.6-256 256 0 92.5 49.4 176.3 128.1 221.8l35.9 20.8V752h184V634.6l35.9-20.8C718.6 568.3 768 484.5 768 392c0-141.4-114.6-256-256-256z"],[e,"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"])})),t.CalculatorTwoTone=s("calculator",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm256.2-75h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zM576 335c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 265c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 104c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zM248 335c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48z"],[e,"M383.5 675l61.3-74.8c4.3-5.2.7-13.1-5.9-13.1h-50.8c-2.3 0-4.4 1-5.9 2.9l-34 41.6-34-41.6a7.69 7.69 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.4-1 5.9-2.9l35.5-43.5 35.5 43.5c1.4 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 6-13.2L383.5 675zM251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 369h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4z"])})),t.BuildTwoTone=s("build",i,(function(e,t){return l(a,[t,"M144 546h200v200H144zm268-268h200v200H412z"],[e,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM344 746H144V546h200v200zm268 0H412V546h200v200zm0-268H412V278h200v200zm268 0H680V278h200v200z"])})),t.CalendarTwoTone=s("calendar",i,(function(e,t){return l(a,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z"])})),t.CameraTwoTone=s("camera",i,(function(e,t){return l(a,[t,"M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z"],[e,"M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"],[e,"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z"])})),t.CarTwoTone=s("car",i,(function(e,t){return l(a,[t,"M199.6 474L184 517v237h656V517l-15.6-43H199.6zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"],[e,"M720 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[e,"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM840 754H184V517l15.6-43h624.8l15.6 43v237z"],[e,"M224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm420 23h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8z"])})),t.CarryOutTwoTone=s("carry-out",i,(function(e,t){return l(a,[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z"],[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-17.5 128.8L481.9 725.5a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.9-6.6 13-6.6H688c6.5 0 10.3 7.4 6.5 12.8z"],[e,"M688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z"])})),t.CheckCircleTwoTone=s("check-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm193.4 225.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 5 25.9 13.3l71.2 98.8 157.2-218c6-8.4 15.7-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.4 12.7z"],[e,"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"])})),t.CheckSquareTwoTone=s("check-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm130-367.8h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H688c6.5 0 10.3 7.4 6.5 12.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L307.5 484.9c-3.8-5.3 0-12.7 6.5-12.7z"],[e,"M432.2 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7h-46.9c-10.3 0-19.9 5-25.9 13.3L458 584.3l-71.2-98.8c-6-8.4-15.7-13.3-25.9-13.3H314c-6.5 0-10.3 7.4-6.5 12.7l124.7 172.8z"])})),t.ClockCircleTwoTone=s("clock-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm176.5 509.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z"],[e,"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.6-3.6 1.8-8.6-1.8-11.1z"])})),t.CloseCircleTwoTone=s("close-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm171.8 527.1c1.2 1.5 1.9 3.3 1.9 5.2 0 4.5-3.6 8-8 8l-66-.3-99.3-118.4-99.3 118.5-66.1.3c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2L471 512.3l-130.1-155a8.32 8.32 0 0 1-1.9-5.2c0-4.5 3.6-8 8-8l66.1.3 99.3 118.4 99.4-118.5 66-.3c4.4 0 8 3.6 8 8 0 1.9-.6 3.8-1.8 5.2l-130.1 155 129.9 154.9z"],[e,"M685.8 352c0-4.4-3.6-8-8-8l-66 .3-99.4 118.5-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155-130.1 154.9a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3 99.3-118.5L611.7 680l66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.9 512.2l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z"])})),t.CloudTwoTone=s("cloud",i,(function(e,t){return l(a,[t,"M791.9 492l-37.8-10-13.8-36.5c-8.6-22.7-20.6-44.1-35.7-63.4a245.73 245.73 0 0 0-52.4-49.9c-41.1-28.9-89.5-44.2-140-44.2s-98.9 15.3-140 44.2a245.6 245.6 0 0 0-52.4 49.9 240.47 240.47 0 0 0-35.7 63.4l-13.9 36.6-37.9 9.9a125.7 125.7 0 0 0-66.1 43.7A123.1 123.1 0 0 0 140 612c0 33.1 12.9 64.3 36.3 87.7 23.4 23.4 54.5 36.3 87.6 36.3h496.2c33.1 0 64.2-12.9 87.6-36.3A123.3 123.3 0 0 0 884 612c0-56.2-37.8-105.5-92.1-120z"],[e,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"])})),t.CloseSquareTwoTone=s("close-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm163.9-473.9A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1z"],[e,"M354 671h58.9c4.8 0 9.3-2.1 12.3-5.7L512 561.8l86.8 103.5c3.1 3.6 7.6 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.3-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.8 0-9.3 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3.1-3.6-7.6-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z"])})),t.CodeTwoTone=s("code",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm339.5-223h185c4.1 0 7.5 3.6 7.5 8v48c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8zM308 610.3c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7z"],[e,"M321.1 679.1l192-161c3.9-3.2 3.9-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48z"])})),t.CompassTwoTone=s("compass",i,(function(e,t){return l(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM327.6 701.7c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2L421 470.9 553.1 603l-225.5 98.7zm375.1-375.1L604 552.1 471.9 420l225.5-98.7c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z"],[e,"M322.3 696.4c-.4 1-.4 2.2 0 3.2.9 2.1 3.3 3 5.3 2.1L553.1 603 421 470.9l-98.7 225.5zm375.1-375.1L471.9 420 604 552.1l98.7-225.5c.4-1.1.4-2.2 0-3.2-.9-2.1-3.3-3-5.3-2.1z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"])})),t.ContactsTwoTone=s("contacts",i,(function(e,t){return l(a,[t,"M460.3 526a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z"],[t,"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM661 736h-43.8c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 39.9-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5h-43.9a8 8 0 0 1-8-8.4c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.7 26.4 71.9 72.8 74.7 126.1a8 8 0 0 1-8 8.4z"],[e,"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52z"],[e,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z"])})),t.ContainerTwoTone=s("container",i,(function(e,t){return l(a,[t,"M635 771.7c-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H232v201h560V687h-97.9c-11.6 32.8-32 62.3-59.1 84.7z"],[e,"M320 501h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v201zm0-264H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v488z"],[e,"M320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.ControlTwoTone=s("control",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM340.4 601.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5z"],[t,"M184 840h656V184H184v656zm436.4-499.1c-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1zM340 485V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99z"],[e,"M340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c41.7-13.5 72-52.8 72-99s-30.3-85.4-72-99V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c-41.7 13.5-72 52.8-72 99s30.3 85.4 72 99zm.1-116c.1-.2.2-.3.3-.5l1.5-2.4c0-.1.1-.1.1-.2l.9-1.2c0-.1.1-.2.2-.3 1-1.2 2.1-2.5 3.2-3.6l.2-.2c.4-.4.8-.7 1.2-1.1.8-.7 1.7-1.4 2.6-2.1h.1l1.2-.9c.1-.1.3-.2.4-.3 1.3-.8 2.6-1.5 3.9-2.2.2-.2.5-.3.7-.4.4-.2.7-.3 1.1-.5.3-.1.7-.3 1-.4.5-.1 1-.3 1.5-.5.4-.1.9-.3 1.3-.4l.9-.3 1.4-.3c.2-.1.5-.1.7-.2.7-.2 1.4-.3 2.1-.4.2-.1.4-.1.6-.1.5-.1 1.1-.2 1.7-.2.3-.1.5-.1.7-.1.8-.1 1.5-.1 2.3-.1s1.5.1 2.3.1c.3.1.5.1.7.1.6.1 1.1.1 1.7.2.2.1.4.1.6.1.7.1 1.4.3 2.1.4.2.1.5.1.7.2l1.4.3.9.3c.4.1.9.3 1.3.4.5.1 1 .3 1.5.5.3.1.7.3 1 .4.4.2.7.3 1.1.5.2.2.5.3.7.4 1.4.6 2.7 1.4 3.9 2.2.1.1.3.2.4.3l1.2.9h.1c.9.6 1.8 1.3 2.6 2.1.4.3.8.7 1.2 1.1l.2.2c1.2 1.1 2.2 2.3 3.2 3.6 0 .1.1.2.2.3l.9 1.2c0 .1.1.1.1.2l1.5 2.4A36.03 36.03 0 0 1 408 584c0 6.1-1.6 11.9-4.3 17-.1.2-.2.3-.3.5l-1.5 2.4c0 .1-.1.1-.1.2l-.9 1.2c0 .1-.1.2-.2.3-1 1.2-2.1 2.5-3.2 3.6l-.2.2c-.4.4-.8.7-1.2 1.1-.8.7-1.7 1.4-2.6 2.1h-.1l-1.2.9c-.1.1-.3.2-.4.3-1.3.8-2.6 1.5-3.9 2.2-.2.2-.5.3-.7.4-.4.2-.7.3-1.1.5-.3.1-.7.3-1 .4-.5.1-1 .3-1.5.5-.4.1-.9.3-1.3.4l-.9.3-1.4.3c-.2.1-.5.1-.7.2-.7.2-1.4.3-2.1.4-.2.1-.4.1-.6.1-.5.1-1.1.2-1.7.2-.3.1-.5.1-.7.1-.8.1-1.5.1-2.3.1s-1.5-.1-2.3-.1c-.3-.1-.5-.1-.7-.1-.6-.1-1.1-.1-1.7-.2-.2-.1-.4-.1-.6-.1-.7-.1-1.4-.3-2.1-.4-.2-.1-.5-.1-.7-.2l-1.4-.3-.9-.3c-.4-.1-.9-.3-1.3-.4-.5-.1-1-.3-1.5-.5-.3-.1-.7-.3-1-.4-.4-.2-.7-.3-1.1-.5-.2-.2-.5-.3-.7-.4-1.4-.6-2.7-1.4-3.9-2.2-.1-.1-.3-.2-.4-.3l-1.2-.9h-.1c-.9-.6-1.8-1.3-2.6-2.1-.4-.3-.8-.7-1.2-1.1l-.2-.2c-1.2-1.1-2.2-2.3-3.2-3.6 0-.1-.1-.2-.2-.3l-.9-1.2c0-.1-.1-.1-.1-.2l-1.5-2.4c-.1-.2-.2-.3-.3-.5-2.7-5-4.3-10.9-4.3-17s1.6-11.9 4.3-17zm280.3-27.9c-.1 0-.2-.1-.4-.1v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-.1 0-.2.1-.4.1 42-13.4 72.4-52.7 72.4-99.1 0-46.4-30.4-85.7-72.4-99.1.1 0 .2.1.4.1v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c.1 0 .2-.1.4-.1-42 13.4-72.4 52.7-72.4 99.1 0 46.4 30.4 85.7 72.4 99.1zM652 404c19.9 0 36 16.1 36 36s-16.1 36-36 36-36-16.1-36-36 16.1-36 36-36z"])})),t.CopyTwoTone=s("copy",i,(function(e,t){return l(a,[t,"M232 706h142c22.1 0 40 17.9 40 40v142h250V264H232v442z"],[e,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32z"],[e,"M704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"])})),t.CreditCardTwoTone=s("credit-card",i,(function(e,t){return l(a,[t,"M136 792h752V440H136v352zm507-144c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72zM136 232h752v120H136z"],[e,"M651 728h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z"],[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V440h752v352zm0-440H136V232h752v120z"])})),t.CrownTwoTone=s("crown",i,(function(e,t){return l(a,[t,"M911.9 283.9v.5L835.5 865c-1 8-7.9 14-15.9 14H204.5c-8.1 0-14.9-6.1-16-14l-76.4-580.6v-.6 1.6L188.5 866c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.1-.5.1-1 0-1.5z"],[t,"M773.6 810.6l53.9-409.4-139.8 86.1L512 252.9 336.3 487.3l-139.8-86.1 53.8 409.4h523.3zm-374.2-189c0-62.1 50.5-112.6 112.6-112.6s112.6 50.5 112.6 112.6v1c0 62.1-50.5 112.6-112.6 112.6s-112.6-50.5-112.6-112.6v-1z"],[e,"M512 734.2c61.9 0 112.3-50.2 112.6-112.1v-.5c0-62.1-50.5-112.6-112.6-112.6s-112.6 50.5-112.6 112.6v.5c.3 61.9 50.7 112.1 112.6 112.1zm0-160.9c26.6 0 48.2 21.6 48.2 48.3 0 26.6-21.6 48.3-48.2 48.3s-48.2-21.6-48.2-48.3c0-26.6 21.6-48.3 48.2-48.3z"],[e,"M188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6v-.5c.3-6.4-6.7-10.8-12.3-7.4L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.5-3.4-12.6.9-12.2 7.3v.6L188.5 865zm147.8-377.7L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4H250.3l-53.8-409.4 139.8 86.1z"])})),t.CustomerServiceTwoTone=s("customer-service",i,(function(e,t){return l(a,[t,"M696 632h128v192H696zm-496 0h128v192H200z"],[e,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z"])})),t.DashboardTwoTone=s("dashboard",i,(function(e,t){return l(a,[t,"M512 188c-99.3 0-192.7 38.7-263 109-70.3 70.2-109 163.6-109 263 0 105.6 44.5 205.5 122.6 276h498.8A371.12 371.12 0 0 0 884 560c0-99.3-38.7-192.7-109-263-70.2-70.3-163.6-109-263-109zm-30 44c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.4l-31.1 31.1a8.03 8.03 0 0 1-11.3 0l-56.6-56.6a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.5l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.2 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 538v44c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8z"],[e,"M623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8z"],[e,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276z"],[e,"M762.7 340.8l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zM750 538v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zM304.1 309.7a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z"])})),t.DeleteTwoTone=s("delete",i,(function(e,t){return l(a,[t,"M292.7 840h438.6l24.2-512h-487z"],[e,"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z"])})),t.DiffTwoTone=s("diff",i,(function(e,t){return l(a,[t,"M232 264v624h432V413.8L514.2 264H232zm336 489c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-262v42c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7z"],[e,"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z"],[e,"M553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888z"],[e,"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7z"])})),t.DatabaseTwoTone=s("database",i,(function(e,t){return l(a,[t,"M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M304 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-544a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z"])})),t.DislikeTwoTone=s("dislike",i,(function(e,t){return l(a,[t,"M273 100.1v428h.3l-.3-428zM820.4 525l-21.9-19 14-25.5a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-22.4-13.2-42.6-33.6-51.8H345v345.2c18.6 67.2 46.4 168 83.5 302.5a44.28 44.28 0 0 0 42.2 32.3c7.5.1 15-2.2 21.1-6.7 9.9-7.4 15.2-18.6 14.6-30.5l-9.6-198.4h314.4C829 605.5 840 587.1 840 568c0-16.5-7.1-32.2-19.6-43z"],[e,"M112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32zm773.9 358.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273l.3 428 85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zm-74.7 126.1H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3c-37.1-134.4-64.9-235.2-83.5-302.5V172h399.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z"])})),t.DownCircleTwoTone=s("down-circle",i,(function(e,t){return l(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm184.4 277.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z"])})),t.DownSquareTwoTone=s("down-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm150-440h46.9c10.3 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7z"],[e,"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z"])})),t.EnvironmentTwoTone=s("environment",i,(function(e,t){return l(a,[t,"M724.4 224.9C667.7 169.5 592.3 139 512 139s-155.7 30.5-212.4 85.8C243.1 280 212 353.2 212 431.1c0 241.3 234.1 407.2 300 449.1 65.9-41.9 300-207.8 300-449.1 0-77.9-31.1-151.1-87.6-206.2zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z"],[e,"M512 263c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8S624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z"],[e,"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1z"])})),t.EditTwoTone=s("edit",i,(function(e,t){return l(a,[t,"M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z"],[e,"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z"])})),t.ExclamationCircleTwoTone=s("exclamation-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-32 156c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M488 576h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8zm-24 112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.ExperimentTwoTone=s("experiment",i,(function(e,t){return l(a,[t,"M551.9 513c19.6 0 35.9-14.2 39.3-32.8A40.02 40.02 0 0 1 552 512a40 40 0 0 1-40-39.4v.5c0 22 17.9 39.9 39.9 39.9zM752 687.8l-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-41.2 0-81-9.8-116.7-28L210.5 844h603l-59.9-155.2-1.6-1z"],[e,"M879 824.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.6-107.6.1-.2c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1l.6 1.6L813.5 844h-603z"],[e,"M552 512c19.3 0 35.4-13.6 39.2-31.8.6-2.7.8-5.4.8-8.2 0-22.1-17.9-40-40-40s-40 17.9-40 40v.6a40 40 0 0 0 40 39.4z"])})),t.EyeInvisibleTwoTone=s("eye-invisible",i,(function(e,t){return l(a,[t,"M254.89 758.85l125.57-125.57a176 176 0 0 1 248.82-248.82L757 256.72Q651.69 186.07 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q69.27 145.91 173.09 221.05zM942.2 486.2Q889.46 375.11 816.7 305L672.48 449.27a176.09 176.09 0 0 1-227.22 227.21L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z"],[e,"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5zM878.63 165.56L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z"],[e,"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z"])})),t.EyeTwoTone=s("eye",i,(function(e,t){return l(a,[t,"M81.8 537.8a60.3 60.3 0 0 1 0-51.5C176.6 286.5 319.8 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c-192.1 0-335.4-100.5-430.2-300.2z"],[t,"M512 258c-161.3 0-279.4 81.8-362.7 254C232.6 684.2 350.7 766 512 766c161.4 0 279.5-81.8 362.7-254C791.4 339.8 673.3 258 512 258zm-4 430c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z"],[e,"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258s279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z"],[e,"M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"])})),t.FileAddTwoTone=s("file-add",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm126 236v48c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V644H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V472c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z"])})),t.FileExclamationTwoTone=s("file-exclamation",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-54 96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V448zm32 336c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M488 640h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm-16 104a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.FileImageTwoTone=s("file-image",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0 1 12.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.FileExcelTwoTone=s("file-excel",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm51.6 120h35.7a12.04 12.04 0 0 1 10.1 18.5L546.1 623l84 130.4c3.6 5.6 2 13-3.6 16.6-2 1.2-4.2 1.9-6.5 1.9h-37.5c-4.1 0-8-2.1-10.2-5.7L510 664.8l-62.7 101.5c-2.2 3.5-6 5.7-10.2 5.7h-34.5a12.04 12.04 0 0 1-10.2-18.4l83.4-132.8-82.3-130.4c-3.6-5.7-1.9-13.1 3.7-16.6 1.9-1.3 4.1-1.9 6.4-1.9H442c4.2 0 8.1 2.2 10.3 5.8l61.8 102.4 61.2-102.3c2.2-3.6 6.1-5.8 10.3-5.8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z"])})),t.FileMarkdownTwoTone=s("file-markdown",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm72.3 122H641c6.6 0 12 5.4 12 12v272c0 6.6-5.4 12-12 12h-27.2c-6.6 0-12-5.4-12-12V581.7L535 732.3c-2 4.3-6.3 7.1-11 7.1h-24.1a12 12 0 0 1-11-7.1l-66.8-150.2V758c0 6.6-5.4 12-12 12H383c-6.6 0-12-5.4-12-12V486c0-6.6 5.4-12 12-12h35c4.8 0 9.1 2.8 11 7.2l83.2 191 83.1-191c1.9-4.4 6.2-7.2 11-7.2z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z"])})),t.FilePdfTwoTone=s("file-pdf",i,(function(e,t){return l(a,[t,"M509.2 490.8c-.7-1.3-1.4-1.9-2.2-2-2.9 3.3-2.2 31.5 2.7 51.4 4-13.6 4.7-40.5-.5-49.4zm-1.6 120.5c-7.7 20-18.8 47.3-32.1 71.4 4-1.6 8.1-3.3 12.3-5 17.6-7.2 37.3-15.3 58.9-20.2-14.9-11.8-28.4-27.7-39.1-46.2z"],[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm55 287.6c16.1-1.9 30.6-2.8 44.3-2.3 12.8.4 23.6 2 32 5.1.2.1.3.1.5.2.4.2.8.3 1.2.5.5.2 1.1.4 1.6.7.1.1.3.1.4.2 4.1 1.8 7.5 4 10.1 6.6 9.1 9.1 11.8 26.1 6.2 39.6-3.2 7.7-11.7 20.5-33.3 20.5-21.8 0-53.9-9.7-82.1-24.8-25.5 4.3-53.7 13.9-80.9 23.1-5.8 2-11.8 4-17.6 5.9-38 65.2-66.5 79.4-84.1 79.4-4.2 0-7.8-.9-10.8-2-6.9-2.6-12.8-8-16.5-15-.9-1.7-1.6-3.4-2.2-5.2-1.6-4.8-2.1-9.6-1.3-13.6l.6-2.7c.1-.2.1-.4.2-.6.2-.7.4-1.4.7-2.1 0-.1.1-.2.1-.3 4.1-11.9 13.6-23.4 27.7-34.6 12.3-9.8 27.1-18.7 45.9-28.4 15.9-28 37.6-75.1 51.2-107.4-10.8-41.8-16.7-74.6-10.1-98.6.9-3.3 2.5-6.4 4.6-9.1.2-.2.3-.4.5-.6.1-.1.1-.2.2-.2 6.3-7.5 16.9-11.9 28.1-11.5 16.6.7 29.7 11.5 33 30.1 1.7 8 2.2 16.5 1.9 25.7v.7c0 .5 0 1-.1 1.5-.7 13.3-3 26.6-7.3 44.7-.4 1.6-.8 3.2-1.2 5.2l-1 4.1-.1.3c.1.2.1.3.2.5l1.8 4.5c.1.3.3.7.4 1 .7 1.6 1.4 3.3 2.1 4.8v.1c8.7 18.8 19.7 33.4 33.9 45.1 4.3 3.5 8.9 6.7 13.9 9.8 1.8-.5 3.5-.7 5.3-.9z"],[t,"M391.5 761c5.7-4.4 16.2-14.5 30.1-34.7-10.3 9.4-23.4 22.4-30.1 34.7zm270.9-83l.2-.3h.2c.6-.4.5-.7.4-.9-.1-.1-4.5-9.3-45.1-7.4 35.3 13.9 43.5 9.1 44.3 8.6z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M535.9 585.3c-.8-1.7-1.5-3.3-2.2-4.9-.1-.3-.3-.7-.4-1l-1.8-4.5c-.1-.2-.1-.3-.2-.5l.1-.3.2-1.1c4-16.3 8.6-35.3 9.4-54.4v-.7c.3-8.6-.2-17.2-2-25.6-3.8-21.3-19.5-29.6-32.9-30.2-11.3-.5-21.8 4-28.1 11.4-.1.1-.1.2-.2.2-.2.2-.4.4-.5.6-2.1 2.7-3.7 5.8-4.6 9.1-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.4-51.2 107.4v.1c-27.7 14.3-64.1 35.8-73.6 62.9 0 .1-.1.2-.1.3-.2.7-.5 1.4-.7 2.1-.1.2-.1.4-.2.6-.2.9-.5 1.8-.6 2.7-.9 4-.4 8.8 1.3 13.6.6 1.8 1.3 3.5 2.2 5.2 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-2.6-2.6-6-4.8-10.1-6.6-.1-.1-.3-.1-.4-.2-.5-.2-1.1-.4-1.6-.7-.4-.2-.8-.3-1.2-.5-.2-.1-.3-.1-.5-.2-16.2-5.8-41.7-6.7-76.3-2.8l-5.3.6c-5-3-9.6-6.3-13.9-9.8-14.2-11.3-25.1-25.8-33.8-44.7zM391.5 761c6.7-12.3 19.8-25.3 30.1-34.7-13.9 20.2-24.4 30.3-30.1 34.7zM507 488.8c.8.1 1.5.7 2.2 2 5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4zm-19.2 188.9c-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4 10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2zm175.4-.9c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4z"])})),t.FilePptTwoTone=s("file-ppt",i,(function(e,t){return l(a,[t,"M464.5 516.2v108.4h38.9c44.7 0 71.2-10.9 71.2-54.3 0-34.4-20.1-54.1-53.9-54.1h-56.2z"],[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm90 218.4c0 55.2-36.8 94.1-96.2 94.1h-63.3V760c0 4.4-3.6 8-8 8H424c-4.4 0-8-3.6-8-8V484c0-4.4 3.6-8 8-8v.1h104c59.7 0 96 39.8 96 94.3z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M424 476.1c-4.4-.1-8 3.5-8 7.9v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.2c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1z"])})),t.FileTextTwoTone=s("file-text",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 322c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm200-184v48c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8zm192 128H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.FileUnknownTwoTone=s("file-unknown",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 424c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm110-228.4c.7 44.9-29.7 84.5-74.3 98.9-5.7 1.8-9.7 7.3-9.7 13.3V672c0 5.5-4.5 10-10 10h-32c-5.5 0-10-4.5-10-10v-32c.2-19.8 15.4-37.3 34.7-40.1C549 596.2 570 574.3 570 549c0-28.1-25.8-51.5-58-51.5s-58 23.4-58 51.6c0 5.2-4.4 9.4-9.8 9.4h-32.4c-5.4 0-9.8-4.1-9.8-9.5 0-57.4 50.1-103.7 111.5-103 59.3.8 107.7 46.1 108.5 101.6z"],[e,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M480 744a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm-78-195c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103z"])})),t.FileZipTwoTone=s("file-zip",i,(function(e,t){return l(a,[t,"M344 630h32v2h-32z"],[t,"M534 352V136H360v64h64v64h-64v64h64v64h-64v64h64v64h-64v62h64v160H296V520h64v-64h-64v-64h64v-64h-64v-64h64v-64h-64v-64h-64v752h560V394H576a42 42 0 0 1-42-42z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z"],[e,"M296 392h64v64h-64zm0-128h64v64h-64zm0 318v160h128V582h-64v-62h-64v62zm48 50v-2h32v64h-32v-62zm16-432h64v64h-64zm0 256h64v64h-64zm0-128h64v64h-64z"])})),t.FileWordTwoTone=s("file-word",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm101.3 129.3c1.3-5.4 6.1-9.3 11.7-9.3h35.6a12.04 12.04 0 0 1 11.6 15.1l-74.4 276c-1.4 5.3-6.2 8.9-11.6 8.9h-31.8c-5.4 0-10.2-3.7-11.6-8.9l-52.8-197-52.8 197c-1.4 5.3-6.2 8.9-11.6 8.9h-32c-5.4 0-10.2-3.7-11.6-8.9l-74.2-276a12.02 12.02 0 0 1 11.6-15.1h35.4c5.6 0 10.4 3.9 11.7 9.3L434.6 680l49.7-198.9c1.3-5.4 6.1-9.1 11.6-9.1h32.2c5.5 0 10.3 3.7 11.6 9.1l49.8 199.3 45.8-199.1z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z"])})),t.FileTwoTone=s("file",i,(function(e,t){return l(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"])})),t.FilterTwoTone=s("filter",i,(function(e,t){return l(a,[t,"M420.6 798h182.9V642H420.6zM411 561.4l9.5 16.6h183l9.5-16.6L811.3 226H212.7z"],[e,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V642h182.9v156zm9.5-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z"])})),t.FireTwoTone=s("fire",i,(function(e,t){return l(a,[t,"M737 438.6c-9.6 15.5-21.1 30.7-34.4 45.6a73.1 73.1 0 0 1-51 24.4 73.36 73.36 0 0 1-53.4-18.8 74.01 74.01 0 0 1-24.4-59.8c3-47.4-12.4-103.1-45.8-165.7-16.9-31.4-37.1-58.2-61.2-80.4a240 240 0 0 1-12.1 46.5 354.26 354.26 0 0 1-58.2 101 349.6 349.6 0 0 1-58.6 56.8c-34 26.1-62 60-80.8 97.9a275.96 275.96 0 0 0-29.1 124c0 74.9 29.5 145.3 83 198.4 53.7 53.2 125 82.4 201 82.4s147.3-29.2 201-82.4c53.5-53 83-123.5 83-198.4 0-39.2-8.1-77.3-24-113.1-9.3-21-21-40.5-35-58.4z"],[e,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z"])})),t.FolderAddTwoTone=s("folder-add",i,(function(e,t){return l(a,[t,"M372.5 256H184v512h656V370.4H492.1L372.5 256zM540 443.1V528h84.5c4.1 0 7.5 3.1 7.5 7v42c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1z"],[e,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"],[e,"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1z"])})),t.FlagTwoTone=s("flag",i,(function(e,t){return l(a,[t,"M184 232h368v336H184z"],[t,"M624 632c0 4.4-3.6 8-8 8H504v73h336V377H624v255z"],[e,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z"])})),t.FolderTwoTone=s("folder",i,(function(e,t){return l(a,[e,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"],[t,"M372.5 256H184v512h656V370.4H492.1z"])})),t.FolderOpenTwoTone=s("folder-open",i,(function(e,t){return l(a,[t,"M159 768h612.3l103.4-256H262.3z"],[e,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"])})),t.FrownTwoTone=s("frown",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm224 112c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4 3.7-49.5 45.3-88.6 95.8-88.6s92 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533zm128-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.FundTwoTone=s("fund",i,(function(e,t){return l(a,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z"],[t,"M136 792h752V232H136v560zm56.4-130.5l214.9-215c3.1-3.1 8.2-3.1 11.3 0L533 561l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.1 3.1 3.1 8.2 0 11.3l-297 297.2a8.03 8.03 0 0 1-11.3 0L412.9 537.2 240.4 709.7a8.03 8.03 0 0 1-11.3 0l-36.7-36.9a8.03 8.03 0 0 1 0-11.3z"],[e,"M229.1 709.7c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L533 561 418.6 446.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z"])})),t.FunnelPlotTwoTone=s("funnel-plot",i,(function(e,t){return l(a,[t,"M420.6 798h182.9V650H420.6zM297.7 374h428.6l85-148H212.7zm113.2 197.4l8.4 14.6h185.3l8.4-14.6L689.6 438H334.4z"],[e,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V650h182.9v148zm9.5-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z"])})),t.GiftTwoTone=s("gift",i,(function(e,t){return l(a,[t,"M546 378h298v104H546zM228 550h250v308H228zm-48-172h298v104H180zm366 172h250v308H546z"],[e,"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zM478 858H228V550h250v308zm0-376H180V378h298v104zm0-176h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm68-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm250 622H546V550h250v308zm48-376H546V378h298v104z"])})),t.HddTwoTone=s("hdd",i,(function(e,t){return l(a,[t,"M232 888h560V680H232v208zm448-140c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 616h560V408H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48zm-72-144h560V136H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z"],[e,"M312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-272h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 516a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.HeartTwoTone=s("heart",i,(function(e,t){return l(a,[e,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z"],[t,"M679.7 201c-73.1 0-136.5 40.8-167.7 100.4C480.8 241.8 417.4 201 344.3 201c-104 0-188.3 82.6-188.3 184.5 0 201.2 356 429.3 356 429.3s356-228.1 356-429.3C868 283.6 783.7 201 679.7 201z"])})),t.HighlightTwoTone=s("highlight",i,(function(e,t){return l(a,[t,"M229.6 796.3h160.2l54.3-54.1-80.1-78.9zm220.7-397.1l262.8 258.9 147.3-145-262.8-259zm-77.1 166.1l171.4 168.9 68.6-67.6-171.4-168.9z"],[e,"M957.6 507.5L603.2 158.3a7.9 7.9 0 0 0-11.2 0L353.3 393.5a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8v55.2c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6L539 830a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.3H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.3l68.6-67.6 171.4 168.9-68.6 67.6zm168.5-76.1L450.3 399.2l147.3-145.1 262.8 259-147.3 145z"])})),t.HomeTwoTone=s("home",i,(function(e,t){return l(a,[t,"M512.1 172.6l-370 369.7h96V868H392V640c0-22.1 17.9-40 40-40h160c22.1 0 40 17.9 40 40v228h153.9V542.3H882L535.2 195.7l-23.1-23.1zm434.5 422.9c-6 6-13.1 10.8-20.8 13.9 7.7-3.2 14.8-7.9 20.8-13.9zm-887-34.7c5 30.3 31.4 53.5 63.1 53.5h.9c-31.9 0-58.9-23-64-53.5zm-.9-10.5v-1.9 1.9zm.1-2.6c.1-3.1.5-6.1 1-9.1-.6 2.9-.9 6-1 9.1z"],[e,"M951 510c0-.1-.1-.1-.1-.2l-1.8-2.1c-.1-.1-.2-.3-.4-.4-.7-.8-1.5-1.6-2.2-2.4L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.6 63.6 0 0 0-16 26.6l-.6 2.1-.3 1.1-.3 1.2c-.2.7-.3 1.4-.4 2.1 0 .1 0 .3-.1.4-.6 3-.9 6-1 9.1v3.3c0 .5 0 1 .1 1.5 0 .5 0 .9.1 1.4 0 .5.1 1 .1 1.5 0 .6.1 1.2.2 1.8 0 .3.1.6.1.9l.3 2.5v.1c5.1 30.5 32.2 53.5 64 53.5h42.5V940h691.7V614.3h43.4c8.6 0 16.9-1.7 24.5-4.9s14.7-7.9 20.8-13.9a63.6 63.6 0 0 0 18.7-45.3c0-14.7-5-28.8-14.3-40.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"])})),t.HourglassTwoTone=s("hourglass",i,(function(e,t){return l(a,[t,"M512 548c-42.2 0-81.9 16.4-111.7 46.3A156.63 156.63 0 0 0 354 706v134h316V706c0-42.2-16.4-81.9-46.3-111.7A156.63 156.63 0 0 0 512 548zM354 318c0 42.2 16.4 81.9 46.3 111.7C430.1 459.6 469.8 476 512 476s81.9-16.4 111.7-46.3C653.6 399.9 670 360.2 670 318V184H354v134z"],[e,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z"])})),t.Html5TwoTone=s("html5",i,(function(e,t){return l(a,[e,"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z"],[t,"M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z"],[e,"M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z"])})),t.IdcardTwoTone=s("idcard",i,(function(e,t){return l(a,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z"],[t,"M136 792h752V232H136v560zm472-372c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm0 144c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48c0 4.4-3.2 8-7.1 8H615.1c-3.9 0-7.1-3.6-7.1-8v-48zM216.2 664.6c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.6 26.4 71.8 72.8 74.6 126.1a8 8 0 0 1-8 8.4h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224c-4.6 0-8.2-3.8-7.8-8.4z"],[t,"M321.3 463a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z"],[e,"M610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z"])})),t.InfoCircleTwoTone=s("info-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm32 588c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"])})),t.InsuranceTwoTone=s("insurance",i,(function(e,t){return l(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M521.9 358.8h97.9v41.6h-97.9z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM413.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm257.9-340v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a6.38 6.38 0 0 1-4.8 1.4c-1.7-.3-3.2-1.3-4.1-2.8L432 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8z"],[e,"M443.7 306.9l-38.6-18.3c-3.4-1.6-7.3.2-8.4 3.7-17.5 58.5-45.2 110.2-82.2 153.6a5.7 5.7 0 0 0-1.2 5.6l13.2 43.5c1.4 4.5 7 5.8 10.2 2.4 7.7-8.1 15.4-16.8 23.1-26V656c0 4.4 3.6 8 8 8h37.3c4.4 0 8-3.6 8-8h.2V393.1a429.2 429.2 0 0 0 33.6-79c.9-2.8-.5-5.9-3.2-7.2zm26.8 9.1v127.4c0 4.4 3.6 8 8 8h65.9V470h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c.9 1.5 2.4 2.5 4.1 2.8 1.7.3 3.5-.2 4.8-1.4 31.6-26.8 58.6-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V535.9c21.3 41.7 47.5 77.6 78.1 106.9 2.6 2.5 6.7 2.2 8.9-.7l26.3-35.3c2-2.6 1.4-6.4-1.2-8.5-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8v-35.6c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H478.5c-4.4 0-8 3.6-8 8zm51.4 42.8h97.9v41.6h-97.9v-41.6z"])})),t.InteractionTwoTone=s("interaction",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z"],[e,"M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z"])})),t.InterationTwoTone=s("interation",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z"],[e,"M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z"])})),t.LayoutTwoTone=s("layout",i,(function(e,t){return l(a,[t,"M384 185h456v136H384zm-200 0h136v656H184zm696-73H144c-17.7 0-32 14.3-32 32v1c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32v-1c0-17.7-14.3-32-32-32zM384 385h456v456H384z"],[e,"M880 113H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V145c0-17.7-14.3-32-32-32zM320 841H184V185h136v656zm520 0H384V385h456v456zm0-520H384V185h456v136z"])})),t.LeftCircleTwoTone=s("left-circle",i,(function(e,t){return l(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm104 240.9c0 10.3-4.9 19.9-13.2 25.9L457.4 512l145.4 105.1c8.3 6 13.2 15.7 13.2 25.9v46.9c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z"])})),t.LeftSquareTwoTone=s("left-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm181.3-334.5l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9c0 10.3-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.7 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.4l-246-178a7.95 7.95 0 0 1 0-12.9z"],[e,"M365.3 518.4l246 178c5.3 3.9 12.7.1 12.7-6.4v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a7.95 7.95 0 0 0 0 12.9z"])})),t.LikeTwoTone=s("like",i,(function(e,t){return l(a,[t,"M273 495.9v428l.3-428zm538.2-88.3H496.8l9.6-198.4c.6-11.9-4.7-23.1-14.6-30.5-6.1-4.5-13.6-6.8-21.1-6.7-19.6.1-36.9 13.4-42.2 32.3-37.1 134.4-64.9 235.2-83.5 302.5V852h399.4a56.85 56.85 0 0 0 33.6-51.8c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-14-25.5 21.9-19a56.76 56.76 0 0 0 19.6-43c0-19.1-11-37.5-28.8-48.4z"],[e,"M112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32zm773.9 5.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.5-65.5-111a67.67 67.67 0 0 0-34.3-9.3H572.3l6-122.9c1.5-29.7-9-57.9-29.5-79.4a106.4 106.4 0 0 0-77.9-33.4c-52 0-98 35-111.8 85.1l-85.8 310.8-.3 428h472.1c9.3 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37zM820.4 499l-21.9 19 14 25.5a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H345V506.8c18.6-67.2 46.4-168 83.5-302.5a44.28 44.28 0 0 1 42.2-32.3c7.5-.1 15 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.1 32.2-19.6 43z"])})),t.LockTwoTone=s("lock",i,(function(e,t){return l(a,[e,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304z"],[t,"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z"],[e,"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z"])})),t.MailTwoTone=s("mail",i,(function(e,t){return l(a,[t,"M477.5 536.3L135.9 270.7l-27.5-21.4 27.6 21.5V792h752V270.8L546.2 536.3a55.99 55.99 0 0 1-68.7 0z"],[t,"M876.3 198.8l39.3 50.5-27.6 21.5 27.7-21.5-39.3-50.5z"],[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-94.5 72.1L512 482 190.5 232.1h643zm54.5 38.7V792H136V270.8l-27.6-21.5 27.5 21.4 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5h.1l39.3 50.5-27.7 21.5z"])})),t.MedicineBoxTwoTone=s("medicine-box",i,(function(e,t){return l(a,[t,"M244.3 328L184 513.4V840h656V513.4L779.7 328H244.3zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48z"],[e,"M652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840z"])})),t.MehTwoTone=s("meh",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 144H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-24-144a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.MessageTwoTone=s("message",i,(function(e,t){return l(a,[t,"M775.3 248.9a369.62 369.62 0 0 0-119-80A370.2 370.2 0 0 0 512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 0 0-80-119zM312 560a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M664 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"],[e,"M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"],[e,"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.MinusCircleTwoTone=s("minus-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"],[e,"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.MinusSquareTwoTone=s("minus-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48z"],[e,"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.MobileTwoTone=s("mobile",i,(function(e,t){return l(a,[e,"M744 64H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H288V136h448v752z"],[t,"M288 888h448V136H288v752zm224-142c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M472 786a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.PauseCircleTwoTone=s("pause-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-80 524c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"],[e,"M424 352h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"])})),t.MoneyCollectTwoTone=s("money-collect",i,(function(e,t){return l(a,[t,"M256 744.4l256 93.1 256-93.1V184H256v560.4zM359.7 313c1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 485.2h3.3L599 316.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8L564 515.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V704c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 323.8c-2.1-3.8-.7-8.7 3.2-10.8z"],[e,"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM768 744.4l-256 93.1-256-93.1V184h512v560.4z"],[e,"M460.4 515.4h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6z"])})),t.NotificationTwoTone=s("notification",i,(function(e,t){return l(a,[t,"M229.6 678.1c-3.7 11.6-5.6 23.9-5.6 36.4 0-12.5 2-24.8 5.7-36.4h-.1zm76.3-260.2H184v188.2h121.9l12.9 5.2L840 820.7V203.3L318.8 412.7z"],[e,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z"])})),t.PhoneTwoTone=s("phone",i,(function(e,t){return l(a,[t,"M721.7 184.9L610.9 295.8l120.8 120.7-8 21.6A481.29 481.29 0 0 1 438 723.9l-21.6 8-.9-.9-119.8-120-110.8 110.9 104.5 104.5c10.8 10.7 26 15.7 40.8 13.2 117.9-19.5 235.4-82.9 330.9-178.4s158.9-213.1 178.4-331c2.5-14.8-2.5-30-13.3-40.8L721.7 184.9z"],[e,"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z"])})),t.PictureTwoTone=s("picture",i,(function(e,t){return l(a,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z"],[t,"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z"],[t,"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 1 1 0 176 88 88 0 0 1 0-176z"],[t,"M276 368a28 28 0 1 0 56 0 28 28 0 1 0-56 0z"],[e,"M304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"])})),t.PlayCircleTwoTone=s("play-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm164.1 378.2L457.7 677.1a8.02 8.02 0 0 1-12.7-6.5V353a8 8 0 0 1 12.7-6.5l218.4 158.8a7.9 7.9 0 0 1 0 12.9z"],[e,"M676.1 505.3L457.7 346.5A8 8 0 0 0 445 353v317.6a8.02 8.02 0 0 0 12.7 6.5l218.4-158.9a7.9 7.9 0 0 0 0-12.9z"])})),t.PlaySquareTwoTone=s("play-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z"],[e,"M442.3 677.6l199.4-156.8a11.2 11.2 0 0 0 0-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z"])})),t.PieChartTwoTone=s("pie-chart",i,(function(e,t){return l(a,[t,"M316.2 920.5c-47.6-20.1-90.4-49-127.1-85.7a398.19 398.19 0 0 1-85.7-127.1A397.12 397.12 0 0 1 72 552.2v.2a398.57 398.57 0 0 0 117 282.5c36.7 36.7 79.4 65.5 127 85.6A396.64 396.64 0 0 0 471.6 952c27 0 53.6-2.7 79.7-7.9-25.9 5.2-52.4 7.8-79.3 7.8-54 .1-106.4-10.5-155.8-31.4zM560 472c-4.4 0-8-3.6-8-8V79.9c0-1.3.3-2.5.9-3.6-.9 1.3-1.5 2.9-1.5 4.6v383.7c0 4.4 3.6 8 8 8l383.6-1c1.6 0 3.1-.5 4.4-1.3-1 .5-2.2.7-3.4.7l-384 1z"],[t,"M619.8 147.6v256.6l256.4-.7c-13-62.5-44.3-120.5-90-166.1a332.24 332.24 0 0 0-166.4-89.8z"],[t,"M438 221.7c-75.9 7.6-146.2 40.9-200.8 95.5C174.5 379.9 140 463.3 140 552s34.5 172.1 97.2 234.8c62.3 62.3 145.1 96.8 233.2 97.2 88.2.4 172.7-34.1 235.3-96.2C761 733 794.6 662.3 802.3 586H438V221.7z"],[e,"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552v.2c0 53.9 10.6 106.2 31.4 155.5 20.1 47.6 49 90.4 85.7 127.1 36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952c26.9 0 53.4-2.6 79.3-7.8 26.1-5.3 51.7-13.1 76.4-23.6 47.6-20.1 90.4-49 127.1-85.7 36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552s34.5-172.1 97.2-234.8c54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8z"],[e,"M952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-3.4-.3-6.4 1.5-7.8 4.3a8.7 8.7 0 0 0-.9 3.6V464c0 4.4 3.6 8 8 8l384-1c1.2 0 2.3-.3 3.4-.7a8.1 8.1 0 0 0 4.6-7.9zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z"])})),t.PlusCircleTwoTone=s("plus-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z"],[e,"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.PlusSquareTwoTone=s("plus-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48z"],[e,"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.PoundCircleTwoTone=s("pound-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm146 582.1c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8v39.8z"],[e,"M650 674.3H470v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.8-5.3-41h98.6c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8h-112c-7.2-22.6-13.4-45.8-13.4-70.5 0-43.6 34-70.2 87.3-70.2 21.4 0 42.5 4.1 60.4 10.5a8 8 0 0 0 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.9-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.4 6.8 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.2c3.4 14.8 5.9 29.5 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8v38.5c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z"])})),t.PrinterTwoTone=s("printer",i,(function(e,t){return l(a,[t,"M360 180h304v152H360zm492 220H172c-6.6 0-12 5.4-12 12v292h132V500h440v204h132V412c0-6.6-5.4-12-12-12zm-24 84c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z"],[e,"M852 332H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z"],[e,"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8z"])})),t.ProfileTwoTone=s("profile",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M340 656a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.ProjectTwoTone=s("project",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm472-560c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280z"],[e,"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8z"])})),t.PushpinTwoTone=s("pushpin",i,(function(e,t){return l(a,[t,"M474.8 357.7l-24.5 24.5-34.4-3.8c-9.6-1.1-19.3-1.6-28.9-1.6-29 0-57.5 4.7-84.7 14.1-14 4.8-27.4 10.8-40.3 17.9l353.1 353.3a259.92 259.92 0 0 0 30.4-153.9l-3.8-34.4 24.5-24.5L800 415.5 608.5 224 474.8 357.7z"],[e,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z"])})),t.PropertySafetyTwoTone=s("property-safety",i,(function(e,t){return l(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM593.9 318h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3L585 323.5a10 10 0 0 1 8.9-5.5z"],[e,"M438.9 323.5a9.88 9.88 0 0 0-8.9-5.5h-46c-1.7 0-3.3.4-4.8 1.2-4.9 2.7-6.6 8.8-4 13.6l88 161.1H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1c.8-1.5 1.2-3.1 1.1-4.8 0-5.5-4.5-10-10-10h-45a10 10 0 0 0-8.9 5.5l-73.2 144.3-72.9-144.3z"])})),t.QuestionCircleTwoTone=s("question-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z"],[e,"M472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z"])})),t.ReconciliationTwoTone=s("reconciliation",i,(function(e,t){return l(a,[t,"M740 344H404V240H304v160h176c17.7 0 32 14.3 32 32v360h328V240H740v104zM584 448c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56zm92 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-341v96c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z"],[t,"M642 657a34 34 0 1 0 68 0 34 34 0 1 0-68 0z"],[e,"M592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm112-104v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z"],[e,"M880 168H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552z"],[e,"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z"])})),t.RedEnvelopeTwoTone=s("red-envelope",i,(function(e,t){return l(a,[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z"],[t,"M492.3 397.2L232 193.1V888h560V193.1L531.8 397.2a31.99 31.99 0 0 1-39.5 0zm99.4 60.9h47.8a8.45 8.45 0 0 1 7.4 12.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4V665c0 4.6-3.8 8.4-8.4 8.4h-63.3V702h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.7-3.5 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4L377 470.4a8.4 8.4 0 0 1 3.4-11.4c1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.7 142 71.9-141.9a8.6 8.6 0 0 1 7.5-4.6z"],[t,"M232 136.7h31.7L512 331.3l248.3-194.6H792v-.7H232z"],[e,"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142z"])})),t.RestTwoTone=s("rest",i,(function(e,t){return l(a,[t,"M326.4 844h363.2l44.3-520H282l44.4 520zM508 416c79.5 0 144 64.5 144 144s-64.5 144-144 144-144-64.5-144-144 64.5-144 144-144z"],[e,"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z"],[e,"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z"])})),t.RightCircleTwoTone=s("right-circle",i,(function(e,t){return l(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm154.7 378.4l-246 178c-5.3 3.8-12.7 0-12.7-6.5V643c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M666.7 505.5l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L566.6 512 421.2 617.1c-8.3 6-13.2 15.7-13.2 25.9v46.9c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.7 0-12.9z"])})),t.RocketTwoTone=s("rocket",i,(function(e,t){return l(a,[t,"M261.7 621.4c-9.4 14.6-17 30.3-22.5 46.6H324V558.7c-24.8 16.2-46 37.5-62.3 62.7zM700 558.7V668h84.8c-5.5-16.3-13.1-32-22.5-46.6a211.6 211.6 0 0 0-62.3-62.7zm-64-239.9l-124-147-124 147V668h248V318.8zM512 448a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zm-540-68h-84.8c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668zm64-184.9V318.8l124-147 124 147V668H388V483.1zm240.1 301.1c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM700 668V558.7a211.6 211.6 0 0 1 62.3 62.7c9.4 14.6 17 30.3 22.5 46.6H700z"],[e,"M464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.RightSquareTwoTone=s("right-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm216-196.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9l-246 178c-5.3 3.9-12.7.1-12.7-6.4v-46.9z"],[e,"M412.7 696.4l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.7-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.4z"])})),t.SafetyCertificateTwoTone=s("safety-certificate",i,(function(e,t){return l(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z"],[e,"M404.2 453.3c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z"])})),t.SaveTwoTone=s("save",i,(function(e,t){return l(a,[t,"M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z"],[e,"M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"],[e,"M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 0 0-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z"])})),t.ScheduleTwoTone=s("schedule",i,(function(e,t){return l(a,[t,"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.4-91.2l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.3c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.4 12.9 6.6l52.8 73.1 103.6-143.7c3-4.1 7.8-6.6 12.8-6.5h54.9c6.5 0 10.3 7.4 6.5 12.7z"],[e,"M724.2 454.6L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z"],[e,"M416 632H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.SecurityScanTwoTone=s("security-scan",i,(function(e,t){return l(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M460.7 451.1a80.1 80.1 0 1 0 160.2 0 80.1 80.1 0 1 0-160.2 0z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zm428.7 122.5c56.3 56.3 56.3 147.5 0 203.8-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0z"],[e,"M418.8 527.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.6 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 122.9-20.1 178.6zm65.4-133.3a80.1 80.1 0 0 1 113.3 0 80.1 80.1 0 0 1 0 113.3c-31.3 31.3-82 31.3-113.3 0s-31.3-82 0-113.3z"])})),t.SettingTwoTone=s("setting",i,(function(e,t){return l(a,[t,"M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 0 0-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z"],[t,"M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 0 1-79.7 137.9l-1.8 2.1a32 32 0 0 1-35.1 9.5l-81.3-28.9a350 350 0 0 1-99.7 57.6l-15.7 85a32.05 32.05 0 0 1-25.8 25.7l-2.7.5a445.2 445.2 0 0 1-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z"],[e,"M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502z"],[e,"M594.1 952.2a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 0 0-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6a32.09 32.09 0 0 0 7.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z"])})),t.ShopTwoTone=s("shop",i,(function(e,t){return l(a,[t,"M839.5 344h-655c-.3 0-.5.2-.5.5v91.2c0 59.8 49 108.3 109.3 108.3 40.7 0 76.2-22 95.1-54.7 2.9-5.1 8.4-8.3 14.3-8.3s11.3 3.2 14.3 8.3c18.8 32.7 54.3 54.7 95 54.7 40.8 0 76.4-22.1 95.1-54.9 2.9-5 8.2-8.1 13.9-8.1h.6c5.8 0 11 3.1 13.9 8.1 18.8 32.8 54.4 54.9 95.2 54.9C791 544 840 495.5 840 435.7v-91.2c0-.3-.2-.5-.5-.5z"],[e,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234.4 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c3-1.3 6-2.6 9-4v242.2zM840 435.7c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z"])})),t.ShoppingTwoTone=s("shopping",i,(function(e,t){return l(a,[t,"M696 472c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88H400v88c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88h-96v456h560V384h-96v88z"],[e,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z"])})),t.SkinTwoTone=s("skin",i,(function(e,t){return l(a,[t,"M512 318c-79.2 0-148.5-48.8-176.7-120H182v196h119v432h422V394h119V198H688.7c-28.2 71.2-97.5 120-176.7 120z"],[e,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z"])})),t.SlidersTwoTone=s("sliders",i,(function(e,t){return l(a,[t,"M180 292h80v440h-80zm369 180h-74a3 3 0 0 0-3 3v74a3 3 0 0 0 3 3h74a3 3 0 0 0 3-3v-74a3 3 0 0 0-3-3zm215-108h80v296h-80z"],[e,"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z"])})),t.SmileTwoTone=s("smile",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 112h-48.1c-4.2 0-7.8 3.2-8.1 7.4-3.7 49.5-45.3 88.6-95.8 88.6s-92-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4zm-24-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.SnippetsTwoTone=s("snippets",i,(function(e,t){return l(a,[t,"M450 510V336H232v552h432V550H490c-22.1 0-40-17.9-40-40z"],[e,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z"])})),t.SoundTwoTone=s("sound",i,(function(e,t){return l(a,[t,"M275.4 424H146v176h129.4l18 11.7L586 803V221L293.3 412.3z"],[e,"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM934 476H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582z"])})),t.StarTwoTone=s("star",i,(function(e,t){return l(a,[t,"M512.5 190.4l-94.4 191.3-211.2 30.7 152.8 149-36.1 210.3 188.9-99.3 188.9 99.2-36.1-210.3 152.8-148.9-211.2-30.7z"],[e,"M908.6 352.8l-253.9-36.9L541.2 85.8c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L370.3 315.9l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1L239 839.4a31.95 31.95 0 0 0 46.4 33.7l227.1-119.4 227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM665.3 561.3l36.1 210.3-188.9-99.2-188.9 99.3 36.1-210.3-152.8-149 211.2-30.7 94.4-191.3 94.4 191.3 211.2 30.7-152.8 148.9z"])})),t.StopTwoTone=s("stop",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z"])})),t.SwitcherTwoTone=s("switcher",i,(function(e,t){return l(a,[t,"M184 840h528V312H184v528zm116-290h296v64H300v-64z"],[e,"M880 112H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z"],[e,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528z"],[e,"M300 550h296v64H300z"])})),t.TabletTwoTone=s("tablet",i,(function(e,t){return l(a,[e,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752z"],[t,"M232 888h560V136H232v752zm280-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.TagTwoTone=s("tag",i,(function(e,t){return l(a,[t,"M589 164.6L189.3 564.3l270.4 270.4L859.4 435 836 188l-247-23.4zM680 432c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88z"],[e,"M680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],[e,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8a9.9 9.9 0 0 0 7.1 2.9c2.7 0 5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7z"])})),t.TagsTwoTone=s("tags",i,(function(e,t){return l(a,[t,"M477.5 694l311.9-311.8-19-224.6-224.6-19-311.9 311.9L477.5 694zm116-415.5a47.81 47.81 0 0 1 33.9-33.9c16.6-4.4 34.2.3 46.4 12.4a47.93 47.93 0 0 1 12.4 46.4 47.81 47.81 0 0 1-33.9 33.9c-16.6 4.4-34.2-.3-46.4-12.4a48.3 48.3 0 0 1-12.4-46.4z"],[t,"M476.6 792.6c-1.7-.2-3.4-1-4.7-2.3L137.7 456.1a8.03 8.03 0 0 1 0-11.3L515.9 66.6c1.2-1.3 2.9-2.1 4.7-2.3h-.4c-2.3-.2-4.7.6-6.3 2.3L135.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.8 1.9 4.3 2.6 6.7 2.3z"],[e,"M889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3zM652.3 337.3a47.81 47.81 0 0 0 33.9-33.9c4.4-16.6-.3-34.2-12.4-46.4a47.93 47.93 0 0 0-46.4-12.4 47.81 47.81 0 0 0-33.9 33.9c-4.4 16.6.3 34.2 12.4 46.4a48.3 48.3 0 0 0 46.4 12.4z"],[e,"M137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.3 1.3 2.9 2.1 4.7 2.3 2.4.3 4.8-.5 6.6-2.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3h-1.6c-1.8.2-3.4 1-4.7 2.3L137.7 444.8zm408.1-306.2l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9z"])})),t.ToolTwoTone=s("tool",i,(function(e,t){return l(a,[t,"M706.8 488.7a32.05 32.05 0 0 1-45.3 0L537 364.2a32.05 32.05 0 0 1 0-45.3l132.9-132.8a184.2 184.2 0 0 0-144 53.5c-58.1 58.1-69.3 145.3-33.6 214.6L439.5 507c-.1 0-.1-.1-.1-.1L209.3 737l79.2 79.2 274-274.1.1.1 8.8-8.8c69.3 35.7 156.5 24.5 214.6-33.6 39.2-39.1 57.3-92.1 53.6-143.9L706.8 488.7z"],[e,"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"])})),t.TrademarkCircleTwoTone=s("trademark-circle",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm170.7 584.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H384c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7z"],[t,"M529.9 357h-83.4v148H528c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z"],[e,"M605.4 549.3c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.4-131.1-144.2-131.1H384c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.7c4.4 0 8-3.6 8-8V561.2h88.7L610 720.4c1.3 2.8 4.1 4.6 7.2 4.6h62c1.2 0 2.4-.3 3.5-.8 3.9-2 5.6-6.8 3.5-10.7l-80.8-164.2zM528 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.6 0 46.8-29.8 72.4-82.8 72.4z"])})),t.UnlockTwoTone=s("unlock",i,(function(e,t){return l(a,[t,"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z"],[e,"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z"],[e,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304z"])})),t.TrophyTwoTone=s("trophy",i,(function(e,t){return l(a,[t,"M320 480c0 49.1 19.1 95.3 53.9 130.1 34.7 34.8 81 53.9 130.1 53.9h16c49.1 0 95.3-19.1 130.1-53.9 34.8-34.7 53.9-81 53.9-130.1V184H320v296zM184 352c0 41 26.9 75.8 64 87.6-37.1-11.9-64-46.7-64-87.6zm364 382.5C665 721.8 758.4 630.2 773.8 514 758.3 630.2 665 721.7 548 734.5zM250.2 514C265.6 630.2 359 721.8 476 734.5 359 721.7 265.7 630.2 250.2 514z"],[e,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6a91.99 91.99 0 0 1-64-87.6V232h64v207.6zM704 480c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z"])})),t.UpCircleTwoTone=s("up-circle",i,(function(e,t){return l(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm178 479h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M518.4 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7h46.9c10.3 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246z"])})),t.ThunderboltTwoTone=s("thunderbolt",i,(function(e,t){return l(a,[t,"M695.4 164.1H470.8L281.2 491.5h157.4l-60.3 241 319.8-305.1h-211z"],[e,"M848.1 359.3H627.8L825.9 109c4.1-5.3.4-13-6.3-13H436.1c-2.8 0-5.5 1.5-6.9 4L170.1 547.5c-3.1 5.3.7 12 6.9 12h174.4L262 917.1c-1.9 7.8 7.5 13.3 13.3 7.7L853.6 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.3 732.5l60.3-241H281.2l189.6-327.4h224.6L487.1 427.4h211L378.3 732.5z"])})),t.UpSquareTwoTone=s("up-square",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm143.5-228.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7z"],[e,"M334 624h46.9c10.3 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7z"])})),t.UsbTwoTone=s("usb",i,(function(e,t){return l(a,[t,"M759.9 504H264.1c-26.5 0-48.1 19.7-48.1 44v292h592V548c0-24.3-21.6-44-48.1-44z"],[e,"M456 248h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zM336 184h352v248H336V184zm472 656H216V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v292z"])})),t.VideoCameraTwoTone=s("video-camera",i,(function(e,t){return l(a,[t,"M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z"],[e,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z"],[e,"M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.WalletTwoTone=s("wallet",i,(function(e,t){return l(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z"],[t,"M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[t,"M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z"])})),t.WarningTwoTone=s("warning",i,(function(e,t){return l(a,[e,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"],[t,"M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z"],[e,"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z"])})),t.CiTwoTone=s("ci",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z"],[e,"M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z"])})),t.CopyrightTwoTone=s("copyright",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z"],[e,"M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z"])})),t.DollarTwoTone=s("dollar",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 0 1-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z"],[e,"M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"])})),t.EuroTwoTone=s("euro",i,(function(e,t){return l(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 0 1-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z"],[e,"M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z"])})),t.GoldTwoTone=s("gold",i,(function(e,t){return l(a,[e,"M435.7 558.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128z"],[t,"M592.7 276H433.2l-20.8 128h201zM217.2 620l-20.7 128h200.9l-20.7-128zm430 0l-20.7 128h200.9l-20.7-128z"])})),t.CanlendarTwoTone=s("canlendar",i,(function(e,t){return l(a,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z"])}))},function(e,t,n){n(341);var r=n(21).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(27);r(r.S+r.F*!n(22),"Object",{defineProperty:n(24).f})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(343));function c(e,t,n){var r;return(r=Math.round(e.h)>=60&&Math.round(e.h)<=240?n?Math.round(e.h)-2*t:Math.round(e.h)+2*t:n?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?r+=360:r>=360&&(r-=360),r}function o(e,t,n){return 0===e.h&&0===e.s?e.s:((r=n?Math.round(100*e.s)-16*t:4===t?Math.round(100*e.s)+16:Math.round(100*e.s)+5*t)>100&&(r=100),n&&5===t&&r>10&&(r=10),r<6&&(r=6),r);var r}function i(e,t,n){return n?Math.round(100*e.v)+5*t:Math.round(100*e.v)-15*t}t.default=function(e){for(var t=[],n=a.default(e),r=5;r>0;r-=1){var l=n.toHsv(),s=a.default({h:c(l,r,!0),s:o(l,r,!0),v:i(l,r,!0)}).toHexString();t.push(s)}for(t.push(n.toHexString()),r=1;r<=4;r+=1){l=n.toHsv(),s=a.default({h:c(l,r),s:o(l,r),v:i(l,r)}).toHexString();t.push(s)}return t}},function(e,t,n){var r;!function(a){var c=/^\s+/,o=/\s+$/,i=0,l=a.round,s=a.min,u=a.max,d=a.random;function f(e,t){if(t=t||{},(e=e||"")instanceof f)return e;if(!(this instanceof f))return new f(e,t);var n=function(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,l=null,d=!1,f=!1;"string"==typeof e&&(e=function(e){e=e.replace(c,"").replace(o,"").toLowerCase();var t,n=!1;if(O[e])e=O[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=I.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=I.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=I.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=I.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=I.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=I.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=I.hex8.exec(e))return{r:E(t[1]),g:E(t[2]),b:E(t[3]),a:A(t[4]),format:n?"name":"hex8"};if(t=I.hex6.exec(e))return{r:E(t[1]),g:E(t[2]),b:E(t[3]),format:n?"name":"hex"};if(t=I.hex4.exec(e))return{r:E(t[1]+""+t[1]),g:E(t[2]+""+t[2]),b:E(t[3]+""+t[3]),a:A(t[4]+""+t[4]),format:n?"name":"hex8"};if(t=I.hex3.exec(e))return{r:E(t[1]+""+t[1]),g:E(t[2]+""+t[2]),b:E(t[3]+""+t[3]),format:n?"name":"hex"};return!1}(e));"object"==typeof e&&(U(e.r)&&U(e.g)&&U(e.b)?(h=e.r,m=e.g,p=e.b,t={r:255*C(h,255),g:255*C(m,255),b:255*C(p,255)},d=!0,f="%"===String(e.r).substr(-1)?"prgb":"rgb"):U(e.h)&&U(e.s)&&U(e.v)?(r=P(e.s),i=P(e.v),t=function(e,t,n){e=6*C(e,360),t=C(t,100),n=C(n,100);var r=a.floor(e),c=e-r,o=n*(1-t),i=n*(1-c*t),l=n*(1-(1-c)*t),s=r%6;return{r:255*[n,i,o,o,l,n][s],g:255*[l,n,n,i,o,o][s],b:255*[o,o,l,n,n,i][s]}}(e.h,r,i),d=!0,f="hsv"):U(e.h)&&U(e.s)&&U(e.l)&&(r=P(e.s),l=P(e.l),t=function(e,t,n){var r,a,c;function o(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=C(e,360),t=C(t,100),n=C(n,100),0===t)r=a=c=n;else{var i=n<.5?n*(1+t):n+t-n*t,l=2*n-i;r=o(l,i,e+1/3),a=o(l,i,e),c=o(l,i,e-1/3)}return{r:255*r,g:255*a,b:255*c}}(e.h,r,l),d=!0,f="hsl"),e.hasOwnProperty("a")&&(n=e.a));var h,m,p;return n=x(n),{ok:d,format:e.format||f,r:s(255,u(t.r,0)),g:s(255,u(t.g,0)),b:s(255,u(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=l(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=l(this._r)),this._g<1&&(this._g=l(this._g)),this._b<1&&(this._b=l(this._b)),this._ok=n.ok,this._tc_id=i++}function h(e,t,n){e=C(e,255),t=C(t,255),n=C(n,255);var r,a,c=u(e,t,n),o=s(e,t,n),i=(c+o)/2;if(c==o)r=a=0;else{var l=c-o;switch(a=i>.5?l/(2-c-o):l/(c+o),c){case e:r=(t-n)/l+(t<n?6:0);break;case t:r=(n-e)/l+2;break;case n:r=(e-t)/l+4}r/=6}return{h:r,s:a,l:i}}function m(e,t,n){e=C(e,255),t=C(t,255),n=C(n,255);var r,a,c=u(e,t,n),o=s(e,t,n),i=c,l=c-o;if(a=0===c?0:l/c,c==o)r=0;else{switch(c){case e:r=(t-n)/l+(t<n?6:0);break;case t:r=(n-e)/l+2;break;case n:r=(e-t)/l+4}r/=6}return{h:r,s:a,v:i}}function p(e,t,n,r){var a=[V(l(e).toString(16)),V(l(t).toString(16)),V(l(n).toString(16))];return r&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function v(e,t,n,r){return[V(N(r)),V(l(e).toString(16)),V(l(t).toString(16)),V(l(n).toString(16))].join("")}function _(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.s-=t/100,n.s=j(n.s),f(n)}function y(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.s+=t/100,n.s=j(n.s),f(n)}function M(e){return f(e).desaturate(100)}function b(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.l+=t/100,n.l=j(n.l),f(n)}function g(e,t){t=0===t?0:t||10;var n=f(e).toRgb();return n.r=u(0,s(255,n.r-l(-t/100*255))),n.g=u(0,s(255,n.g-l(-t/100*255))),n.b=u(0,s(255,n.b-l(-t/100*255))),f(n)}function L(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.l-=t/100,n.l=j(n.l),f(n)}function z(e,t){var n=f(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,f(n)}function w(e){var t=f(e).toHsl();return t.h=(t.h+180)%360,f(t)}function k(e){var t=f(e).toHsl(),n=t.h;return[f(e),f({h:(n+120)%360,s:t.s,l:t.l}),f({h:(n+240)%360,s:t.s,l:t.l})]}function H(e){var t=f(e).toHsl(),n=t.h;return[f(e),f({h:(n+90)%360,s:t.s,l:t.l}),f({h:(n+180)%360,s:t.s,l:t.l}),f({h:(n+270)%360,s:t.s,l:t.l})]}function T(e){var t=f(e).toHsl(),n=t.h;return[f(e),f({h:(n+72)%360,s:t.s,l:t.l}),f({h:(n+216)%360,s:t.s,l:t.l})]}function Y(e,t,n){t=t||6,n=n||30;var r=f(e).toHsl(),a=360/n,c=[f(e)];for(r.h=(r.h-(a*t>>1)+720)%360;--t;)r.h=(r.h+a)%360,c.push(f(r));return c}function S(e,t){t=t||6;for(var n=f(e).toHsv(),r=n.h,a=n.s,c=n.v,o=[],i=1/t;t--;)o.push(f({h:r,s:a,v:c})),c=(c+i)%1;return o}f.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:a.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:a.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:a.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=x(e),this._roundA=l(100*this._a)/100,this},toHsv:function(){var e=m(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=m(this._r,this._g,this._b),t=l(360*e.h),n=l(100*e.s),r=l(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=h(this._r,this._g,this._b),t=l(360*e.h),n=l(100*e.s),r=l(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return p(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,a){var c=[V(l(e).toString(16)),V(l(t).toString(16)),V(l(n).toString(16)),V(N(r))];if(a&&c[0].charAt(0)==c[0].charAt(1)&&c[1].charAt(0)==c[1].charAt(1)&&c[2].charAt(0)==c[2].charAt(1)&&c[3].charAt(0)==c[3].charAt(1))return c[0].charAt(0)+c[1].charAt(0)+c[2].charAt(0)+c[3].charAt(0);return c.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:l(this._r),g:l(this._g),b:l(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+l(this._r)+", "+l(this._g)+", "+l(this._b)+")":"rgba("+l(this._r)+", "+l(this._g)+", "+l(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:l(100*C(this._r,255))+"%",g:l(100*C(this._g,255))+"%",b:l(100*C(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+l(100*C(this._r,255))+"%, "+l(100*C(this._g,255))+"%, "+l(100*C(this._b,255))+"%)":"rgba("+l(100*C(this._r,255))+"%, "+l(100*C(this._g,255))+"%, "+l(100*C(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(D[p(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+v(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var a=f(e);n="#"+v(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return f(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(g,arguments)},darken:function(){return this._applyModification(L,arguments)},desaturate:function(){return this._applyModification(_,arguments)},saturate:function(){return this._applyModification(y,arguments)},greyscale:function(){return this._applyModification(M,arguments)},spin:function(){return this._applyModification(z,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(Y,arguments)},complement:function(){return this._applyCombination(w,arguments)},monochromatic:function(){return this._applyCombination(S,arguments)},splitcomplement:function(){return this._applyCombination(T,arguments)},triad:function(){return this._applyCombination(k,arguments)},tetrad:function(){return this._applyCombination(H,arguments)}},f.fromRatio=function(e,t){if("object"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:P(e[r]));e=n}return f(e,t)},f.equals=function(e,t){return!(!e||!t)&&f(e).toRgbString()==f(t).toRgbString()},f.random=function(){return f.fromRatio({r:d(),g:d(),b:d()})},f.mix=function(e,t,n){n=0===n?0:n||50;var r=f(e).toRgb(),a=f(t).toRgb(),c=n/100;return f({r:(a.r-r.r)*c+r.r,g:(a.g-r.g)*c+r.g,b:(a.b-r.b)*c+r.b,a:(a.a-r.a)*c+r.a})},f.readability=function(e,t){var n=f(e),r=f(t);return(a.max(n.getLuminance(),r.getLuminance())+.05)/(a.min(n.getLuminance(),r.getLuminance())+.05)},f.isReadable=function(e,t,n){var r,a,c=f.readability(e,t);switch(a=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":a=c>=4.5;break;case"AAlarge":a=c>=3;break;case"AAAsmall":a=c>=7}return a},f.mostReadable=function(e,t,n){var r,a,c,o,i=null,l=0;a=(n=n||{}).includeFallbackColors,c=n.level,o=n.size;for(var s=0;s<t.length;s++)(r=f.readability(e,t[s]))>l&&(l=r,i=f(t[s]));return f.isReadable(e,i,{level:c,size:o})||!a?i:(n.includeFallbackColors=!1,f.mostReadable(e,["#fff","#000"],n))};var O=f.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},D=f.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(O);function x(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function C(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=s(t,u(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),a.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function j(e){return s(1,u(0,e))}function E(e){return parseInt(e,16)}function V(e){return 1==e.length?"0"+e:""+e}function P(e){return e<=1&&(e=100*e+"%"),e}function N(e){return a.round(255*parseFloat(e)).toString(16)}function A(e){return E(e)/255}var F,W,R,I=(W="[\\s|\\(]+("+(F="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",R="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",{CSS_UNIT:new RegExp(F),rgb:new RegExp("rgb"+W),rgba:new RegExp("rgba"+R),hsl:new RegExp("hsl"+W),hsla:new RegExp("hsla"+R),hsv:new RegExp("hsv"+W),hsva:new RegExp("hsva"+R),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function U(e){return!!I.CSS_UNIT.exec(e)}e.exports?e.exports=f:void 0===(r=function(){return f}.call(t,n,t,e))||(e.exports=r)}(Math)},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.scriptUrl,n=e.extraCommonProps,r=void 0===n?{}:n;if("undefined"!=typeof document&&"undefined"!=typeof window&&"function"==typeof document.createElement&&"string"==typeof t&&t.length&&!u.has(t)){var a=document.createElement("script");a.setAttribute("src",t),a.setAttribute("data-namespace",t),u.add(t),document.body.appendChild(a)}var i=function(e){var t=e.type,n=e.children,a=s(e,["type","children"]),i=null;return e.type&&(i=c.createElement("use",{xlinkHref:"#".concat(t)})),n&&(i=n),c.createElement(o.default,l({},r,a),i)};return i.displayName="Iconfont",i};var a,c=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=(a=n(17))&&a.__esModule?a:{default:a};function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},u=new Set},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getThemeFromTypeName=function(e){var t=null;c.test(e)?t="filled":o.test(e)?t="outlined":i.test(e)&&(t="twoTone");return t},t.removeTypeTheme=function(e){return e.replace(c,"").replace(o,"").replace(i,"")},t.withThemeSuffix=function(e,t){var n=e;"filled"===t?n+="-fill":"outlined"===t?n+="-o":"twoTone"===t?n+="-twotone":(0,a.default)(!1,"Icon","This icon '".concat(e,"' has unknown theme '").concat(t,"'"));return n},t.alias=function(e){var t=e;switch(e){case"cross":t="close";break;case"interation":t="interaction";break;case"canlendar":t="calendar";break;case"colum-height":t="column-height"}return(0,a.default)(t===e,"Icon","Icon '".concat(e,"' was a typo and is now deprecated, please use '").concat(t,"' instead.")),t},t.svgBaseProps=void 0;var r,a=(r=n(26))&&r.__esModule?r:{default:r};t.svgBaseProps={width:"1em",height:"1em",fill:"currentColor","aria-hidden":!0,focusable:"false"};var c=/-fill$/,o=/-o$/,i=/-twotone$/},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setTwoToneColor=function(e){return a.default.setTwoToneColors({primaryColor:e})},t.getTwoToneColor=function(){return a.default.getTwoToneColors().primaryColor};var r,a=(r=n(238))&&r.__esModule?r:{default:r}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.handleGradient=t.sortGradient=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var i=a?Object.getOwnPropertyDescriptor(e,c):null;i&&(i.get||i.set)?Object.defineProperty(n,c,i):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),c=n(69);function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,c=void 0;try{for(var o,i=e[Symbol.iterator]();!(r=(o=i.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,c=e}finally{try{r||null==i.return||i.return()}finally{if(a)throw c}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},d=function(e){for(var t=[],n=0,r=Object.entries(e);n<r.length;n++){var a=l(r[n],2),c=a[0],o=a[1],i=parseFloat(c.replace(/%/g,""));if(isNaN(i))return{};t.push({key:i,value:o})}return(t=t.sort((function(e,t){return e.key-t.key}))).map((function(e){var t=e.key,n=e.value;return"".concat(n," ").concat(t,"%")})).join(", ")};t.sortGradient=d;var f=function(e){var t=e.from,n=void 0===t?"#1890ff":t,r=e.to,a=void 0===r?"#1890ff":r,c=e.direction,o=void 0===c?"to right":c,i=u(e,["from","to","direction"]);if(0!==Object.keys(i).length){var l=d(i);return{backgroundImage:"linear-gradient(".concat(o,", ").concat(l,")")}}return{backgroundImage:"linear-gradient(".concat(o,", ").concat(n,", ").concat(a,")")}};t.handleGradient=f;var h=function(e){var t,n=e.prefixCls,r=e.percent,o=e.successPercent,l=e.strokeWidth,s=e.size,u=e.strokeColor,d=e.strokeLinecap,h=e.children;t=u&&"string"!=typeof u?f(u):{background:u};var m=i({width:"".concat((0,c.validProgress)(r),"%"),height:l||("small"===s?6:8),borderRadius:"square"===d?0:""},t),p={width:"".concat((0,c.validProgress)(o),"%"),height:l||("small"===s?6:8),borderRadius:"square"===d?0:""},v=void 0!==o?a.createElement("div",{className:"".concat(n,"-success-bg"),style:p}):null;return a.createElement("div",null,a.createElement("div",{className:"".concat(n,"-outer")},a.createElement("div",{className:"".concat(n,"-inner")},a.createElement("div",{className:"".concat(n,"-bg"),style:m}),v)),h)};t.default=h},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,c=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=n(393),i=(a=n(3))&&a.__esModule?a:{default:a},l=n(69);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}var u={normal:"#108ee9",exception:"#ff5500",success:"#87d068"};function d(e){var t=e.percent,n=e.successPercent,r=(0,l.validProgress)(t);if(!n)return r;var a=(0,l.validProgress)(n);return[n,(0,l.validProgress)(r-a)]}var f=function(e){var t,n,r,a,l=e.prefixCls,s=e.width,f=e.strokeWidth,h=e.trailColor,m=e.strokeLinecap,p=e.gapPosition,v=e.gapDegree,_=e.type,y=e.children,M=s||120,b={width:M,height:M,fontSize:.15*M+6},g=f||6,L=p||"dashboard"===_&&"bottom"||"top",z=v||("dashboard"===_?75:void 0),w=(n=(t=e).progressStatus,r=t.successPercent,a=t.strokeColor||u[n],r?[u.success,a]:a),k="[object Object]"===Object.prototype.toString.call(w),H=(0,i.default)("".concat(l,"-inner"),function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},"".concat(l,"-circle-gradient"),k));return c.createElement("div",{className:H,style:b},c.createElement(o.Circle,{percent:d(e),strokeWidth:g,trailWidth:g,strokeColor:w,strokeLinecap:m,trailColor:h,prefixCls:l,gapDegree:z,gapPosition:L}),y)};t.default=f},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=u(n(237)),c=u(n(3)),o=u(n(353)),i=u(n(17)),l=n(12),s=u(n(354));function u(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var a=b(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return M(this,n)}}function M(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var g=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(u,e);var t,n,o,s=y(u);function u(){var e;return p(this,u),(e=s.apply(this,arguments)).renderExpandIcon=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,a=e.props.expandIcon,o=a?a(t):r.createElement(i.default,{type:"right",rotate:t.isActive?90:void 0});return r.isValidElement(o)?r.cloneElement(o,{className:(0,c.default)(o.props.className,"".concat(n,"-arrow"))}):o},e.renderCollapse=function(t){var n,o=t.getPrefixCls,i=e.props,l=i.prefixCls,s=i.className,u=void 0===s?"":s,d=i.bordered,f=i.expandIconPosition,p=o("collapse",l),v=(0,c.default)((m(n={},"".concat(p,"-borderless"),!d),m(n,"".concat(p,"-icon-position-").concat(f),!0),n),u);return r.createElement(a.default,h({},e.props,{expandIcon:function(t){return e.renderExpandIcon(t,p)},prefixCls:p,className:v}))},e}return t=u,(n=[{key:"render",value:function(){return r.createElement(l.ConfigConsumer,null,this.renderCollapse)}}])&&v(t.prototype,n),o&&v(t,o),u}(r.Component);t.default=g,g.Panel=o.default,g.defaultProps={bordered:!0,openAnimation:h(h({},s.default),{appear:function(){}}),expandIconPosition:"left"}},function(e,t,n){"use strict"; /** @license React v16.8.6 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,a=r?Symbol.for("react.element"):60103,c=r?Symbol.for("react.portal"):60106,o=r?Symbol.for("react.fragment"):60107,i=r?Symbol.for("react.strict_mode"):60108,l=r?Symbol.for("react.profiler"):60114,s=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,d=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,h=r?Symbol.for("react.forward_ref"):60112,m=r?Symbol.for("react.suspense"):60113,p=r?Symbol.for("react.memo"):60115,v=r?Symbol.for("react.lazy"):60116;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:switch(e=e.type){case d:case f:case o:case l:case i:case m:return e;default:switch(e=e&&e.$$typeof){case u:case h:case s:return e;default:return t}}case v:case p:case c:return t}}}function y(e){return _(e)===f}t.typeOf=_,t.AsyncMode=d,t.ConcurrentMode=f,t.ContextConsumer=u,t.ContextProvider=s,t.Element=a,t.ForwardRef=h,t.Fragment=o,t.Lazy=v,t.Memo=p,t.Portal=c,t.Profiler=l,t.StrictMode=i,t.Suspense=m,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===f||e===l||e===i||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===p||e.$$typeof===s||e.$$typeof===u||e.$$typeof===h)},t.isAsyncMode=function(e){return y(e)||_(e)===d},t.isConcurrentMode=y,t.isContextConsumer=function(e){return _(e)===u},t.isContextProvider=function(e){return _(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(e){return _(e)===h},t.isFragment=function(e){return _(e)===o},t.isLazy=function(e){return _(e)===v},t.isMemo=function(e){return _(e)===p},t.isPortal=function(e){return _(e)===c},t.isProfiler=function(e){return _(e)===l},t.isStrictMode=function(e){return _(e)===i},t.isSuspense=function(e){return _(e)===m}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=i(n(237)),c=i(n(3)),o=n(12);function i(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var a=_(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==s(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(s,e);var t,n,i,l=p(s);function s(){var e;return f(this,s),(e=l.apply(this,arguments)).renderCollapsePanel=function(t){var n=t.getPrefixCls,o=e.props,i=o.prefixCls,l=o.className,s=void 0===l?"":l,f=o.showArrow,h=void 0===f||f,m=n("collapse",i),p=(0,c.default)(d({},"".concat(m,"-no-arrow"),!h),s);return r.createElement(a.default.Panel,u({},e.props,{prefixCls:m,className:p}))},e}return t=s,(n=[{key:"render",value:function(){return r.createElement(o.ConfigConsumer,null,this.renderCollapsePanel)}}])&&h(t.prototype,n),i&&h(t,i),s}(r.Component);t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(35)),a=c(n(34));function c(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){var c,o;return(0,r.default)(e,"ant-motion-collapse-legacy",{start:function(){t?(c=e.offsetHeight,e.style.height="0px",e.style.opacity="0"):(e.style.height="".concat(e.offsetHeight,"px"),e.style.opacity="1")},active:function(){o&&a.default.cancel(o),o=(0,a.default)((function(){e.style.height="".concat(t?c:0,"px"),e.style.opacity=t?"1":"0"}))},end:function(){o&&a.default.cancel(o),e.style.height="",e.style.opacity="",n()}})}var i={enter:function(e,t){return o(e,!0,t)},leave:function(e,t){return o(e,!1,t)},appear:function(e,t){return o(e,!0,t)}};t.default=i},function(e,t,n){(function(t){(function(){var n,r,a,c,o,i;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-o)/1e6},r=t.hrtime,c=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),i=1e9*t.uptime(),o=c-i):Date.now?(e.exports=function(){return Date.now()-a},a=Date.now()):(e.exports=function(){return(new Date).getTime()-a},a=(new Date).getTime())}).call(this)}).call(this,n(230))},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,c=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=(a=n(3))&&a.__esModule?a:{default:a},i=n(12);function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},d=function(e){return c.createElement(i.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.prefixCls,a=e.className,i=e.hoverable,l=void 0===i||i,d=u(e,["prefixCls","className","hoverable"]),f=n("card",r),h=(0,o.default)("".concat(f,"-grid"),a,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},"".concat(f,"-grid-hoverable"),l));return c.createElement("div",s({},d,{className:h}))}))};t.default=d},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,c=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=(a=n(3))&&a.__esModule?a:{default:a},i=n(12);function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},d=function(e){return c.createElement(i.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.prefixCls,a=e.className,i=e.avatar,l=e.title,d=e.description,f=u(e,["prefixCls","className","avatar","title","description"]),h=n("card",r),m=(0,o.default)("".concat(h,"-meta"),a),p=i?c.createElement("div",{className:"".concat(h,"-meta-avatar")},i):null,v=l?c.createElement("div",{className:"".concat(h,"-meta-title")},l):null,_=d?c.createElement("div",{className:"".concat(h,"-meta-description")},d):null,y=v||_?c.createElement("div",{className:"".concat(h,"-meta-detail")},v,_):null;return c.createElement("div",s({},f,{className:m}),p,y)}))};t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=v(n(0)),a=v(n(11)),c=v(n(392)),o=m(n(359)),i=m(n(3)),l=m(n(32)),s=m(n(360)),u=m(n(17)),d=n(12),f=m(n(26)),h=n(377);function m(e){return e&&e.__esModule?e:{default:e}}function p(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return p=function(){return e},e}function v(e){if(e&&e.__esModule)return e;if(null===e||"object"!==M(e)&&"function"!=typeof e)return{default:e};var t=p();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function _(){return(_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function M(e){return(M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function L(e,t){return(L=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=k(e);if(t){var a=k(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return w(this,n)}}function w(e,t){return!t||"object"!==M(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var H=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},T=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&L(e,t)}(v,e);var t,n,m,p=z(v);function v(){var e;return b(this,v),(e=p.apply(this,arguments)).removeTab=function(t,n){if(n.stopPropagation(),t){var r=e.props.onEdit;r&&r(t,"remove")}},e.handleChange=function(t){var n=e.props.onChange;n&&n(t)},e.createNewTab=function(t){var n=e.props.onEdit;n&&n(t,"add")},e.renderTabs=function(t){var n,a=t.getPrefixCls,d=e.props,h=d.prefixCls,m=d.className,p=void 0===m?"":m,v=d.size,b=d.type,g=void 0===b?"line":b,L=d.tabPosition,z=d.children,w=d.animated,k=void 0===w||w,T=d.hideAdd,Y=e.props.tabBarExtraContent,S="object"===M(k)?k.tabPane:k;"line"!==g&&(S="animated"in e.props&&S),(0,f.default)(!(g.indexOf("card")>=0&&("small"===v||"large"===v)),"Tabs","`type=card|editable-card` doesn't have small or large size, it's by design.");var O=a("tabs",h),D=(0,i.default)(p,(y(n={},"".concat(O,"-vertical"),"left"===L||"right"===L),y(n,"".concat(O,"-").concat(v),!!v),y(n,"".concat(O,"-card"),g.indexOf("card")>=0),y(n,"".concat(O,"-").concat(g),!0),y(n,"".concat(O,"-no-animation"),!S),n)),x=[];"editable-card"===g&&(x=[],r.Children.forEach(z,(function(t,n){if(!r.isValidElement(t))return t;var a=t.props.closable,c=(a=void 0===a||a)?r.createElement(u.default,{type:"close",className:"".concat(O,"-close-x"),onClick:function(n){return e.removeTab(t.key,n)}}):null;x.push(r.cloneElement(t,{tab:r.createElement("div",{className:a?void 0:"".concat(O,"-tab-unclosable")},t.props.tab,c),key:t.key||n}))})),T||(Y=r.createElement("span",null,r.createElement(u.default,{type:"plus",className:"".concat(O,"-new-tab"),onClick:e.createNewTab}),Y))),Y=Y?r.createElement("div",{className:"".concat(O,"-extra-content")},Y):null;var C=H(e.props,[]),j=(0,i.default)("".concat(O,"-").concat(L,"-content"),g.indexOf("card")>=0&&"".concat(O,"-card-content"));return r.createElement(c.default,_({},e.props,{prefixCls:O,className:D,tabBarPosition:L,renderTabBar:function(){return r.createElement(s.default,_({},(0,l.default)(C,["className"]),{tabBarExtraContent:Y}))},renderTabContent:function(){return r.createElement(o.default,{className:j,animated:S,animatedWithMargin:!0})},onChange:e.handleChange}),x.length>0?x:z)},e}return t=v,(n=[{key:"componentDidMount",value:function(){var e=a.findDOMNode(this);e&&!h.isFlexSupported&&-1===e.className.indexOf(" no-flex")&&(e.className+=" no-flex")}},{key:"render",value:function(){return r.createElement(d.ConfigConsumer,null,this.renderTabs)}}])&&g(t.prototype,n),m&&g(t,m),v}(r.Component);t.default=T,T.TabPane=c.TabPane,T.defaultProps={hideAdd:!1,tabPosition:"top"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=h(n(4)),a=h(n(6)),c=h(n(7)),o=h(n(10)),i=h(n(8)),l=h(n(9)),s=h(n(0)),u=h(n(1)),d=h(n(3)),f=n(40);function h(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(){return(0,c.default)(this,t),(0,i.default)(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,o.default)(t,[{key:"getTabPanes",value:function(){var e=this.props,t=e.activeKey,n=e.children,r=[];return s.default.Children.forEach(n,(function(n){if(n){var a=n.key,c=t===a;r.push(s.default.cloneElement(n,{active:c,destroyInactiveTabPane:e.destroyInactiveTabPane,rootPrefixCls:e.prefixCls}))}})),r}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,c=t.children,o=t.activeKey,i=t.className,l=t.tabBarPosition,u=t.animated,h=t.animatedWithMargin,m=t.direction,p=t.style,v=(0,d.default)((e={},(0,a.default)(e,n+"-content",!0),(0,a.default)(e,u?n+"-content-animated":n+"-content-no-animated",!0),e),i);if(u){var _=(0,f.getActiveIndex)(c,o);if(-1!==_){var y=h?(0,f.getMarginStyle)(_,l):(0,f.getTransformPropValue)((0,f.getTransformByIndex)(_,l,m));p=(0,r.default)({},p,y)}else p=(0,r.default)({},p,{display:"none"})}return s.default.createElement("div",{className:v,style:p},this.getTabPanes())}}]),t}(s.default.Component);t.default=m,m.propTypes={animated:u.default.bool,animatedWithMargin:u.default.bool,prefixCls:u.default.string,children:u.default.node,activeKey:u.default.string,style:u.default.any,tabBarPosition:u.default.string,className:u.default.string,destroyInactiveTabPane:u.default.bool,direction:u.default.string},m.defaultProps={animated:!0},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=i(n(361)),c=i(n(3)),o=i(n(17));function i(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var a=_(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(v,e);var t,n,i,l=p(v);function v(){return f(this,v),l.apply(this,arguments)}return t=v,(n=[{key:"render",value:function(){var e,t,n=this.props,i=n.tabBarStyle,l=n.animated,f=n.renderTabBar,h=n.tabBarExtraContent,m=n.tabPosition,p=n.prefixCls,v=n.className,_=n.size,y=n.type,M="object"===d(l)?l.inkBar:l,b="left"===m||"right"===m,g=b?"up":"left",L=b?"down":"right",z=r.createElement("span",{className:"".concat(p,"-tab-prev-icon")},r.createElement(o.default,{type:g,className:"".concat(p,"-tab-prev-icon-target")})),w=r.createElement("span",{className:"".concat(p,"-tab-next-icon")},r.createElement(o.default,{type:L,className:"".concat(p,"-tab-next-icon-target")})),k=(0,c.default)("".concat(p,"-").concat(m,"-bar"),(u(e={},"".concat(p,"-").concat(_,"-bar"),!!_),u(e,"".concat(p,"-card-bar"),y&&y.indexOf("card")>=0),e),v),H=s(s({},this.props),{children:null,inkBarAnimated:M,extraContent:h,style:i,prevIcon:z,nextIcon:w,className:k});return t=f?f(H,a.default):r.createElement(a.default,H),r.cloneElement(t)}}])&&h(t.prototype,n),i&&h(t,i),v}(r.Component);t.default=y,y.defaultProps={animated:!0,type:"line"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=v(n(4)),a=v(n(16)),c=v(n(7)),o=v(n(10)),i=v(n(8)),l=v(n(9)),s=v(n(0)),u=v(n(1)),d=v(n(362)),f=v(n(363)),h=v(n(364)),m=v(n(365)),p=v(n(376));function v(e){return e&&e.__esModule?e:{default:e}}var _=function(e){function t(){return(0,c.default)(this,t),(0,i.default)(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,o.default)(t,[{key:"render",value:function(){var e=this.props,t=e.children,n=(0,a.default)(e,["children"]);return s.default.createElement(p.default,null,(function(e,a){return s.default.createElement(h.default,(0,r.default)({saveRef:e},n),s.default.createElement(m.default,(0,r.default)({saveRef:e,getRef:a},n),s.default.createElement(f.default,(0,r.default)({saveRef:e,renderTabBarNode:t},n)),s.default.createElement(d.default,(0,r.default)({saveRef:e,getRef:a},n))))}))}}]),t}(s.default.Component);t.default=_,_.propTypes={children:u.default.func},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(6)),a=f(n(7)),c=f(n(10)),o=f(n(8)),i=f(n(9)),l=f(n(0)),s=f(n(1)),u=f(n(3)),d=n(40);function f(e){return e&&e.__esModule?e:{default:e}}function h(e,t){var n=e.props,r=n.styles,a=n.panels,c=n.activeKey,o=n.direction,i=e.props.getRef("root"),l=e.props.getRef("nav")||i,s=e.props.getRef("inkBar"),u=e.props.getRef("activeTab"),f=s.style,h=e.props.tabBarPosition,m=(0,d.getActiveIndex)(a,c);if(t&&(f.display="none"),u){var p=u,v=(0,d.isTransform3dSupported)(f);if((0,d.setTransform)(f,""),f.width="",f.height="",f.left="",f.top="",f.bottom="",f.right="","top"===h||"bottom"===h){var _=(0,d.getLeft)(p,l),y=p.offsetWidth;y===i.offsetWidth?y=0:r.inkBar&&void 0!==r.inkBar.width&&(y=parseFloat(r.inkBar.width,10))&&(_+=(p.offsetWidth-y)/2),"rtl"===o&&(_=(0,d.getStyle)(p,"margin-left")-_),v?(0,d.setTransform)(f,"translate3d("+_+"px,0,0)"):f.left=_+"px",f.width=y+"px"}else{var M=(0,d.getTop)(p,l,!0),b=p.offsetHeight;r.inkBar&&void 0!==r.inkBar.height&&(b=parseFloat(r.inkBar.height,10))&&(M+=(p.offsetHeight-b)/2),v?((0,d.setTransform)(f,"translate3d(0,"+M+"px,0)"),f.top="0"):f.top=M+"px",f.height=b+"px"}}f.display=-1!==m?"block":"none"}var m=function(e){function t(){return(0,a.default)(this,t),(0,o.default)(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return(0,i.default)(t,e),(0,c.default)(t,[{key:"componentDidMount",value:function(){var e=this;this.timeout=setTimeout((function(){h(e,!0)}),0)}},{key:"componentDidUpdate",value:function(){h(this)}},{key:"componentWillUnmount",value:function(){clearTimeout(this.timeout)}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,a=t.styles,c=t.inkBarAnimated,o=n+"-ink-bar",i=(0,u.default)((e={},(0,r.default)(e,o,!0),(0,r.default)(e,c?o+"-animated":o+"-no-animated",!0),e));return l.default.createElement("div",{style:a.inkBar,className:i,key:"inkBar",ref:this.props.saveRef("inkBar")})}}]),t}(l.default.Component);t.default=m,m.propTypes={prefixCls:s.default.string,styles:s.default.object,inkBarAnimated:s.default.bool,saveRef:s.default.func,direction:s.default.string},m.defaultProps={prefixCls:"",inkBarAnimated:!0,styles:{},saveRef:function(){}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=h(n(4)),a=h(n(6)),c=h(n(7)),o=h(n(10)),i=h(n(8)),l=h(n(9)),s=h(n(0)),u=h(n(221)),d=h(n(1)),f=n(40);function h(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(){return(0,c.default)(this,t),(0,i.default)(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return(0,l.default)(t,e),(0,o.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.panels,c=t.activeKey,o=t.prefixCls,i=t.tabBarGutter,l=t.saveRef,d=t.tabBarPosition,h=t.renderTabBarNode,m=t.direction,p=[];return s.default.Children.forEach(n,(function(t,v){if(t){var _=t.key,y=c===_?o+"-tab-active":"";y+=" "+o+"-tab";var M={};t.props.disabled?y+=" "+o+"-tab-disabled":M={onClick:e.props.onTabClick.bind(e,_)};var b={};c===_&&(b.ref=l("activeTab"));var g=i&&v===n.length-1?0:i,L="rtl"===m?"marginLeft":"marginRight",z=(0,a.default)({},(0,f.isVertical)(d)?"marginBottom":L,g);(0,u.default)("tab"in t.props,"There must be `tab` property on children of Tabs.");var w=s.default.createElement("div",(0,r.default)({role:"tab","aria-disabled":t.props.disabled?"true":"false","aria-selected":c===_?"true":"false"},M,{className:y,key:_,style:z},b),t.props.tab);h&&(w=h(w)),p.push(w)}})),s.default.createElement("div",{ref:l("navTabsContainer")},p)}}]),t}(s.default.Component);t.default=m,m.propTypes={activeKey:d.default.string,panels:d.default.node,prefixCls:d.default.string,tabBarGutter:d.default.number,onTabClick:d.default.func,saveRef:d.default.func,renderTabBarNode:d.default.func,tabBarPosition:d.default.string,direction:d.default.string},m.defaultProps={panels:[],prefixCls:[],tabBarGutter:null,onTabClick:function(){},saveRef:function(){}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p(n(4)),a=p(n(6)),c=p(n(16)),o=p(n(7)),i=p(n(10)),l=p(n(8)),s=p(n(9)),u=n(0),d=p(u),f=p(n(1)),h=p(n(3)),m=n(40);function p(e){return e&&e.__esModule?e:{default:e}}var v=function(e){function t(){return(0,o.default)(this,t),(0,l.default)(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return(0,s.default)(t,e),(0,i.default)(t,[{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.onKeyDown,o=e.className,i=e.extraContent,l=e.style,s=e.tabBarPosition,f=e.children,p=(0,c.default)(e,["prefixCls","onKeyDown","className","extraContent","style","tabBarPosition","children"]),v=(0,h.default)(t+"-bar",(0,a.default)({},o,!!o)),_="top"===s||"bottom"===s,y=_?{float:"right"}:{},M=i&&i.props?i.props.style:{},b=f;return i&&(b=[(0,u.cloneElement)(i,{key:"extra",style:(0,r.default)({},y,M)}),(0,u.cloneElement)(f,{key:"content"})],b=_?b:b.reverse()),d.default.createElement("div",(0,r.default)({role:"tablist",className:v,tabIndex:"0",ref:this.props.saveRef("root"),onKeyDown:n,style:l},(0,m.getDataAttr)(p)),b)}}]),t}(d.default.Component);t.default=v,v.propTypes={prefixCls:f.default.string,className:f.default.string,style:f.default.object,tabBarPosition:f.default.oneOf(["left","right","top","bottom"]),children:f.default.node,extraContent:f.default.node,onKeyDown:f.default.func,saveRef:f.default.func},v.defaultProps={prefixCls:"",className:"",style:{},tabBarPosition:"top",extraContent:null,children:null,onKeyDown:function(){},saveRef:function(){}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=m(n(6)),a=m(n(7)),c=m(n(10)),o=m(n(8)),i=m(n(9)),l=m(n(0)),s=m(n(1)),u=m(n(3)),d=m(n(366)),f=m(n(375)),h=n(40);function m(e){return e&&e.__esModule?e:{default:e}}var p=function(e){function t(e){(0,a.default)(this,t);var n=(0,o.default)(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.prevTransitionEnd=function(e){if("opacity"===e.propertyName){var t=n.props.getRef("container");n.scrollToActiveTab({target:t,currentTarget:t})}},n.scrollToActiveTab=function(e){var t=n.props.getRef("activeTab"),r=n.props.getRef("navWrap");if((!e||e.target===e.currentTarget)&&t){var a=n.isNextPrevShown()&&n.lastNextPrevShown;if(n.lastNextPrevShown=n.isNextPrevShown(),a){var c=n.getScrollWH(t),o=n.getOffsetWH(r),i=n.offset,l=n.getOffsetLT(r),s=n.getOffsetLT(t);l>s?(i+=l-s,n.setOffset(i)):l+o<s+c&&(i-=s+c-(l+o),n.setOffset(i))}}},n.prev=function(e){n.props.onPrevClick(e);var t=n.props.getRef("navWrap"),r=n.getOffsetWH(t),a=n.offset;n.setOffset(a+r)},n.next=function(e){n.props.onNextClick(e);var t=n.props.getRef("navWrap"),r=n.getOffsetWH(t),a=n.offset;n.setOffset(a-r)},n.offset=0,n.state={next:!1,prev:!1},n}return(0,i.default)(t,e),(0,c.default)(t,[{key:"componentDidMount",value:function(){var e=this;this.componentDidUpdate(),this.debouncedResize=(0,d.default)((function(){e.setNextPrev(),e.scrollToActiveTab()}),200),this.resizeObserver=new f.default(this.debouncedResize),this.resizeObserver.observe(this.props.getRef("container"))}},{key:"componentDidUpdate",value:function(e){var t=this.props;if(e&&e.tabBarPosition!==t.tabBarPosition)this.setOffset(0);else{var n=this.setNextPrev();this.isNextPrevShown(this.state)!==this.isNextPrevShown(n)?this.setState({},this.scrollToActiveTab):e&&t.activeKey===e.activeKey||this.scrollToActiveTab()}}},{key:"componentWillUnmount",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),this.debouncedResize&&this.debouncedResize.cancel&&this.debouncedResize.cancel()}},{key:"setNextPrev",value:function(){var e=this.props.getRef("nav"),t=this.props.getRef("navTabsContainer"),n=this.getScrollWH(t||e),r=this.getOffsetWH(this.props.getRef("container"))+1,a=this.getOffsetWH(this.props.getRef("navWrap")),c=this.offset,o=r-n,i=this.state,l=i.next,s=i.prev;if(o>=0)l=!1,this.setOffset(0,!1),c=0;else if(o<c)l=!0;else{l=!1;var u=a-n;this.setOffset(u,!1),c=u}return s=c<0,this.setNext(l),this.setPrev(s),{next:l,prev:s}}},{key:"getOffsetWH",value:function(e){var t=this.props.tabBarPosition,n="offsetWidth";return"left"!==t&&"right"!==t||(n="offsetHeight"),e[n]}},{key:"getScrollWH",value:function(e){var t=this.props.tabBarPosition,n="scrollWidth";return"left"!==t&&"right"!==t||(n="scrollHeight"),e[n]}},{key:"getOffsetLT",value:function(e){var t=this.props.tabBarPosition,n="left";return"left"!==t&&"right"!==t||(n="top"),e.getBoundingClientRect()[n]}},{key:"setOffset",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Math.min(0,e);if(this.offset!==n){this.offset=n;var r={},a=this.props.tabBarPosition,c=this.props.getRef("nav").style,o=(0,h.isTransform3dSupported)(c);"left"===a||"right"===a?r=o?{value:"translate3d(0,"+n+"px,0)"}:{name:"top",value:n+"px"}:o?("rtl"===this.props.direction&&(n=-n),r={value:"translate3d("+n+"px,0,0)"}):r={name:"left",value:n+"px"},o?(0,h.setTransform)(c,r.value):c[r.name]=r.value,t&&this.setNextPrev()}}},{key:"setPrev",value:function(e){this.state.prev!==e&&this.setState({prev:e})}},{key:"setNext",value:function(e){this.state.next!==e&&this.setState({next:e})}},{key:"isNextPrevShown",value:function(e){return e?e.next||e.prev:this.state.next||this.state.prev}},{key:"render",value:function(){var e,t,n,a,c=this.state,o=c.next,i=c.prev,s=this.props,d=s.prefixCls,f=s.scrollAnimated,h=s.navWrapper,m=s.prevIcon,p=s.nextIcon,v=i||o,_=l.default.createElement("span",{onClick:i?this.prev:null,unselectable:"unselectable",className:(0,u.default)((e={},(0,r.default)(e,d+"-tab-prev",1),(0,r.default)(e,d+"-tab-btn-disabled",!i),(0,r.default)(e,d+"-tab-arrow-show",v),e)),onTransitionEnd:this.prevTransitionEnd},m||l.default.createElement("span",{className:d+"-tab-prev-icon"})),y=l.default.createElement("span",{onClick:o?this.next:null,unselectable:"unselectable",className:(0,u.default)((t={},(0,r.default)(t,d+"-tab-next",1),(0,r.default)(t,d+"-tab-btn-disabled",!o),(0,r.default)(t,d+"-tab-arrow-show",v),t))},p||l.default.createElement("span",{className:d+"-tab-next-icon"})),M=d+"-nav",b=(0,u.default)((n={},(0,r.default)(n,M,!0),(0,r.default)(n,f?M+"-animated":M+"-no-animated",!0),n));return l.default.createElement("div",{className:(0,u.default)((a={},(0,r.default)(a,d+"-nav-container",1),(0,r.default)(a,d+"-nav-container-scrolling",v),a)),key:"container",ref:this.props.saveRef("container")},_,y,l.default.createElement("div",{className:d+"-nav-wrap",ref:this.props.saveRef("navWrap")},l.default.createElement("div",{className:d+"-nav-scroll"},l.default.createElement("div",{className:b,ref:this.props.saveRef("nav")},h(this.props.children)))))}}]),t}(l.default.Component);t.default=p,p.propTypes={activeKey:s.default.string,getRef:s.default.func.isRequired,saveRef:s.default.func.isRequired,tabBarPosition:s.default.oneOf(["left","right","top","bottom"]),prefixCls:s.default.string,scrollAnimated:s.default.bool,onPrevClick:s.default.func,onNextClick:s.default.func,navWrapper:s.default.func,children:s.default.node,prevIcon:s.default.node,nextIcon:s.default.node,direction:s.default.node},p.defaultProps={tabBarPosition:"left",prefixCls:"",scrollAnimated:!0,onPrevClick:function(){},onNextClick:function(){},navWrapper:function(e){return e}},e.exports=t.default},function(e,t,n){var r=n(232),a=n(367),c=n(369),o=Math.max,i=Math.min;e.exports=function(e,t,n){var l,s,u,d,f,h,m=0,p=!1,v=!1,_=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var n=l,r=s;return l=s=void 0,m=t,d=e.apply(r,n)}function M(e){return m=e,f=setTimeout(g,t),p?y(e):d}function b(e){var n=e-h;return void 0===h||n>=t||n<0||v&&e-m>=u}function g(){var e=a();if(b(e))return L(e);f=setTimeout(g,function(e){var n=t-(e-h);return v?i(n,u-(e-m)):n}(e))}function L(e){return f=void 0,_&&l?y(e):(l=s=void 0,d)}function z(){var e=a(),n=b(e);if(l=arguments,s=this,h=e,n){if(void 0===f)return M(h);if(v)return f=setTimeout(g,t),y(h)}return void 0===f&&(f=setTimeout(g,t)),d}return t=c(t)||0,r(n)&&(p=!!n.leading,u=(v="maxWait"in n)?o(c(n.maxWait)||0,t):u,_="trailing"in n?!!n.trailing:_),z.cancel=function(){void 0!==f&&clearTimeout(f),m=0,l=h=s=f=void 0},z.flush=function(){return void 0===f?d:L(a())},z}},function(e,t,n){var r=n(233);e.exports=function(){return r.Date.now()}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(39))},function(e,t,n){var r=n(232),a=n(370),c=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,l=/^0o[0-7]+$/i,s=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(c,"");var n=i.test(e);return n||l.test(e)?s(e.slice(2),n?2:8):o.test(e)?NaN:+e}},function(e,t,n){var r=n(371),a=n(374);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},function(e,t,n){var r=n(234),a=n(372),c=n(373),o=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":o&&o in Object(e)?a(e):c(e)}},function(e,t,n){var r=n(234),a=Object.prototype,c=a.hasOwnProperty,o=a.toString,i=r?r.toStringTag:void 0;e.exports=function(e){var t=c.call(e,i),n=e[i];try{e[i]=void 0;var r=!0}catch(e){}var a=o.call(e);return r&&(t?e[i]=n:delete e[i]),a}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";n.r(t),function(e){var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,a=void 0!==e&&e.Math===Math?e:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),c="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var o=["top","right","bottom","left","width","height","size","weight"],i="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function o(){n&&(n=!1,e()),r&&l()}function i(){c(o)}function l(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(i,t);a=e}return l}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),i?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;o.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),s=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||a},d=_(0,0,0,0);function f(e){return parseFloat(e)||0}function h(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+f(e["border-"+n+"-width"])}),0)}function m(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r=u(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],c=e["padding-"+a];t[a]=f(c)}return t}(r),c=a.left+a.right,o=a.top+a.bottom,i=f(r.width),l=f(r.height);if("border-box"===r.boxSizing&&(Math.round(i+c)!==t&&(i-=h(r,"left","right")+c),Math.round(l+o)!==n&&(l-=h(r,"top","bottom")+o)),!function(e){return e===u(e).document.documentElement}(e)){var s=Math.round(i+c)-t,m=Math.round(l+o)-n;1!==Math.abs(s)&&(i-=s),1!==Math.abs(m)&&(l-=m)}return _(a.left,a.top,i,l)}var p="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function v(e){return r?p(e)?function(e){var t=e.getBBox();return _(0,0,t.width,t.height)}(e):m(e):d}function _(e,t,n,r){return{x:e,y:t,width:n,height:r}}var y=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=_(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=v(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),M=function(e,t){var n,r,a,c,o,i,l,u=(r=(n=t).x,a=n.y,c=n.width,o=n.height,i="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(i.prototype),s(l,{x:r,y:a,width:c,height:o,top:a,right:r+c,bottom:o+a,left:r}),l);s(this,{target:e,contentRect:u})},b=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new y(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new M(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),g="undefined"!=typeof WeakMap?new WeakMap:new n,L=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new b(t,n,this);g.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){L.prototype[e]=function(){var t;return(t=g.get(this))[e].apply(t,arguments)}}));var z=void 0!==a.ResizeObserver?a.ResizeObserver:L;t.default=z}.call(this,n(39))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(7)),a=s(n(10)),c=s(n(8)),o=s(n(9)),i=s(n(0)),l=s(n(1));function s(e){return e&&e.__esModule?e:{default:e}}var u=function(e){function t(){var e,n,a,o;(0,r.default)(this,t);for(var i=arguments.length,l=Array(i),s=0;s<i;s++)l[s]=arguments[s];return n=a=(0,c.default)(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.getRef=function(e){return a[e]},a.saveRef=function(e){return function(t){t&&(a[e]=t)}},o=n,(0,c.default)(a,o)}return(0,o.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){return this.props.children(this.saveRef,this.getRef)}}]),t}(i.default.Component);t.default=u,u.propTypes={children:l.default.func},u.defaultProps={children:function(){return null}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.isFlexSupported=void 0;var r=function(e){if("undefined"!=typeof window&&window.document&&window.document.documentElement){var t=Array.isArray(e)?e:[e],n=window.document.documentElement;return t.some((function(e){return e in n.style}))}return!1},a=r(["flex","webkitFlex","Flex","msFlex"]);t.isFlexSupported=a;var c=r;t.default=c},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,c){var o=a.default.unstable_batchedUpdates?function(e){a.default.unstable_batchedUpdates(n,e)}:n;return(0,r.default)(e,t,o,c)};var r=c(n(380)),a=c(n(11));function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r){function a(t){var r=new c.default(t);n.call(e,r)}if(e.addEventListener){var o=(i=!1,"object"==typeof r?i=r.capture||!1:"boolean"==typeof r&&(i=r),e.addEventListener(t,a,r||!1),{v:{remove:function(){e.removeEventListener(t,a,i)}}});if("object"==typeof o)return o.v}else if(e.attachEvent)return e.attachEvent("on"+t,a),{remove:function(){e.detachEvent("on"+t,a)}};var i};var r,a=n(381),c=(r=a)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(382)),c=r(n(53)),o=["altKey","bubbles","cancelable","ctrlKey","currentTarget","eventPhase","metaKey","shiftKey","target","timeStamp","view","type"];function i(e){return null==e}var l=[{reg:/^key/,props:["char","charCode","key","keyCode","which"],fix:function(e,t){i(e.which)&&(e.which=i(t.charCode)?t.keyCode:t.charCode),void 0===e.metaKey&&(e.metaKey=e.ctrlKey)}},{reg:/^touch/,props:["touches","changedTouches","targetTouches"]},{reg:/^hashchange$/,props:["newURL","oldURL"]},{reg:/^gesturechange$/i,props:["rotation","scale"]},{reg:/^(mousewheel|DOMMouseScroll)$/,props:[],fix:function(e,t){var n=void 0,r=void 0,a=void 0,c=t.wheelDelta,o=t.axis,i=t.wheelDeltaY,l=t.wheelDeltaX,s=t.detail;c&&(a=c/120),s&&(a=0-(s%3==0?s/3:s)),void 0!==o&&(o===e.HORIZONTAL_AXIS?(r=0,n=0-a):o===e.VERTICAL_AXIS&&(n=0,r=a)),void 0!==i&&(r=i/120),void 0!==l&&(n=-1*l/120),n||r||(r=a),void 0!==n&&(e.deltaX=n),void 0!==r&&(e.deltaY=r),void 0!==a&&(e.delta=a)}},{reg:/^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,props:["buttons","clientX","clientY","button","offsetX","relatedTarget","which","fromElement","toElement","offsetY","pageX","pageY","screenX","screenY"],fix:function(e,t){var n=void 0,r=void 0,a=void 0,c=e.target,o=t.button;return c&&i(e.pageX)&&!i(t.clientX)&&(r=(n=c.ownerDocument||document).documentElement,a=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||a&&a.scrollLeft||0)-(r&&r.clientLeft||a&&a.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||a&&a.scrollTop||0)-(r&&r.clientTop||a&&a.clientTop||0)),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),!e.relatedTarget&&e.fromElement&&(e.relatedTarget=e.fromElement===c?e.toElement:e.fromElement),e}}];function s(){return!0}function u(){return!1}function d(e){var t=e.type,n="function"==typeof e.stopPropagation||"boolean"==typeof e.cancelBubble;a.default.call(this),this.nativeEvent=e;var r=u;"defaultPrevented"in e?r=e.defaultPrevented?s:u:"getPreventDefault"in e?r=e.getPreventDefault()?s:u:"returnValue"in e&&(r=!1===e.returnValue?s:u),this.isDefaultPrevented=r;var c=[],i=void 0,d=void 0,f=o.concat();for(l.forEach((function(e){t.match(e.reg)&&(f=f.concat(e.props),e.fix&&c.push(e.fix))})),i=f.length;i;)this[d=f[--i]]=e[d];for(!this.target&&n&&(this.target=e.srcElement||document),this.target&&3===this.target.nodeType&&(this.target=this.target.parentNode),i=c.length;i;)(0,c[--i])(this,e);this.timeStamp=e.timeStamp||Date.now()}var f=a.default.prototype;(0,c.default)(d.prototype,f,{constructor:d,preventDefault:function(){var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,f.preventDefault.call(this)},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,f.stopPropagation.call(this)}}),t.default=d,e.exports=t.default},function(e,t,n){"use strict";function r(){return!1}function a(){return!0}function c(){this.timeStamp=Date.now(),this.target=void 0,this.currentTarget=void 0}Object.defineProperty(t,"__esModule",{value:!0}),c.prototype={isEventObject:1,constructor:c,isDefaultPrevented:r,isPropagationStopped:r,isImmediatePropagationStopped:r,preventDefault:function(){this.isDefaultPrevented=a},stopPropagation:function(){this.isPropagationStopped=a},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=a,this.stopPropagation()},halt:function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()}},t.default=c,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=m(n(0)),a=m(n(1)),c=f(n(3)),o=n(18),i=f(n(32)),l=f(n(17)),s=n(12),u=f(n(384)),d=n(49);function f(e){return e&&e.__esModule?e:{default:e}}function h(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return h=function(){return e},e}function m(e){if(e&&e.__esModule)return e;if(null===e||"object"!==L(e)&&"function"!=typeof e)return{default:e};var t=h();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=g(e);if(t){var a=g(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return b(this,n)}}function b(e,t){return!t||"object"!==L(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function L(e){return(L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var z=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},w=/^[\u4e00-\u9fa5]{2}$/,k=w.test.bind(w);function H(e,t){var n=!1,a=[];return r.Children.forEach(e,(function(e){var t=L(e),r="string"===t||"number"===t;if(n&&r){var c=a.length-1,o=a[c];a[c]="".concat(o).concat(e)}else a.push(e);n=r})),r.Children.map(a,(function(e){return function(e,t){if(null!=e){var n=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&"string"==typeof e.type&&k(e.props.children)?r.cloneElement(e,{},e.props.children.split("").join(n)):"string"==typeof e?(k(e)&&(e=e.split("").join(n)),r.createElement("span",null,e)):e}}(e,t)}))}(0,d.tuple)("default","primary","ghost","dashed","danger","link");var T=(0,d.tuple)("circle","circle-outline","round"),Y=(0,d.tuple)("large","default","small"),S=(0,d.tuple)("submit","button","reset"),O=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(d,e);var t,n,a,o=M(d);function d(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),(t=o.call(this,e)).saveButtonRef=function(e){t.buttonNode=e},t.handleClick=function(e){var n=t.state.loading,r=t.props.onClick;n||r&&r(e)},t.renderButton=function(e){var n,a=e.getPrefixCls,o=e.autoInsertSpaceInButton,s=t.props,d=s.prefixCls,f=s.type,h=s.shape,m=s.size,_=s.className,y=s.children,M=s.icon,b=s.ghost,g=s.block,L=z(s,["prefixCls","type","shape","size","className","children","icon","ghost","block"]),w=t.state,k=w.loading,T=w.hasTwoCNChar,Y=a("btn",d),S=!1!==o,O="";switch(m){case"large":O="lg";break;case"small":O="sm"}var D=k?"loading":M,x=(0,c.default)(Y,_,(v(n={},"".concat(Y,"-").concat(f),f),v(n,"".concat(Y,"-").concat(h),h),v(n,"".concat(Y,"-").concat(O),O),v(n,"".concat(Y,"-icon-only"),!y&&0!==y&&D),v(n,"".concat(Y,"-loading"),!!k),v(n,"".concat(Y,"-background-ghost"),b),v(n,"".concat(Y,"-two-chinese-chars"),T&&S),v(n,"".concat(Y,"-block"),g),n)),C=D?r.createElement(l.default,{type:D}):null,j=y||0===y?H(y,t.isNeedInserted()&&S):null,E=(0,i.default)(L,["htmlType","loading"]);if(void 0!==E.href)return r.createElement("a",p({},E,{className:x,onClick:t.handleClick,ref:t.saveButtonRef}),C,j);var V=L,P=V.htmlType,N=z(V,["htmlType"]),A=r.createElement("button",p({},(0,i.default)(N,["loading"]),{type:P,className:x,onClick:t.handleClick,ref:t.saveButtonRef}),C,j);return"link"===f?A:r.createElement(u.default,null,A)},t.state={loading:e.loading,hasTwoCNChar:!1},t}return t=d,(n=[{key:"componentDidMount",value:function(){this.fixTwoCNChar()}},{key:"componentDidUpdate",value:function(e){var t=this;this.fixTwoCNChar(),e.loading&&"boolean"!=typeof e.loading&&clearTimeout(this.delayTimeout);var n=this.props.loading;n&&"boolean"!=typeof n&&n.delay?this.delayTimeout=window.setTimeout((function(){t.setState({loading:n})}),n.delay):e.loading!==n&&this.setState({loading:n})}},{key:"componentWillUnmount",value:function(){this.delayTimeout&&clearTimeout(this.delayTimeout)}},{key:"fixTwoCNChar",value:function(){if(this.buttonNode){var e=this.buttonNode.textContent;this.isNeedInserted()&&k(e)?this.state.hasTwoCNChar||this.setState({hasTwoCNChar:!0}):this.state.hasTwoCNChar&&this.setState({hasTwoCNChar:!1})}}},{key:"isNeedInserted",value:function(){var e=this.props,t=e.icon,n=e.children,a=e.type;return 1===r.Children.count(n)&&!t&&"link"!==a}},{key:"render",value:function(){return r.createElement(s.ConfigConsumer,null,this.renderButton)}}])&&_(t.prototype,n),a&&_(t,a),d}(r.Component);O.__ANT_BUTTON=!0,O.defaultProps={loading:!1,ghost:!1,block:!1,htmlType:"button"},O.propTypes={type:a.string,shape:a.oneOf(T),size:a.oneOf(Y),htmlType:a.oneOf(S),onClick:a.func,loading:a.oneOfType([a.bool,a.object]),className:a.string,icon:a.string,block:a.bool,title:a.string},(0,o.polyfill)(O);var D=O;t.default=D},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),c=n(11),o=s(n(385)),i=s(n(386)),l=n(12);function s(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var a=y(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?_(e):t}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function M(e){return!e||null===e.offsetParent}function b(e){var t=(e||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);return!(t&&t[1]&&t[2]&&t[3])||!(t[1]===t[2]&&t[2]===t[3])}var g=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(d,e);var t,n,s,u=p(d);function d(){var e;return f(this,d),(e=u.apply(this,arguments)).animationStart=!1,e.destroy=!1,e.onClick=function(t,n){if(!(!t||M(t)||t.className.indexOf("-leave")>=0)){var a=e.props.insertExtraNode;e.extraNode=document.createElement("div");var c=_(e).extraNode;c.className="ant-click-animating-node";var i=e.getAttributeName();t.setAttribute(i,"true"),r=r||document.createElement("style"),n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&b(n)&&!/rgba\(\d*, \d*, \d*, 0\)/.test(n)&&"transparent"!==n&&(e.csp&&e.csp.nonce&&(r.nonce=e.csp.nonce),c.style.borderColor=n,r.innerHTML="\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ".concat(n,";\n }"),document.body.contains(r)||document.body.appendChild(r)),a&&t.appendChild(c),o.default.addStartEventListener(t,e.onTransitionStart),o.default.addEndEventListener(t,e.onTransitionEnd)}},e.onTransitionStart=function(t){if(!e.destroy){var n=(0,c.findDOMNode)(_(e));t&&t.target===n&&(e.animationStart||e.resetEffect(n))}},e.onTransitionEnd=function(t){t&&"fadeEffect"===t.animationName&&e.resetEffect(t.target)},e.bindAnimationEvent=function(t){if(t&&t.getAttribute&&!t.getAttribute("disabled")&&!(t.className.indexOf("disabled")>=0)){var n=function(n){if("INPUT"!==n.target.tagName&&!M(n.target)){e.resetEffect(t);var r=getComputedStyle(t).getPropertyValue("border-top-color")||getComputedStyle(t).getPropertyValue("border-color")||getComputedStyle(t).getPropertyValue("background-color");e.clickWaveTimeoutId=window.setTimeout((function(){return e.onClick(t,r)}),0),i.default.cancel(e.animationStartId),e.animationStart=!0,e.animationStartId=(0,i.default)((function(){e.animationStart=!1}),10)}};return t.addEventListener("click",n,!0),{cancel:function(){t.removeEventListener("click",n,!0)}}}},e.renderWave=function(t){var n=t.csp,r=e.props.children;return e.csp=n,r},e}return t=d,(n=[{key:"componentDidMount",value:function(){var e=(0,c.findDOMNode)(this);e&&1===e.nodeType&&(this.instance=this.bindAnimationEvent(e))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroy=!0}},{key:"getAttributeName",value:function(){return this.props.insertExtraNode?"ant-click-animating":"ant-click-animating-without-extra-node"}},{key:"resetEffect",value:function(e){if(e&&e!==this.extraNode&&e instanceof Element){var t=this.props.insertExtraNode,n=this.getAttributeName();e.setAttribute(n,"false"),r&&(r.innerHTML=""),t&&this.extraNode&&e.contains(this.extraNode)&&e.removeChild(this.extraNode),o.default.removeStartEventListener(e,this.onTransitionStart),o.default.removeEndEventListener(e,this.onTransitionEnd)}}},{key:"render",value:function(){return a.createElement(l.ConfigConsumer,null,this.renderWave)}}])&&h(t.prototype,n),s&&h(t,s),d}(a.Component);t.default=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={transitionstart:{transition:"transitionstart",WebkitTransition:"webkitTransitionStart",MozTransition:"mozTransitionStart",OTransition:"oTransitionStart",msTransition:"MSTransitionStart"},animationstart:{animation:"animationstart",WebkitAnimation:"webkitAnimationStart",MozAnimation:"mozAnimationStart",OAnimation:"oAnimationStart",msAnimation:"MSAnimationStart"}},a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},c=[],o=[];function i(e,t,n){e.addEventListener(t,n,!1)}function l(e,t,n){e.removeEventListener(t,n,!1)}"undefined"!=typeof window&&"undefined"!=typeof document&&function(){var e=document.createElement("div").style;function t(t,n){for(var r in t)if(t.hasOwnProperty(r)){var a=t[r];for(var c in a)if(c in e){n.push(a[c]);break}}}"AnimationEvent"in window||(delete r.animationstart.animation,delete a.animationend.animation),"TransitionEvent"in window||(delete r.transitionstart.transition,delete a.transitionend.transition),t(r,c),t(a,o)}();var s={startEvents:c,addStartEventListener:function(e,t){0!==c.length?c.forEach((function(n){i(e,n,t)})):window.setTimeout(t,0)},removeStartEventListener:function(e,t){0!==c.length&&c.forEach((function(n){l(e,n,t)}))},endEvents:o,addEndEventListener:function(e,t){0!==o.length?o.forEach((function(n){i(e,n,t)})):window.setTimeout(t,0)},removeEndEventListener:function(e,t){0!==o.length&&o.forEach((function(n){l(e,n,t)}))}};t.default=s,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var r,a=(r=n(34))&&r.__esModule?r:{default:r};var c=0,o={};function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=c++,r=t;function i(){(r-=1)<=0?(e(),delete o[n]):o[n]=(0,a.default)(i)}return o[n]=(0,a.default)(i),n}i.cancel=function(e){void 0!==e&&(a.default.cancel(o[e]),delete o[e])},i.ids=o},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,c=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=(a=n(3))&&a.__esModule?a:{default:a},i=n(12);function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},d=function(e){return c.createElement(i.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.prefixCls,a=e.size,i=e.className,l=u(e,["prefixCls","size","className"]),d=n("btn-group",r),f="";switch(a){case"large":f="lg";break;case"small":f="sm"}var h=(0,o.default)(d,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},"".concat(d,"-").concat(f),f),i);return c.createElement("div",s({},l,{className:h}))}))};t.default=d},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=document.createElement("div");document.body.appendChild(t);var n=p(p({},e),{close:i,visible:!0});function r(){var n=c.unmountComponentAtNode(t);n&&t.parentNode&&t.parentNode.removeChild(t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];var s=a.some((function(e){return e&&e.triggerCancel}));e.onCancel&&s&&e.onCancel.apply(e,a);for(var u=0;u<l.destroyFns.length;u++){var d=l.destroyFns[u];if(d===i){l.destroyFns.splice(u,1);break}}}function o(e){c.render(a.createElement(_,e),t)}function i(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];n=p(p({},n),{visible:!1,afterClose:r.bind.apply(r,[this].concat(t))}),v?o(n):r.apply(void 0,t)}return o(n),l.destroyFns.push(i),{destroy:i,update:function(e){o(n=p(p({},n),e))}}};var a=m(n(0)),c=m(n(11)),o=f(n(3)),i=f(n(17)),l=m(n(235)),s=f(n(389)),u=n(68),d=f(n(26));function f(e){return e&&e.__esModule?e:{default:e}}function h(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return h=function(){return e},e}function m(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=h();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var o=a?Object.getOwnPropertyDescriptor(e,c):null;o&&(o.get||o.set)?Object.defineProperty(n,c,o):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var v=!!c.createPortal,_=function(e){var t=e.onCancel,n=e.onOk,r=e.close,c=e.zIndex,f=e.afterClose,h=e.visible,m=e.keyboard,p=e.centered,v=e.getContainer,_=e.maskStyle,y=e.okButtonProps,M=e.cancelButtonProps,b=e.iconType,g=void 0===b?"question-circle":b;(0,d.default)(!("iconType"in e),"Modal","The property 'iconType' is deprecated. Use the property 'icon' instead.");var L,z,w,k=void 0===e.icon?g:e.icon,H=e.okType||"primary",T=e.prefixCls||"ant-modal",Y="".concat(T,"-confirm"),S=!("okCancel"in e)||e.okCancel,O=e.width||416,D=e.style||{},x=void 0===e.mask||e.mask,C=void 0!==e.maskClosable&&e.maskClosable,j=(0,u.getConfirmLocale)(),E=e.okText||(S?j.okText:j.justOkText),V=e.cancelText||j.cancelText,P=null!==e.autoFocusButton&&(e.autoFocusButton||"ok"),N=e.transitionName||"zoom",A=e.maskTransitionName||"fade",F=(0,o.default)(Y,"".concat(Y,"-").concat(e.type),e.className),W=S&&a.createElement(s.default,{actionFn:t,closeModal:r,autoFocus:"cancel"===P,buttonProps:M},V),R="string"==typeof k?a.createElement(i.default,{type:k}):k;return a.createElement(l.default,{prefixCls:T,className:F,wrapClassName:(0,o.default)((L={},z="".concat(Y,"-centered"),w=!!e.centered,z in L?Object.defineProperty(L,z,{value:w,enumerable:!0,configurable:!0,writable:!0}):L[z]=w,L)),onCancel:function(){return r({triggerCancel:!0})},visible:h,title:"",transitionName:N,footer:"",maskTransitionName:A,mask:x,maskClosable:C,maskStyle:_,style:D,width:O,zIndex:c,afterClose:f,keyboard:m,centered:p,getContainer:v},a.createElement("div",{className:"".concat(Y,"-body-wrapper")},a.createElement("div",{className:"".concat(Y,"-body")},R,void 0===e.title?null:a.createElement("span",{className:"".concat(Y,"-title")},e.title),a.createElement("div",{className:"".concat(Y,"-content")},e.content)),a.createElement("div",{className:"".concat(Y,"-btns")},W,a.createElement(s.default,{type:H,actionFn:n,closeModal:r,autoFocus:"ok"===P,buttonProps:y},E))))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=l(n(0)),c=l(n(11)),o=(r=n(236))&&r.__esModule?r:{default:r};function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function l(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=r?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=p(e);if(t){var a=p(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return m(this,n)}}function m(e,t){return!t||"object"!==s(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(l,e);var t,n,r,i=h(l);function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=i.call(this,e)).onClick=function(){var e,n=t.props,r=n.actionFn,a=n.closeModal;r?(r.length?e=r(a):(e=r())||a(),e&&e.then&&(t.setState({loading:!0}),e.then((function(){a.apply(void 0,arguments)}),(function(e){console.error(e),t.setState({loading:!1})})))):a()},t.state={loading:!1},t}return t=l,(n=[{key:"componentDidMount",value:function(){if(this.props.autoFocus){var e=c.findDOMNode(this);this.timeoutId=setTimeout((function(){return e.focus()}))}}},{key:"componentWillUnmount",value:function(){clearTimeout(this.timeoutId)}},{key:"render",value:function(){var e=this.props,t=e.type,n=e.children,r=e.buttonProps,c=this.state.loading;return a.createElement(o.default,u({type:t,onClick:this.onClick,loading:c},r),n)}}])&&d(t.prototype,n),r&&d(t,r),l}(a.Component);t.default=v},function(e,t,n){"use strict";n.r(t);var r=n(4),a=n.n(r),c=n(0),o=n.n(c),i=n(7),l=n.n(i),s=n(8),u=n.n(s),d=n(9),f=n.n(d),h=n(11),m=n.n(h),p=n(41);var v=n(42),_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&(n[r[a]]=e[r[a]])}return n},y=function(e){function t(){return l()(this,t),u()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.shouldComponentUpdate=function(e){return!!e.forceRender||(!!e.hiddenClassName||!!e.visible)},t.prototype.render=function(){var e=this.props,t=e.className,n=e.hiddenClassName,r=e.visible,o=(e.forceRender,_(e,["className","hiddenClassName","visible","forceRender"])),i=t;return n&&!r&&(i+=" "+n),c.createElement("div",a()({},o,{className:i}))},t}(c.Component),M=0;function b(e,t){var n=e["page"+(t?"Y":"X")+"Offset"],r="scroll"+(t?"Top":"Left");if("number"!=typeof n){var a=e.document;"number"!=typeof(n=a.documentElement[r])&&(n=a.body[r])}return n}function g(e,t){var n=e.style;["Webkit","Moz","Ms","ms"].forEach((function(e){n[e+"TransformOrigin"]=t})),n.transformOrigin=t}var L=function(e){function t(n){l()(this,t);var r=u()(this,e.call(this,n));return r.inTransition=!1,r.onAnimateLeave=function(){var e=r.props.afterClose;r.wrap&&(r.wrap.style.display="none"),r.inTransition=!1,r.switchScrollingEffect(),e&&e()},r.onDialogMouseDown=function(){r.dialogMouseDown=!0},r.onMaskMouseUp=function(){r.dialogMouseDown&&(r.timeoutId=setTimeout((function(){r.dialogMouseDown=!1}),0))},r.onMaskClick=function(e){Date.now()-r.openTime<300||e.target!==e.currentTarget||r.dialogMouseDown||r.close(e)},r.onKeyDown=function(e){var t=r.props;if(t.keyboard&&e.keyCode===p.a.ESC)return e.stopPropagation(),void r.close(e);if(t.visible&&e.keyCode===p.a.TAB){var n=document.activeElement,a=r.sentinelStart;e.shiftKey?n===a&&r.sentinelEnd.focus():n===r.sentinelEnd&&a.focus()}},r.getDialogElement=function(){var e=r.props,t=e.closable,n=e.prefixCls,o={};void 0!==e.width&&(o.width=e.width),void 0!==e.height&&(o.height=e.height);var i=void 0;e.footer&&(i=c.createElement("div",{className:n+"-footer",ref:r.saveRef("footer")},e.footer));var l=void 0;e.title&&(l=c.createElement("div",{className:n+"-header",ref:r.saveRef("header")},c.createElement("div",{className:n+"-title",id:r.titleId},e.title)));var s=void 0;t&&(s=c.createElement("button",{type:"button",onClick:r.close,"aria-label":"Close",className:n+"-close"},e.closeIcon||c.createElement("span",{className:n+"-close-x"})));var u=a()({},e.style,o),d={width:0,height:0,overflow:"hidden",outline:"none"},f=r.getTransitionName(),h=c.createElement(y,{key:"dialog-element",role:"document",ref:r.saveRef("dialog"),style:u,className:n+" "+(e.className||""),visible:e.visible,forceRender:e.forceRender,onMouseDown:r.onDialogMouseDown},c.createElement("div",{tabIndex:0,ref:r.saveRef("sentinelStart"),style:d,"aria-hidden":"true"}),c.createElement("div",{className:n+"-content"},s,l,c.createElement("div",a()({className:n+"-body",style:e.bodyStyle,ref:r.saveRef("body")},e.bodyProps),e.children),i),c.createElement("div",{tabIndex:0,ref:r.saveRef("sentinelEnd"),style:d,"aria-hidden":"true"}));return c.createElement(v.a,{key:"dialog",showProp:"visible",onLeave:r.onAnimateLeave,transitionName:f,component:"",transitionAppear:!0},e.visible||!e.destroyOnClose?h:null)},r.getZIndexStyle=function(){var e={},t=r.props;return void 0!==t.zIndex&&(e.zIndex=t.zIndex),e},r.getWrapStyle=function(){return a()({},r.getZIndexStyle(),r.props.wrapStyle)},r.getMaskStyle=function(){return a()({},r.getZIndexStyle(),r.props.maskStyle)},r.getMaskElement=function(){var e=r.props,t=void 0;if(e.mask){var n=r.getMaskTransitionName();t=c.createElement(y,a()({style:r.getMaskStyle(),key:"mask",className:e.prefixCls+"-mask",hiddenClassName:e.prefixCls+"-mask-hidden",visible:e.visible},e.maskProps)),n&&(t=c.createElement(v.a,{key:"mask",showProp:"visible",transitionAppear:!0,component:"",transitionName:n},t))}return t},r.getMaskTransitionName=function(){var e=r.props,t=e.maskTransitionName,n=e.maskAnimation;return!t&&n&&(t=e.prefixCls+"-"+n),t},r.getTransitionName=function(){var e=r.props,t=e.transitionName,n=e.animation;return!t&&n&&(t=e.prefixCls+"-"+n),t},r.close=function(e){var t=r.props.onClose;t&&t(e)},r.saveRef=function(e){return function(t){r[e]=t}},r.titleId="rcDialogTitle"+M++,r.switchScrollingEffect=n.switchScrollingEffect||function(){},r}return f()(t,e),t.prototype.componentDidMount=function(){this.componentDidUpdate({}),(this.props.forceRender||!1===this.props.getContainer&&!this.props.visible)&&this.wrap&&(this.wrap.style.display="none")},t.prototype.componentDidUpdate=function(e){var t,n,r,a,c,o=this.props,i=o.visible,l=o.mask,s=o.focusTriggerAfterClose,u=this.props.mousePosition;if(i){if(!e.visible){this.openTime=Date.now(),this.switchScrollingEffect(),this.tryFocus();var d=h.findDOMNode(this.dialog);if(u){var f=(n=(t=d).getBoundingClientRect(),r={left:n.left,top:n.top},a=t.ownerDocument,c=a.defaultView||a.parentWindow,r.left+=b(c),r.top+=b(c,!0),r);g(d,u.x-f.left+"px "+(u.y-f.top)+"px")}else g(d,"")}}else if(e.visible&&(this.inTransition=!0,l&&this.lastOutSideFocusNode&&s)){try{this.lastOutSideFocusNode.focus()}catch(e){this.lastOutSideFocusNode=null}this.lastOutSideFocusNode=null}},t.prototype.componentWillUnmount=function(){var e=this.props,t=e.visible,n=e.getOpenCount;!t&&!this.inTransition||n()||this.switchScrollingEffect(),clearTimeout(this.timeoutId)},t.prototype.tryFocus=function(){(function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1})(this.wrap,document.activeElement)||(this.lastOutSideFocusNode=document.activeElement,this.sentinelStart.focus())},t.prototype.render=function(){var e=this.props,t=e.prefixCls,n=e.maskClosable,r=this.getWrapStyle();return e.visible&&(r.display=null),c.createElement("div",{className:t+"-root"},this.getMaskElement(),c.createElement("div",a()({tabIndex:-1,onKeyDown:this.onKeyDown,className:t+"-wrap "+(e.wrapClassName||""),ref:this.saveRef("wrap"),onClick:n?this.onMaskClick:null,onMouseUp:n?this.onMaskMouseUp:null,role:"dialog","aria-labelledby":e.title?this.titleId:null,style:r},e.wrapProps),this.getDialogElement()))},t}(c.Component),z=L;L.defaultProps={className:"",mask:!0,visible:!1,keyboard:!0,closable:!0,maskClosable:!0,destroyOnClose:!1,prefixCls:"rc-dialog",focusTriggerAfterClose:!0};var w=n(1),k=n.n(w),H=n(18);function T(e){return(T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function D(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=C(e);if(t){var a=C(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return x(this,n)}}function x(e,t){return!t||"object"!==T(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var j=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(c,e);var t,n,r,a=D(c);function c(){var e;Y(this,c);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=a.call.apply(a,[this].concat(n))).removeContainer=function(){e.container&&(m.a.unmountComponentAtNode(e.container),e.container.parentNode.removeChild(e.container),e.container=null)},e.renderComponent=function(t,n){var r=e.props,a=r.visible,c=r.getComponent,o=r.forceRender,i=r.getContainer,l=r.parent;(a||l._component||o)&&(e.container||(e.container=i()),m.a.unstable_renderSubtreeIntoContainer(l,c(t),e.container,(function(){n&&n.call(this)})))},e}return t=c,(n=[{key:"componentDidMount",value:function(){this.props.autoMount&&this.renderComponent()}},{key:"componentDidUpdate",value:function(){this.props.autoMount&&this.renderComponent()}},{key:"componentWillUnmount",value:function(){this.props.autoDestroy&&this.removeContainer()}},{key:"render",value:function(){return this.props.children({renderComponent:this.renderComponent,removeContainer:this.removeContainer})}}])&&S(t.prototype,n),r&&S(t,r),c}(o.a.Component);function E(e){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function V(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function A(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=W(e);if(t){var a=W(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return F(this,n)}}function F(e,t){return!t||"object"!==E(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function W(e){return(W=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}j.propTypes={autoMount:k.a.bool,autoDestroy:k.a.bool,visible:k.a.bool,forceRender:k.a.bool,parent:k.a.any,getComponent:k.a.func.isRequired,getContainer:k.a.func.isRequired,children:k.a.func.isRequired},j.defaultProps={autoMount:!0,autoDestroy:!0,forceRender:!1};var R,I=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(c,e);var t,n,r,a=A(c);function c(){return V(this,c),a.apply(this,arguments)}return t=c,(n=[{key:"componentDidMount",value:function(){this.createContainer()}},{key:"componentDidUpdate",value:function(e){var t=this.props.didUpdate;t&&t(e)}},{key:"componentWillUnmount",value:function(){this.removeContainer()}},{key:"createContainer",value:function(){this._container=this.props.getContainer(),this.forceUpdate()}},{key:"removeContainer",value:function(){this._container&&this._container.parentNode.removeChild(this._container)}},{key:"render",value:function(){return this._container?m.a.createPortal(this.props.children,this._container):null}}])&&P(t.prototype,n),r&&P(t,r),c}(o.a.Component);I.propTypes={getContainer:k.a.func.isRequired,children:k.a.node.isRequired,didUpdate:k.a.func};var U=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.element,r=void 0===n?document.body:n,a={},c=Object.keys(e);return c.forEach((function(e){a[e]=r.style[e]})),c.forEach((function(t){r.style[t]=e[t]})),a};var B={},q=function(e){if(document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth||e){var t=new RegExp("".concat("ant-scrolling-effect"),"g"),n=document.body.className;if(e){if(!t.test(n))return;return U(B),B={},void(document.body.className=n.replace(t,"").trim())}var r=function(e){if("undefined"==typeof document)return 0;if(e||void 0===R){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),r=n.style;r.position="absolute",r.top=0,r.left=0,r.pointerEvents="none",r.visibility="hidden",r.width="200px",r.height="150px",r.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var a=t.offsetWidth;n.style.overflow="scroll";var c=t.offsetWidth;a===c&&(c=n.clientWidth),document.body.removeChild(n),R=a-c}return R}();if(r&&(B=U({position:"relative",width:"calc(100% - ".concat(r,"px)")}),!t.test(n))){var a="".concat(n," ").concat("ant-scrolling-effect");document.body.className=a.trim()}}};function K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function J(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(e){return($="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Q(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Z(e,t){return(Z=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function X(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ne(e);if(t){var a=ne(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return ee(this,n)}}function ee(e,t){return!t||"object"!==$(t)&&"function"!=typeof t?te(e):t}function te(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var re=0,ae=!("undefined"!=typeof window&&window.document&&window.document.createElement),ce="createPortal"in m.a,oe={},ie=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Z(e,t)}(c,e);var t,n,r,a=X(c);function c(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),(t=a.call(this,e)).getParent=function(){var e=t.props.getContainer;if(e){if("string"==typeof e)return document.querySelectorAll(e)[0];if("function"==typeof e)return e();if("object"===$(e)&&e instanceof window.HTMLElement)return e}return document.body},t.getContainer=function(){if(ae)return null;if(!t.container){t.container=document.createElement("div");var e=t.getParent();e&&e.appendChild(t.container)}return t.setWrapperClassName(),t.container},t.setWrapperClassName=function(){var e=t.props.wrapperClassName;t.container&&e&&e!==t.container.className&&(t.container.className=e)},t.savePortal=function(e){t._component=e},t.removeCurrentContainer=function(e){t.container=null,t._component=null,ce||(e?t.renderComponent({afterClose:t.removeContainer,onClose:function(){},visible:!1}):t.removeContainer())},t.switchScrollingEffect=function(){1!==re||Object.keys(oe).length?re||(U(oe),oe={},q(!0)):(q(),oe=U({overflow:"hidden",overflowX:"hidden",overflowY:"hidden"}))};var n=e.visible;return re=n?re+1:re,t.state={_self:te(t)},t}return t=c,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t._self,a=e.visible,c=e.getContainer;if(n){var o=n.visible,i=n.getContainer;a!==o&&(re=a&&!o?re+1:re-1),("function"==typeof c&&"function"==typeof i?c.toString()!==i.toString():c!==i)&&r.removeCurrentContainer(!1)}return{prevProps:e}}}],(n=[{key:"componentDidUpdate",value:function(){this.setWrapperClassName()}},{key:"componentWillUnmount",value:function(){var e=this.props.visible;re=e&&re?re-1:re,this.removeCurrentContainer(e)}},{key:"render",value:function(){var e=this,t=this.props,n=t.children,r=t.forceRender,a=t.visible,c=null,i={getOpenCount:function(){return re},getContainer:this.getContainer,switchScrollingEffect:this.switchScrollingEffect};return ce?((r||a||this._component)&&(c=o.a.createElement(I,{getContainer:this.getContainer,ref:this.savePortal},n(i))),c):o.a.createElement(j,{parent:this,visible:a,autoDestroy:!1,getComponent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return n(J(J(J({},t),i),{},{ref:e.savePortal}))},getContainer:this.getContainer,forceRender:r},(function(t){var n=t.renderComponent,r=t.removeContainer;return e.renderComponent=n,e.removeContainer=r,null}))}}])&&Q(t.prototype,n),r&&Q(t,r),c}(o.a.Component);ie.propTypes={wrapperClassName:k.a.string,forceRender:k.a.bool,getContainer:k.a.any,children:k.a.func,visible:k.a.bool};var le=Object(H.polyfill)(ie);t.default=function(e){var t=e.visible,n=e.getContainer,r=e.forceRender;return!1===n?c.createElement(z,a()({},e,{getOpenCount:function(){return 2}})):c.createElement(le,{visible:t,forceRender:r,getContainer:n},(function(t){return c.createElement(z,a()({},e,t))}))}},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),c=n(11),o=n.n(c),i=n(13),l=n.n(i),s=(n(54),n(52)),u=n(240),d=n.n(u),f=n(70),h=n.n(f),m=n(5),p=n(241),v=n.n(p),_=n(242),y=n.n(_),M=n(243),b=n.n(M),g=n(71),L=n.n(g),z=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:300;y()(this,e),this.timeoutInSeconds=t}var t;return b()(e,[{key:"get",value:function(e){return this.request(e,"GET")}},{key:"post",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.request(e,"POST",t)}},{key:"download",value:(t=v()(L.a.mark((function e(t){var n=this;return L.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",fetch(t,this.generateArgs("GET")).then((function(e){return e.ok?e.blob():n.buildError(e)})));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"request",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.generateArgs(t,n);return this.handleRequest(icl_vars.restUrl+e,r)}},{key:"handleRequest",value:function(e,t){var n=this;return this.fetchWithTimeout(e,t,this.timeoutInSeconds).then((function(e){return e.ok?e.json():n.buildError(e)}))}},{key:"fetchWithTimeout",value:function(e,t,n){return new Promise((function(r,a){var c=setTimeout((function(){return a(new Error("Request timed out"))}),1e3*n);fetch(e,t).then((function(e){return r(e)}),(function(e){return a(e)})).finally((function(){return clearTimeout(c)}))}))}},{key:"generateArgs",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n={method:e.toUpperCase(),headers:{Accept:"application/json","Content-Type":"application/json","X-WP-Nonce":icl_vars.restNonce},credentials:"same-origin"};return"GET"!==n.method&&t&&(n.body="string"==typeof t?t:JSON.stringify(t)),n}},{key:"buildError",value:function(e){return e.json().then((function(t){var n=new Error(t.message||e.statusText);return Promise.reject(Object.assign(n,{response:e}))}))}}]),e}(),w=n(245),k=n.n(w),H=(n(320),n(244)),T=n.n(H),Y=(n(321),n(33)),S=n.n(Y),O=n(15),D=n.n(O),x="/builds/wpml/wpml-string-translation/src/js/mo-scan/App.js",C=function(e){var t=e.fileCount,n=e.title,c=e.info,o=e.buttonText,i=e.scanProgress,s=e.rest,u=e.onHide,f=e.onError,m=e.buttonExtra,p=e.enable,v=void 0===p||p,_=Object(r.useState)(!1),y=l()(_,2),M=y[0],b=y[1],g=Object(r.useState)(!1),L=l()(g,2),w=L[0],k=L[1],H=Object(r.useState)(!0),T=l()(H,2),Y=T[0],O=T[1],C=Object(r.useState)(0),P=l()(C,2),A=P[0],F=P[1],W=Object(r.useCallback)(d()(h.a.mark((function e(){var n;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return b(!0),e.prev=1,e.next=4,new z(30).post(s.endpoint,s.data);case 4:n=e.sent,e.next=10;break;case 7:e.prev=7,e.t0=e.catch(1),n={error:"system"};case 10:if(!n.error){e.next=14;break}return b(!1),f(n.error),e.abrupt("return");case 14:F(t-n.remaining),0===n.remaining?(k(!0),setTimeout((function(){O(!1),u&&u()}),2e3)):W();case 16:case"end":return e.stop()}}),e,null,[[1,7]])}))));return Y&&a.a.createElement(S.a,{__self:void 0,__source:{fileName:x,lineNumber:48,columnNumber:4}},a.a.createElement(j,{title:n,__self:void 0,__source:{fileName:x,lineNumber:50,columnNumber:5}}),a.a.createElement(E,{info:c,__self:void 0,__source:{fileName:x,lineNumber:51,columnNumber:5}}),(M||w)&&a.a.createElement(N,{progressText:i,count:A,total:t,__self:void 0,__source:{fileName:x,lineNumber:54,columnNumber:5}}),a.a.createElement(D.a,{span:24,className:"button-row",__self:void 0,__source:{fileName:x,lineNumber:56,columnNumber:5}},m,a.a.createElement(V,{text:o,disabled:M||!v,onClick:W,__self:void 0,__source:{fileName:x,lineNumber:58,columnNumber:6}})))},j=function(e){var t=e.title;return t?a.a.createElement(D.a,{span:24,__self:void 0,__source:{fileName:x,lineNumber:65,columnNumber:10}},t):""},E=function(e){var t=e.info;return a.a.createElement(D.a,{span:24,__self:void 0,__source:{fileName:x,lineNumber:69,columnNumber:2}},t)},V=function(e){var t=e.text,n=e.disabled,r=e.onClick;return a.a.createElement("button",{className:"button button-primary js-action",disabled:n,onClick:r,__self:void 0,__source:{fileName:x,lineNumber:73,columnNumber:2}},t)},P=function(e){var t=e.message;return a.a.createElement("div",{className:"message",__self:void 0,__source:{fileName:x,lineNumber:80,columnNumber:2}},t)},N=function(e){var t=e.progressText,n=e.count,r=e.total,c=n/r*100;return a.a.createElement(a.a.Fragment,{__self:void 0,__source:{fileName:x,lineNumber:90,columnNumber:3}},a.a.createElement(D.a,{span:24,align:"center",__self:void 0,__source:{fileName:x,lineNumber:91,columnNumber:4}},a.a.createElement(P,{message:Object(m.b)(t,n,r),__self:void 0,__source:{fileName:x,lineNumber:92,columnNumber:5}})),a.a.createElement(D.a,{span:24,align:"center",__self:void 0,__source:{fileName:x,lineNumber:94,columnNumber:4}},n!==r&&a.a.createElement(T.a,{size:"large",__self:void 0,__source:{fileName:x,lineNumber:95,columnNumber:25}})),a.a.createElement(D.a,{span:24,style:{marginBottom:"10px"},__self:void 0,__source:{fileName:x,lineNumber:97,columnNumber:4}},a.a.createElement(k.a,{percent:c,showInfo:!1,__self:void 0,__source:{fileName:x,lineNumber:98,columnNumber:5}})))},A=n(14),F="/builds/wpml/wpml-string-translation/src/js/mo-scan/STPageUI.js",W=function(e){var t=e.filesToScan,n=Object(r.useState)(t.count>0),c=l()(n,2),o=c[0],i=c[1],u=Object(r.useState)({plugins:[],themes:[],other:[]}),d=l()(u,2),f=d[0],h=d[1];return o&&a.a.createElement(C,{fileCount:t.count,info:a.a.createElement(a.a.Fragment,{__self:void 0,__source:{fileName:F,lineNumber:17,columnNumber:5}},a.a.createElement("p",{__self:void 0,__source:{fileName:F,lineNumber:18,columnNumber:6}},A.moScanCardContent),a.a.createElement(s.ItemsToScanList,{filesToScan:t,onSelected:function(e){return h(e)},__self:void 0,__source:{fileName:F,lineNumber:19,columnNumber:6}})),buttonText:A.moScanCardButtonText,scanProgress:A.moScanCardProgressText,rest:{endpoint:"/wpml/st/v1/import_mo_strings",data:f},onHide:function(){i(!1),location.reload()},enable:f.plugins.length>0||f.themes.length>0||f.other.length>0,__self:void 0,__source:{fileName:F,lineNumber:14,columnNumber:11}})},R=n(36),I=n.n(R),U=n(73),B=n.n(U),q=(n(349),n(350),"/builds/wpml/wpml-string-translation/src/js/mo-scan/StringTranslationPanel.js"),K=I.a.Panel,J=function(e){var t=e.moScanElement,n=e.adminTextsUrl,r=t&&a.a.createElement(D.a,{md:8,sm:24,__self:void 0,__source:{fileName:q,lineNumber:14,columnNumber:40}},a.a.createElement(B.a,{type:"inner",title:A.moScanCardHeader,__self:void 0,__source:{fileName:q,lineNumber:15,columnNumber:3}},t)),c=a.a.createElement(D.a,{md:8,sm:24,__self:void 0,__source:{fileName:q,lineNumber:20,columnNumber:26}},a.a.createElement(B.a,{type:"inner",title:A.adminStringsCardHeader,__self:void 0,__source:{fileName:q,lineNumber:21,columnNumber:3}},a.a.createElement("p",{__self:void 0,__source:{fileName:q,lineNumber:22,columnNumber:4}},A.adminStringsCardContent),a.a.createElement("a",{className:"button button-primary",href:n,__self:void 0,__source:{fileName:q,lineNumber:23,columnNumber:4}},A.adminStringsCardButtonText)));return a.a.createElement(I.a,{accordion:!0,__self:void 0,__source:{fileName:q,lineNumber:29,columnNumber:3}},a.a.createElement(K,{header:A.stringTranslationPanelHeader,__self:void 0,__source:{fileName:q,lineNumber:30,columnNumber:4}},a.a.createElement(S.a,{style:{marginBottom:8},__self:void 0,__source:{fileName:q,lineNumber:31,columnNumber:5}},a.a.createElement(D.a,{span:24,__self:void 0,__source:{fileName:q,lineNumber:32,columnNumber:6}},a.a.createElement("p",{__self:void 0,__source:{fileName:q,lineNumber:33,columnNumber:7}},A.stringTranslationPanelContent))),a.a.createElement(S.a,{gutter:16,__self:void 0,__source:{fileName:q,lineNumber:36,columnNumber:5}},r,c)))},G="/builds/wpml/wpml-string-translation/src/js/mo-scan/LocalizationPageUI.js",$=I.a.Panel,Q=function(e){var t=e.filesToScan,n=Object(r.useState)(t.count>0),c=l()(n,2),o=c[0],i=c[1],u=Object(r.useState)({plugins:[],themes:[],other:[]}),d=l()(u,2),f=d[0],h=d[1];return o&&a.a.createElement(I.a,{accordian:!0,__self:void 0,__source:{fileName:G,lineNumber:18,columnNumber:11}},a.a.createElement($,{header:Object(m.a)("WPML has detected changed or new MO files","wpml-string-translation"),__self:void 0,__source:{fileName:G,lineNumber:19,columnNumber:4}},a.a.createElement(C,{fileCount:t.count,info:a.a.createElement(a.a.Fragment,{__self:void 0,__source:{fileName:G,lineNumber:25,columnNumber:7}},a.a.createElement("p",{__self:void 0,__source:{fileName:G,lineNumber:26,columnNumber:8}},Object(m.a)("There are new or updated .mo files. WPML needs to scan them to find strings for translation.","wpml-string-translation")),a.a.createElement(s.ItemsToScanList,{filesToScan:t,onSelected:function(e){return h(e)},__self:void 0,__source:{fileName:G,lineNumber:27,columnNumber:8}})),buttonText:Object(m.a)("Scan translation files","wpml-string-translation"),scanProgress:Object(m.a)("Scanned %1$d of %2$d files...","wpml-string-translation"),rest:{endpoint:"/wpml/st/v1/import_mo_strings",data:f},onHide:function(){return i(!1)},enable:f.plugins.length>0||f.themes.length>0||f.other.length>0,__self:void 0,__source:{fileName:G,lineNumber:22,columnNumber:5}})))},Z=n(248),X=n.n(Z),ee=(n(378),"/builds/wpml/wpml-string-translation/src/js/mo-scan/pre-generate/UI.js"),te=function(e){var t=e.fileCount,n=e.filePath,c=e.isSTPage,o=e.runForAllSites,i=void 0!==o&&o,s=e.settings,u=e.texts,d=Object(r.useState)(!0),f=l()(d,2),h=f[0],p=f[1],v=Object(r.useState)(!1),_=l()(v,2),y=_[0],M=_[1],b=Object(r.useState)(!1),g=l()(b,2),L=g[0],z=g[1],w=Object(r.useCallback)((function(){z(!0)})),k=Object(r.useCallback)((function(){p(!1),s.set("MO","pregen-dismissed",!0)})),H=function(){return L?"dismissing":y||""},T=i?Object(m.a)("Generated files for %1$d of %2$d sites...","wpml-string-translation"):Object(m.a)("Generated %1$d of %2$d files...","wpml-string-translation");return t&&a.a.createElement(X.a,{visible:h,title:Object(m.a)("WPML needs to generate .mo files","wpml-string-translation"),footer:null,closable:!c&&!L,onCancel:w,maskClosable:!1,keyboard:!1,__self:void 0,__source:{fileName:ee,lineNumber:44,columnNumber:22}},a.a.createElement(C,{fileCount:t,info:u.getInfo(H(),n),buttonText:u.getButtonText(H()),buttonExtra:function(){if(L||"system"===y)return a.a.createElement("button",{className:"button-secondary",onClick:k,style:{marginRight:8},__self:void 0,__source:{fileName:ee,lineNumber:37,columnNumber:48}},u.getDismissButtonText())}(),scanProgress:T,rest:{endpoint:"/wpml/st/v1/pre_generate_mo_files",data:{runForAllSites:i}},onHide:function(){return p(!1)},onError:function(e){M(e),z(!1)},__self:void 0,__source:{fileName:ee,lineNumber:53,columnNumber:3}}))},ne=n(249),re=n.n(ne),ae=n(250),ce=n.n(ae),oe="/builds/wpml/wpml-string-translation/src/js/mo-scan/pre-generate/textProvider.js",ie=function(){function e(){re()(this,e)}return ce()(e,[{key:"getInfo",value:function(e,t){switch(e){case"no access":return r.createElement(r.Fragment,{__self:this,__source:{fileName:oe,lineNumber:8,columnNumber:24}},r.createElement("p",{__self:this,__source:{fileName:oe,lineNumber:9,columnNumber:21}},Object(m.a)("WPML String Translation uses .mo files instead of database calls. WPML needs to generate these .mo files in order for translations to appear on the front-end. However, the folder that should hold these .mo files is not open for writing.","wpml-string-translation")),r.createElement("p",{__self:this,__source:{fileName:oe,lineNumber:12,columnNumber:21}},Object(m.a)("Please use your admin control panel or an FTP program to make the following folder writeable:","wpml-string-translation")),r.createElement("p",{__self:this,__source:{fileName:oe,lineNumber:15,columnNumber:21}},t));case"system":return r.createElement(r.Fragment,{__self:this,__source:{fileName:oe,lineNumber:21,columnNumber:24}},r.createElement("h3",{__self:this,__source:{fileName:oe,lineNumber:22,columnNumber:21}},Object(m.a)("There was a problem creating the .mo files","wpml-string-translation")),r.createElement("p",{__self:this,__source:{fileName:oe,lineNumber:25,columnNumber:21}},Object(m.a)("You can try again now or try again later by going to ","wpml-string-translation"),r.createElement("strong",{__self:this,__source:{fileName:oe,lineNumber:27,columnNumber:25}},Object(m.a)("WPML->Theme and plugins localization.","wpml-string-translation"))));case"dismissing":return r.createElement(r.Fragment,{__self:this,__source:{fileName:oe,lineNumber:32,columnNumber:24}},r.createElement("h3",{__self:this,__source:{fileName:oe,lineNumber:33,columnNumber:21}},Object(m.a)("Translations are missing from the front-end until you generate .mo files","wpml-string-translation")),r.createElement("p",{__self:this,__source:{fileName:oe,lineNumber:36,columnNumber:21}},Object(m.a)("Your site doesn't have the .mo files that WPML needs in order to display translated strings on the front-end. To generate these .mo files, remember to go to ","wpml-string-translation"),r.createElement("strong",{__self:this,__source:{fileName:oe,lineNumber:38,columnNumber:25}},Object(m.a)("WPML->Theme and plugins localization.","wpml-string-translation"))));default:return r.createElement("p",{__self:this,__source:{fileName:oe,lineNumber:43,columnNumber:24}},Object(m.a)("WPML String Translation uses .mo files instead of database calls. WPML needs to generate these .mo files in order for translations to appear on the front-end.","wpml-string-translation"))}}},{key:"getButtonText",value:function(e){switch(e){case"no access":case"system":return Object(m.a)("Try again","wpml-string-translation");default:return Object(m.a)("Generate .mo files","wpml-string-translation")}}},{key:"getDismissButtonText",value:function(){return Object(m.a)("Close this message","wpml-string-translation")}}]),e}(),le=n(251),se=n.n(le),ue="/builds/wpml/wpml-string-translation/src/js/mo-scan/main.js";document.addEventListener("DOMContentLoaded",(function(){var e=document.getElementById("wpml-mo-scan-st-page"),t=wpml_mo_scan_ui_files.domains_to_pre_generate_count>0&&a.a.createElement(te,{fileCount:wpml_mo_scan_ui_files.domains_to_pre_generate_count,filePath:wpml_mo_scan_ui_files.file_path,isSTPage:wpml_mo_scan_ui_files.is_st_page,settings:new se.a(new z),runForAllSites:wpml_mo_scan_ui_files.run_ror_all_sites,texts:new ie,__self:void 0,__source:{fileName:ue,lineNumber:15,columnNumber:81}}),n=wpml_mo_scan_ui_files.files_to_scan.count>0&&a.a.createElement(W,{filesToScan:wpml_mo_scan_ui_files.files_to_scan,__self:void 0,__source:{fileName:ue,lineNumber:24,columnNumber:73}}),r=wpml_mo_scan_ui_files.is_search&&a.a.createElement(J,{adminTextsUrl:wpml_mo_scan_ui_files.admin_texts_url,moScanElement:n,__self:void 0,__source:{fileName:ue,lineNumber:27,columnNumber:75}});e&&o.a.render(a.a.createElement(a.a.Fragment,{__self:void 0,__source:{fileName:ue,lineNumber:34,columnNumber:4}},r,t),e);var c=document.getElementById("wpml-mo-scan-localization-page");c&&o.a.render(a.a.createElement(a.a.Fragment,{__self:void 0,__source:{fileName:ue,lineNumber:48,columnNumber:4}},a.a.createElement(Q,{filesToScan:wpml_mo_scan_ui_files.files_to_scan,__self:void 0,__source:{fileName:ue,lineNumber:49,columnNumber:5}}),t),c)}))},function(e,t,n){"use strict";n.r(t),n.d(t,"TabPane",(function(){return R})),n.d(t,"TabContent",(function(){return J}));var r=n(4),a=n.n(r),c=n(6),o=n.n(c),i=n(16),l=n.n(i),s=n(7),u=n.n(s),d=n(10),f=n.n(d),h=n(8),m=n.n(h),p=n(9),v=n.n(p),_=n(0),y=n.n(_),M=n(1),b=n.n(M),g=n(3),L=n.n(g),z=n(34),w=n.n(z),k=n(18),H=37,T=38,Y=39,S=40;function O(e){var t=[];return y.a.Children.forEach(e,(function(e){e&&t.push(e)})),t}function D(e){return"left"===e||"right"===e}function x(e){return Object.keys(e).reduce((function(t,n){return"aria-"!==n.substr(0,5)&&"data-"!==n.substr(0,5)&&"role"!==n||(t[n]=e[n]),t}),{})}var C=n(41),j=n(51),E=n.n(j)()({}),V=E.Provider,P=E.Consumer,N={width:0,height:0,overflow:"hidden",position:"absolute"},A=function(e){function t(){var e,n,r,a;u()(this,t);for(var c=arguments.length,o=Array(c),i=0;i<c;i++)o[i]=arguments[i];return n=r=m()(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(o))),r.onKeyDown=function(e){var t=e.target,n=e.which,a=e.shiftKey,c=r.props,o=c.nextElement,i=c.prevElement;n===C.a.TAB&&document.activeElement===t&&(!a&&o&&o.focus(),a&&i&&i.focus())},a=n,m()(r,a)}return v()(t,e),f()(t,[{key:"render",value:function(){var e=this.props.setRef;return y.a.createElement("div",{tabIndex:0,ref:e,style:N,onKeyDown:this.onKeyDown,role:"presentation"})}}]),t}(y.a.Component);A.propTypes={setRef:b.a.func,prevElement:b.a.object,nextElement:b.a.object};var F=A,W=function(e){function t(){return u()(this,t),m()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return v()(t,e),f()(t,[{key:"render",value:function(){var e,t=this.props,n=t.id,r=t.className,c=t.destroyInactiveTabPane,i=t.active,s=t.forceRender,u=t.rootPrefixCls,d=t.style,f=t.children,h=t.placeholder,m=l()(t,["id","className","destroyInactiveTabPane","active","forceRender","rootPrefixCls","style","children","placeholder"]);this._isActived=this._isActived||i;var p=u+"-tabpane",v=L()((e={},o()(e,p,1),o()(e,p+"-inactive",!i),o()(e,p+"-active",i),o()(e,r,r),e)),_=(c?i:this._isActived)||s;return y.a.createElement(P,null,(function(e){var t=e.sentinelStart,r=e.sentinelEnd,c=e.setPanelSentinelStart,o=e.setPanelSentinelEnd,l=void 0,s=void 0;return i&&_&&(l=y.a.createElement(F,{setRef:c,prevElement:t}),s=y.a.createElement(F,{setRef:o,nextElement:r})),y.a.createElement("div",a()({style:d,role:"tabpanel","aria-hidden":i?"false":"true",className:v,id:n},x(m)),l,_?f:h,s)}))}}]),t}(y.a.Component),R=W;function I(e){var t=void 0;return y.a.Children.forEach(e.children,(function(e){!e||t||e.props.disabled||(t=e.key)})),t}W.propTypes={className:b.a.string,active:b.a.bool,style:b.a.any,destroyInactiveTabPane:b.a.bool,forceRender:b.a.bool,placeholder:b.a.node,rootPrefixCls:b.a.string,children:b.a.node,id:b.a.string},W.defaultProps={placeholder:null};var U=function(e){function t(e){u()(this,t);var n=m()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));B.call(n);var r=void 0;return r="activeKey"in e?e.activeKey:"defaultActiveKey"in e?e.defaultActiveKey:I(e),n.state={activeKey:r},n}return v()(t,e),f()(t,[{key:"componentWillUnmount",value:function(){this.destroy=!0,w.a.cancel(this.sentinelId)}},{key:"updateSentinelContext",value:function(){var e=this;this.destroy||(w.a.cancel(this.sentinelId),this.sentinelId=w()((function(){e.destroy||e.forceUpdate()})))}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,r=t.navWrapper,c=t.tabBarPosition,i=t.className,s=t.renderTabContent,u=t.renderTabBar,d=t.destroyInactiveTabPane,f=t.direction,h=l()(t,["prefixCls","navWrapper","tabBarPosition","className","renderTabContent","renderTabBar","destroyInactiveTabPane","direction"]),m=L()((e={},o()(e,n,1),o()(e,n+"-"+c,1),o()(e,i,!!i),o()(e,n+"-rtl","rtl"===f),e));this.tabBar=u();var p=y.a.cloneElement(this.tabBar,{prefixCls:n,navWrapper:r,key:"tabBar",onKeyDown:this.onNavKeyDown,tabBarPosition:c,onTabClick:this.onTabClick,panels:t.children,activeKey:this.state.activeKey,direction:this.props.direction}),v=y.a.cloneElement(s(),{prefixCls:n,tabBarPosition:c,activeKey:this.state.activeKey,destroyInactiveTabPane:d,children:t.children,onChange:this.setActiveKey,key:"tabContent",direction:this.props.direction}),_=y.a.createElement(F,{key:"sentinelStart",setRef:this.setSentinelStart,nextElement:this.panelSentinelStart}),M=y.a.createElement(F,{key:"sentinelEnd",setRef:this.setSentinelEnd,prevElement:this.panelSentinelEnd}),b=[];return"bottom"===c?b.push(_,v,M,p):b.push(p,_,v,M),y.a.createElement(V,{value:{sentinelStart:this.sentinelStart,sentinelEnd:this.sentinelEnd,setPanelSentinelStart:this.setPanelSentinelStart,setPanelSentinelEnd:this.setPanelSentinelEnd}},y.a.createElement("div",a()({className:m,style:t.style},x(h),{onScroll:this.onScroll}),b))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};return"activeKey"in e?n.activeKey=e.activeKey:function(e,t){return y.a.Children.map(e.children,(function(e){return e&&e.key})).indexOf(t)>=0}(e,t.activeKey)||(n.activeKey=I(e)),Object.keys(n).length>0?n:null}}]),t}(y.a.Component),B=function(){var e=this;this.onTabClick=function(t,n){e.tabBar.props.onTabClick&&e.tabBar.props.onTabClick(t,n),e.setActiveKey(t)},this.onNavKeyDown=function(t){var n=t.keyCode;if(n===Y||n===S){t.preventDefault();var r=e.getNextActiveKey(!0);e.onTabClick(r)}else if(n===H||n===T){t.preventDefault();var a=e.getNextActiveKey(!1);e.onTabClick(a)}},this.onScroll=function(e){var t=e.target;t===e.currentTarget&&t.scrollLeft>0&&(t.scrollLeft=0)},this.setSentinelStart=function(t){e.sentinelStart=t},this.setSentinelEnd=function(t){e.sentinelEnd=t},this.setPanelSentinelStart=function(t){t!==e.panelSentinelStart&&e.updateSentinelContext(),e.panelSentinelStart=t},this.setPanelSentinelEnd=function(t){t!==e.panelSentinelEnd&&e.updateSentinelContext(),e.panelSentinelEnd=t},this.setActiveKey=function(t){e.state.activeKey!==t&&("activeKey"in e.props||e.setState({activeKey:t}),e.props.onChange(t))},this.getNextActiveKey=function(t){var n=e.state.activeKey,r=[];y.a.Children.forEach(e.props.children,(function(e){e&&!e.props.disabled&&(t?r.push(e):r.unshift(e))}));var a=r.length,c=a&&r[0].key;return r.forEach((function(e,t){e.key===n&&(c=t===a-1?r[0].key:r[t+1].key)})),c}};U.propTypes={destroyInactiveTabPane:b.a.bool,renderTabBar:b.a.func.isRequired,renderTabContent:b.a.func.isRequired,navWrapper:b.a.func,onChange:b.a.func,children:b.a.node,prefixCls:b.a.string,className:b.a.string,tabBarPosition:b.a.string,style:b.a.object,activeKey:b.a.string,defaultActiveKey:b.a.string,direction:b.a.string},U.defaultProps={prefixCls:"rc-tabs",destroyInactiveTabPane:!1,onChange:function(){},navWrapper:function(e){return e},tabBarPosition:"top",children:null,style:{},direction:"ltr"},U.TabPane=R,Object(k.polyfill)(U);var q=U,K=function(e){function t(){return u()(this,t),m()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return v()(t,e),f()(t,[{key:"getTabPanes",value:function(){var e=this.props,t=e.activeKey,n=e.children,r=[];return y.a.Children.forEach(n,(function(n){if(n){var a=n.key,c=t===a;r.push(y.a.cloneElement(n,{active:c,destroyInactiveTabPane:e.destroyInactiveTabPane,rootPrefixCls:e.prefixCls}))}})),r}},{key:"render",value:function(){var e,t,n=this.props,r=n.prefixCls,c=n.children,i=n.activeKey,l=n.className,s=n.tabBarPosition,u=n.animated,d=n.animatedWithMargin,f=n.direction,h=n.style,m=L()((e={},o()(e,r+"-content",!0),o()(e,u?r+"-content-animated":r+"-content-no-animated",!0),e),l);if(u){var p=function(e,t){for(var n=O(e),r=0;r<n.length;r++)if(n[r].key===t)return r;return-1}(c,i);if(-1!==p){var v=d?function(e,t){var n=D(t)?"marginTop":"marginLeft";return o()({},n,100*-e+"%")}(p,s):{transform:t=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",r=D(t)?"translateY":"translateX";return D(t)||"rtl"!==n?r+"("+100*-e+"%) translateZ(0)":r+"("+100*e+"%) translateZ(0)"}(p,s,f),WebkitTransform:t,MozTransform:t};h=a()({},h,v)}else h=a()({},h,{display:"none"})}return y.a.createElement("div",{className:m,style:h},this.getTabPanes())}}]),t}(y.a.Component),J=K;K.propTypes={animated:b.a.bool,animatedWithMargin:b.a.bool,prefixCls:b.a.string,children:b.a.node,activeKey:b.a.string,style:b.a.any,tabBarPosition:b.a.string,className:b.a.string,destroyInactiveTabPane:b.a.bool,direction:b.a.string},K.defaultProps={animated:!0};t.default=q},function(e,t,n){"use strict";n.r(t),n.d(t,"Line",(function(){return S})),n.d(t,"Circle",(function(){return q}));var r=n(0),a=n.n(r);function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return(i="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=d(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(n):a.value}})(e,t,n||e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d(e);if(t){var a=d(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return u(this,n)}}function u(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var f=function(e){return function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(u,e);var t,n,r,a=s(u);function u(){return c(this,u),a.apply(this,arguments)}return t=u,(n=[{key:"componentDidUpdate",value:function(){var e=this,t=Date.now(),n=!1;Object.keys(this.paths).forEach((function(r){var a=e.paths[r];if(a){n=!0;var c=a.style;c.transitionDuration=".3s, .3s, .3s, .06s",e.prevTimeStamp&&t-e.prevTimeStamp<100&&(c.transitionDuration="0s, 0s")}})),n&&(this.prevTimeStamp=Date.now())}},{key:"render",value:function(){return i(d(u.prototype),"render",this).call(this)}}])&&o(t.prototype,n),r&&o(t,r),u}(e)},h=n(1),m=n.n(h),p={className:"",percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,style:{},trailColor:"#D9D9D9",trailWidth:1},v=m.a.oneOfType([m.a.number,m.a.string]),_={className:m.a.string,percent:m.a.oneOfType([v,m.a.arrayOf(v)]),prefixCls:m.a.string,strokeColor:m.a.oneOfType([m.a.string,m.a.arrayOf(m.a.oneOfType([m.a.string,m.a.object])),m.a.object]),strokeLinecap:m.a.oneOf(["butt","round","square"]),strokeWidth:v,style:m.a.object,trailColor:m.a.string,trailWidth:v};function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function M(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},c=Object.keys(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function L(e,t){return(L=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=H(e);if(t){var a=H(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return w(this,n)}}function w(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?k(e):t}function k(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function H(e){return(H=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&L(e,t)}(o,e);var t,n,r,c=z(o);function o(){var e;b(this,o);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return T(k(e=c.call.apply(c,[this].concat(n))),"paths",{}),e}return t=o,(n=[{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.percent,c=t.prefixCls,o=t.strokeColor,i=t.strokeLinecap,l=t.strokeWidth,s=t.style,u=t.trailColor,d=t.trailWidth,f=t.transition,h=M(t,["className","percent","prefixCls","strokeColor","strokeLinecap","strokeWidth","style","trailColor","trailWidth","transition"]);delete h.gapPosition;var m=Array.isArray(r)?r:[r],p=Array.isArray(o)?o:[o],v=l/2,_=100-l/2,b="M ".concat("round"===i?v:0,",").concat(v,"\n L ").concat("round"===i?_:100,",").concat(v),g="0 0 100 ".concat(l),L=0;return a.a.createElement("svg",y({className:"".concat(c,"-line ").concat(n),viewBox:g,preserveAspectRatio:"none",style:s},h),a.a.createElement("path",{className:"".concat(c,"-line-trail"),d:b,strokeLinecap:i,stroke:u,strokeWidth:d||l,fillOpacity:"0"}),m.map((function(t,n){var r={strokeDasharray:"".concat(t,"px, 100px"),strokeDashoffset:"-".concat(L,"px"),transition:f||"stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear"},o=p[n]||p[p.length-1];return L+=t,a.a.createElement("path",{key:n,className:"".concat(c,"-line-path"),d:b,strokeLinecap:i,stroke:o,strokeWidth:l,fillOpacity:"0",ref:function(t){e.paths[n]=t},style:r})})))}}])&&g(t.prototype,n),r&&g(t,r),o}(r.Component);Y.propTypes=_,Y.defaultProps=p;var S=f(Y);function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function D(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){F(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function x(){return(x=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function C(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},c=Object.keys(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function j(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function V(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=A(e);if(t){var a=A(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return P(this,n)}}function P(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?N(e):t}function N(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var W=0;function R(e){return+e.replace("%","")}function I(e){return Array.isArray(e)?e:[e]}function U(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,c=arguments.length>5?arguments[5]:void 0,o=50-r/2,i=0,l=-o,s=0,u=-2*o;switch(c){case"left":i=-o,l=0,s=2*o,u=0;break;case"right":i=o,l=0,s=-2*o,u=0;break;case"bottom":l=o,u=2*o}var d="M 50,50 m ".concat(i,",").concat(l,"\n a ").concat(o,",").concat(o," 0 1 1 ").concat(s,",").concat(-u,"\n a ").concat(o,",").concat(o," 0 1 1 ").concat(-s,",").concat(u),f=2*Math.PI*o,h={stroke:n,strokeDasharray:"".concat(t/100*(f-a),"px ").concat(f,"px"),strokeDashoffset:"-".concat(a/2+e/100*(f-a),"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s"};return{pathString:d,pathStyle:h}}var B=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(o,e);var t,n,r,c=V(o);function o(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),F(N(e=c.call(this)),"paths",{}),F(N(e),"gradientId",0),e.gradientId=W,W+=1,e}return t=o,(n=[{key:"getStokeList",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.percent,c=t.strokeColor,o=t.strokeWidth,i=t.strokeLinecap,l=t.gapDegree,s=t.gapPosition,u=I(r),d=I(c),f=0;return u.map((function(t,r){var c=d[r]||d[d.length-1],u="[object Object]"===Object.prototype.toString.call(c)?"url(#".concat(n,"-gradient-").concat(e.gradientId,")"):"",h=U(f,t,c,o,l,s),m=h.pathString,p=h.pathStyle;return f+=t,a.a.createElement("path",{key:r,className:"".concat(n,"-circle-path"),d:m,stroke:u,strokeLinecap:i,strokeWidth:o,opacity:0===t?0:1,fillOpacity:"0",style:p,ref:function(t){e.paths[r]=t}})}))}},{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.strokeWidth,r=e.trailWidth,c=e.gapDegree,o=e.gapPosition,i=e.trailColor,l=e.strokeLinecap,s=e.style,u=e.className,d=e.strokeColor,f=C(e,["prefixCls","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor"]),h=U(0,100,i,n,c,o),m=h.pathString,p=h.pathStyle;delete f.percent;var v=I(d).find((function(e){return"[object Object]"===Object.prototype.toString.call(e)}));return a.a.createElement("svg",x({className:"".concat(t,"-circle ").concat(u),viewBox:"0 0 100 100",style:s},f),v&&a.a.createElement("defs",null,a.a.createElement("linearGradient",{id:"".concat(t,"-gradient-").concat(this.gradientId),x1:"100%",y1:"0%",x2:"0%",y2:"0%"},Object.keys(v).sort((function(e,t){return R(e)-R(t)})).map((function(e,t){return a.a.createElement("stop",{key:t,offset:e,stopColor:v[e]})})))),a.a.createElement("path",{className:"".concat(t,"-circle-trail"),d:m,stroke:i,strokeLinecap:l,strokeWidth:r||n,fillOpacity:"0",style:p}),this.getStokeList().reverse())}}])&&j(t.prototype,n),r&&j(t,r),o}(r.Component);B.propTypes=D(D({},_),{},{gapPosition:m.a.oneOf(["top","bottom","left","right"])}),B.defaultProps=D(D({},p),{},{gapPosition:"top"});var q=f(B);t.default={Line:S,Circle:q}},function(e,t,n){"use strict";n.r(t);var r=n(16),a=n.n(r),c=n(4),o=n.n(c),i=n(7),l=n.n(i),s=n(8),u=n.n(s),d=n(9),f=n.n(d),h=n(0),m=n.n(h),p=n(1),v=n.n(p),_=n(3),y=n.n(_),M=n(18),b=function(e){function t(n){l()(this,t);var r=u()(this,e.call(this,n));r.handleChange=function(e){var t=r.props,n=t.disabled,a=t.onChange;n||("checked"in r.props||r.setState({checked:e.target.checked}),a&&a({target:o()({},r.props,{checked:e.target.checked}),stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()},nativeEvent:e.nativeEvent}))},r.saveInput=function(e){r.input=e};var a="checked"in n?n.checked:n.defaultChecked;return r.state={checked:a},r}return f()(t,e),t.getDerivedStateFromProps=function(e,t){return"checked"in e?o()({},t,{checked:e.checked}):null},t.prototype.focus=function(){this.input.focus()},t.prototype.blur=function(){this.input.blur()},t.prototype.render=function(){var e,t=this.props,n=t.prefixCls,r=t.className,c=t.style,i=t.name,l=t.id,s=t.type,u=t.disabled,d=t.readOnly,f=t.tabIndex,h=t.onClick,p=t.onFocus,v=t.onBlur,_=t.autoFocus,M=t.value,b=a()(t,["prefixCls","className","style","name","id","type","disabled","readOnly","tabIndex","onClick","onFocus","onBlur","autoFocus","value"]),g=Object.keys(b).reduce((function(e,t){return"aria-"!==t.substr(0,5)&&"data-"!==t.substr(0,5)&&"role"!==t||(e[t]=b[t]),e}),{}),L=this.state.checked,z=y()(n,r,((e={})[n+"-checked"]=L,e[n+"-disabled"]=u,e));return m.a.createElement("span",{className:z,style:c},m.a.createElement("input",o()({name:i,id:l,type:s,readOnly:d,disabled:u,tabIndex:f,className:n+"-input",checked:!!L,onClick:h,onFocus:p,onBlur:v,onChange:this.handleChange,autoFocus:_,ref:this.saveInput,value:M},g)),m.a.createElement("span",{className:n+"-inner"}))},t}(h.Component);b.propTypes={prefixCls:v.a.string,className:v.a.string,style:v.a.object,name:v.a.string,id:v.a.string,type:v.a.string,defaultChecked:v.a.oneOfType([v.a.number,v.a.bool]),checked:v.a.oneOfType([v.a.number,v.a.bool]),disabled:v.a.bool,onFocus:v.a.func,onBlur:v.a.func,onChange:v.a.func,onClick:v.a.func,tabIndex:v.a.oneOfType([v.a.string,v.a.number]),readOnly:v.a.bool,autoFocus:v.a.bool,value:v.a.any},b.defaultProps={prefixCls:"rc-checkbox",className:"",style:{},type:"checkbox",defaultChecked:!1,onFocus:function(){},onBlur:function(){},onChange:function(){}},Object(M.polyfill)(b);var g=b;t.default=g}]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbW9tZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL3NyYy9pMThuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbmZpZy1wcm92aWRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9tby1zY2FuL3RleHRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jb2wvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaWNvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQuZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NoYWxsb3dlcXVhbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtcmVhY3QvZXMvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3dhcm5pbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oaWRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvb21pdC5qcy9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvcm93L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYWYvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1hbmltYXRpb24vZXMvRXZlbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1hbmltYXRpb24vZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbGxhcHNlL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZmFpbHMuanMiLCJ3ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdGFicy9saWIvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvS2V5Q29kZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy9DaGlsZHJlblV0aWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1hbmltYXRlL2VzL3V0aWwvYW5pbWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy9BbmltYXRlQ2hpbGQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWFuaW1hdGUvZXMvQW5pbWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL191aWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtcGllLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUtcHJvdmlkZXIvTG9jYWxlUmVjZWl2ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3R5cGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2NyZWF0ZS1yZWFjdC1jb250ZXh0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbW8tc2Nhbi9JdGVtc1RvU2NhblVJLnRzeCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtdG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MtZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tb2RhbC9sb2NhbGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL3Byb2dyZXNzL3V0aWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NhcmQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NoZWNrYm94L0NoZWNrYm94LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kb20tY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19yZWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcGQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYWYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItZHouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIta3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbWEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItc2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItdG4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3kuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZHYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tYXUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tY2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tZ2IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tbnouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tc2cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtZG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtdXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2Z5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1kZXZhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1sYXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2d1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h5LWFtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2phLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2p2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2thLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2trLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ttLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xiLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21pLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21rLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLW15LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL210LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL215LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25iLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLWJlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL29jLWxuYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wYS1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC1ici5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9yby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ydS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zaS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci1jeXJsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90Zy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bC1waC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHpsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0tbGF0bi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91Zy1jbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3ZpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3gtcHNldWRvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3lvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWNuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWhrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLW1vLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLXR3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUvZGVmYXVsdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZGF0ZS1waWNrZXIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi90aW1lLXBpY2tlci9sb2NhbGUvZW5fVVMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dhcm5pbmcvd2FybmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9ncmlkL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9ncmlkL1Jvd0NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL1V0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc09iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1N5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29tcG9uZW50LWluZGV4b2YvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc09iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19yb290LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1N5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvbW9kYWwvTW9kYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2J1dHRvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtY29sbGFwc2UvZXMvUGFuZWxDb250ZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1jb2xsYXBzZS9lcy9QYW5lbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtY29sbGFwc2UvZXMvb3BlbkFuaW1hdGlvbkZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWNvbGxhcHNlL2VzL0NvbGxhcHNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1jb2xsYXBzZS9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtcmVhY3QvZXMvY29tcG9uZW50cy9JY29uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zcHJpbnRmLWpzL3NyYy9zcHJpbnRmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvc3Bpbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvcHJvZ3Jlc3MvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2NvbG9ycy9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvbXBvbmVudC1jbGFzc2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tb2RhbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvU2V0dGluZ3MvU2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRoSG9sZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVJlc3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NoZWNrYm94L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hLWZ1bmN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWFzc2lnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tbGVuZ3RoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9zeW1ib2wvaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zdHJpbmctYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19odG1sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdwby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1zdGVwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuc3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbWV0YS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0ta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcG4tZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLm9ic2VydmFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LnNldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtcHJvdG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2xvY2FsZS1wcm92aWRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlIHN5bmMgXlxcLlxcLy4qJCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvaW50ZXJvcERlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXBhZ2luYXRpb24vbGliL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtY2FsZW5kYXIvbGliL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvY2FsZW5kYXIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2xpYi93YXJuaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUtcHJvdmlkZXIvZGVmYXVsdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvY29uZmlnLXByb3ZpZGVyL2NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2NyZWF0ZS1yZWFjdC1jb250ZXh0L2xpYi9pbXBsZW1lbnRhdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3VkL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jb25maWctcHJvdmlkZXIvcmVuZGVyRW1wdHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2VtcHR5L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9lbXB0eS9lbXB0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZW1wdHkvc2ltcGxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jaGVja2JveC9Hcm91cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZ3JpZC9yb3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3Jlc3BvbnNpdmVPYnNlcnZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeURpc3BhdGNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9RdWVyeUhhbmRsZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2dyaWQvY29sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvZGVib3VuY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9ub3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZnJlZUdsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbG9kYXNoL3RvTnVtYmVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUdldFRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9fb2JqZWN0VG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc09iamVjdExpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL3Byb2dyZXNzL3Byb2dyZXNzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvZGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jb2xvcnMvbGliL2dlbmVyYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy90aW55Y29sb3IyL3Rpbnljb2xvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaWNvbi9JY29uRm9udC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaWNvbi91dGlscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaWNvbi90d29Ub25lUHJpbWFyeUNvbG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9wcm9ncmVzcy9MaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9wcm9ncmVzcy9DaXJjbGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbGxhcHNlL0NvbGxhcHNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbGxhcHNlL0NvbGxhcHNlUGFuZWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL29wZW5BbmltYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3BlcmZvcm1hbmNlLW5vdy9saWIvcGVyZm9ybWFuY2Utbm93LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jYXJkL0dyaWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NhcmQvTWV0YS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvdGFicy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdGFicy9saWIvVGFiQ29udGVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvdGFicy9UYWJCYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvbGliL1Njcm9sbGFibGVJbmtUYWJCYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvbGliL0lua1RhYkJhck5vZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvbGliL1RhYkJhclRhYnNOb2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10YWJzL2xpYi9UYWJCYXJSb290Tm9kZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdGFicy9saWIvU2Nyb2xsYWJsZVRhYkJhck5vZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9kZWJvdW5jZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL25vdy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19mcmVlR2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9OdW1iZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1N5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlR2V0VGFnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFJhd1RhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0TGlrZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVzaXplLW9ic2VydmVyLXBvbHlmaWxsL2Rpc3QvUmVzaXplT2JzZXJ2ZXIuZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvbGliL1NhdmVSZWYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3N0eWxlQ2hlY2tlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvRG9tL2FkZEV2ZW50TGlzdGVuZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FkZC1kb20tZXZlbnQtbGlzdGVuZXIvbGliL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hZGQtZG9tLWV2ZW50LWxpc3RlbmVyL2xpYi9FdmVudE9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWRkLWRvbS1ldmVudC1saXN0ZW5lci9saWIvRXZlbnRCYXNlT2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9idXR0b24vYnV0dG9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9fdXRpbC93YXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jc3MtYW5pbWF0aW9uL2xpYi9FdmVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvcmFmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9idXR0b24vYnV0dG9uLWdyb3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tb2RhbC9jb25maXJtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tb2RhbC9BY3Rpb25CdXR0b24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWRpYWxvZy9lcy9MYXp5UmVuZGVyQm94LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1kaWFsb2cvZXMvRGlhbG9nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0RvbS9jb250YWlucy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Db250YWluZXJSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvUG9ydGFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL2dldFNjcm9sbEJhclNpemUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvc2V0U3R5bGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvc3dpdGNoU2Nyb2xsaW5nRWZmZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL1BvcnRhbFdyYXBwZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWRpYWxvZy9lcy9EaWFsb2dXcmFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL1Jlc3RSZXF1ZXN0LmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9tby1zY2FuL0FwcC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbW8tc2Nhbi9TVFBhZ2VVSS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbW8tc2Nhbi9TdHJpbmdUcmFuc2xhdGlvblBhbmVsLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9tby1zY2FuL0xvY2FsaXphdGlvblBhZ2VVSS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbW8tc2Nhbi9wcmUtZ2VuZXJhdGUvVUkuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL21vLXNjYW4vcHJlLWdlbmVyYXRlL3RleHRQcm92aWRlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbW8tc2Nhbi9tYWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10YWJzL2VzL0tleUNvZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvZXMvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvZXMvU2VudGluZWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvZXMvVGFiUGFuZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdGFicy9lcy9UYWJzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10YWJzL2VzL1RhYkNvbnRlbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRhYnMvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXByb2dyZXNzL2VzL2VuaGFuY2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1wcm9ncmVzcy9lcy90eXBlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcHJvZ3Jlc3MvZXMvTGluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcHJvZ3Jlc3MvZXMvQ2lyY2xlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1wcm9ncmVzcy9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtY2hlY2tib3gvZXMvQ2hlY2tib3guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWNoZWNrYm94L2VzL2luZGV4LmpzIl0sIm5hbWVzIjpbImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJleHBvcnRzIiwibW9kdWxlIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiaG9va0NhbGxiYWNrIiwic29tZSIsImhvb2tzIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJpc0FycmF5IiwiaW5wdXQiLCJBcnJheSIsInRvU3RyaW5nIiwiaXNPYmplY3QiLCJoYXNPd25Qcm9wIiwiYSIsImIiLCJpc09iamVjdEVtcHR5Iiwib2JqIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImxlbmd0aCIsImsiLCJpc1VuZGVmaW5lZCIsImlzTnVtYmVyIiwiaXNEYXRlIiwiRGF0ZSIsIm1hcCIsImFyciIsImZuIiwicmVzIiwicHVzaCIsImV4dGVuZCIsInZhbHVlT2YiLCJjcmVhdGVVVEMiLCJmb3JtYXQiLCJsb2NhbGUiLCJzdHJpY3QiLCJjcmVhdGVMb2NhbE9yVVRDIiwidXRjIiwiZ2V0UGFyc2luZ0ZsYWdzIiwiX3BmIiwiZW1wdHkiLCJ1bnVzZWRUb2tlbnMiLCJ1bnVzZWRJbnB1dCIsIm92ZXJmbG93IiwiY2hhcnNMZWZ0T3ZlciIsIm51bGxJbnB1dCIsImludmFsaWRFcmEiLCJpbnZhbGlkTW9udGgiLCJpbnZhbGlkRm9ybWF0IiwidXNlckludmFsaWRhdGVkIiwiaXNvIiwicGFyc2VkRGF0ZVBhcnRzIiwiZXJhIiwibWVyaWRpZW0iLCJyZmMyODIyIiwid2Vla2RheU1pc21hdGNoIiwiaXNWYWxpZCIsIl9pc1ZhbGlkIiwiZmxhZ3MiLCJwYXJzZWRQYXJ0cyIsImlzTm93VmFsaWQiLCJpc05hTiIsIl9kIiwiZ2V0VGltZSIsImludmFsaWRXZWVrZGF5IiwiX3N0cmljdCIsInVuZGVmaW5lZCIsImJpZ0hvdXIiLCJpc0Zyb3plbiIsImNyZWF0ZUludmFsaWQiLCJOYU4iLCJmdW4iLCJ0aGlzIiwibGVuIiwibW9tZW50UHJvcGVydGllcyIsInVwZGF0ZUluUHJvZ3Jlc3MiLCJjb3B5Q29uZmlnIiwidG8iLCJmcm9tIiwicHJvcCIsInZhbCIsIl9pc0FNb21lbnRPYmplY3QiLCJfaSIsIl9mIiwiX2wiLCJfdHptIiwiX2lzVVRDIiwiX29mZnNldCIsIl9sb2NhbGUiLCJNb21lbnQiLCJjb25maWciLCJ1cGRhdGVPZmZzZXQiLCJpc01vbWVudCIsIndhcm4iLCJtc2ciLCJzdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MiLCJjb25zb2xlIiwiZGVwcmVjYXRlIiwiZmlyc3RUaW1lIiwiZGVwcmVjYXRpb25IYW5kbGVyIiwiYXJnIiwiYXJncyIsInNsaWNlIiwiam9pbiIsIkVycm9yIiwic3RhY2siLCJrZXlzIiwiZGVwcmVjYXRpb25zIiwiZGVwcmVjYXRlU2ltcGxlIiwiaXNGdW5jdGlvbiIsIkZ1bmN0aW9uIiwibWVyZ2VDb25maWdzIiwicGFyZW50Q29uZmlnIiwiY2hpbGRDb25maWciLCJMb2NhbGUiLCJzZXQiLCJ6ZXJvRmlsbCIsIm51bWJlciIsInRhcmdldExlbmd0aCIsImZvcmNlU2lnbiIsImFic051bWJlciIsIk1hdGgiLCJhYnMiLCJ6ZXJvc1RvRmlsbCIsInBvdyIsIm1heCIsInN1YnN0ciIsImZvcm1hdHRpbmdUb2tlbnMiLCJsb2NhbEZvcm1hdHRpbmdUb2tlbnMiLCJmb3JtYXRGdW5jdGlvbnMiLCJmb3JtYXRUb2tlbkZ1bmN0aW9ucyIsImFkZEZvcm1hdFRva2VuIiwidG9rZW4iLCJwYWRkZWQiLCJvcmRpbmFsIiwiY2FsbGJhY2siLCJmdW5jIiwibG9jYWxlRGF0YSIsImZvcm1hdE1vbWVudCIsImV4cGFuZEZvcm1hdCIsImFycmF5IiwibWF0Y2giLCJyZXBsYWNlIiwibW9tIiwib3V0cHV0IiwibWFrZUZvcm1hdEZ1bmN0aW9uIiwiaW52YWxpZERhdGUiLCJyZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnMiLCJsb25nRGF0ZUZvcm1hdCIsImxhc3RJbmRleCIsInRlc3QiLCJhbGlhc2VzIiwiYWRkVW5pdEFsaWFzIiwidW5pdCIsInNob3J0aGFuZCIsImxvd2VyQ2FzZSIsInRvTG93ZXJDYXNlIiwibm9ybWFsaXplVW5pdHMiLCJ1bml0cyIsIm5vcm1hbGl6ZU9iamVjdFVuaXRzIiwiaW5wdXRPYmplY3QiLCJub3JtYWxpemVkUHJvcCIsIm5vcm1hbGl6ZWRJbnB1dCIsInByaW9yaXRpZXMiLCJhZGRVbml0UHJpb3JpdHkiLCJwcmlvcml0eSIsImlzTGVhcFllYXIiLCJ5ZWFyIiwiYWJzRmxvb3IiLCJjZWlsIiwiZmxvb3IiLCJ0b0ludCIsImFyZ3VtZW50Rm9yQ29lcmNpb24iLCJjb2VyY2VkTnVtYmVyIiwiaXNGaW5pdGUiLCJtYWtlR2V0U2V0Iiwia2VlcFRpbWUiLCJzZXQkMSIsIm1vbnRoIiwiZGF0ZSIsImRheXNJbk1vbnRoIiwicmVnZXhlcyIsIm1hdGNoMSIsIm1hdGNoMiIsIm1hdGNoMyIsIm1hdGNoNCIsIm1hdGNoNiIsIm1hdGNoMXRvMiIsIm1hdGNoM3RvNCIsIm1hdGNoNXRvNiIsIm1hdGNoMXRvMyIsIm1hdGNoMXRvNCIsIm1hdGNoMXRvNiIsIm1hdGNoVW5zaWduZWQiLCJtYXRjaFNpZ25lZCIsIm1hdGNoT2Zmc2V0IiwibWF0Y2hTaG9ydE9mZnNldCIsIm1hdGNoV29yZCIsImFkZFJlZ2V4VG9rZW4iLCJyZWdleCIsInN0cmljdFJlZ2V4IiwiaXNTdHJpY3QiLCJnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4iLCJSZWdFeHAiLCJyZWdleEVzY2FwZSIsIm1hdGNoZWQiLCJwMSIsInAyIiwicDMiLCJwNCIsImluZGV4T2YiLCJ0b2tlbnMiLCJhZGRQYXJzZVRva2VuIiwiYWRkV2Vla1BhcnNlVG9rZW4iLCJfdyIsImFkZFRpbWVUb0FycmF5RnJvbVRva2VuIiwiX2EiLCJ4IiwibW9kTW9udGgiLCJtb250aHNTaG9ydCIsIm1vbnRocyIsIm1vbnRoc1Nob3J0UmVnZXgiLCJtb250aHNSZWdleCIsIm1vbnRoc1BhcnNlIiwiZGVmYXVsdExvY2FsZU1vbnRocyIsInNwbGl0IiwiZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0IiwiTU9OVEhTX0lOX0ZPUk1BVCIsImRlZmF1bHRNb250aHNTaG9ydFJlZ2V4IiwiZGVmYXVsdE1vbnRoc1JlZ2V4IiwiaGFuZGxlU3RyaWN0UGFyc2UiLCJtb250aE5hbWUiLCJpaSIsImxsYyIsInRvTG9jYWxlTG93ZXJDYXNlIiwiX21vbnRoc1BhcnNlIiwiX2xvbmdNb250aHNQYXJzZSIsIl9zaG9ydE1vbnRoc1BhcnNlIiwic2V0TW9udGgiLCJkYXlPZk1vbnRoIiwibWluIiwiZ2V0U2V0TW9udGgiLCJjb21wdXRlTW9udGhzUGFyc2UiLCJjbXBMZW5SZXYiLCJzaG9ydFBpZWNlcyIsImxvbmdQaWVjZXMiLCJtaXhlZFBpZWNlcyIsInNvcnQiLCJfbW9udGhzUmVnZXgiLCJfbW9udGhzU2hvcnRSZWdleCIsIl9tb250aHNTdHJpY3RSZWdleCIsIl9tb250aHNTaG9ydFN0cmljdFJlZ2V4IiwiZGF5c0luWWVhciIsInkiLCJwYXJzZVR3b0RpZ2l0WWVhciIsInBhcnNlSW50IiwiZ2V0U2V0WWVhciIsImNyZWF0ZURhdGUiLCJoIiwiTSIsIm1zIiwiZ2V0RnVsbFllYXIiLCJzZXRGdWxsWWVhciIsImNyZWF0ZVVUQ0RhdGUiLCJVVEMiLCJnZXRVVENGdWxsWWVhciIsInNldFVUQ0Z1bGxZZWFyIiwiZmlyc3RXZWVrT2Zmc2V0IiwiZG93IiwiZG95IiwiZndkIiwiZ2V0VVRDRGF5IiwiZGF5T2ZZZWFyRnJvbVdlZWtzIiwid2VlayIsIndlZWtkYXkiLCJyZXNZZWFyIiwicmVzRGF5T2ZZZWFyIiwiZGF5T2ZZZWFyIiwid2Vla09mWWVhciIsInJlc1dlZWsiLCJ3ZWVrT2Zmc2V0Iiwid2Vla3NJblllYXIiLCJ3ZWVrT2Zmc2V0TmV4dCIsInNoaWZ0V2Vla2RheXMiLCJ3cyIsImNvbmNhdCIsIndlZWtkYXlzTWluIiwid2Vla2RheXNTaG9ydCIsIndlZWtkYXlzIiwid2Vla2RheXNNaW5SZWdleCIsIndlZWtkYXlzU2hvcnRSZWdleCIsIndlZWtkYXlzUmVnZXgiLCJ3ZWVrZGF5c1BhcnNlIiwiZGVmYXVsdExvY2FsZVdlZWtkYXlzIiwiZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQiLCJkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4iLCJkZWZhdWx0V2Vla2RheXNSZWdleCIsImRlZmF1bHRXZWVrZGF5c1Nob3J0UmVnZXgiLCJkZWZhdWx0V2Vla2RheXNNaW5SZWdleCIsImhhbmRsZVN0cmljdFBhcnNlJDEiLCJ3ZWVrZGF5TmFtZSIsIl93ZWVrZGF5c1BhcnNlIiwiX3Nob3J0V2Vla2RheXNQYXJzZSIsIl9taW5XZWVrZGF5c1BhcnNlIiwiZGF5IiwiY29tcHV0ZVdlZWtkYXlzUGFyc2UiLCJtaW5wIiwic2hvcnRwIiwibG9uZ3AiLCJtaW5QaWVjZXMiLCJfd2Vla2RheXNSZWdleCIsIl93ZWVrZGF5c1Nob3J0UmVnZXgiLCJfd2Vla2RheXNNaW5SZWdleCIsIl93ZWVrZGF5c1N0cmljdFJlZ2V4IiwiX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCIsIl93ZWVrZGF5c01pblN0cmljdFJlZ2V4IiwiaEZvcm1hdCIsImhvdXJzIiwibG93ZXJjYXNlIiwibWludXRlcyIsIm1hdGNoTWVyaWRpZW0iLCJfbWVyaWRpZW1QYXJzZSIsInNlY29uZHMiLCJrSW5wdXQiLCJfaXNQbSIsImlzUE0iLCJfbWVyaWRpZW0iLCJwb3MiLCJwb3MxIiwicG9zMiIsImdsb2JhbExvY2FsZSIsImdldFNldEhvdXIiLCJiYXNlQ29uZmlnIiwiY2FsZW5kYXIiLCJzYW1lRGF5IiwibmV4dERheSIsIm5leHRXZWVrIiwibGFzdERheSIsImxhc3RXZWVrIiwic2FtZUVsc2UiLCJMVFMiLCJMVCIsIkwiLCJMTCIsIkxMTCIsIkxMTEwiLCJkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIiwicmVsYXRpdmVUaW1lIiwiZnV0dXJlIiwicGFzdCIsInNzIiwibW0iLCJoaCIsImRkIiwidyIsInd3IiwiTU0iLCJ5eSIsIm1lcmlkaWVtUGFyc2UiLCJsb2NhbGVzIiwibG9jYWxlRmFtaWxpZXMiLCJjb21tb25QcmVmaXgiLCJhcnIxIiwiYXJyMiIsIm1pbmwiLCJub3JtYWxpemVMb2NhbGUiLCJsb2FkTG9jYWxlIiwib2xkTG9jYWxlIiwiX2FiYnIiLCJnZXRTZXRHbG9iYWxMb2NhbGUiLCJlIiwidmFsdWVzIiwiZGF0YSIsImdldExvY2FsZSIsImRlZmluZUxvY2FsZSIsImFiYnIiLCJfY29uZmlnIiwicGFyZW50TG9jYWxlIiwiZm9yRWFjaCIsIm5hbWVzIiwiaiIsIm5leHQiLCJjaG9vc2VMb2NhbGUiLCJjaGVja092ZXJmbG93IiwiX292ZXJmbG93RGF5T2ZZZWFyIiwiX292ZXJmbG93V2Vla3MiLCJfb3ZlcmZsb3dXZWVrZGF5IiwiZXh0ZW5kZWRJc29SZWdleCIsImJhc2ljSXNvUmVnZXgiLCJ0elJlZ2V4IiwiaXNvRGF0ZXMiLCJpc29UaW1lcyIsImFzcE5ldEpzb25SZWdleCIsIm9ic09mZnNldHMiLCJVVCIsIkdNVCIsIkVEVCIsIkVTVCIsIkNEVCIsIkNTVCIsIk1EVCIsIk1TVCIsIlBEVCIsIlBTVCIsImNvbmZpZ0Zyb21JU08iLCJhbGxvd1RpbWUiLCJkYXRlRm9ybWF0IiwidGltZUZvcm1hdCIsInR6Rm9ybWF0Iiwic3RyaW5nIiwiZXhlYyIsImNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQiLCJ1bnRydW5jYXRlWWVhciIsInllYXJTdHIiLCJjb25maWdGcm9tUkZDMjgyMiIsInBhcnNlZEFycmF5IiwibW9udGhTdHIiLCJkYXlTdHIiLCJob3VyU3RyIiwibWludXRlU3RyIiwic2Vjb25kU3RyIiwicmVzdWx0Iiwid2Vla2RheVN0ciIsInBhcnNlZElucHV0IiwiZ2V0RGF5IiwiY2hlY2tXZWVrZGF5Iiwib2JzT2Zmc2V0IiwibWlsaXRhcnlPZmZzZXQiLCJudW1PZmZzZXQiLCJobSIsImNhbGN1bGF0ZU9mZnNldCIsInNldFVUQ01pbnV0ZXMiLCJnZXRVVENNaW51dGVzIiwiZGVmYXVsdHMiLCJjb25maWdGcm9tQXJyYXkiLCJjdXJyZW50RGF0ZSIsImV4cGVjdGVkV2Vla2RheSIsInllYXJUb1VzZSIsIm5vd1ZhbHVlIiwibm93IiwiX3VzZVVUQyIsImdldFVUQ01vbnRoIiwiZ2V0VVRDRGF0ZSIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImN1cnJlbnREYXRlQXJyYXkiLCJ3ZWVrWWVhciIsInRlbXAiLCJ3ZWVrZGF5T3ZlcmZsb3ciLCJjdXJXZWVrIiwiR0ciLCJXIiwiRSIsImNyZWF0ZUxvY2FsIiwiX3dlZWsiLCJnZyIsIl9kYXlPZlllYXIiLCJkYXlPZlllYXJGcm9tV2Vla0luZm8iLCJfbmV4dERheSIsIklTT184NjAxIiwiUkZDXzI4MjIiLCJza2lwcGVkIiwic3RyaW5nTGVuZ3RoIiwidG90YWxQYXJzZWRJbnB1dExlbmd0aCIsImhvdXIiLCJpc1BtIiwibWVyaWRpZW1Ib3VyIiwibWVyaWRpZW1GaXhXcmFwIiwiZXJhc0NvbnZlcnRZZWFyIiwicHJlcGFyZUNvbmZpZyIsInByZXBhcnNlIiwidGVtcENvbmZpZyIsImJlc3RNb21lbnQiLCJzY29yZVRvQmVhdCIsImN1cnJlbnRTY29yZSIsInZhbGlkRm9ybWF0Rm91bmQiLCJiZXN0Rm9ybWF0SXNWYWxpZCIsInNjb3JlIiwiY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5IiwiY3JlYXRlRnJvbUlucHV0RmFsbGJhY2siLCJjb25maWdGcm9tU3RyaW5nIiwiZGF5T3JEYXRlIiwibWludXRlIiwic2Vjb25kIiwibWlsbGlzZWNvbmQiLCJjb25maWdGcm9tT2JqZWN0IiwiY29uZmlnRnJvbUlucHV0IiwiaXNVVEMiLCJhZGQiLCJwcm90b3R5cGVNaW4iLCJvdGhlciIsInByb3RvdHlwZU1heCIsInBpY2tCeSIsIm1vbWVudHMiLCJvcmRlcmluZyIsIkR1cmF0aW9uIiwiZHVyYXRpb24iLCJ5ZWFycyIsInF1YXJ0ZXJzIiwicXVhcnRlciIsIndlZWtzIiwiaXNvV2VlayIsImRheXMiLCJtaWxsaXNlY29uZHMiLCJ1bml0SGFzRGVjaW1hbCIsInBhcnNlRmxvYXQiLCJpc0R1cmF0aW9uVmFsaWQiLCJfbWlsbGlzZWNvbmRzIiwiX2RheXMiLCJfbW9udGhzIiwiX2RhdGEiLCJfYnViYmxlIiwiaXNEdXJhdGlvbiIsImFic1JvdW5kIiwicm91bmQiLCJvZmZzZXQiLCJzZXBhcmF0b3IiLCJ1dGNPZmZzZXQiLCJzaWduIiwib2Zmc2V0RnJvbVN0cmluZyIsImNodW5rT2Zmc2V0IiwibWF0Y2hlciIsInBhcnRzIiwibWF0Y2hlcyIsImNsb25lV2l0aE9mZnNldCIsIm1vZGVsIiwiZGlmZiIsImNsb25lIiwic2V0VGltZSIsImxvY2FsIiwiZ2V0RGF0ZU9mZnNldCIsImdldFRpbWV6b25lT2Zmc2V0IiwiaXNVdGMiLCJhc3BOZXRSZWdleCIsImlzb1JlZ2V4IiwiY3JlYXRlRHVyYXRpb24iLCJyZXQiLCJkaWZmUmVzIiwiYmFzZSIsInBhcnNlSXNvIiwiaXNCZWZvcmUiLCJwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlIiwiaW5wIiwiaXNBZnRlciIsImNyZWF0ZUFkZGVyIiwiZGlyZWN0aW9uIiwicGVyaW9kIiwidG1wIiwiYWRkU3VidHJhY3QiLCJpc0FkZGluZyIsImludmFsaWQiLCJzdWJ0cmFjdCIsImlzU3RyaW5nIiwiU3RyaW5nIiwiaXNNb21lbnRJbnB1dCIsImFycmF5VGVzdCIsImRhdGFUeXBlVGVzdCIsImZpbHRlciIsIml0ZW0iLCJpc051bWJlck9yU3RyaW5nQXJyYXkiLCJvYmplY3RUZXN0IiwicHJvcGVydHlUZXN0IiwicHJvcGVydGllcyIsImlzTW9tZW50SW5wdXRPYmplY3QiLCJpc0NhbGVuZGFyU3BlYyIsIm1vbnRoRGlmZiIsIndob2xlTW9udGhEaWZmIiwiYW5jaG9yIiwibmV3TG9jYWxlRGF0YSIsImRlZmF1bHRGb3JtYXQiLCJkZWZhdWx0Rm9ybWF0VXRjIiwibGFuZyIsIm1vZCQxIiwiZGl2aWRlbmQiLCJkaXZpc29yIiwibG9jYWxTdGFydE9mRGF0ZSIsInV0Y1N0YXJ0T2ZEYXRlIiwibWF0Y2hFcmFBYmJyIiwiZXJhc0FiYnJSZWdleCIsImNvbXB1dGVFcmFzUGFyc2UiLCJhYmJyUGllY2VzIiwibmFtZVBpZWNlcyIsIm5hcnJvd1BpZWNlcyIsImVyYXMiLCJuYXJyb3ciLCJfZXJhc1JlZ2V4IiwiX2VyYXNOYW1lUmVnZXgiLCJfZXJhc0FiYnJSZWdleCIsIl9lcmFzTmFycm93UmVnZXgiLCJhZGRXZWVrWWVhckZvcm1hdFRva2VuIiwiZ2V0U2V0V2Vla1llYXJIZWxwZXIiLCJ3ZWVrc1RhcmdldCIsInNldFdlZWtBbGwiLCJkYXlPZlllYXJEYXRhIiwiZXJhc05hbWVSZWdleCIsImVyYXNOYXJyb3dSZWdleCIsImVyYXNQYXJzZSIsIl9lcmFZZWFyT3JkaW5hbFJlZ2V4IiwiZXJhWWVhck9yZGluYWxQYXJzZSIsImlzb1dlZWtZZWFyIiwiX2RheU9mTW9udGhPcmRpbmFsUGFyc2UiLCJfb3JkaW5hbFBhcnNlIiwiX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50IiwiZ2V0U2V0RGF5T2ZNb250aCIsImdldFNldE1pbnV0ZSIsImdldFNldE1pbGxpc2Vjb25kIiwiZ2V0U2V0U2Vjb25kIiwicGFyc2VNcyIsInByb3RvIiwicHJlUGFyc2VQb3N0Rm9ybWF0IiwidGltZSIsImZvcm1hdHMiLCJzb2QiLCJzdGFydE9mIiwiY2FsZW5kYXJGb3JtYXQiLCJhc0Zsb2F0IiwidGhhdCIsInpvbmVEZWx0YSIsImVuZE9mIiwic3RhcnRPZkRhdGUiLCJpc29XZWVrZGF5IiwiaW5wdXRTdHJpbmciLCJwb3N0Zm9ybWF0Iiwid2l0aG91dFN1ZmZpeCIsImh1bWFuaXplIiwiZnJvbU5vdyIsInRvTm93IiwiaW52YWxpZEF0IiwibG9jYWxJbnB1dCIsImlzQmV0d2VlbiIsImluY2x1c2l2aXR5IiwibG9jYWxGcm9tIiwibG9jYWxUbyIsImlzU2FtZSIsImlucHV0TXMiLCJpc1NhbWVPckFmdGVyIiwiaXNTYW1lT3JCZWZvcmUiLCJwYXJzaW5nRmxhZ3MiLCJwcmlvcml0aXplZCIsInVuaXRzT2JqIiwidSIsImdldFByaW9yaXRpemVkVW5pdHMiLCJ0b0FycmF5IiwidG9PYmplY3QiLCJ0b0RhdGUiLCJ0b0lTT1N0cmluZyIsImtlZXBPZmZzZXQiLCJpbnNwZWN0IiwicHJlZml4Iiwic3VmZml4Iiwiem9uZSIsImlzTG9jYWwiLCJmb3IiLCJ0b0pTT04iLCJ1bml4IiwiY3JlYXRpb25EYXRhIiwiZXJhTmFtZSIsInNpbmNlIiwidW50aWwiLCJlcmFOYXJyb3ciLCJlcmFBYmJyIiwiZXJhWWVhciIsImRpciIsImlzb1dlZWtzIiwid2Vla0luZm8iLCJ3ZWVrc0luV2Vla1llYXIiLCJpc29XZWVrc0luWWVhciIsImlzb1dlZWtzSW5JU09XZWVrWWVhciIsInBhcnNlV2Vla2RheSIsInBhcnNlSXNvV2Vla2RheSIsImtlZXBMb2NhbFRpbWUiLCJrZWVwTWludXRlcyIsImxvY2FsQWRqdXN0IiwiX2NoYW5nZUluUHJvZ3Jlc3MiLCJwYXJzZVpvbmUiLCJ0Wm9uZSIsImhhc0FsaWduZWRIb3VyT2Zmc2V0IiwiaXNEU1QiLCJpc1V0Y09mZnNldCIsInpvbmVBYmJyIiwiem9uZU5hbWUiLCJkYXRlcyIsImlzRFNUU2hpZnRlZCIsIl9pc0RTVFNoaWZ0ZWQiLCJhcnJheTEiLCJhcnJheTIiLCJkb250Q29udmVydCIsImxlbmd0aERpZmYiLCJkaWZmcyIsImNvbXBhcmVBcnJheXMiLCJwcm90byQxIiwiZ2V0JDEiLCJpbmRleCIsImZpZWxkIiwic2V0dGVyIiwibGlzdE1vbnRoc0ltcGwiLCJvdXQiLCJsaXN0V2Vla2RheXNJbXBsIiwibG9jYWxlU29ydGVkIiwic2hpZnQiLCJfY2FsZW5kYXIiLCJfbG9uZ0RhdGVGb3JtYXQiLCJmb3JtYXRVcHBlciIsInRvVXBwZXJDYXNlIiwidG9rIiwiX2ludmFsaWREYXRlIiwiX29yZGluYWwiLCJpc0Z1dHVyZSIsIl9yZWxhdGl2ZVRpbWUiLCJwYXN0RnV0dXJlIiwic291cmNlIiwiX2VyYXMiLCJpc0Zvcm1hdCIsIl9tb250aHNTaG9ydCIsIl9tb250aHNQYXJzZUV4YWN0IiwiZmlyc3REYXlPZlllYXIiLCJmaXJzdERheU9mV2VlayIsIl93ZWVrZGF5cyIsIl93ZWVrZGF5c01pbiIsIl93ZWVrZGF5c1Nob3J0IiwiX3dlZWtkYXlzUGFyc2VFeGFjdCIsIl9mdWxsV2Vla2RheXNQYXJzZSIsImNoYXJBdCIsImlzTG93ZXIiLCJsYW5nRGF0YSIsIm1hdGhBYnMiLCJhZGRTdWJ0cmFjdCQxIiwiYWJzQ2VpbCIsImRheXNUb01vbnRocyIsIm1vbnRoc1RvRGF5cyIsIm1ha2VBcyIsImFsaWFzIiwiYXMiLCJhc01pbGxpc2Vjb25kcyIsImFzU2Vjb25kcyIsImFzTWludXRlcyIsImFzSG91cnMiLCJhc0RheXMiLCJhc1dlZWtzIiwiYXNNb250aHMiLCJhc1F1YXJ0ZXJzIiwiYXNZZWFycyIsIm1ha2VHZXR0ZXIiLCJ0aHJlc2hvbGRzIiwic3Vic3RpdHV0ZVRpbWVBZ28iLCJhYnMkMSIsInRvSVNPU3RyaW5nJDEiLCJ0b3RhbFNpZ24iLCJ5bVNpZ24iLCJkYXlzU2lnbiIsImhtc1NpZ24iLCJ0b3RhbCIsInRvRml4ZWQiLCJwcm90byQyIiwibW9udGhzRnJvbURheXMiLCJhcmdXaXRoU3VmZml4IiwiYXJnVGhyZXNob2xkcyIsIndpdGhTdWZmaXgiLCJ0aCIsImFzc2lnbiIsInBvc05lZ0R1cmF0aW9uIiwicmVsYXRpdmVUaW1lJDEiLCJ0b0lzb1N0cmluZyIsInZlcnNpb24iLCJ1cGRhdGVMb2NhbGUiLCJ0bXBMb2NhbGUiLCJyZWxhdGl2ZVRpbWVSb3VuZGluZyIsInJvdW5kaW5nRnVuY3Rpb24iLCJyZWxhdGl2ZVRpbWVUaHJlc2hvbGQiLCJ0aHJlc2hvbGQiLCJsaW1pdCIsIm15TW9tZW50IiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUwiLCJEQVRFVElNRV9MT0NBTF9TRUNPTkRTIiwiREFURVRJTUVfTE9DQUxfTVMiLCJEQVRFIiwiVElNRSIsIlRJTUVfU0VDT05EUyIsIlRJTUVfTVMiLCJXRUVLIiwiTU9OVEgiLCJmYWN0b3J5IiwiaGFzT3duIiwiY2xhc3NOYW1lcyIsImNsYXNzZXMiLCJhcmdUeXBlIiwiaW5uZXIiLCJkZWZhdWx0IiwiX2Fzc2lnbiIsIl9hc3NpZ24yIiwidGFyZ2V0IiwiX18iLCJ0ZXh0IiwiZG9tYWluIiwid3AiLCJpMThuIiwic3ByaW50ZiIsInNwcmludGZGcm9tTm9kZSIsIl9kZWZpbmVQcm9wZXJ0eSIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfdHlwZW9mMiIsIl90eXBlb2YzIiwic2VsZiIsIlJlZmVyZW5jZUVycm9yIiwiX3NldFByb3RvdHlwZU9mMiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY3JlYXRlMiIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNvbnN0cnVjdG9yIiwiX19wcm90b19fIiwiZGVmaW5lUHJvcGVydGllcyIsInByb3BzIiwiZGVzY3JpcHRvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsImNoZWNrRENFIiwiX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwiZXJyIiwiZXJyb3IiLCJfY29udGV4dCIsIkNvbmZpZ0NvbnN1bWVyIiwiY29uZmlnQ29uc3VtZXJQcm9wcyIsIlJlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfbG9jYWxlUHJvdmlkZXIiLCJfTG9jYWxlUmVjZWl2ZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJXZWFrTWFwIiwiY2FjaGUiLCJfdHlwZW9mIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsIml0ZXJhdG9yIiwiX2V4dGVuZHMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydGllcyIsIl9zZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX2NyZWF0ZVN1cGVyIiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0Iiwic2hhbSIsIlByb3h5IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiTmV3VGFyZ2V0IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiZ2V0UHJvdG90eXBlT2YiLCJfZGVmYXVsdCIsIl9SZWFjdCRDb21wb25lbnQiLCJfaW5oZXJpdHMiLCJDb25maWdQcm92aWRlciIsIl9zdXBlciIsIl90aGlzIiwiZ2V0UHJlZml4Q2xzIiwic3VmZml4Q2xzIiwiY3VzdG9taXplUHJlZml4Q2xzIiwiX3RoaXMkcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVuZGVyUHJvdmlkZXIiLCJjb250ZXh0IiwibGVnYWN5TG9jYWxlIiwiX3RoaXMkcHJvcHMiLCJjaGlsZHJlbiIsImdldFBvcHVwQ29udGFpbmVyIiwicmVuZGVyRW1wdHkiLCJjc3AiLCJhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbiIsInBhZ2VIZWFkZXIiLCJjcmVhdGVFbGVtZW50IiwiQ29uZmlnQ29udGV4dCIsIlByb3ZpZGVyIiwiX0FOVF9NQVJLX18iLCJBTlRfTUFSSyIsIl90aGlzMiIsIl8iLCJDb21wb25lbnQiLCJhcnJheVdpdGhIb2xlcyIsIml0ZXJhYmxlVG9BcnJheUxpbWl0IiwidW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJub25JdGVyYWJsZVJlc3QiLCJzZWxlY3RBbGwiLCJwbHVnaW5zIiwidGhlbWVzIiwiY29yZSIsInN0cmluZ1RyYW5zbGF0aW9uUGFuZWxIZWFkZXIiLCJzdHJpbmdUcmFuc2xhdGlvblBhbmVsQ29udGVudCIsImFkbWluU3RyaW5nc0NhcmRIZWFkZXIiLCJhZG1pblN0cmluZ3NDYXJkQ29udGVudCIsImFkbWluU3RyaW5nc0NhcmRCdXR0b25UZXh0IiwibW9TY2FuQ2FyZEhlYWRlciIsIm1vU2NhbkNhcmRDb250ZW50IiwibW9TY2FuQ2FyZEJ1dHRvblRleHQiLCJtb1NjYW5DYXJkUHJvZ3Jlc3NUZXh0IiwiQ29sIiwiX2NsYXNzbmFtZXMiLCJhbGxJY29ucyIsIl9pY29uc1JlYWN0IiwiX0ljb25Gb250IiwiX3V0aWxzIiwiX3dhcm5pbmciLCJfdHdvVG9uZVByaW1hcnlDb2xvciIsIl9hcnJheUxpa2VUb0FycmF5IiwiX19yZXN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJpdGVyIiwiX2l0ZXJhYmxlVG9BcnJheSIsIm1pbkxlbiIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsInNldFR3b1RvbmVDb2xvciIsImRhbmdlcm91c1RoZW1lIiwiZGVmYXVsdFRoZW1lIiwiSWNvbiIsIl9jbGFzc05hbWVzIiwiY2xhc3NOYW1lIiwidHlwZSIsImNvbXBvbmVudCIsInZpZXdCb3giLCJzcGluIiwicm90YXRlIiwidGFiSW5kZXgiLCJvbkNsaWNrIiwidGhlbWUiLCJ0d29Ub25lQ29sb3IiLCJyZXN0UHJvcHMiLCJCb29sZWFuIiwiY2xhc3NTdHJpbmciLCJzdmdDbGFzc1N0cmluZyIsInN2Z1N0eWxlIiwibXNUcmFuc2Zvcm0iLCJ0cmFuc2Zvcm0iLCJpbm5lclN2Z1Byb3BzIiwic3ZnQmFzZVByb3BzIiwic3R5bGUiLCJpY29uVGFiSW5kZXgiLCJjb21wb25lbnROYW1lIiwiaWNvbiIsIkNoaWxkcmVuIiwiY291bnQiLCJpc1ZhbGlkRWxlbWVudCIsIm9ubHkiLCJjb21wdXRlZFR5cGUiLCJ0aGVtZUluTmFtZSIsImdldFRoZW1lRnJvbVR5cGVOYW1lIiwid2l0aFRoZW1lU3VmZml4IiwicmVtb3ZlVHlwZVRoZW1lIiwicHJpbWFyeUNvbG9yIiwicmVuZGVySW5uZXJOb2RlIiwiY3JlYXRlRnJvbUljb25mb250Q04iLCJnZXRUd29Ub25lQ29sb3IiLCJjb21wb25lbnRXaWxsTW91bnQiLCJzdGF0ZSIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInNldFN0YXRlIiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsIm5leHRQcm9wcyIsInByZXZTdGF0ZSIsImNvbXBvbmVudFdpbGxVcGRhdGUiLCJuZXh0U3RhdGUiLCJwcmV2UHJvcHMiLCJfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWciLCJfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdCIsImdldFNuYXBzaG90QmVmb3JlVXBkYXRlIiwicG9seWZpbGwiLCJpc1JlYWN0Q29tcG9uZW50IiwiZm91bmRXaWxsTW91bnROYW1lIiwiZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSIsImZvdW5kV2lsbFVwZGF0ZU5hbWUiLCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IiwiVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSIsImRpc3BsYXlOYW1lIiwibmV3QXBpTmFtZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsIm1heWJlU25hcHNob3QiLCJzbmFwc2hvdCIsIl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmciLCJvYmpBIiwib2JqQiIsImNvbXBhcmUiLCJjb21wYXJlQ29udGV4dCIsImtleXNBIiwia2V5c0IiLCJiSGFzT3duUHJvcGVydHkiLCJpZHgiLCJ2YWx1ZUEiLCJ2YWx1ZUIiLCJnbG9iYWwiLCJ3aW5kb3ciLCJfX2ciLCJfX2UiLCJsb2ciLCJtZXNzYWdlIiwicHJvY2VzcyIsImVudiIsImlzSWNvbkRlZmluaXRpb24iLCJub3JtYWxpemVBdHRycyIsImF0dHJzIiwicmVkdWNlIiwiYWNjIiwiTWluaU1hcCIsImNvbGxlY3Rpb24iLCJnZW5lcmF0ZSIsIm5vZGUiLCJyb290UHJvcHMiLCJ0YWciLCJjaGlsZCIsImdldFNlY29uZGFyeUNvbG9yIiwiYW5PYmplY3QiLCJJRThfRE9NX0RFRklORSIsInRvUHJpbWl0aXZlIiwiZFAiLCJmIiwiTyIsIlAiLCJBdHRyaWJ1dGVzIiwiaXQiLCJyZXNldFdhcm5lZCIsInZhbGlkIiwiY3R4IiwiaGlkZSIsIiRleHBvcnQiLCJvd24iLCJJU19GT1JDRUQiLCJGIiwiSVNfR0xPQkFMIiwiRyIsIklTX1NUQVRJQyIsIlMiLCJJU19QUk9UTyIsIklTX0JJTkQiLCJCIiwiSVNfV1JBUCIsImV4cFByb3RvIiwiQyIsInZpcnR1YWwiLCJSIiwiVSIsImNyZWF0ZURlc2MiLCJJT2JqZWN0IiwiZGVmaW5lZCIsInN0b3JlIiwidWlkIiwiVVNFX1NZTUJPTCIsImZpZWxkcyIsInNoYWxsb3dDb3B5IiwiUm93Iiwicm9vdCIsInZlbmRvcnMiLCJyYWYiLCJjYWYiLCJsYXN0IiwiaWQiLCJxdWV1ZSIsIl9ub3ciLCJzZXRUaW1lb3V0IiwiY3AiLCJjYW5jZWxsZWQiLCJoYW5kbGUiLCJjYW5jZWwiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIlNUQVJUX0VWRU5UX05BTUVfTUFQIiwidHJhbnNpdGlvbnN0YXJ0IiwidHJhbnNpdGlvbiIsIldlYmtpdFRyYW5zaXRpb24iLCJNb3pUcmFuc2l0aW9uIiwiT1RyYW5zaXRpb24iLCJtc1RyYW5zaXRpb24iLCJhbmltYXRpb25zdGFydCIsImFuaW1hdGlvbiIsIldlYmtpdEFuaW1hdGlvbiIsIk1vekFuaW1hdGlvbiIsIk9BbmltYXRpb24iLCJtc0FuaW1hdGlvbiIsIkVORF9FVkVOVF9OQU1FX01BUCIsInRyYW5zaXRpb25lbmQiLCJhbmltYXRpb25lbmQiLCJzdGFydEV2ZW50cyIsImVuZEV2ZW50cyIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudE5hbWUiLCJldmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRvY3VtZW50IiwiRVZFTlRfTkFNRV9NQVAiLCJldmVudHMiLCJiYXNlRXZlbnROYW1lIiwiYmFzZUV2ZW50cyIsInN0eWxlTmFtZSIsImRldGVjdEV2ZW50cyIsImFkZFN0YXJ0RXZlbnRMaXN0ZW5lciIsInN0YXJ0RXZlbnQiLCJyZW1vdmVTdGFydEV2ZW50TGlzdGVuZXIiLCJhZGRFbmRFdmVudExpc3RlbmVyIiwiZW5kRXZlbnQiLCJyZW1vdmVFbmRFdmVudExpc3RlbmVyIiwiaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQiLCJFdmVudCIsImNhcGl0YWxQcmVmaXhlcyIsInByZWZpeGVzIiwiZ2V0U3R5bGVQcm9wZXJ0eSIsImdldENvbXB1dGVkU3R5bGUiLCJnZXRQcm9wZXJ0eVZhbHVlIiwiZml4QnJvd3NlckJ5VGltZW91dCIsInRyYW5zaXRpb25EZWxheSIsInRyYW5zaXRpb25EdXJhdGlvbiIsImFuaW1hdGlvbkRlbGF5IiwiYW5pbWF0aW9uRHVyYXRpb24iLCJyY0VuZEFuaW1UaW1lb3V0IiwicmNFbmRMaXN0ZW5lciIsImNsZWFyQnJvd3NlckJ1Z1RpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJ0cmFuc2l0aW9uTmFtZSIsImVuZENhbGxiYWNrIiwibmFtZUlzT2JqIiwiYWN0aXZlQ2xhc3NOYW1lIiwiYWN0aXZlIiwiZW5kIiwic3RhcnQiLCJub2RlQ2xhc3NlcyIsInJjQW5pbVRpbWVvdXQiLCJyZW1vdmUiLCJzdG9wIiwic2V0VHJhbnNpdGlvbiIsInYiLCJnIiwiX2RlZmluZVByb3BlcnR5MyIsImdldEFjdGl2ZUluZGV4IiwiYWN0aXZlS2V5IiwiZ2V0QWN0aXZlS2V5Iiwic2V0VHJhbnNmb3JtIiwiaXNUcmFuc2Zvcm0zZFN1cHBvcnRlZCIsImF0b2IiLCJ3ZWJraXRUcmFuc2l0aW9uIiwiZ2V0VHJhbnNmb3JtUHJvcFZhbHVlIiwiV2Via2l0VHJhbnNmb3JtIiwiTW96VHJhbnNmb3JtIiwiaXNWZXJ0aWNhbCIsImdldFRyYW5zZm9ybUJ5SW5kZXgiLCJ0YWJCYXJQb3NpdGlvbiIsInRyYW5zbGF0ZSIsImdldE1hcmdpblN0eWxlIiwibWFyZ2luRGlyZWN0aW9uIiwiZ2V0U3R5bGUiLCJzZXRQeFN0eWxlIiwiZWwiLCJ2ZXJ0aWNhbCIsImdldERhdGFBdHRyIiwicHJldiIsImdldExlZnQiLCJ0YWJOb2RlIiwid3JhcHBlck5vZGUiLCJnZXRUeXBlVmFsdWUiLCJnZXRUb3AiLCJfcmVhY3QyIiwid2Via2l0VHJhbnNmb3JtIiwibW96VHJhbnNmb3JtIiwidG9OdW0iLCJjdXJyZW50IiwicGFyZW50Tm9kZSIsImNoaWxkTm9kZXMiLCJib3hTaXppbmciLCJLZXlDb2RlIiwiTUFDX0VOVEVSIiwiQkFDS1NQQUNFIiwiVEFCIiwiTlVNX0NFTlRFUiIsIkVOVEVSIiwiU0hJRlQiLCJDVFJMIiwiQUxUIiwiUEFVU0UiLCJDQVBTX0xPQ0siLCJFU0MiLCJTUEFDRSIsIlBBR0VfVVAiLCJQQUdFX0RPV04iLCJFTkQiLCJIT01FIiwiTEVGVCIsIlVQIiwiUklHSFQiLCJET1dOIiwiUFJJTlRfU0NSRUVOIiwiSU5TRVJUIiwiREVMRVRFIiwiWkVSTyIsIk9ORSIsIlRXTyIsIlRIUkVFIiwiRk9VUiIsIkZJVkUiLCJTSVgiLCJTRVZFTiIsIkVJR0hUIiwiTklORSIsIlFVRVNUSU9OX01BUksiLCJBIiwiRCIsIkgiLCJJIiwiSiIsIksiLCJOIiwiUSIsIlQiLCJWIiwiWCIsIlkiLCJaIiwiTUVUQSIsIldJTl9LRVlfUklHSFQiLCJDT05URVhUX01FTlUiLCJOVU1fWkVSTyIsIk5VTV9PTkUiLCJOVU1fVFdPIiwiTlVNX1RIUkVFIiwiTlVNX0ZPVVIiLCJOVU1fRklWRSIsIk5VTV9TSVgiLCJOVU1fU0VWRU4iLCJOVU1fRUlHSFQiLCJOVU1fTklORSIsIk5VTV9NVUxUSVBMWSIsIk5VTV9QTFVTIiwiTlVNX01JTlVTIiwiTlVNX1BFUklPRCIsIk5VTV9ESVZJU0lPTiIsIkYxIiwiRjIiLCJGMyIsIkY0IiwiRjUiLCJGNiIsIkY3IiwiRjgiLCJGOSIsIkYxMCIsIkYxMSIsIkYxMiIsIk5VTUxPQ0siLCJTRU1JQ09MT04iLCJEQVNIIiwiRVFVQUxTIiwiQ09NTUEiLCJQRVJJT0QiLCJTTEFTSCIsIkFQT1NUUk9QSEUiLCJTSU5HTEVfUVVPVEUiLCJPUEVOX1NRVUFSRV9CUkFDS0VUIiwiQkFDS1NMQVNIIiwiQ0xPU0VfU1FVQVJFX0JSQUNLRVQiLCJXSU5fS0VZIiwiTUFDX0ZGX01FVEEiLCJXSU5fSU1FIiwiaXNUZXh0TW9kaWZ5aW5nS2V5RXZlbnQiLCJrZXlDb2RlIiwiYWx0S2V5IiwiY3RybEtleSIsIm1ldGFLZXkiLCJpc0NoYXJhY3RlcktleSIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvQXJyYXlDaGlsZHJlbiIsImZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleSIsImZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5Iiwic2hvd1Byb3AiLCJpc0FwcGVhclN1cHBvcnRlZCIsInRyYW5zaXRpb25BcHBlYXIiLCJhcHBlYXIiLCJpc0VudGVyU3VwcG9ydGVkIiwidHJhbnNpdGlvbkVudGVyIiwiZW50ZXIiLCJpc0xlYXZlU3VwcG9ydGVkIiwidHJhbnNpdGlvbkxlYXZlIiwibGVhdmUiLCJhbGxvd0FwcGVhckNhbGxiYWNrIiwiYWxsb3dFbnRlckNhbGxiYWNrIiwiYWxsb3dMZWF2ZUNhbGxiYWNrIiwidHJhbnNpdGlvbk1hcCIsIkFuaW1hdGVDaGlsZCIsImRvbmUiLCJhbmltYXRpb25UeXBlIiwiZmluaXNoQ2FsbGJhY2siLCJmaW5kRE9NTm9kZSIsInN0b3BwZXIiLCJhY3RpdmVOYW1lIiwicHJvcFR5cGVzIiwiYW55IiwiZGVmYXVsdEtleSIsImdldENoaWxkcmVuRnJvbVByb3BzIiwiY2xvbmVFbGVtZW50Iiwibm9vcCIsIkFuaW1hdGUiLCJjdXJyZW50bHlBbmltYXRpbmdLZXlzIiwia2V5c1RvRW50ZXIiLCJrZXlzVG9MZWF2ZSIsImNoaWxkcmVuUmVmcyIsInBlcmZvcm1BcHBlYXIiLCJfdGhpczMiLCJuZXh0Q2hpbGRyZW4iLCJleGNsdXNpdmUiLCJuZXh0Q2hpbGRyZW5QZW5kaW5nIiwicGVuZGluZ0NoaWxkcmVuIiwiY3VycmVudENoaWxkcmVuIiwibmV3Q2hpbGRyZW4iLCJjdXJyZW50Q2hpbGQiLCJuZXh0Q2hpbGQiLCJuZXdDaGlsZCIsImhhc1ByZXYiLCJzaG93SW5OZXh0IiwiaGFzTmV4dCIsInNob3dJbk5vdyIsInBlcmZvcm1FbnRlciIsInBlcmZvcm1MZWF2ZSIsIl90aGlzNCIsInN0YXRlQ2hpbGRyZW4iLCJyZWYiLCJwYXNzZWRQcm9wcyIsImNvbXBvbmVudFByb3BzIiwiaXNBbmltYXRlIiwib25lT2ZUeXBlIiwiYm9vbCIsIm9uRW5kIiwib25FbnRlciIsIm9uTGVhdmUiLCJvbkFwcGVhciIsImRlZmF1bHRQcm9wcyIsIl90aGlzNSIsImNvbXBvbmVudFdpbGxFbnRlciIsImhhbmRsZURvbmVBZGRpbmciLCJjb21wb25lbnRXaWxsQXBwZWFyIiwiaXNWYWxpZENoaWxkQnlLZXkiLCJjb21wb25lbnRXaWxsTGVhdmUiLCJoYW5kbGVEb25lTGVhdmluZyIsImMxIiwiYzIiLCJzYW1lIiwiY2hpbGQyIiwiYml0bWFwIiwiJGtleXMiLCJlbnVtQnVnS2V5cyIsInB4IiwicmFuZG9tIiwiUHJvcFR5cGVzIiwiTG9jYWxlUmVjZWl2ZXIiLCJkZWZhdWx0TG9jYWxlIiwiYW50TG9jYWxlIiwibG9jYWxlRnJvbUNvbnRleHQiLCJsb2NhbGVDb2RlIiwiZXhpc3QiLCJnZXRMb2NhbGVDb2RlIiwiY29udGV4dFR5cGVzIiwidHVwbGVOdW0iLCJ0dXBsZSIsIl9sZW4iLCJfa2V5IiwiX2xlbjIiLCJfa2V5MiIsIl9pdGVyYXRvcjIiLCJfc3ltYm9sMiIsIl9pbXBsZW1lbnRhdGlvbjIiLCJjcmVhdGVDb250ZXh0IiwiQ2hlY2tib3hHcm91cCIsIkdyb3VwIiwiSXRlbXNUb1NjYW4iLCJoZWFkaW5nIiwiaXRlbXMiLCJvblNlbGVjdGVkIiwidXNlU3RhdGUiLCJjaGVja2VkSXRlbXMiLCJzZXRDaGVja2VkSXRlbXMiLCJvbkl0ZW1DaGVjayIsInVzZUNhbGxiYWNrIiwiY2hlY2tlZCIsIm9uQ2hlY2tBbGwiLCJtYXJnaW5Cb3R0b20iLCJib3JkZXJCb3R0b20iLCJpbmRldGVybWluYXRlIiwib25DaGFuZ2UiLCJUZXh0Iiwib3B0aW9ucyIsIkl0ZW1zVG9TY2FuTGlzdCIsImZpbGVzVG9TY2FuIiwic2VsZWN0ZWRQbHVnaW5zIiwic2V0U2VsZWN0ZWRQbHVnaW5zIiwic2VsZWN0ZWRUaGVtZXMiLCJzZXRTZWxlY3RlZFRoZW1lcyIsInNlbGVjdGVkT3RoZXIiLCJzZXRTZWxlY3RlZE90aGVyIiwidXNlRWZmZWN0IiwiRnJhZ21lbnQiLCJzZWxlY3RlZCIsInByb3BJc0VudW1lcmFibGUiLCJ0ZXN0MSIsInRlc3QyIiwiZnJvbUNoYXJDb2RlIiwidGVzdDMiLCJsZXR0ZXIiLCJzaG91bGRVc2VOYXRpdmUiLCJzeW1ib2xzIiwic2hhcmVkIiwiY29weXJpZ2h0IiwiZFBzIiwiSUVfUFJPVE8iLCJFbXB0eSIsImNyZWF0ZURpY3QiLCJpZnJhbWVEb2N1bWVudCIsImlmcmFtZSIsImRpc3BsYXkiLCJhcHBlbmRDaGlsZCIsInNyYyIsImNvbnRlbnRXaW5kb3ciLCJvcGVuIiwid3JpdGUiLCJsdCIsImNsb3NlIiwiUHJvcGVydGllcyIsImRlZiIsIlRBRyIsInN0YXQiLCJMSUJSQVJZIiwid2tzRXh0IiwiJFN5bWJvbCIsImNoYW5nZUNvbmZpcm1Mb2NhbGUiLCJuZXdMb2NhbGUiLCJydW50aW1lTG9jYWxlIiwiTW9kYWwiLCJnZXRDb25maXJtTG9jYWxlIiwidmFsaWRQcm9ncmVzcyIsInByb2dyZXNzIiwiX29taXQiLCJfR3JpZCIsIl9NZXRhIiwiX3RhYnMiLCJfcm93IiwiX2NvbCIsIl9jb25maWdQcm92aWRlciIsImdldEFjdGlvbiIsImFjdGlvbnMiLCJhY3Rpb24iLCJ3aWR0aCIsIkNhcmQiLCJvblRhYkNoYW5nZSIsInJlbmRlckNhcmQiLCJfcmVmIiwiX2V4dHJhUHJvcHMiLCJoZWFkIiwiZXh0cmEiLCJfYSRoZWFkU3R5bGUiLCJoZWFkU3R5bGUiLCJfYSRib2R5U3R5bGUiLCJib2R5U3R5bGUiLCJ0aXRsZSIsImxvYWRpbmciLCJfYSRib3JkZXJlZCIsImJvcmRlcmVkIiwiX2Ekc2l6ZSIsInNpemUiLCJjb3ZlciIsInRhYkxpc3QiLCJhY3RpdmVUYWJLZXkiLCJkZWZhdWx0QWN0aXZlVGFiS2V5IiwidGFiQmFyRXh0cmFDb250ZW50Iiwib3RoZXJzIiwiZ2V0Q29tcGF0aWJsZUhvdmVyYWJsZSIsImlzQ29udGFpbkdyaWQiLCJsb2FkaW5nQmxvY2tTdHlsZSIsInBhZGRpbmciLCJsb2FkaW5nQmxvY2siLCJndXR0ZXIiLCJzcGFuIiwiaGFzQWN0aXZlVGFiS2V5IiwiZXh0cmFQcm9wcyIsInRhYnMiLCJUYWJQYW5lIiwidGFiIiwiZGlzYWJsZWQiLCJjb3ZlckRvbSIsImJvZHkiLCJhY3Rpb25Eb20iLCJkaXZQcm9wcyIsIm5vSG92ZXJpbmciLCJob3ZlcmFibGUiLCJjb250YWluR3JpZCIsImVsZW1lbnQiLCJHcmlkIiwiTWV0YSIsIl9yZWFjdExpZmVjeWNsZXNDb21wYXQiLCJfcmNDaGVja2JveCIsIl9zaGFsbG93ZXF1YWwiLCJDaGVja2JveCIsInNhdmVDaGVja2JveCIsInJjQ2hlY2tib3giLCJyZW5kZXJDaGVja2JveCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZSIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImNoZWNrYm94R3JvdXAiLCJjaGVja2JveFByb3BzIiwidG9nZ2xlT3B0aW9uIiwibGFiZWwiLCJjaGVja2JveENsYXNzIiwiX3JlZjIkY2hlY2tib3hHcm91cCIsInJlZ2lzdGVyVmFsdWUiLCJuZXh0Q29udGV4dCIsIl9yZWYzIiwicHJldlZhbHVlIiwiX3JlZjQkY2hlY2tib3hHcm91cCIsImNhbmNlbFZhbHVlIiwiX3JlZjUkY2hlY2tib3hHcm91cCIsImZvY3VzIiwiYmx1ciIsIl9fQU5UX0NIRUNLQk9YIiwiYUZ1bmN0aW9uIiwiaXMiLCJ0b0lPYmplY3QiLCJhcnJheUluZGV4T2YiLCJjb2YiLCJyZWRlZmluZSIsIkl0ZXJhdG9ycyIsIiRpdGVyQ3JlYXRlIiwic2V0VG9TdHJpbmdUYWciLCJJVEVSQVRPUiIsIkJVR0dZIiwicmV0dXJuVGhpcyIsIkJhc2UiLCJOQU1FIiwiREVGQVVMVCIsIklTX1NFVCIsIkZPUkNFRCIsIm1ldGhvZHMiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldE1ldGhvZCIsImtpbmQiLCJERUZfVkFMVUVTIiwiVkFMVUVTX0JVRyIsIiRuYXRpdmUiLCIkZGVmYXVsdCIsIiRlbnRyaWVzIiwiJGFueU5hdGl2ZSIsImVudHJpZXMiLCJoaWRkZW5LZXlzIiwicElFIiwiZ09QRCIsIm1vbWVudCIsInN5bWJvbE1hcCIsIm51bWJlck1hcCIsInBsdXJhbEZvcm0iLCJwbHVyYWxzIiwicGx1cmFsaXplIiwic3RyIiwid2Vla2RheXNQYXJzZUV4YWN0Iiwic3VmZml4ZXMiLCIxIiwiNSIsIjgiLCI3MCIsIjgwIiwiMiIsIjciLCIyMCIsIjUwIiwiMyIsIjQiLCIxMDAiLCI2IiwiOSIsIjEwIiwiMzAiLCI2MCIsIjkwIiwicmVsYXRpdmVUaW1lV2l0aFBsdXJhbCIsIm51bSIsImZvcm1zIiwic3RhbmRhbG9uZSIsImxhc3REaWdpdCIsImxhc3QyRGlnaXRzIiwibW9udGhzUGFyc2VFeGFjdCIsInJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbiIsIm11dGF0aW9uVGFibGUiLCJzdWJzdHJpbmciLCJzb2Z0TXV0YXRpb24iLCJtdXRhdGlvbiIsIm1pbldlZWtkYXlzUGFyc2UiLCJmdWxsV2Vla2RheXNQYXJzZSIsInNob3J0V2Vla2RheXNQYXJzZSIsIm1vbnRoc1N0cmljdFJlZ2V4IiwibW9udGhzU2hvcnRTdHJpY3RSZWdleCIsImxvbmdNb250aHNQYXJzZSIsInNob3J0TW9udGhzUGFyc2UiLCJsYXN0TnVtYmVyIiwibGwiLCJsbGwiLCJsbGxsIiwicGx1cmFsIiwicHJvY2Vzc1JlbGF0aXZlVGltZSIsIm1vbnRoc05vbWluYXRpdmVFbCIsIm1vbnRoc0dlbml0aXZlRWwiLCJtb21lbnRUb0Zvcm1hdCIsIl9tb250aHNHZW5pdGl2ZUVsIiwiX21vbnRoc05vbWluYXRpdmVFbCIsImNhbGVuZGFyRWwiLCJfY2FsZW5kYXJFbCIsIm1vbnRoc1Nob3J0RG90IiwibnVtYmVyc1Bhc3QiLCJudW1iZXJzRnV0dXJlIiwidmVyYmFsTnVtYmVyIiwibW9udGhzU2hvcnRXaXRoRG90cyIsIm1vbnRoc1Nob3J0V2l0aG91dERvdHMiLCJ3ZWVrRW5kaW5ncyIsImVyYVllYXJPcmRpbmFsUmVnZXgiLCIkMCIsIiQxIiwiJDIiLCIwIiwiNDAiLCJpc1VwcGVyIiwiZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyIiwidHJhbnNsYXRlU2luZ3VsYXIiLCJzcGVjaWFsIiwicmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyIiwidHJhbnNsYXRvciIsIndvcmRzIiwiY29ycmVjdEdyYW1tYXRpY2FsQ2FzZSIsIndvcmRLZXkiLCJyZWxhdGl2ZVRpbWVNciIsIm1vbnRoc05vbWluYXRpdmUiLCJtb250aHNTdWJqZWN0aXZlIiwiMTIiLCIxMyIsIm51bWJlcnNOb3VucyIsIm51bWJlck5vdW4iLCJodW5kcmVkIiwidGVuIiwib25lIiwid29yZCIsIm51bWJlckFzTm91biIsInByb2Nlc3NIb3Vyc0Z1bmN0aW9uIiwibm9taW5hdGl2ZSIsImFjY3VzYXRpdmUiLCJnZW5pdGl2ZSIsIl9lbl9VUyIsIl9lbl9VUzIiLCJfZW5fVVMzIiwiX2VuX1VTNCIsIlBhZ2luYXRpb24iLCJEYXRlUGlja2VyIiwiVGltZVBpY2tlciIsIkNhbGVuZGFyIiwicGxhY2Vob2xkZXIiLCJUYWJsZSIsImZpbHRlclRpdGxlIiwiZmlsdGVyQ29uZmlybSIsImZpbHRlclJlc2V0Iiwic2VsZWN0SW52ZXJ0Iiwic29ydFRpdGxlIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJva1RleHQiLCJjYW5jZWxUZXh0IiwianVzdE9rVGV4dCIsIlBvcGNvbmZpcm0iLCJUcmFuc2ZlciIsInRpdGxlcyIsInNlYXJjaFBsYWNlaG9sZGVyIiwiaXRlbVVuaXQiLCJpdGVtc1VuaXQiLCJVcGxvYWQiLCJ1cGxvYWRpbmciLCJyZW1vdmVGaWxlIiwidXBsb2FkRXJyb3IiLCJwcmV2aWV3RmlsZSIsImRvd25sb2FkRmlsZSIsImRlc2NyaXB0aW9uIiwiZWRpdCIsImNvcHkiLCJjb3BpZWQiLCJQYWdlSGVhZGVyIiwiYmFjayIsInJhbmdlUGxhY2Vob2xkZXIiLCJ0aW1lUGlja2VyTG9jYWxlIiwid2FybmluZyIsInJ1bnRpbWUiLCJPcCIsIml0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZ1N5bWJvbCIsImRlZmluZSIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInRyeUxvY3NMaXN0IiwicHJvdG9HZW5lcmF0b3IiLCJHZW5lcmF0b3IiLCJnZW5lcmF0b3IiLCJDb250ZXh0IiwiX2ludm9rZSIsIm1ldGhvZCIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsIkNvbnRpbnVlU2VudGluZWwiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInJlY29yZCIsInRyeUNhdGNoIiwibWFrZUludm9rZU1ldGhvZCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90byIsIk5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlIiwiR3AiLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInJlc29sdmUiLCJyZWplY3QiLCJpbnZva2UiLCJfX2F3YWl0IiwidGhlbiIsInVud3JhcHBlZCIsImluZm8iLCJyZXN1bHROYW1lIiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJtYXJrIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJyZXZlcnNlIiwicG9wIiwic2tpcFRlbXBSZXNldCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwicmVnZW5lcmF0b3JSdW50aW1lIiwiYWNjaWRlbnRhbFN0cmljdE1vZGUiLCJlYWNoIiwiZnJlZUdsb2JhbCIsImZyZWVTZWxmIiwiY2FjaGVkU2V0VGltZW91dCIsImNhY2hlZENsZWFyVGltZW91dCIsImRlZmF1bHRTZXRUaW1vdXQiLCJkZWZhdWx0Q2xlYXJUaW1lb3V0IiwicnVuVGltZW91dCIsImN1cnJlbnRRdWV1ZSIsImRyYWluaW5nIiwicXVldWVJbmRleCIsImNsZWFuVXBOZXh0VGljayIsImRyYWluUXVldWUiLCJ0aW1lb3V0IiwicnVuIiwibWFya2VyIiwicnVuQ2xlYXJUaW1lb3V0IiwiSXRlbSIsIm5leHRUaWNrIiwiYnJvd3NlciIsImFyZ3YiLCJ2ZXJzaW9ucyIsIm9uIiwiYWRkTGlzdGVuZXIiLCJvbmNlIiwib2ZmIiwicmVtb3ZlTGlzdGVuZXIiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJlbWl0IiwicHJlcGVuZExpc3RlbmVyIiwicHJlcGVuZE9uY2VMaXN0ZW5lciIsImxpc3RlbmVycyIsImJpbmRpbmciLCJjd2QiLCJjaGRpciIsInVtYXNrIiwiZGVzdHJveUZucyIsIl9yY0RpYWxvZyIsIl9hZGRFdmVudExpc3RlbmVyIiwiX2ljb24iLCJfYnV0dG9uIiwibW91c2VQb3NpdGlvbiIsImRvY3VtZW50RWxlbWVudCIsInBhZ2VYIiwicGFnZVkiLCJoYW5kbGVDYW5jZWwiLCJvbkNhbmNlbCIsImhhbmRsZU9rIiwib25PayIsInJlbmRlckZvb3RlciIsIm9rVHlwZSIsImNvbmZpcm1Mb2FkaW5nIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJva0J1dHRvblByb3BzIiwicmVuZGVyTW9kYWwiLCJnZXRDb250ZXh0UG9wdXBDb250YWluZXIiLCJmb290ZXIiLCJ2aXNpYmxlIiwid3JhcENsYXNzTmFtZSIsImNlbnRlcmVkIiwiZ2V0Q29udGFpbmVyIiwiY2xvc2VJY29uIiwiZGVmYXVsdEZvb3RlciIsImNsb3NlSWNvblRvUmVuZGVyIiwib25DbG9zZSIsIm1hc2tUcmFuc2l0aW9uTmFtZSIsImNsb3NhYmxlIiwiX2J1dHRvbkdyb3VwIiwiX2NyZWF0ZUNsYXNzIiwiX0NvbXBvbmVudCIsIlBhbmVsQ29udGVudCIsImZvcmNlUmVuZGVyIiwiX2lzQWN0aXZlZCIsImlzQWN0aXZlIiwiX3Byb3BzIiwiZGVzdHJveUluYWN0aXZlUGFuZWwiLCJyb2xlIiwiY29udGVudENscyIsIkNvbGxhcHNlUGFuZWwiLCJfdGVtcCIsImhhbmRsZUl0ZW1DbGljayIsIm9uSXRlbUNsaWNrIiwicGFuZWxLZXkiLCJoYW5kbGVLZXlQcmVzcyIsIndoaWNoIiwiX2NsYXNzTmFtZXMyIiwiaGVhZGVyIiwiaGVhZGVyQ2xhc3MiLCJzaG93QXJyb3ciLCJhY2NvcmRpb24iLCJleHBhbmRJY29uIiwiaGVhZGVyQ2xzIiwiaXRlbUNscyIsIm9uS2V5UHJlc3MiLCJvcGVuQW5pbWF0aW9uIiwiYW5pbWF0ZSIsInNob3ciLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJjdXJyZW50QWN0aXZlS2V5IiwiQ29sbGFwc2UiLCJkZWZhdWx0QWN0aXZlS2V5Iiwib3BlbkFuaW1hdGlvbkZhY3RvcnkiLCJjb2xsYXBzZUNsYXNzTmFtZSIsImdldEl0ZW1zIiwib25DbGlja0l0ZW0iLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzcGxpY2UiLCJzZXRBY3RpdmVLZXkiLCJnZXROZXdDaGlsZCIsIl9wcm9wczIiLCJfY2hpbGQkcHJvcHMiLCJjaGlsZExpc3QiLCJhcnJheU9mIiwiUGFuZWwiLCJ0d29Ub25lQ29sb3JQYWxldHRlIiwic2Vjb25kYXJ5Q29sb3IiLCJfZXh0ZW5kczIiLCJyZXN0IiwiY29sb3JzIiwiaWNvbnMiLCJkZWZpbml0aW9ucyIsImNsZWFyIiwicmUiLCJub3Rfc3RyaW5nIiwibm90X2Jvb2wiLCJub3RfdHlwZSIsIm5vdF9wcmltaXRpdmUiLCJudW1lcmljX2FyZyIsImpzb24iLCJub3RfanNvbiIsIm1vZHVsbyIsImtleV9hY2Nlc3MiLCJpbmRleF9hY2Nlc3MiLCJzcHJpbnRmX2Zvcm1hdCIsInNwcmludGZfcGFyc2UiLCJ2c3ByaW50ZiIsImZtdCIsInBhcnNlX3RyZWUiLCJwaCIsInBhZCIsInBhZF9jaGFyYWN0ZXIiLCJwYWRfbGVuZ3RoIiwiaXNfcG9zaXRpdmUiLCJjdXJzb3IiLCJ0cmVlX2xlbmd0aCIsInBhcmFtX25vIiwiSlNPTiIsInN0cmluZ2lmeSIsInByZWNpc2lvbiIsInRvRXhwb25lbnRpYWwiLCJOdW1iZXIiLCJ0b1ByZWNpc2lvbiIsInBhZF9jaGFyIiwicmVwZWF0IiwiYWxpZ24iLCJzcHJpbnRmX2NhY2hlIiwiX2ZtdCIsImFyZ19uYW1lcyIsIlN5bnRheEVycm9yIiwiZmllbGRfbGlzdCIsInJlcGxhY2VtZW50X2ZpZWxkIiwiZmllbGRfbWF0Y2giLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJfbmV4dCIsIl90aHJvdyIsIl9kZWJvdW5jZSIsIl90eXBlIiwiU3BpblNpemVzIiwiZGVmYXVsdEluZGljYXRvciIsIlNwaW4iLCJkZWJvdW5jaWZ5VXBkYXRlU3Bpbm5pbmciLCJkZWxheSIsImNhbmNlbEV4aXN0aW5nU3BpbiIsInVwZGF0ZVNwaW5uaW5nIiwib3JpZ2luYWxVcGRhdGVTcGlubmluZyIsInNwaW5uaW5nIiwicmVuZGVyU3BpbiIsIl9yZWYyIiwidGlwIiwid3JhcHBlckNsYXNzTmFtZSIsInNwaW5DbGFzc05hbWUiLCJzcGluRWxlbWVudCIsImluZGljYXRvciIsImRvdENsYXNzTmFtZSIsInJlbmRlckluZGljYXRvciIsImlzTmVzdGVkUGF0dGVybiIsImNvbnRhaW5lckNsYXNzTmFtZSIsInNob3VsZEJlRGVsYXllZCIsInNob3VsZERlbGF5Iiwib25lT2YiLCJfX2ltcG9ydERlZmF1bHQiLCJtb2QiLCJnZW5lcmF0ZV8xIiwicHJlc2V0UHJpbWFyeUNvbG9ycyIsInJlZCIsInZvbGNhbm8iLCJvcmFuZ2UiLCJnb2xkIiwieWVsbG93IiwibGltZSIsImdyZWVuIiwiY3lhbiIsImJsdWUiLCJnZWVrYmx1ZSIsInB1cnBsZSIsIm1hZ2VudGEiLCJncmV5IiwicHJlc2V0UGFsZXR0ZXMiLCJwcmltYXJ5IiwiQ2xhc3NMaXN0Iiwibm9kZVR5cGUiLCJsaXN0IiwiY2xhc3NMaXN0IiwicmVtb3ZlTWF0Y2hpbmciLCJ0b2dnbGUiLCJmb3JjZSIsImdldEF0dHJpYnV0ZSIsImNvbnRhaW5zIiwiX01vZGFsIiwiX2NvbmZpcm0iLCJtb2RhbFdhcm4iLCJva0NhbmNlbCIsInN1Y2Nlc3MiLCJjb25maXJtIiwiZGVzdHJveUFsbCIsInJlc3RBUEkiLCJncm91cCIsInBvc3QiLCJxIiwiYWEiLCJiYSIsImNhIiwieiIsImVuY29kZVVSSUNvbXBvbmVudCIsImlzTW91bnRlZCIsImVucXVldWVGb3JjZVVwZGF0ZSIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJlbnF1ZXVlU2V0U3RhdGUiLCJyZWZzIiwidXBkYXRlciIsImZvcmNlVXBkYXRlIiwiaXNQdXJlUmVhY3RDb21wb25lbnQiLCJzdXNwZW5zZSIsIl9fc2VsZiIsIl9fc291cmNlIiwiJCR0eXBlb2YiLCJfb3duZXIiLCJrZXlQcmVmaXgiLCJlc2NhcGUiLCJlYSIsImZhIiwiZGEiLCJjcmVhdGVSZWYiLCJQdXJlQ29tcG9uZW50IiwiX2NhbGN1bGF0ZUNoYW5nZWRCaXRzIiwiX2N1cnJlbnRWYWx1ZSIsIl9jdXJyZW50VmFsdWUyIiwiX3RocmVhZENvdW50IiwiQ29uc3VtZXIiLCJmb3J3YXJkUmVmIiwicmVuZGVyIiwibGF6eSIsIl9jdG9yIiwiX3N0YXR1cyIsIl9yZXN1bHQiLCJtZW1vIiwidXNlQ29udGV4dCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VEZWJ1Z1ZhbHVlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZHVjZXIiLCJ1c2VSZWYiLCJQcm9maWxlciIsIlN0cmljdE1vZGUiLCJTdXNwZW5zZSIsInVuc3RhYmxlX1N1c3BlbnNlTGlzdCIsImNyZWF0ZUZhY3RvcnkiLCJ1bnN0YWJsZV93aXRoU3VzcGVuc2VDb25maWciLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyIsIlJlYWN0Q3VycmVudE93bmVyIiwiSXNTb21lUmVuZGVyZXJBY3RpbmciLCJleHRyYWN0RXZlbnRzIiwiZXZlbnRUeXBlcyIsInBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzIiwiaGEiLCJyZWdpc3RyYXRpb25OYW1lIiwiaWEiLCJqYSIsImRlcGVuZGVuY2llcyIsImthIiwib25FcnJvciIsImxhIiwibWEiLCJuYSIsIm9hIiwicGEiLCJxYSIsInNhIiwidGEiLCJ2YSIsIndhIiwiY3VycmVudFRhcmdldCIsInJhIiwieGEiLCJ5YSIsInphIiwiQWEiLCJfZGlzcGF0Y2hMaXN0ZW5lcnMiLCJfZGlzcGF0Y2hJbnN0YW5jZXMiLCJpc1Byb3BhZ2F0aW9uU3RvcHBlZCIsImlzUGVyc2lzdGVudCIsInJlbGVhc2UiLCJCYSIsIkNhIiwiaW5qZWN0RXZlbnRQbHVnaW5PcmRlciIsImluamVjdEV2ZW50UGx1Z2luc0J5TmFtZSIsIkRhIiwic3RhdGVOb2RlIiwiRWEiLCJGYSIsIkdhIiwiSGEiLCJJYSIsIkphIiwiS2EiLCJMYSIsInJldHVybiIsIk1hIiwiZGlzcGF0Y2hDb25maWciLCJOYSIsIl90YXJnZXRJbnN0IiwiT2EiLCJQYSIsIlFhIiwiUmEiLCJTYSIsIlRhIiwiYW5pbWF0aW9uaXRlcmF0aW9uIiwiVWEiLCJWYSIsIldhIiwiWGEiLCJZYSIsIlphIiwiYWIiLCJiYiIsImNiIiwiZGIiLCJlYiIsImZiIiwidGV4dENvbnRlbnQiLCJnYiIsImhiIiwibmF0aXZlRXZlbnQiLCJJbnRlcmZhY2UiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJkZWZhdWx0UHJldmVudGVkIiwicmV0dXJuVmFsdWUiLCJqYiIsImV2ZW50UG9vbCIsImtiIiwiZGVzdHJ1Y3RvciIsImliIiwiZ2V0UG9vbGVkIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJjYW5jZWxCdWJibGUiLCJwZXJzaXN0IiwiZXZlbnRQaGFzZSIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwidGltZVN0YW1wIiwiaXNUcnVzdGVkIiwibGIiLCJtYiIsIm5iIiwib2IiLCJwYiIsImRvY3VtZW50TW9kZSIsInFiIiwic2IiLCJ0YiIsInViIiwiYmVmb3JlSW5wdXQiLCJidWJibGVkIiwiY2FwdHVyZWQiLCJjb21wb3NpdGlvbkVuZCIsImNvbXBvc2l0aW9uU3RhcnQiLCJjb21wb3NpdGlvblVwZGF0ZSIsInZiIiwid2IiLCJ4YiIsImRldGFpbCIsInliIiwiQ2IiLCJBYiIsImNoYXIiLCJCYiIsIkRiIiwiRWIiLCJGYiIsIkdiIiwiSGIiLCJJYiIsIkpiIiwiS2IiLCJMYiIsIk1iIiwiTmIiLCJPYiIsIlBiIiwiY29sb3IiLCJkYXRldGltZSIsImVtYWlsIiwicGFzc3dvcmQiLCJyYW5nZSIsInNlYXJjaCIsInRlbCIsInVybCIsIlFiIiwibm9kZU5hbWUiLCJSYiIsInNyY0VsZW1lbnQiLCJjb3JyZXNwb25kaW5nVXNlRWxlbWVudCIsIlNiIiwic2V0QXR0cmlidXRlIiwiVGIiLCJWYiIsIl92YWx1ZVRyYWNrZXIiLCJnZXRWYWx1ZSIsInNldFZhbHVlIiwic3RvcFRyYWNraW5nIiwiVWIiLCJXYiIsIlhiIiwiWWIiLCJaYiIsIiRiIiwiYWMiLCJiYyIsImNjIiwiZGMiLCJlYyIsImZjIiwiZ2MiLCJoYyIsImljIiwiamMiLCJrYyIsImxjIiwibWMiLCJvYyIsInBjIiwiX2RlYnVnT3duZXIiLCJfZGVidWdTb3VyY2UiLCJmaWxlTmFtZSIsImxpbmVOdW1iZXIiLCJxYyIsInJjIiwic2MiLCJ0YyIsImFjY2VwdHNCb29sZWFucyIsImF0dHJpYnV0ZU5hbWUiLCJhdHRyaWJ1dGVOYW1lc3BhY2UiLCJtdXN0VXNlUHJvcGVydHkiLCJwcm9wZXJ0eU5hbWUiLCJzYW5pdGl6ZVVSTCIsInhjIiwieWMiLCJ6YyIsInZjIiwid2MiLCJ1YyIsInJlbW92ZUF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZU5TIiwiQWMiLCJCYyIsImRlZmF1bHRDaGVja2VkIiwiZGVmYXVsdFZhbHVlIiwiX3dyYXBwZXJTdGF0ZSIsImluaXRpYWxDaGVja2VkIiwiQ2MiLCJpbml0aWFsVmFsdWUiLCJjb250cm9sbGVkIiwiRGMiLCJFYyIsIkZjIiwiR2MiLCJvd25lckRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsInhsaW5rSHJlZiIsIkhjIiwiY2hhbmdlIiwiSWMiLCJKYyIsIktjIiwiTGMiLCJNYyIsIk5jIiwiT2MiLCJQYyIsImRldGFjaEV2ZW50IiwiUWMiLCJSYyIsImF0dGFjaEV2ZW50IiwiU2MiLCJUYyIsIlVjIiwiVmMiLCJfaXNJbnB1dEV2ZW50U3VwcG9ydGVkIiwiV2MiLCJ2aWV3IiwiWGMiLCJBbHQiLCJDb250cm9sIiwiU2hpZnQiLCJZYyIsImdldE1vZGlmaWVyU3RhdGUiLCJaYyIsIiRjIiwiYWQiLCJiZCIsImNkIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsInNoaWZ0S2V5IiwiYnV0dG9uIiwiYnV0dG9ucyIsInJlbGF0ZWRUYXJnZXQiLCJmcm9tRWxlbWVudCIsInRvRWxlbWVudCIsIm1vdmVtZW50WCIsIm1vdmVtZW50WSIsImVkIiwicG9pbnRlcklkIiwicHJlc3N1cmUiLCJ0YW5nZW50aWFsUHJlc3N1cmUiLCJ0aWx0WCIsInRpbHRZIiwidHdpc3QiLCJwb2ludGVyVHlwZSIsImlzUHJpbWFyeSIsImZkIiwibW91c2VFbnRlciIsIm1vdXNlTGVhdmUiLCJwb2ludGVyRW50ZXIiLCJwb2ludGVyTGVhdmUiLCJnZCIsImRlZmF1bHRWaWV3IiwicGFyZW50V2luZG93IiwiYWx0ZXJuYXRlIiwiaGQiLCJqZCIsImtkIiwicmVzcG9uZGVyIiwibGQiLCJlZmZlY3RUYWciLCJvZCIsInFkIiwic2libGluZyIsInBkIiwiTWFwIiwiU2V0IiwicmQiLCJhbmltYXRpb25OYW1lIiwiZWxhcHNlZFRpbWUiLCJwc2V1ZG9FbGVtZW50Iiwic2QiLCJjbGlwYm9hcmREYXRhIiwidGQiLCJ1ZCIsImNoYXJDb2RlIiwidmQiLCJFc2MiLCJTcGFjZWJhciIsIkxlZnQiLCJVcCIsIlJpZ2h0IiwiRG93biIsIkRlbCIsIldpbiIsIk1lbnUiLCJBcHBzIiwiU2Nyb2xsIiwiTW96UHJpbnRhYmxlS2V5Iiwid2QiLCIxNiIsIjE3IiwiMTgiLCIxOSIsIjI3IiwiMzIiLCIzMyIsIjM0IiwiMzUiLCIzNiIsIjM3IiwiMzgiLCIzOSIsIjQ1IiwiNDYiLCIxMTIiLCIxMTMiLCIxMTQiLCIxMTUiLCIxMTYiLCIxMTciLCIxMTgiLCIxMTkiLCIxMjAiLCIxMjEiLCIxMjIiLCIxMjMiLCIxNDQiLCIxNDUiLCIyMjQiLCJ4ZCIsImxvY2F0aW9uIiwieWQiLCJkYXRhVHJhbnNmZXIiLCJ6ZCIsInRvdWNoZXMiLCJ0YXJnZXRUb3VjaGVzIiwiY2hhbmdlZFRvdWNoZXMiLCJBZCIsIkJkIiwiZGVsdGFYIiwid2hlZWxEZWx0YVgiLCJkZWx0YVkiLCJ3aGVlbERlbHRhWSIsIndoZWVsRGVsdGEiLCJkZWx0YVoiLCJkZWx0YU1vZGUiLCJDZCIsIkRkIiwiRWQiLCJGZCIsIkdkIiwiSGQiLCJJZCIsIkpkIiwiS2QiLCJMZCIsImV2ZW50UHJpb3JpdHkiLCJNZCIsImdldEV2ZW50UHJpb3JpdHkiLCJOZCIsIk9kIiwiUGQiLCJ0YXJnZXRJbnN0IiwiYW5jZXN0b3JzIiwiY29udGFpbmVySW5mbyIsInRvcExldmVsVHlwZSIsIlFkIiwiUmQiLCJTZCIsIlRkIiwiVWQiLCJWZCIsIldkIiwiWGQiLCJZZCIsImZpcnN0Q2hpbGQiLCJaZCIsIm5leHRTaWJsaW5nIiwiYWUiLCJIVE1MSUZyYW1lRWxlbWVudCIsImhyZWYiLCJiZSIsImNvbnRlbnRFZGl0YWJsZSIsImNlIiwiZGUiLCJzZWxlY3QiLCJlZSIsImZlIiwiZ2UiLCJoZSIsImllIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJhbmNob3JOb2RlIiwiZ2V0U2VsZWN0aW9uIiwiYW5jaG9yT2Zmc2V0IiwiZm9jdXNOb2RlIiwiZm9jdXNPZmZzZXQiLCJqZSIsIm9uU2VsZWN0IiwibGUiLCJrZSIsIm1lIiwiZGVmYXVsdFNlbGVjdGVkIiwibmUiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIm9lIiwicGUiLCJxZSIsIlNpbXBsZUV2ZW50UGx1Z2luIiwiRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIiwiQ2hhbmdlRXZlbnRQbHVnaW4iLCJTZWxlY3RFdmVudFBsdWdpbiIsIkJlZm9yZUlucHV0RXZlbnRQbHVnaW4iLCJzZSIsInRlIiwidWUiLCJ2ZSIsIk1TQXBwIiwiZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24iLCJuYW1lc3BhY2VVUkkiLCJpbm5lckhUTUwiLCJyZW1vdmVDaGlsZCIsIndlIiwibGFzdENoaWxkIiwibm9kZVZhbHVlIiwieGUiLCJhbmltYXRpb25JdGVyYXRpb25Db3VudCIsImJvcmRlckltYWdlT3V0c2V0IiwiYm9yZGVySW1hZ2VTbGljZSIsImJvcmRlckltYWdlV2lkdGgiLCJib3hGbGV4IiwiYm94RmxleEdyb3VwIiwiYm94T3JkaW5hbEdyb3VwIiwiY29sdW1uQ291bnQiLCJjb2x1bW5zIiwiZmxleCIsImZsZXhHcm93IiwiZmxleFBvc2l0aXZlIiwiZmxleFNocmluayIsImZsZXhOZWdhdGl2ZSIsImZsZXhPcmRlciIsImdyaWRBcmVhIiwiZ3JpZFJvdyIsImdyaWRSb3dFbmQiLCJncmlkUm93U3BhbiIsImdyaWRSb3dTdGFydCIsImdyaWRDb2x1bW4iLCJncmlkQ29sdW1uRW5kIiwiZ3JpZENvbHVtblNwYW4iLCJncmlkQ29sdW1uU3RhcnQiLCJmb250V2VpZ2h0IiwibGluZUNsYW1wIiwibGluZUhlaWdodCIsIm9wYWNpdHkiLCJvcmRlciIsIm9ycGhhbnMiLCJ0YWJTaXplIiwid2lkb3dzIiwiekluZGV4Iiwiem9vbSIsImZpbGxPcGFjaXR5IiwiZmxvb2RPcGFjaXR5Iiwic3RvcE9wYWNpdHkiLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlTWl0ZXJsaW1pdCIsInN0cm9rZU9wYWNpdHkiLCJzdHJva2VXaWR0aCIsInllIiwiemUiLCJ0cmltIiwiQWUiLCJzZXRQcm9wZXJ0eSIsIkNlIiwibWVudWl0ZW0iLCJhcmVhIiwiYnIiLCJjb2wiLCJlbWJlZCIsImhyIiwiaW1nIiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJwYXJhbSIsInRyYWNrIiwid2JyIiwiRGUiLCJFZSIsIkZlIiwiR2UiLCJIZSIsIkllIiwiSmUiLCJhdXRvRm9jdXMiLCJLZSIsIl9faHRtbCIsIkxlIiwiTWUiLCJOZSIsIk9lIiwiUGUiLCJRZSIsIlJlIiwiU2UiLCJfX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0IiwiX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQiLCJjaGlsZENvbnRleHRUeXBlcyIsIlRlIiwiVWUiLCJWZSIsIldlIiwiZ2V0Q2hpbGRDb250ZXh0IiwiWGUiLCJfX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dCIsIlllIiwiWmUiLCJ1bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkiLCIkZSIsInVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2siLCJhZiIsInVuc3RhYmxlX2NhbmNlbENhbGxiYWNrIiwiYmYiLCJ1bnN0YWJsZV9zaG91bGRZaWVsZCIsImNmIiwidW5zdGFibGVfcmVxdWVzdFBhaW50IiwiZGYiLCJ1bnN0YWJsZV9ub3ciLCJlZiIsInVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsIiwiZmYiLCJ1bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSIsImhmIiwidW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkiLCJqZiIsInVuc3RhYmxlX05vcm1hbFByaW9yaXR5Iiwia2YiLCJ1bnN0YWJsZV9Mb3dQcmlvcml0eSIsImxmIiwidW5zdGFibGVfSWRsZVByaW9yaXR5IiwibWYiLCJuZiIsIm9mIiwicGYiLCJxZiIsInJmIiwic2YiLCJ0ZiIsInVmIiwidmYiLCJ3ZiIsInhmIiwieWYiLCJ6ZiIsIkFmIiwiQ2YiLCJEZiIsIkVmIiwiRmYiLCJHZiIsIkhmIiwiSWYiLCJKZiIsImNoaWxkRXhwaXJhdGlvblRpbWUiLCJLZiIsImZpcnN0Q29udGV4dCIsImV4cGlyYXRpb25UaW1lIiwiTGYiLCJNZiIsIm9ic2VydmVkQml0cyIsInJlc3BvbmRlcnMiLCJOZiIsIk9mIiwiYmFzZVN0YXRlIiwiZmlyc3RVcGRhdGUiLCJsYXN0VXBkYXRlIiwiZmlyc3RDYXB0dXJlZFVwZGF0ZSIsImxhc3RDYXB0dXJlZFVwZGF0ZSIsImZpcnN0RWZmZWN0IiwibGFzdEVmZmVjdCIsImZpcnN0Q2FwdHVyZWRFZmZlY3QiLCJsYXN0Q2FwdHVyZWRFZmZlY3QiLCJQZiIsIlFmIiwic3VzcGVuc2VDb25maWciLCJwYXlsb2FkIiwibmV4dEVmZmVjdCIsIlJmIiwiU2YiLCJ1cGRhdGVRdWV1ZSIsIm1lbW9pemVkU3RhdGUiLCJUZiIsIlVmIiwiVmYiLCJXZiIsIlhmIiwiWWYiLCJaZiIsIiRmIiwiYWciLCJiZyIsImZnIiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsImNnIiwiZGciLCJlZyIsInNob3VsZENvbXBvbmVudFVwZGF0ZSIsImhnIiwiY29udGV4dFR5cGUiLCJpZyIsImpnIiwiY29tcG9uZW50RGlkTW91bnQiLCJrZyIsImxnIiwiX3N0cmluZ1JlZiIsIm1nIiwibmciLCJvZyIsInBnIiwiZWxlbWVudFR5cGUiLCJxZyIsImltcGxlbWVudGF0aW9uIiwicmciLCJzZyIsInJiIiwiZGVsZXRlIiwiQmUiLCJ0ZyIsInVnIiwidmciLCJ3ZyIsInhnIiwieWciLCJ6ZyIsIkFnIiwidGFnTmFtZSIsIkJnIiwiQ2ciLCJEZyIsIkhnIiwibWVtb2l6ZWRQcm9wcyIsInJldmVhbE9yZGVyIiwiUWciLCJSZyIsIlNnIiwiVGciLCJVZyIsIlZnIiwiV2ciLCJYZyIsIllnIiwiWmciLCIkZyIsImFoIiwiYmgiLCJjaCIsImRoIiwiZWgiLCJmaCIsImloIiwiamgiLCJiYXNlVXBkYXRlIiwia2giLCJsaCIsIm1oIiwibGFzdFJlbmRlcmVkUmVkdWNlciIsImRpc3BhdGNoIiwibGFzdFJlbmRlcmVkU3RhdGUiLCJlYWdlclJlZHVjZXIiLCJlYWdlclN0YXRlIiwibmgiLCJkZXN0cm95IiwiZGVwcyIsIm9oIiwicWgiLCJyaCIsInNoIiwicmVhZENvbnRleHQiLCJ1c2VSZXNwb25kZXIiLCJQZyIsIktnIiwidWgiLCJ2aCIsIndoIiwieGgiLCJ5aCIsInBlbmRpbmdQcm9wcyIsInpoIiwiQWgiLCJCaCIsIkNoIiwiRGgiLCJFaCIsIkZoIiwiR2giLCJIaCIsIkloIiwiSmgiLCJLaCIsIkxoIiwiTWgiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJOaCIsInBlbmRpbmdDb250ZXh0IiwiT2giLCJQaCIsImZhbGxiYWNrIiwidW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2siLCJRaCIsImlzQmFja3dhcmRzIiwicmVuZGVyaW5nIiwidGFpbCIsInRhaWxFeHBpcmF0aW9uIiwidGFpbE1vZGUiLCJSaCIsIlNoIiwiVGgiLCJWaCIsIldoIiwiJGgiLCJhaSIsImJpIiwib25jbGljayIsImNpIiwiV2Vha1NldCIsImRpIiwiZ2kiLCJmaSIsImhpIiwiamkiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImVpIiwia2kiLCJsaSIsIm1pIiwibmkiLCJpbnNlcnRCZWZvcmUiLCJfcmVhY3RSb290Q29udGFpbmVyIiwib2kiLCJ3YXNNdWx0aXBsZSIsIm11bHRpcGxlIiwicGkiLCJxaSIsInJpIiwic2kiLCJ0aSIsInVpIiwidmkiLCJ3aSIsImNvbXBvbmVudERpZENhdGNoIiwieGkiLCJjb21wb25lbnRTdGFjayIsInlpIiwiemkiLCJBaSIsIkppIiwiS2kiLCJMaSIsIk1pIiwiTmkiLCJQaSIsIlFpIiwiUmkiLCJTaSIsIlRpIiwiVWkiLCJWaSIsIldpIiwidGltZW91dE1zIiwiWGkiLCJZaSIsInBpbmdUaW1lIiwiWmkiLCJmaXJzdFBlbmRpbmdUaW1lIiwibGFzdFBlbmRpbmdUaW1lIiwiY2FsbGJhY2tFeHBpcmF0aW9uVGltZSIsImNhbGxiYWNrTm9kZSIsIiRpIiwiYWoiLCJiaiIsImNqIiwiZWoiLCJmaiIsImdqIiwiaGoiLCJmaW5pc2hlZFdvcmsiLCJmaW5pc2hlZEV4cGlyYXRpb25UaW1lIiwidGltZW91dEhhbmRsZSIsImlqIiwiamoiLCJwaW5nQ2FjaGUiLCJraiIsImxqIiwiZmlyc3RCYXRjaCIsIl9kZWZlciIsIl9leHBpcmF0aW9uVGltZSIsIl9vbkNvbXBsZXRlIiwiZGoiLCJidXN5TWluRHVyYXRpb25NcyIsImJ1c3lEZWxheU1zIiwibWoiLCJjcmVhdGVFbGVtZW50TlMiLCJjcmVhdGVUZXh0Tm9kZSIsIm5qIiwicmFuZ2VDb3VudCIsInpiIiwiZm9jdXNlZEVsZW0iLCJzZWxlY3Rpb25SYW5nZSIsInVhIiwiZ2giLCJvaiIsIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlIiwiJGQiLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsImNyZWF0ZVJhbmdlIiwic2V0U3RhcnQiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInNldEVuZCIsImxlZnQiLCJzY3JvbGxMZWZ0IiwidG9wIiwic2Nyb2xsVG9wIiwiJGEiLCJuYyIsIm1kIiwiRmoiLCJYaCIsIlloIiwiR2oiLCJuZCIsIlpoIiwiZ2YiLCJwaiIsInFqIiwicmoiLCJoaWRkZW4iLCJCZiIsInNqIiwiaHlkcmF0ZSIsInVuc3RhYmxlX29ic2VydmVkQml0cyIsInVqIiwidmoiLCJ3aiIsInhqIiwieWoiLCJ6aiIsIkFqIiwiQmoiLCJfcm9vdCIsIl9jYWxsYmFja3MiLCJfaGFzQ2hpbGRyZW4iLCJfZGlkQ29tcGxldGUiLCJfY2hpbGRyZW4iLCJDaiIsIl9kaWRDb21taXQiLCJfb25Db21taXQiLCJEaiIsIl9pbnRlcm5hbFJvb3QiLCJFaiIsIkhqIiwiSmoiLCJoYXNBdHRyaWJ1dGUiLCJJaiIsIktqIiwicXVlcnlTZWxlY3RvckFsbCIsImZvcm0iLCJjb21taXQiLCJ1bm1vdW50IiwiY3JlYXRlQmF0Y2giLCJOaiIsImNyZWF0ZVBvcnRhbCIsInVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsInVuc3RhYmxlX2NyZWF0ZVBvcnRhbCIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwidW5zdGFibGVfaW50ZXJhY3RpdmVVcGRhdGVzIiwidW5zdGFibGVfZGlzY3JldGVVcGRhdGVzIiwidW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXMiLCJmbHVzaFN5bmMiLCJ1bnN0YWJsZV9jcmVhdGVSb290IiwidW5zdGFibGVfY3JlYXRlU3luY1Jvb3QiLCJ1bnN0YWJsZV9mbHVzaENvbnRyb2xsZWQiLCJFdmVudHMiLCJmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSIsImJ1bmRsZVR5cGUiLCJyZW5kZXJlclBhY2thZ2VOYW1lIiwiaXNEaXNhYmxlZCIsInN1cHBvcnRzRmliZXIiLCJpbmplY3QiLCJvbkNvbW1pdEZpYmVyUm9vdCIsIm9uQ29tbWl0RmliZXJVbm1vdW50IiwidGoiLCJvdmVycmlkZUhvb2tTdGF0ZSIsIm92ZXJyaWRlUHJvcHMiLCJzZXRTdXNwZW5zZUhhbmRsZXIiLCJzY2hlZHVsZVVwZGF0ZSIsImN1cnJlbnREaXNwYXRjaGVyUmVmIiwiZmluZEhvc3RJbnN0YW5jZUJ5RmliZXIiLCJmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2giLCJzY2hlZHVsZVJlZnJlc2giLCJzY2hlZHVsZVJvb3QiLCJzZXRSZWZyZXNoSGFuZGxlciIsImdldEN1cnJlbnRGaWJlciIsIk9qIiwiUGoiLCJ1bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZSIsIk1lc3NhZ2VDaGFubmVsIiwicGVyZm9ybWFuY2UiLCJwb3N0TWVzc2FnZSIsInBvcnQyIiwicG9ydDEiLCJvbm1lc3NhZ2UiLCJwcmV2aW91cyIsInByaW9yaXR5TGV2ZWwiLCJzdGFydFRpbWUiLCJ1bnN0YWJsZV9uZXh0IiwidW5zdGFibGVfd3JhcENhbGxiYWNrIiwidW5zdGFibGVfY29udGludWVFeGVjdXRpb24iLCJ1bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbiIsInVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlIiwiX3MiLCJfZSIsIl9hcnIiLCJfbiIsImFycmF5TGlrZVRvQXJyYXkiLCJfQ2hlY2tib3giLCJfR3JvdXAiLCJSZWFjdFByb3BUeXBlc1NlY3JldCIsImVtcHR5RnVuY3Rpb24iLCJlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0IiwicmVzZXRXYXJuaW5nQ2FjaGUiLCJzaGltIiwicHJvcE5hbWUiLCJwcm9wRnVsbE5hbWUiLCJzZWNyZXQiLCJnZXRTaGltIiwiaXNSZXF1aXJlZCIsIlJlYWN0UHJvcFR5cGVzIiwic3ltYm9sIiwiaW5zdGFuY2VPZiIsIm9iamVjdE9mIiwic2hhcGUiLCJleGFjdCIsImNoZWNrUHJvcFR5cGVzIiwiREVTQ1JJUFRPUlMiLCJnZXRLZXlzIiwiZ09QUyIsIiRhc3NpZ24iLCJhTGVuIiwiZ2V0U3ltYm9scyIsImlzRW51bSIsInRvTGVuZ3RoIiwidG9BYnNvbHV0ZUluZGV4IiwiSVNfSU5DTFVERVMiLCIkdGhpcyIsImZyb21JbmRleCIsInRvSW50ZWdlciIsIiRhdCIsIml0ZXJhdGVkIiwiX3QiLCJwb2ludCIsIlRPX1NUUklORyIsImNoYXJDb2RlQXQiLCJPYmplY3RQcm90byIsIlRPX1NUUklOR19UQUciLCJET01JdGVyYWJsZXMiLCJDb2xsZWN0aW9uIiwiYWRkVG9VbnNjb3BhYmxlcyIsInN0ZXAiLCJfayIsIkFyZ3VtZW50cyIsIktFWSIsIiRmYWlscyIsIndrcyIsIndrc0RlZmluZSIsImVudW1LZXlzIiwiX2NyZWF0ZSIsImdPUE5FeHQiLCIkR09QRCIsIiRHT1BTIiwiJERQIiwiZ09QTiIsIiRKU09OIiwiX3N0cmluZ2lmeSIsIkhJRERFTiIsIlRPX1BSSU1JVElWRSIsIlN5bWJvbFJlZ2lzdHJ5IiwiQWxsU3ltYm9scyIsIk9QU3ltYm9scyIsIlVTRV9OQVRJVkUiLCJRT2JqZWN0IiwiZmluZENoaWxkIiwic2V0U3ltYm9sRGVzYyIsInByb3RvRGVzYyIsInN5bSIsImlzU3ltYm9sIiwiJGRlZmluZVByb3BlcnR5IiwiJGRlZmluZVByb3BlcnRpZXMiLCIkcHJvcGVydHlJc0VudW1lcmFibGUiLCIkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiJGdldE93blByb3BlcnR5TmFtZXMiLCIkZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiSVNfT1AiLCIkc2V0IiwiZXM2U3ltYm9scyIsIndlbGxLbm93blN5bWJvbHMiLCJrZXlGb3IiLCJ1c2VTZXR0ZXIiLCJ1c2VTaW1wbGUiLCJGQUlMU19PTl9QUklNSVRJVkVTIiwicmVwbGFjZXIiLCIkcmVwbGFjZXIiLCJzZXREZXNjIiwiaXNFeHRlbnNpYmxlIiwiRlJFRVpFIiwicHJldmVudEV4dGVuc2lvbnMiLCJzZXRNZXRhIiwiTkVFRCIsImZhc3RLZXkiLCJnZXRXZWFrIiwib25GcmVlemUiLCJ3aW5kb3dOYW1lcyIsImdldFdpbmRvd05hbWVzIiwiY2hlY2siLCJidWdneSIsIiRPYmplY3QiLCJfaW50ZXJvcERlZmF1bHQiLCJzZXRNb21lbnRMb2NhbGUiLCJMb2NhbGVQcm92aWRlciIsIndlYnBhY2tQb2x5ZmlsbCIsInBhdGhzIiwid2VicGFja0NvbnRleHQiLCJyZXEiLCJ3ZWJwYWNrQ29udGV4dFJlc29sdmUiLCJjb2RlIiwiaXRlbXNfcGVyX3BhZ2UiLCJqdW1wX3RvIiwianVtcF90b19jb25maXJtIiwicGFnZSIsInByZXZfcGFnZSIsIm5leHRfcGFnZSIsInByZXZfNSIsIm5leHRfNSIsInByZXZfMyIsIm5leHRfMyIsInRvZGF5IiwiYmFja1RvVG9kYXkiLCJvayIsInRpbWVTZWxlY3QiLCJkYXRlU2VsZWN0Iiwid2Vla1NlbGVjdCIsIm1vbnRoU2VsZWN0IiwieWVhclNlbGVjdCIsImRlY2FkZVNlbGVjdCIsInllYXJGb3JtYXQiLCJkYXlGb3JtYXQiLCJkYXRlVGltZUZvcm1hdCIsIm1vbnRoQmVmb3JlWWVhciIsInByZXZpb3VzTW9udGgiLCJuZXh0TW9udGgiLCJwcmV2aW91c1llYXIiLCJuZXh0WWVhciIsInByZXZpb3VzRGVjYWRlIiwibmV4dERlY2FkZSIsInByZXZpb3VzQ2VudHVyeSIsIm5leHRDZW50dXJ5Iiwibm90ZSIsIndhcm5lZCIsIndhcm5pbmdPbmNlIiwibm90ZU9uY2UiLCJ3aXRoQ29uZmlnQ29uc3VtZXIiLCJTRkMiLCJjb25maWdQcm9wcyIsImJhc2ljUHJlZml4Q2xzIiwiY29ucyIsIl9jcmVhdGVSZWFjdENvbnRleHQiLCJfcmVuZGVyRW1wdHkiLCJfcmVhY3QiLCJfcHJvcFR5cGVzMiIsIl9ndWQyIiwiY3JlYXRlRXZlbnRFbWl0dGVyIiwiaGFuZGxlcnMiLCJoYW5kbGVyIiwibmV3VmFsdWUiLCJjaGFuZ2VkQml0cyIsImNhbGN1bGF0ZUNoYW5nZWRCaXRzIiwiX1Byb3ZpZGVyJGNoaWxkQ29udGV4IiwiX0NvbnN1bWVyJGNvbnRleHRUeXBlIiwiY29udGV4dFByb3AiLCJlbWl0dGVyIiwib2xkVmFsdWUiLCJfQ29tcG9uZW50MiIsIl90ZW1wMiIsIm9uVXBkYXRlIiwiX2VtcHR5IiwiaW1hZ2UiLCJQUkVTRU5URURfSU1BR0VfU0lNUExFIiwiX3NpbXBsZSIsImRlZmF1bHRFbXB0eUltZyIsInNpbXBsZUVtcHR5SW1nIiwiX3Byb3BzJGltYWdlIiwiaW1hZ2VTdHlsZSIsImRlcyIsImFsdCIsImltYWdlTm9kZSIsIlBSRVNFTlRFRF9JTUFHRV9ERUZBVUxUIiwieG1sbnMiLCJmaWxsIiwiZmlsbFJ1bGUiLCJjeCIsImN5IiwicngiLCJyeSIsInN0cm9rZSIsInJlZ2lzdGVyZWRWYWx1ZXMiLCJvcHRpb24iLCJvcHRpb25JbmRleCIsImdldE9wdGlvbnMiLCJmaW5kSW5kZXgiLCJvcHQiLCJyZW5kZXJHcm91cCIsImdyb3VwUHJlZml4Q2xzIiwiZG9tUHJvcHMiLCJfUm93Q29udGV4dCIsIl9yZXNwb25zaXZlT2JzZXJ2ZSIsIlJvd0FsaWducyIsIlJvd0p1c3RpZnkiLCJzY3JlZW5zIiwicmVuZGVyUm93IiwianVzdGlmeSIsImdldEd1dHRlciIsInJvd1N0eWxlIiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwibWFyZ2luVG9wIiwib3RoZXJQcm9wcyIsInN1YnNjcmliZSIsInVuc3Vic2NyaWJlIiwicmVzdWx0cyIsInJlc3BvbnNpdmVBcnJheSIsImJyZWFrcG9pbnQiLCJlbnF1aXJlIiwicmVzcG9uc2l2ZU1hcCIsIm1hdGNoTWVkaWEiLCJtZWRpYVF1ZXJ5IiwibWVkaWEiLCJ4cyIsInNtIiwieGwiLCJ4eGwiLCJzdWJzY3JpYmVycyIsInN1YlVpZCIsInBvaW50TWFwIiwicmVnaXN0ZXIiLCJ1bnJlZ2lzdGVyIiwic2NyZWVuIiwidW5tYXRjaCIsIk1lZGlhUXVlcnlEaXNwYXRjaCIsIk1lZGlhUXVlcnkiLCJVdGlsIiwicXVlcmllcyIsImJyb3dzZXJJc0luY2FwYWJsZSIsInNob3VsZERlZ3JhZGUiLCJpc1VuY29uZGl0aW9uYWwiLCJhZGRIYW5kbGVyIiwicXVlcnkiLCJyZW1vdmVIYW5kbGVyIiwiUXVlcnlIYW5kbGVyIiwibXFsIiwibGlzdGVuZXIiLCJhc3Nlc3MiLCJjb25zdHVjdG9yIiwiZXF1YWxzIiwiZGVmZXJTZXR1cCIsInNldHVwIiwiaW5pdGlhbGlzZWQiLCJvYmplY3RPck51bWJlciIsInJlbmRlckNvbCIsInB1bGwiLCJzaXplQ2xhc3NPYmoiLCJzaXplUHJvcHMiLCJwcm9wU2l6ZSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJ0b051bWJlciIsIm5hdGl2ZU1heCIsIm5hdGl2ZU1pbiIsIndhaXQiLCJsYXN0QXJncyIsImxhc3RUaGlzIiwibWF4V2FpdCIsInRpbWVySWQiLCJsYXN0Q2FsbFRpbWUiLCJsYXN0SW52b2tlVGltZSIsImxlYWRpbmciLCJtYXhpbmciLCJ0cmFpbGluZyIsImludm9rZUZ1bmMiLCJ0aGlzQXJnIiwibGVhZGluZ0VkZ2UiLCJ0aW1lckV4cGlyZWQiLCJzaG91bGRJbnZva2UiLCJ0aW1lU2luY2VMYXN0Q2FsbCIsInRyYWlsaW5nRWRnZSIsInRpbWVXYWl0aW5nIiwicmVtYWluaW5nV2FpdCIsImRlYm91bmNlZCIsImlzSW52b2tpbmciLCJmbHVzaCIsInJlVHJpbSIsInJlSXNCYWRIZXgiLCJyZUlzQmluYXJ5IiwicmVJc09jdGFsIiwiZnJlZVBhcnNlSW50IiwiaXNCaW5hcnkiLCJiYXNlR2V0VGFnIiwiaXNPYmplY3RMaWtlIiwiZ2V0UmF3VGFnIiwib2JqZWN0VG9TdHJpbmciLCJzeW1Ub1N0cmluZ1RhZyIsIm9iamVjdFByb3RvIiwibmF0aXZlT2JqZWN0VG9TdHJpbmciLCJpc093biIsInVubWFza2VkIiwiX0xpbmUiLCJfQ2lyY2xlIiwiUHJvZ3Jlc3NUeXBlcyIsIlByb2dyZXNzU3RhdHVzZXMiLCJQcm9ncmVzcyIsInJlbmRlclByb2dyZXNzIiwic2hvd0luZm8iLCJwcm9ncmVzc1N0YXR1cyIsImdldFByb2dyZXNzU3RhdHVzIiwicHJvZ3Jlc3NJbmZvIiwicmVuZGVyUHJvY2Vzc0luZm8iLCJzdWNjZXNzUGVyY2VudCIsIl90aGlzJHByb3BzJHBlcmNlbnQiLCJwZXJjZW50Iiwic3RhdHVzIiwiZ2V0UGVyY2VudE51bWJlciIsIl90aGlzJHByb3BzMiIsImljb25UeXBlIiwicGVyY2VudE51bWJlciIsInRyYWlsQ29sb3IiLCJnYXBEZWdyZWUiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlQ29sb3IiLCJub3JtYWxWaWV3Qm94IiwibmV3Vmlld0JveCIsIm91dGxpbmUiLCJ0d290b25lIiwiZ2V0Tm9kZSIsImZvY3VzYWJsZSIsInBhdGgiLCJnZXRJY29uIiwiQWNjb3VudEJvb2tGaWxsIiwiQWxlcnRGaWxsIiwiQWxpcGF5U3F1YXJlRmlsbCIsIkFsaXdhbmd3YW5nRmlsbCIsIkFsaXBheUNpcmNsZUZpbGwiLCJBbWF6b25DaXJjbGVGaWxsIiwiQW5kcm9pZEZpbGwiLCJBbWF6b25TcXVhcmVGaWxsIiwiQXBpRmlsbCIsIkFwcHN0b3JlRmlsbCIsIkF1ZGlvRmlsbCIsIkFwcGxlRmlsbCIsIkJhY2t3YXJkRmlsbCIsIkJhbmtGaWxsIiwiQmVoYW5jZUNpcmNsZUZpbGwiLCJCZWxsRmlsbCIsIkJlaGFuY2VTcXVhcmVGaWxsIiwiQm9va0ZpbGwiLCJCb3hQbG90RmlsbCIsIkJ1Z0ZpbGwiLCJDYWxjdWxhdG9yRmlsbCIsIkJ1bGJGaWxsIiwiQnVpbGRGaWxsIiwiQ2FsZW5kYXJGaWxsIiwiQ2FtZXJhRmlsbCIsIkNhckZpbGwiLCJDYXJldERvd25GaWxsIiwiQ2FyZXRMZWZ0RmlsbCIsIkNhcmV0UmlnaHRGaWxsIiwiQ2FycnlPdXRGaWxsIiwiQ2FyZXRVcEZpbGwiLCJDaGVja0NpcmNsZUZpbGwiLCJDaGVja1NxdWFyZUZpbGwiLCJDaHJvbWVGaWxsIiwiQ2lDaXJjbGVGaWxsIiwiQ2xvY2tDaXJjbGVGaWxsIiwiQ2xvc2VDaXJjbGVGaWxsIiwiQ2xvdWRGaWxsIiwiQ2xvc2VTcXVhcmVGaWxsIiwiQ29kZVNhbmRib3hTcXVhcmVGaWxsIiwiQ29kZVNhbmRib3hDaXJjbGVGaWxsIiwiQ29kZUZpbGwiLCJDb21wYXNzRmlsbCIsIkNvZGVwZW5DaXJjbGVGaWxsIiwiQ29kZXBlblNxdWFyZUZpbGwiLCJDb250YWN0c0ZpbGwiLCJDb250cm9sRmlsbCIsIkNvbnRhaW5lckZpbGwiLCJDb3B5RmlsbCIsIkNvcHlyaWdodENpcmNsZUZpbGwiLCJDcmVkaXRDYXJkRmlsbCIsIkNyb3duRmlsbCIsIkN1c3RvbWVyU2VydmljZUZpbGwiLCJEYXNoYm9hcmRGaWxsIiwiRGVsZXRlRmlsbCIsIkRpZmZGaWxsIiwiRGluZ3RhbGtDaXJjbGVGaWxsIiwiRGF0YWJhc2VGaWxsIiwiRGluZ3RhbGtTcXVhcmVGaWxsIiwiRGlzbGlrZUZpbGwiLCJEb2xsYXJDaXJjbGVGaWxsIiwiRG93bkNpcmNsZUZpbGwiLCJEb3duU3F1YXJlRmlsbCIsIkRyaWJiYmxlQ2lyY2xlRmlsbCIsIkRyaWJiYmxlU3F1YXJlRmlsbCIsIkRyb3Bib3hDaXJjbGVGaWxsIiwiRHJvcGJveFNxdWFyZUZpbGwiLCJFbnZpcm9ubWVudEZpbGwiLCJFZGl0RmlsbCIsIkV4Y2xhbWF0aW9uQ2lyY2xlRmlsbCIsIkV1cm9DaXJjbGVGaWxsIiwiRXhwZXJpbWVudEZpbGwiLCJFeWVJbnZpc2libGVGaWxsIiwiRXllRmlsbCIsIkZhY2Vib29rRmlsbCIsIkZhc3RCYWNrd2FyZEZpbGwiLCJGYXN0Rm9yd2FyZEZpbGwiLCJGaWxlQWRkRmlsbCIsIkZpbGVFeGNlbEZpbGwiLCJGaWxlRXhjbGFtYXRpb25GaWxsIiwiRmlsZUltYWdlRmlsbCIsIkZpbGVNYXJrZG93bkZpbGwiLCJGaWxlUGRmRmlsbCIsIkZpbGVQcHRGaWxsIiwiRmlsZVRleHRGaWxsIiwiRmlsZVdvcmRGaWxsIiwiRmlsZVVua25vd25GaWxsIiwiRmlsZVppcEZpbGwiLCJGaWxlRmlsbCIsIkZpbHRlckZpbGwiLCJGaXJlRmlsbCIsIkZsYWdGaWxsIiwiRm9sZGVyQWRkRmlsbCIsIkZvbGRlckZpbGwiLCJGb2xkZXJPcGVuRmlsbCIsIkZvcndhcmRGaWxsIiwiRnJvd25GaWxsIiwiRnVuZEZpbGwiLCJGdW5uZWxQbG90RmlsbCIsIkdpZnRGaWxsIiwiR2l0aHViRmlsbCIsIkdpdGxhYkZpbGwiLCJHb2xkZW5GaWxsIiwiR29vZ2xlQ2lyY2xlRmlsbCIsIkdvb2dsZVBsdXNDaXJjbGVGaWxsIiwiR29vZ2xlUGx1c1NxdWFyZUZpbGwiLCJHb29nbGVTcXVhcmVGaWxsIiwiSGRkRmlsbCIsIkhlYXJ0RmlsbCIsIkhpZ2hsaWdodEZpbGwiLCJIb21lRmlsbCIsIkhvdXJnbGFzc0ZpbGwiLCJIdG1sNUZpbGwiLCJJZGNhcmRGaWxsIiwiSWVDaXJjbGVGaWxsIiwiSWVTcXVhcmVGaWxsIiwiSW5mb0NpcmNsZUZpbGwiLCJJbnN0YWdyYW1GaWxsIiwiSW5zdXJhbmNlRmlsbCIsIkludGVyYWN0aW9uRmlsbCIsIkludGVyYXRpb25GaWxsIiwiTGF5b3V0RmlsbCIsIkxlZnRDaXJjbGVGaWxsIiwiTGVmdFNxdWFyZUZpbGwiLCJMaWtlRmlsbCIsIkxvY2tGaWxsIiwiTGlua2VkaW5GaWxsIiwiTWFpbEZpbGwiLCJNZWRpY2luZUJveEZpbGwiLCJNZWRpdW1DaXJjbGVGaWxsIiwiTWVkaXVtU3F1YXJlRmlsbCIsIk1laEZpbGwiLCJNZXNzYWdlRmlsbCIsIk1pbnVzQ2lyY2xlRmlsbCIsIk1pbnVzU3F1YXJlRmlsbCIsIk1vYmlsZUZpbGwiLCJNb25leUNvbGxlY3RGaWxsIiwiUGF1c2VDaXJjbGVGaWxsIiwiUGF5Q2lyY2xlRmlsbCIsIk5vdGlmaWNhdGlvbkZpbGwiLCJQaG9uZUZpbGwiLCJQaWN0dXJlRmlsbCIsIlBpZUNoYXJ0RmlsbCIsIlBsYXlDaXJjbGVGaWxsIiwiUGxheVNxdWFyZUZpbGwiLCJQbHVzQ2lyY2xlRmlsbCIsIlBsdXNTcXVhcmVGaWxsIiwiUG91bmRDaXJjbGVGaWxsIiwiUHJpbnRlckZpbGwiLCJQcm9maWxlRmlsbCIsIlByb2plY3RGaWxsIiwiUHVzaHBpbkZpbGwiLCJQcm9wZXJ0eVNhZmV0eUZpbGwiLCJRcUNpcmNsZUZpbGwiLCJRcVNxdWFyZUZpbGwiLCJRdWVzdGlvbkNpcmNsZUZpbGwiLCJSZWFkRmlsbCIsIlJlY29uY2lsaWF0aW9uRmlsbCIsIlJlZEVudmVsb3BlRmlsbCIsIlJlZGRpdENpcmNsZUZpbGwiLCJSZWRkaXRTcXVhcmVGaWxsIiwiUmVzdEZpbGwiLCJSaWdodENpcmNsZUZpbGwiLCJSb2NrZXRGaWxsIiwiUmlnaHRTcXVhcmVGaWxsIiwiU2FmZXR5Q2VydGlmaWNhdGVGaWxsIiwiU2F2ZUZpbGwiLCJTY2hlZHVsZUZpbGwiLCJTZWN1cml0eVNjYW5GaWxsIiwiU2V0dGluZ0ZpbGwiLCJTaG9wRmlsbCIsIlNob3BwaW5nRmlsbCIsIlNrZXRjaENpcmNsZUZpbGwiLCJTa2V0Y2hTcXVhcmVGaWxsIiwiU2tpbkZpbGwiLCJTbGFja0NpcmNsZUZpbGwiLCJTbGFja1NxdWFyZUZpbGwiLCJTa3lwZUZpbGwiLCJTbGlkZXJzRmlsbCIsIlNtaWxlRmlsbCIsIlNuaXBwZXRzRmlsbCIsIlNvdW5kRmlsbCIsIlN0YXJGaWxsIiwiU3RlcEJhY2t3YXJkRmlsbCIsIlN0ZXBGb3J3YXJkRmlsbCIsIlN0b3BGaWxsIiwiU3dpdGNoZXJGaWxsIiwiVGFibGV0RmlsbCIsIlRhZ0ZpbGwiLCJUYWdzRmlsbCIsIlRhb2Jhb0NpcmNsZUZpbGwiLCJUYW9iYW9TcXVhcmVGaWxsIiwiVG9vbEZpbGwiLCJUaHVuZGVyYm9sdEZpbGwiLCJUcmFkZW1hcmtDaXJjbGVGaWxsIiwiVHdpdHRlckNpcmNsZUZpbGwiLCJUcm9waHlGaWxsIiwiVHdpdHRlclNxdWFyZUZpbGwiLCJVbmxvY2tGaWxsIiwiVXBDaXJjbGVGaWxsIiwiVXBTcXVhcmVGaWxsIiwiVXNiRmlsbCIsIldhbGxldEZpbGwiLCJWaWRlb0NhbWVyYUZpbGwiLCJXYXJuaW5nRmlsbCIsIldlaWJvQ2lyY2xlRmlsbCIsIldlY2hhdEZpbGwiLCJXaW5kb3dzRmlsbCIsIllhaG9vRmlsbCIsIldlaWJvU3F1YXJlRmlsbCIsIll1cXVlRmlsbCIsIllvdXR1YmVGaWxsIiwiWmhpaHVTcXVhcmVGaWxsIiwiWmhpaHVDaXJjbGVGaWxsIiwiQWNjb3VudEJvb2tPdXRsaW5lIiwiQWxlcnRPdXRsaW5lIiwiQWxpcGF5Q2lyY2xlT3V0bGluZSIsIkFsaXdhbmd3YW5nT3V0bGluZSIsIkFuZHJvaWRPdXRsaW5lIiwiQXBpT3V0bGluZSIsIkFwcHN0b3JlT3V0bGluZSIsIkF1ZGlvT3V0bGluZSIsIkFwcGxlT3V0bGluZSIsIkJhY2t3YXJkT3V0bGluZSIsIkJhbmtPdXRsaW5lIiwiQmVsbE91dGxpbmUiLCJCZWhhbmNlU3F1YXJlT3V0bGluZSIsIkJvb2tPdXRsaW5lIiwiQm94UGxvdE91dGxpbmUiLCJCdWxiT3V0bGluZSIsIkJ1Z091dGxpbmUiLCJDYWxjdWxhdG9yT3V0bGluZSIsIkJ1aWxkT3V0bGluZSIsIkNhbGVuZGFyT3V0bGluZSIsIkNhbWVyYU91dGxpbmUiLCJDYXJPdXRsaW5lIiwiQ2FyZXREb3duT3V0bGluZSIsIkNhcmV0TGVmdE91dGxpbmUiLCJDYXJldFJpZ2h0T3V0bGluZSIsIkNhcnJ5T3V0T3V0bGluZSIsIkNoZWNrQ2lyY2xlT3V0bGluZSIsIkNhcmV0VXBPdXRsaW5lIiwiQ2hlY2tTcXVhcmVPdXRsaW5lIiwiQ2hyb21lT3V0bGluZSIsIkNsb2NrQ2lyY2xlT3V0bGluZSIsIkNsb3NlQ2lyY2xlT3V0bGluZSIsIkNsb3VkT3V0bGluZSIsIkNsb3NlU3F1YXJlT3V0bGluZSIsIkNvZGVPdXRsaW5lIiwiQ29kZXBlbkNpcmNsZU91dGxpbmUiLCJDb21wYXNzT3V0bGluZSIsIkNvbnRhY3RzT3V0bGluZSIsIkNvbnRhaW5lck91dGxpbmUiLCJDb250cm9sT3V0bGluZSIsIkNvcHlPdXRsaW5lIiwiQ3JlZGl0Q2FyZE91dGxpbmUiLCJDcm93bk91dGxpbmUiLCJDdXN0b21lclNlcnZpY2VPdXRsaW5lIiwiRGFzaGJvYXJkT3V0bGluZSIsIkRlbGV0ZU91dGxpbmUiLCJEaWZmT3V0bGluZSIsIkRhdGFiYXNlT3V0bGluZSIsIkRpc2xpa2VPdXRsaW5lIiwiRG93bkNpcmNsZU91dGxpbmUiLCJEb3duU3F1YXJlT3V0bGluZSIsIkRyaWJiYmxlU3F1YXJlT3V0bGluZSIsIkVudmlyb25tZW50T3V0bGluZSIsIkVkaXRPdXRsaW5lIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lIiwiRXhwZXJpbWVudE91dGxpbmUiLCJFeWVJbnZpc2libGVPdXRsaW5lIiwiRXllT3V0bGluZSIsIkZhY2Vib29rT3V0bGluZSIsIkZhc3RCYWNrd2FyZE91dGxpbmUiLCJGYXN0Rm9yd2FyZE91dGxpbmUiLCJGaWxlQWRkT3V0bGluZSIsIkZpbGVFeGNlbE91dGxpbmUiLCJGaWxlRXhjbGFtYXRpb25PdXRsaW5lIiwiRmlsZUltYWdlT3V0bGluZSIsIkZpbGVNYXJrZG93bk91dGxpbmUiLCJGaWxlUHB0T3V0bGluZSIsIkZpbGVUZXh0T3V0bGluZSIsIkZpbGVQZGZPdXRsaW5lIiwiRmlsZVppcE91dGxpbmUiLCJGaWxlT3V0bGluZSIsIkZpbHRlck91dGxpbmUiLCJGaWxlV29yZE91dGxpbmUiLCJGaXJlT3V0bGluZSIsIkZpbGVVbmtub3duT3V0bGluZSIsIkZsYWdPdXRsaW5lIiwiRm9sZGVyQWRkT3V0bGluZSIsIkZvbGRlck91dGxpbmUiLCJGb2xkZXJPcGVuT3V0bGluZSIsIkZvcndhcmRPdXRsaW5lIiwiRnJvd25PdXRsaW5lIiwiRnVuZE91dGxpbmUiLCJGdW5uZWxQbG90T3V0bGluZSIsIkdpZnRPdXRsaW5lIiwiR2l0aHViT3V0bGluZSIsIkdpdGxhYk91dGxpbmUiLCJIZWFydE91dGxpbmUiLCJIZGRPdXRsaW5lIiwiSGlnaGxpZ2h0T3V0bGluZSIsIkhvbWVPdXRsaW5lIiwiSG91cmdsYXNzT3V0bGluZSIsIkh0bWw1T3V0bGluZSIsIklkY2FyZE91dGxpbmUiLCJJbmZvQ2lyY2xlT3V0bGluZSIsIkluc3RhZ3JhbU91dGxpbmUiLCJJbnN1cmFuY2VPdXRsaW5lIiwiSW50ZXJhY3Rpb25PdXRsaW5lIiwiSW50ZXJhdGlvbk91dGxpbmUiLCJMYXlvdXRPdXRsaW5lIiwiTGVmdENpcmNsZU91dGxpbmUiLCJMZWZ0U3F1YXJlT3V0bGluZSIsIkxpa2VPdXRsaW5lIiwiTGlua2VkaW5PdXRsaW5lIiwiTG9ja091dGxpbmUiLCJNZWRpY2luZUJveE91dGxpbmUiLCJNZWhPdXRsaW5lIiwiTWFpbE91dGxpbmUiLCJNZXNzYWdlT3V0bGluZSIsIk1pbnVzQ2lyY2xlT3V0bGluZSIsIk1pbnVzU3F1YXJlT3V0bGluZSIsIk1vYmlsZU91dGxpbmUiLCJNb25leUNvbGxlY3RPdXRsaW5lIiwiUGF1c2VDaXJjbGVPdXRsaW5lIiwiUGF5Q2lyY2xlT3V0bGluZSIsIk5vdGlmaWNhdGlvbk91dGxpbmUiLCJQaG9uZU91dGxpbmUiLCJQaWN0dXJlT3V0bGluZSIsIlBpZUNoYXJ0T3V0bGluZSIsIlBsYXlTcXVhcmVPdXRsaW5lIiwiUGxheUNpcmNsZU91dGxpbmUiLCJQbHVzQ2lyY2xlT3V0bGluZSIsIlByaW50ZXJPdXRsaW5lIiwiUGx1c1NxdWFyZU91dGxpbmUiLCJQcm9maWxlT3V0bGluZSIsIlByb2plY3RPdXRsaW5lIiwiUHVzaHBpbk91dGxpbmUiLCJQcm9wZXJ0eVNhZmV0eU91dGxpbmUiLCJRdWVzdGlvbkNpcmNsZU91dGxpbmUiLCJSZWFkT3V0bGluZSIsIlJlY29uY2lsaWF0aW9uT3V0bGluZSIsIlJlZEVudmVsb3BlT3V0bGluZSIsIlJlc3RPdXRsaW5lIiwiUmlnaHRDaXJjbGVPdXRsaW5lIiwiUm9ja2V0T3V0bGluZSIsIlJpZ2h0U3F1YXJlT3V0bGluZSIsIlNhZmV0eUNlcnRpZmljYXRlT3V0bGluZSIsIlNjaGVkdWxlT3V0bGluZSIsIlNhdmVPdXRsaW5lIiwiU2VjdXJpdHlTY2FuT3V0bGluZSIsIlNldHRpbmdPdXRsaW5lIiwiU2hvcHBpbmdPdXRsaW5lIiwiU2tpbk91dGxpbmUiLCJTa3lwZU91dGxpbmUiLCJTbGFja1NxdWFyZU91dGxpbmUiLCJTbGlkZXJzT3V0bGluZSIsIlNtaWxlT3V0bGluZSIsIlNuaXBwZXRzT3V0bGluZSIsIlNvdW5kT3V0bGluZSIsIlN0YXJPdXRsaW5lIiwiU3RlcEJhY2t3YXJkT3V0bGluZSIsIlN0ZXBGb3J3YXJkT3V0bGluZSIsIlN0b3BPdXRsaW5lIiwiU3dpdGNoZXJPdXRsaW5lIiwiVGFnT3V0bGluZSIsIlRhYmxldE91dGxpbmUiLCJTaG9wT3V0bGluZSIsIlRhZ3NPdXRsaW5lIiwiVGFvYmFvQ2lyY2xlT3V0bGluZSIsIlRvb2xPdXRsaW5lIiwiVGh1bmRlcmJvbHRPdXRsaW5lIiwiVHJvcGh5T3V0bGluZSIsIlVubG9ja091dGxpbmUiLCJVcENpcmNsZU91dGxpbmUiLCJVcFNxdWFyZU91dGxpbmUiLCJVc2JPdXRsaW5lIiwiVmlkZW9DYW1lcmFPdXRsaW5lIiwiV2FsbGV0T3V0bGluZSIsIldhcm5pbmdPdXRsaW5lIiwiV2VjaGF0T3V0bGluZSIsIldlaWJvQ2lyY2xlT3V0bGluZSIsIldpbmRvd3NPdXRsaW5lIiwiWWFob29PdXRsaW5lIiwiV2VpYm9TcXVhcmVPdXRsaW5lIiwiWXVxdWVPdXRsaW5lIiwiWW91dHViZU91dGxpbmUiLCJBbGliYWJhT3V0bGluZSIsIkFsaWduQ2VudGVyT3V0bGluZSIsIkFsaWduTGVmdE91dGxpbmUiLCJBbGlnblJpZ2h0T3V0bGluZSIsIkFsaXBheU91dGxpbmUiLCJBbGl5dW5PdXRsaW5lIiwiQW1hem9uT3V0bGluZSIsIkFudENsb3VkT3V0bGluZSIsIkFwYXJ0bWVudE91dGxpbmUiLCJBbnREZXNpZ25PdXRsaW5lIiwiQXJlYUNoYXJ0T3V0bGluZSIsIkFycm93TGVmdE91dGxpbmUiLCJBcnJvd0Rvd25PdXRsaW5lIiwiQXJyb3dVcE91dGxpbmUiLCJBcnJvd3NBbHRPdXRsaW5lIiwiQXJyb3dSaWdodE91dGxpbmUiLCJBdWRpdE91dGxpbmUiLCJCYXJDaGFydE91dGxpbmUiLCJCYXJjb2RlT3V0bGluZSIsIkJhcnNPdXRsaW5lIiwiQmdDb2xvcnNPdXRsaW5lIiwiQmVoYW5jZU91dGxpbmUiLCJCbG9ja091dGxpbmUiLCJCb2xkT3V0bGluZSIsIkJvcmRlckJvdHRvbU91dGxpbmUiLCJCb3JkZXJMZWZ0T3V0bGluZSIsIkJvcmRlck91dGVyT3V0bGluZSIsIkJvcmRlcklubmVyT3V0bGluZSIsIkJvcmRlclJpZ2h0T3V0bGluZSIsIkJvcmRlckhvcml6b250YWxPdXRsaW5lIiwiQm9yZGVyVG9wT3V0bGluZSIsIkJvcmRlclZlcnRpY2xlT3V0bGluZSIsIkJvcmRlck91dGxpbmUiLCJCcmFuY2hlc091dGxpbmUiLCJDaGVja091dGxpbmUiLCJDaU91dGxpbmUiLCJDbG9zZU91dGxpbmUiLCJDbG91ZERvd25sb2FkT3V0bGluZSIsIkNsb3VkU2VydmVyT3V0bGluZSIsIkNsb3VkU3luY091dGxpbmUiLCJDbG91ZFVwbG9hZE91dGxpbmUiLCJDbHVzdGVyT3V0bGluZSIsIkNvZGVwZW5PdXRsaW5lIiwiQ29kZVNhbmRib3hPdXRsaW5lIiwiQ29sdW1IZWlnaHRPdXRsaW5lIiwiQ29sdW1uV2lkdGhPdXRsaW5lIiwiQ29sdW1uSGVpZ2h0T3V0bGluZSIsIkNvZmZlZU91dGxpbmUiLCJDb3B5cmlnaHRPdXRsaW5lIiwiRGFzaE91dGxpbmUiLCJEZXBsb3ltZW50VW5pdE91dGxpbmUiLCJEZXNrdG9wT3V0bGluZSIsIkRpbmdkaW5nT3V0bGluZSIsIkRpc2Nvbm5lY3RPdXRsaW5lIiwiRG9sbGFyT3V0bGluZSIsIkRvdWJsZVJpZ2h0T3V0bGluZSIsIkRvdENoYXJ0T3V0bGluZSIsIkRvdWJsZUxlZnRPdXRsaW5lIiwiRG93bmxvYWRPdXRsaW5lIiwiRHJpYmJibGVPdXRsaW5lIiwiRHJvcGJveE91dGxpbmUiLCJFbGxpcHNpc091dGxpbmUiLCJFbnRlck91dGxpbmUiLCJFdXJvT3V0bGluZSIsIkV4Y2VwdGlvbk91dGxpbmUiLCJFeGNsYW1hdGlvbk91dGxpbmUiLCJFeHBvcnRPdXRsaW5lIiwiRmFsbE91dGxpbmUiLCJGaWxlRG9uZU91dGxpbmUiLCJGaWxlU3luY091dGxpbmUiLCJGaWxlUHJvdGVjdE91dGxpbmUiLCJGaWxlU2VhcmNoT3V0bGluZSIsIkZpbGVKcGdPdXRsaW5lIiwiRm9udENvbG9yc091dGxpbmUiLCJGb250U2l6ZU91dGxpbmUiLCJGb3JrT3V0bGluZSIsIkZvcm1PdXRsaW5lIiwiRnVsbHNjcmVlbkV4aXRPdXRsaW5lIiwiRnVsbHNjcmVlbk91dGxpbmUiLCJHYXRld2F5T3V0bGluZSIsIkRvd25PdXRsaW5lIiwiRHJhZ091dGxpbmUiLCJHbG9iYWxPdXRsaW5lIiwiR29vZ2xlUGx1c091dGxpbmUiLCJHb29nbGVPdXRsaW5lIiwiSGVhdE1hcE91dGxpbmUiLCJHb2xkT3V0bGluZSIsIkhpc3RvcnlPdXRsaW5lIiwiSWVPdXRsaW5lIiwiSW5ib3hPdXRsaW5lIiwiSW1wb3J0T3V0bGluZSIsIkluZm9PdXRsaW5lIiwiSXRhbGljT3V0bGluZSIsIklzc3Vlc0Nsb3NlT3V0bGluZSIsIktleU91dGxpbmUiLCJMYXB0b3BPdXRsaW5lIiwiTGVmdE91dGxpbmUiLCJMaW5rT3V0bGluZSIsIkxpbmVDaGFydE91dGxpbmUiLCJMaW5lSGVpZ2h0T3V0bGluZSIsIkxpbmVPdXRsaW5lIiwiTG9hZGluZzNRdWFydGVyc091dGxpbmUiLCJMb2FkaW5nT3V0bGluZSIsIkxvZ2luT3V0bGluZSIsIkxvZ291dE91dGxpbmUiLCJNYW5PdXRsaW5lIiwiTWVkaXVtT3V0bGluZSIsIk1lZGl1bVdvcmttYXJrT3V0bGluZSIsIk1lbnVVbmZvbGRPdXRsaW5lIiwiTWVudUZvbGRPdXRsaW5lIiwiTWVudU91dGxpbmUiLCJNaW51c091dGxpbmUiLCJNb25pdG9yT3V0bGluZSIsIk1vcmVPdXRsaW5lIiwiT3JkZXJlZExpc3RPdXRsaW5lIiwiTnVtYmVyT3V0bGluZSIsIlBhdXNlT3V0bGluZSIsIlBlcmNlbnRhZ2VPdXRsaW5lIiwiUGFwZXJDbGlwT3V0bGluZSIsIlBpY0NlbnRlck91dGxpbmUiLCJQaWNMZWZ0T3V0bGluZSIsIlBsdXNPdXRsaW5lIiwiUGljUmlnaHRPdXRsaW5lIiwiUG91bmRPdXRsaW5lIiwiUG93ZXJvZmZPdXRsaW5lIiwiUHVsbFJlcXVlc3RPdXRsaW5lIiwiUXFPdXRsaW5lIiwiUXVlc3Rpb25PdXRsaW5lIiwiUmFkYXJDaGFydE91dGxpbmUiLCJRcmNvZGVPdXRsaW5lIiwiUmFkaXVzQm90dG9tbGVmdE91dGxpbmUiLCJSYWRpdXNCb3R0b21yaWdodE91dGxpbmUiLCJSYWRpdXNVcGxlZnRPdXRsaW5lIiwiUmFkaXVzVXByaWdodE91dGxpbmUiLCJSYWRpdXNTZXR0aW5nT3V0bGluZSIsIlJlZGRpdE91dGxpbmUiLCJSZWRvT3V0bGluZSIsIlJlbG9hZE91dGxpbmUiLCJSZXR3ZWV0T3V0bGluZSIsIlJpZ2h0T3V0bGluZSIsIlJpc2VPdXRsaW5lIiwiUm9sbGJhY2tPdXRsaW5lIiwiU2FmZXR5T3V0bGluZSIsIlJvYm90T3V0bGluZSIsIlNlYXJjaE91dGxpbmUiLCJTY2FuT3V0bGluZSIsIlNjaXNzb3JPdXRsaW5lIiwiU2VsZWN0T3V0bGluZSIsIlNoYWtlT3V0bGluZSIsIlNoYXJlQWx0T3V0bGluZSIsIlNob3BwaW5nQ2FydE91dGxpbmUiLCJTaHJpbmtPdXRsaW5lIiwiU2xhY2tPdXRsaW5lIiwiU21hbGxEYXNoT3V0bGluZSIsIlNvbHV0aW9uT3V0bGluZSIsIlNrZXRjaE91dGxpbmUiLCJTb3J0RGVzY2VuZGluZ091dGxpbmUiLCJTb3J0QXNjZW5kaW5nT3V0bGluZSIsIlN0b2NrT3V0bGluZSIsIlN3YXBMZWZ0T3V0bGluZSIsIlN3YXBSaWdodE91dGxpbmUiLCJTdHJpa2V0aHJvdWdoT3V0bGluZSIsIlN3YXBPdXRsaW5lIiwiU3luY091dGxpbmUiLCJUYWJsZU91dGxpbmUiLCJUZWFtT3V0bGluZSIsIlRhb2Jhb091dGxpbmUiLCJUb1RvcE91dGxpbmUiLCJUcmFkZW1hcmtPdXRsaW5lIiwiVHJhbnNhY3Rpb25PdXRsaW5lIiwiVHdpdHRlck91dGxpbmUiLCJVbmRlcmxpbmVPdXRsaW5lIiwiVW5kb091dGxpbmUiLCJVbm9yZGVyZWRMaXN0T3V0bGluZSIsIlVwT3V0bGluZSIsIlVwbG9hZE91dGxpbmUiLCJVc2VyQWRkT3V0bGluZSIsIlVzZXJncm91cEFkZE91dGxpbmUiLCJVc2VyT3V0bGluZSIsIlVzZXJEZWxldGVPdXRsaW5lIiwiVXNlcmdyb3VwRGVsZXRlT3V0bGluZSIsIlZlcnRpY2FsQWxpZ25Cb3R0b21PdXRsaW5lIiwiVmVydGljYWxBbGlnbk1pZGRsZU91dGxpbmUiLCJWZXJ0aWNhbEFsaWduVG9wT3V0bGluZSIsIlZlcnRpY2FsUmlnaHRPdXRsaW5lIiwiVmVydGljYWxMZWZ0T3V0bGluZSIsIldpZmlPdXRsaW5lIiwiWmhpaHVPdXRsaW5lIiwiV2VpYm9PdXRsaW5lIiwiV29tYW5PdXRsaW5lIiwiWm9vbUluT3V0bGluZSIsIkFjY291bnRCb29rVHdvVG9uZSIsIlpvb21PdXRPdXRsaW5lIiwiQWxlcnRUd29Ub25lIiwiQXBpVHdvVG9uZSIsIkFwcHN0b3JlVHdvVG9uZSIsIkJhbmtUd29Ub25lIiwiQXVkaW9Ud29Ub25lIiwiQmVsbFR3b1RvbmUiLCJCb29rVHdvVG9uZSIsIkJveFBsb3RUd29Ub25lIiwiQnVnVHdvVG9uZSIsIkJ1bGJUd29Ub25lIiwiQ2FsY3VsYXRvclR3b1RvbmUiLCJCdWlsZFR3b1RvbmUiLCJDYWxlbmRhclR3b1RvbmUiLCJDYW1lcmFUd29Ub25lIiwiQ2FyVHdvVG9uZSIsIkNhcnJ5T3V0VHdvVG9uZSIsIkNoZWNrQ2lyY2xlVHdvVG9uZSIsIkNoZWNrU3F1YXJlVHdvVG9uZSIsIkNsb2NrQ2lyY2xlVHdvVG9uZSIsIkNsb3NlQ2lyY2xlVHdvVG9uZSIsIkNsb3VkVHdvVG9uZSIsIkNsb3NlU3F1YXJlVHdvVG9uZSIsIkNvZGVUd29Ub25lIiwiQ29tcGFzc1R3b1RvbmUiLCJDb250YWN0c1R3b1RvbmUiLCJDb250YWluZXJUd29Ub25lIiwiQ29udHJvbFR3b1RvbmUiLCJDb3B5VHdvVG9uZSIsIkNyZWRpdENhcmRUd29Ub25lIiwiQ3Jvd25Ud29Ub25lIiwiQ3VzdG9tZXJTZXJ2aWNlVHdvVG9uZSIsIkRhc2hib2FyZFR3b1RvbmUiLCJEZWxldGVUd29Ub25lIiwiRGlmZlR3b1RvbmUiLCJEYXRhYmFzZVR3b1RvbmUiLCJEaXNsaWtlVHdvVG9uZSIsIkRvd25DaXJjbGVUd29Ub25lIiwiRG93blNxdWFyZVR3b1RvbmUiLCJFbnZpcm9ubWVudFR3b1RvbmUiLCJFZGl0VHdvVG9uZSIsIkV4Y2xhbWF0aW9uQ2lyY2xlVHdvVG9uZSIsIkV4cGVyaW1lbnRUd29Ub25lIiwiRXllSW52aXNpYmxlVHdvVG9uZSIsIkV5ZVR3b1RvbmUiLCJGaWxlQWRkVHdvVG9uZSIsIkZpbGVFeGNsYW1hdGlvblR3b1RvbmUiLCJGaWxlSW1hZ2VUd29Ub25lIiwiRmlsZUV4Y2VsVHdvVG9uZSIsIkZpbGVNYXJrZG93blR3b1RvbmUiLCJGaWxlUGRmVHdvVG9uZSIsIkZpbGVQcHRUd29Ub25lIiwiRmlsZVRleHRUd29Ub25lIiwiRmlsZVVua25vd25Ud29Ub25lIiwiRmlsZVppcFR3b1RvbmUiLCJGaWxlV29yZFR3b1RvbmUiLCJGaWxlVHdvVG9uZSIsIkZpbHRlclR3b1RvbmUiLCJGaXJlVHdvVG9uZSIsIkZvbGRlckFkZFR3b1RvbmUiLCJGbGFnVHdvVG9uZSIsIkZvbGRlclR3b1RvbmUiLCJGb2xkZXJPcGVuVHdvVG9uZSIsIkZyb3duVHdvVG9uZSIsIkZ1bmRUd29Ub25lIiwiRnVubmVsUGxvdFR3b1RvbmUiLCJHaWZ0VHdvVG9uZSIsIkhkZFR3b1RvbmUiLCJIZWFydFR3b1RvbmUiLCJIaWdobGlnaHRUd29Ub25lIiwiSG9tZVR3b1RvbmUiLCJIb3VyZ2xhc3NUd29Ub25lIiwiSHRtbDVUd29Ub25lIiwiSWRjYXJkVHdvVG9uZSIsIkluZm9DaXJjbGVUd29Ub25lIiwiSW5zdXJhbmNlVHdvVG9uZSIsIkludGVyYWN0aW9uVHdvVG9uZSIsIkludGVyYXRpb25Ud29Ub25lIiwiTGF5b3V0VHdvVG9uZSIsIkxlZnRDaXJjbGVUd29Ub25lIiwiTGVmdFNxdWFyZVR3b1RvbmUiLCJMaWtlVHdvVG9uZSIsIkxvY2tUd29Ub25lIiwiTWFpbFR3b1RvbmUiLCJNZWRpY2luZUJveFR3b1RvbmUiLCJNZWhUd29Ub25lIiwiTWVzc2FnZVR3b1RvbmUiLCJNaW51c0NpcmNsZVR3b1RvbmUiLCJNaW51c1NxdWFyZVR3b1RvbmUiLCJNb2JpbGVUd29Ub25lIiwiUGF1c2VDaXJjbGVUd29Ub25lIiwiTW9uZXlDb2xsZWN0VHdvVG9uZSIsIk5vdGlmaWNhdGlvblR3b1RvbmUiLCJQaG9uZVR3b1RvbmUiLCJQaWN0dXJlVHdvVG9uZSIsIlBsYXlDaXJjbGVUd29Ub25lIiwiUGxheVNxdWFyZVR3b1RvbmUiLCJQaWVDaGFydFR3b1RvbmUiLCJQbHVzQ2lyY2xlVHdvVG9uZSIsIlBsdXNTcXVhcmVUd29Ub25lIiwiUG91bmRDaXJjbGVUd29Ub25lIiwiUHJpbnRlclR3b1RvbmUiLCJQcm9maWxlVHdvVG9uZSIsIlByb2plY3RUd29Ub25lIiwiUHVzaHBpblR3b1RvbmUiLCJQcm9wZXJ0eVNhZmV0eVR3b1RvbmUiLCJRdWVzdGlvbkNpcmNsZVR3b1RvbmUiLCJSZWNvbmNpbGlhdGlvblR3b1RvbmUiLCJSZWRFbnZlbG9wZVR3b1RvbmUiLCJSZXN0VHdvVG9uZSIsIlJpZ2h0Q2lyY2xlVHdvVG9uZSIsIlJvY2tldFR3b1RvbmUiLCJSaWdodFNxdWFyZVR3b1RvbmUiLCJTYWZldHlDZXJ0aWZpY2F0ZVR3b1RvbmUiLCJTYXZlVHdvVG9uZSIsIlNjaGVkdWxlVHdvVG9uZSIsIlNlY3VyaXR5U2NhblR3b1RvbmUiLCJTZXR0aW5nVHdvVG9uZSIsIlNob3BUd29Ub25lIiwiU2hvcHBpbmdUd29Ub25lIiwiU2tpblR3b1RvbmUiLCJTbGlkZXJzVHdvVG9uZSIsIlNtaWxlVHdvVG9uZSIsIlNuaXBwZXRzVHdvVG9uZSIsIlNvdW5kVHdvVG9uZSIsIlN0YXJUd29Ub25lIiwiU3RvcFR3b1RvbmUiLCJTd2l0Y2hlclR3b1RvbmUiLCJUYWJsZXRUd29Ub25lIiwiVGFnVHdvVG9uZSIsIlRhZ3NUd29Ub25lIiwiVG9vbFR3b1RvbmUiLCJUcmFkZW1hcmtDaXJjbGVUd29Ub25lIiwiVW5sb2NrVHdvVG9uZSIsIlRyb3BoeVR3b1RvbmUiLCJVcENpcmNsZVR3b1RvbmUiLCJUaHVuZGVyYm9sdFR3b1RvbmUiLCJVcFNxdWFyZVR3b1RvbmUiLCJVc2JUd29Ub25lIiwiVmlkZW9DYW1lcmFUd29Ub25lIiwiV2FsbGV0VHdvVG9uZSIsIldhcm5pbmdUd29Ub25lIiwiQ2lUd29Ub25lIiwiQ29weXJpZ2h0VHdvVG9uZSIsIkRvbGxhclR3b1RvbmUiLCJFdXJvVHdvVG9uZSIsIkdvbGRUd29Ub25lIiwiQ2FubGVuZGFyVHdvVG9uZSIsInRpbnljb2xvcjJfMSIsImdldEh1ZSIsImhzdiIsImxpZ2h0IiwiaHVlIiwiZ2V0U2F0dXJhdGlvbiIsInNhdHVyYXRpb24iLCJwYXR0ZXJucyIsInBDb2xvciIsInRvSHN2IiwiY29sb3JTdHJpbmciLCJ0b0hleFN0cmluZyIsInRyaW1MZWZ0IiwidHJpbVJpZ2h0IiwidGlueUNvdW50ZXIiLCJtYXRoUm91bmQiLCJtYXRoTWluIiwibWF0aE1heCIsIm1hdGhSYW5kb20iLCJ0aW55Y29sb3IiLCJvcHRzIiwicmdiIiwibmFtZWQiLCJtYXRjaGVycyIsInJnYmEiLCJoc2wiLCJoc2xhIiwiaHN2YSIsImhleDgiLCJwYXJzZUludEZyb21IZXgiLCJjb252ZXJ0SGV4VG9EZWNpbWFsIiwiaGV4NiIsImhleDQiLCJoZXgzIiwic3RyaW5nSW5wdXRUb09iamVjdCIsImlzVmFsaWRDU1NVbml0IiwiYm91bmQwMSIsImNvbnZlcnRUb1BlcmNlbnRhZ2UiLCJoc3ZUb1JnYiIsImh1ZTJyZ2IiLCJoc2xUb1JnYiIsImJvdW5kQWxwaGEiLCJpbnB1dFRvUkdCIiwiX29yaWdpbmFsSW5wdXQiLCJfciIsIl9nIiwiX2IiLCJfcm91bmRBIiwiX2Zvcm1hdCIsIl9ncmFkaWVudFR5cGUiLCJncmFkaWVudFR5cGUiLCJfb2siLCJfdGNfaWQiLCJyZ2JUb0hzbCIsInJnYlRvSHN2IiwicmdiVG9IZXgiLCJhbGxvdzNDaGFyIiwiaGV4IiwicGFkMiIsInJnYmFUb0FyZ2JIZXgiLCJjb252ZXJ0RGVjaW1hbFRvSGV4IiwiZGVzYXR1cmF0ZSIsImFtb3VudCIsInRvSHNsIiwiY2xhbXAwMSIsInNhdHVyYXRlIiwiZ3JleXNjYWxlIiwibGlnaHRlbiIsImJyaWdodGVuIiwidG9SZ2IiLCJkYXJrZW4iLCJjb21wbGVtZW50IiwidHJpYWQiLCJ0ZXRyYWQiLCJzcGxpdGNvbXBsZW1lbnQiLCJhbmFsb2dvdXMiLCJzbGljZXMiLCJwYXJ0IiwibW9ub2Nocm9tYXRpYyIsIm1vZGlmaWNhdGlvbiIsImlzRGFyayIsImdldEJyaWdodG5lc3MiLCJpc0xpZ2h0IiwiZ2V0T3JpZ2luYWxJbnB1dCIsImdldEZvcm1hdCIsImdldEFscGhhIiwiZ2V0THVtaW5hbmNlIiwiUnNSR0IiLCJHc1JHQiIsIkJzUkdCIiwic2V0QWxwaGEiLCJ0b0hzdlN0cmluZyIsInRvSHNsU3RyaW5nIiwidG9IZXgiLCJ0b0hleDgiLCJhbGxvdzRDaGFyIiwicmdiYVRvSGV4IiwidG9IZXg4U3RyaW5nIiwidG9SZ2JTdHJpbmciLCJ0b1BlcmNlbnRhZ2VSZ2IiLCJ0b1BlcmNlbnRhZ2VSZ2JTdHJpbmciLCJ0b05hbWUiLCJoZXhOYW1lcyIsInRvRmlsdGVyIiwic2Vjb25kQ29sb3IiLCJoZXg4U3RyaW5nIiwic2Vjb25kSGV4OFN0cmluZyIsImZvcm1hdFNldCIsImZvcm1hdHRlZFN0cmluZyIsImhhc0FscGhhIiwiX2FwcGx5TW9kaWZpY2F0aW9uIiwiX2FwcGx5Q29tYmluYXRpb24iLCJmcm9tUmF0aW8iLCJuZXdDb2xvciIsImNvbG9yMSIsImNvbG9yMiIsIm1peCIsInJnYjEiLCJyZ2IyIiwicmVhZGFiaWxpdHkiLCJpc1JlYWRhYmxlIiwid2NhZzIiLCJ3Y2FnMlBhcm1zIiwicGFybXMiLCJsZXZlbCIsInZhbGlkYXRlV0NBRzJQYXJtcyIsIm1vc3RSZWFkYWJsZSIsImJhc2VDb2xvciIsImNvbG9yTGlzdCIsImluY2x1ZGVGYWxsYmFja0NvbG9ycyIsImJlc3RDb2xvciIsImJlc3RTY29yZSIsImFsaWNlYmx1ZSIsImFudGlxdWV3aGl0ZSIsImFxdWEiLCJhcXVhbWFyaW5lIiwiYXp1cmUiLCJiZWlnZSIsImJpc3F1ZSIsImJsYWNrIiwiYmxhbmNoZWRhbG1vbmQiLCJibHVldmlvbGV0IiwiYnJvd24iLCJidXJseXdvb2QiLCJidXJudHNpZW5uYSIsImNhZGV0Ymx1ZSIsImNoYXJ0cmV1c2UiLCJjaG9jb2xhdGUiLCJjb3JhbCIsImNvcm5mbG93ZXJibHVlIiwiY29ybnNpbGsiLCJjcmltc29uIiwiZGFya2JsdWUiLCJkYXJrY3lhbiIsImRhcmtnb2xkZW5yb2QiLCJkYXJrZ3JheSIsImRhcmtncmVlbiIsImRhcmtncmV5IiwiZGFya2toYWtpIiwiZGFya21hZ2VudGEiLCJkYXJrb2xpdmVncmVlbiIsImRhcmtvcmFuZ2UiLCJkYXJrb3JjaGlkIiwiZGFya3JlZCIsImRhcmtzYWxtb24iLCJkYXJrc2VhZ3JlZW4iLCJkYXJrc2xhdGVibHVlIiwiZGFya3NsYXRlZ3JheSIsImRhcmtzbGF0ZWdyZXkiLCJkYXJrdHVycXVvaXNlIiwiZGFya3Zpb2xldCIsImRlZXBwaW5rIiwiZGVlcHNreWJsdWUiLCJkaW1ncmF5IiwiZGltZ3JleSIsImRvZGdlcmJsdWUiLCJmaXJlYnJpY2siLCJmbG9yYWx3aGl0ZSIsImZvcmVzdGdyZWVuIiwiZnVjaHNpYSIsImdhaW5zYm9ybyIsImdob3N0d2hpdGUiLCJnb2xkZW5yb2QiLCJncmF5IiwiZ3JlZW55ZWxsb3ciLCJob25leWRldyIsImhvdHBpbmsiLCJpbmRpYW5yZWQiLCJpbmRpZ28iLCJpdm9yeSIsImtoYWtpIiwibGF2ZW5kZXIiLCJsYXZlbmRlcmJsdXNoIiwibGF3bmdyZWVuIiwibGVtb25jaGlmZm9uIiwibGlnaHRibHVlIiwibGlnaHRjb3JhbCIsImxpZ2h0Y3lhbiIsImxpZ2h0Z29sZGVucm9keWVsbG93IiwibGlnaHRncmF5IiwibGlnaHRncmVlbiIsImxpZ2h0Z3JleSIsImxpZ2h0cGluayIsImxpZ2h0c2FsbW9uIiwibGlnaHRzZWFncmVlbiIsImxpZ2h0c2t5Ymx1ZSIsImxpZ2h0c2xhdGVncmF5IiwibGlnaHRzbGF0ZWdyZXkiLCJsaWdodHN0ZWVsYmx1ZSIsImxpZ2h0eWVsbG93IiwibGltZWdyZWVuIiwibGluZW4iLCJtYXJvb24iLCJtZWRpdW1hcXVhbWFyaW5lIiwibWVkaXVtYmx1ZSIsIm1lZGl1bW9yY2hpZCIsIm1lZGl1bXB1cnBsZSIsIm1lZGl1bXNlYWdyZWVuIiwibWVkaXVtc2xhdGVibHVlIiwibWVkaXVtc3ByaW5nZ3JlZW4iLCJtZWRpdW10dXJxdW9pc2UiLCJtZWRpdW12aW9sZXRyZWQiLCJtaWRuaWdodGJsdWUiLCJtaW50Y3JlYW0iLCJtaXN0eXJvc2UiLCJtb2NjYXNpbiIsIm5hdmFqb3doaXRlIiwibmF2eSIsIm9sZGxhY2UiLCJvbGl2ZSIsIm9saXZlZHJhYiIsIm9yYW5nZXJlZCIsIm9yY2hpZCIsInBhbGVnb2xkZW5yb2QiLCJwYWxlZ3JlZW4iLCJwYWxldHVycXVvaXNlIiwicGFsZXZpb2xldHJlZCIsInBhcGF5YXdoaXAiLCJwZWFjaHB1ZmYiLCJwZXJ1IiwicGluayIsInBsdW0iLCJwb3dkZXJibHVlIiwicmViZWNjYXB1cnBsZSIsInJvc3licm93biIsInJveWFsYmx1ZSIsInNhZGRsZWJyb3duIiwic2FsbW9uIiwic2FuZHlicm93biIsInNlYWdyZWVuIiwic2Vhc2hlbGwiLCJzaWVubmEiLCJzaWx2ZXIiLCJza3libHVlIiwic2xhdGVibHVlIiwic2xhdGVncmF5Iiwic2xhdGVncmV5Iiwic25vdyIsInNwcmluZ2dyZWVuIiwic3RlZWxibHVlIiwidGFuIiwidGVhbCIsInRoaXN0bGUiLCJ0b21hdG8iLCJ0dXJxdW9pc2UiLCJ2aW9sZXQiLCJ3aGVhdCIsIndoaXRlIiwid2hpdGVzbW9rZSIsInllbGxvd2dyZWVuIiwiZmxpcHBlZCIsImZsaXAiLCJpc09uZVBvaW50WmVybyIsInByb2Nlc3NQZXJjZW50IiwiaXNQZXJjZW50YWdlIiwiQ1NTX1VOSVQiLCJQRVJNSVNTSVZFX01BVENIMyIsIlBFUk1JU1NJVkVfTUFUQ0g0Iiwic2NyaXB0VXJsIiwiX29wdGlvbnMkZXh0cmFDb21tb25QIiwiZXh0cmFDb21tb25Qcm9wcyIsImN1c3RvbUNhY2hlIiwic2NyaXB0IiwiSWNvbmZvbnQiLCJjb250ZW50IiwiX2luZGV4IiwiZmlsbFRlc3RlciIsIm91dGxpbmVUZXN0ZXIiLCJ0d29Ub25lVGVzdGVyIiwibmV3VHlwZSIsInNldFR3b1RvbmVDb2xvcnMiLCJnZXRUd29Ub25lQ29sb3JzIiwiaGFuZGxlR3JhZGllbnQiLCJzb3J0R3JhZGllbnQiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJncmFkaWVudHMiLCJ0ZW1wQXJyIiwiX09iamVjdCRlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiZm9ybWF0S2V5IiwiX3N0cm9rZUNvbG9yJGZyb20iLCJfc3Ryb2tlQ29sb3IkdG8iLCJfc3Ryb2tlQ29sb3IkZGlyZWN0aW8iLCJzb3J0ZWRHcmFkaWVudHMiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUHJvcHMiLCJiYWNrZ3JvdW5kIiwicGVyY2VudFN0eWxlIiwiYm9yZGVyUmFkaXVzIiwic3VjY2Vzc1BlcmNlbnRTdHlsZSIsInN1Y2Nlc3NTZWdtZW50IiwiX3JjUHJvZ3Jlc3MiLCJzdGF0dXNDb2xvck1hcCIsIm5vcm1hbCIsImdldFBlcmNlbnRhZ2UiLCJwdGciLCJzdWNjZXNzUHRnIiwiZ2FwUG9zaXRpb24iLCJjaXJjbGVTaXplIiwiY2lyY2xlU3R5bGUiLCJmb250U2l6ZSIsImNpcmNsZVdpZHRoIiwiZ2FwUG9zIiwiZ2FwRGVnIiwiaXNHcmFkaWVudCIsIkNpcmNsZSIsInRyYWlsV2lkdGgiLCJfcmNDb2xsYXBzZSIsIl9Db2xsYXBzZVBhbmVsIiwiX29wZW5BbmltYXRpb24iLCJyZW5kZXJFeHBhbmRJY29uIiwicGFuZWxQcm9wcyIsInJlbmRlckNvbGxhcHNlIiwiX3RoaXMkcHJvcHMkY2xhc3NOYW1lIiwiZXhwYW5kSWNvblBvc2l0aW9uIiwidHlwZU9mIiwiQXN5bmNNb2RlIiwiQ29uY3VycmVudE1vZGUiLCJDb250ZXh0Q29uc3VtZXIiLCJDb250ZXh0UHJvdmlkZXIiLCJFbGVtZW50IiwiRm9yd2FyZFJlZiIsIkxhenkiLCJNZW1vIiwiUG9ydGFsIiwiaXNWYWxpZEVsZW1lbnRUeXBlIiwiaXNBc3luY01vZGUiLCJpc0NvbmN1cnJlbnRNb2RlIiwiaXNDb250ZXh0Q29uc3VtZXIiLCJpc0NvbnRleHRQcm92aWRlciIsImlzRWxlbWVudCIsImlzRm9yd2FyZFJlZiIsImlzRnJhZ21lbnQiLCJpc0xhenkiLCJpc01lbW8iLCJpc1BvcnRhbCIsImlzUHJvZmlsZXIiLCJpc1N0cmljdE1vZGUiLCJpc1N1c3BlbnNlIiwicmVuZGVyQ29sbGFwc2VQYW5lbCIsIl90aGlzJHByb3BzJHNob3dBcnJvdyIsImNvbGxhcHNlUGFuZWxDbGFzc05hbWUiLCJfY3NzQW5pbWF0aW9uIiwiX3JhZiIsInJlcXVlc3RBbmltYXRpb25GcmFtZUlkIiwiZ2V0TmFub1NlY29uZHMiLCJocnRpbWUiLCJsb2FkVGltZSIsIm1vZHVsZUxvYWRUaW1lIiwibm9kZUxvYWRUaW1lIiwidXBUaW1lIiwidXB0aW1lIiwiX3Byb3BzJGhvdmVyYWJsZSIsImF2YXRhciIsImF2YXRhckRvbSIsInRpdGxlRG9tIiwiZGVzY3JpcHRpb25Eb20iLCJNZXRhRGV0YWlsIiwiUmVhY3RET00iLCJfcmNUYWJzIiwiX1RhYkNvbnRlbnQiLCJfVGFiQmFyIiwiX3N0eWxlQ2hlY2tlciIsIlRhYnMiLCJyZW1vdmVUYWIiLCJ0YXJnZXRLZXkiLCJvbkVkaXQiLCJoYW5kbGVDaGFuZ2UiLCJjcmVhdGVOZXdUYWIiLCJyZW5kZXJUYWJzIiwiX3RoaXMkcHJvcHMkdHlwZSIsInRhYlBvc2l0aW9uIiwiX3RoaXMkcHJvcHMkYW5pbWF0ZWQiLCJhbmltYXRlZCIsImhpZGVBZGQiLCJ0YWJQYW5lQW5pbWF0ZWQiLCJ0YWJQYW5lIiwiY2xzIiwiY2hpbGRyZW5XaXRoQ2xvc2UiLCJ0YWJCYXJQcm9wcyIsInJlbmRlclRhYkJhciIsInJlbmRlclRhYkNvbnRlbnQiLCJhbmltYXRlZFdpdGhNYXJnaW4iLCJpc0ZsZXhTdXBwb3J0ZWQiLCJfZXh0ZW5kczMiLCJfY2xhc3NDYWxsQ2hlY2szIiwiX2NyZWF0ZUNsYXNzMyIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMyIsIl9pbmhlcml0czMiLCJfY2xhc3NuYW1lczMiLCJUYWJDb250ZW50IiwiZGVzdHJveUluYWN0aXZlVGFiUGFuZSIsInJvb3RQcmVmaXhDbHMiLCJhY3RpdmVJbmRleCIsImFuaW1hdGVkU3R5bGUiLCJnZXRUYWJQYW5lcyIsIl9TY3JvbGxhYmxlSW5rVGFiQmFyIiwiVGFiQmFyIiwiUmVuZGVyVGFiQmFyIiwidGFiQmFyU3R5bGUiLCJpbmtCYXJBbmltYXRlZCIsImlua0JhciIsInByZXZJY29uVHlwZSIsIm5leHRJY29uVHlwZSIsInByZXZJY29uIiwibmV4dEljb24iLCJyZW5kZXJQcm9wcyIsImV4dHJhQ29udGVudCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczMiLCJfSW5rVGFiQmFyTm9kZTIiLCJfVGFiQmFyVGFic05vZGUyIiwiX1RhYkJhclJvb3ROb2RlMiIsIl9TY3JvbGxhYmxlVGFiQmFyTm9kZTIiLCJfU2F2ZVJlZjIiLCJTY3JvbGxhYmxlSW5rVGFiQmFyIiwicmVuZGVyVGFiQmFyTm9kZSIsInNhdmVSZWYiLCJnZXRSZWYiLCJfY29tcG9uZW50RGlkVXBkYXRlIiwiaW5pdCIsIl9jb21wb25lbnQkcHJvcHMiLCJzdHlsZXMiLCJwYW5lbHMiLCJyb290Tm9kZSIsIndyYXBOb2RlIiwiaW5rQmFyTm9kZSIsImFjdGl2ZVRhYiIsImlua0Jhck5vZGVTdHlsZSIsInRyYW5zZm9ybVN1cHBvcnRlZCIsImJvdHRvbSIsInJpZ2h0Iiwib2Zmc2V0V2lkdGgiLCJJbmtUYWJCYXJOb2RlIiwiX3dhcm5pbmcyIiwiVGFiQmFyVGFic05vZGUiLCJ0YWJCYXJHdXR0ZXIiLCJyc3QiLCJvblRhYkNsaWNrIiwibWFyZ2luUHJvcGVydHkiLCJUYWJCYXJSb290Tm9kZSIsIm9uS2V5RG93biIsInRvcE9yQm90dG9tIiwidGFiQmFyRXh0cmFDb250ZW50U3R5bGUiLCJmbG9hdCIsImV4dHJhQ29udGVudFN0eWxlIiwiX2NsYXNzbmFtZXM2IiwiX2RlYm91bmNlMiIsIl9yZXNpemVPYnNlcnZlclBvbHlmaWxsMiIsIlNjcm9sbGFibGVUYWJCYXJOb2RlIiwicHJldlRyYW5zaXRpb25FbmQiLCJjb250YWluZXIiLCJzY3JvbGxUb0FjdGl2ZVRhYiIsIm5hdldyYXAiLCJuZWVkVG9Tcm9sbCIsImlzTmV4dFByZXZTaG93biIsImxhc3ROZXh0UHJldlNob3duIiwiYWN0aXZlVGFiV0giLCJnZXRTY3JvbGxXSCIsIm5hdldyYXBOb2RlV0giLCJnZXRPZmZzZXRXSCIsIndyYXBPZmZzZXQiLCJnZXRPZmZzZXRMVCIsImFjdGl2ZVRhYk9mZnNldCIsInNldE9mZnNldCIsIm9uUHJldkNsaWNrIiwibmF2V3JhcE5vZGUiLCJvbk5leHRDbGljayIsImRlYm91bmNlZFJlc2l6ZSIsInNldE5leHRQcmV2IiwicmVzaXplT2JzZXJ2ZXIiLCJvYnNlcnZlIiwibmV4dFByZXYiLCJkaXNjb25uZWN0IiwibmF2Tm9kZSIsIm5hdlRhYnNDb250YWluZXIiLCJuYXZOb2RlV0giLCJjb250YWluZXJXSCIsIm1pbk9mZnNldCIsIl9zdGF0ZSIsInJlYWxPZmZzZXQiLCJzZXROZXh0Iiwic2V0UHJldiIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImNoZWNrTmV4dFByZXYiLCJuYXZPZmZzZXQiLCJuYXZTdHlsZSIsIl9jbGFzc25hbWVzMiIsIl9jbGFzc25hbWVzNCIsIl9zdGF0ZTIiLCJzY3JvbGxBbmltYXRlZCIsIm5hdldyYXBwZXIiLCJzaG93TmV4dFByZXYiLCJwcmV2QnV0dG9uIiwidW5zZWxlY3RhYmxlIiwib25UcmFuc2l0aW9uRW5kIiwibmV4dEJ1dHRvbiIsIm5hdkNsYXNzTmFtZSIsIm5hdkNsYXNzZXMiLCJlbGUiLCJNYXBTaGltIiwiZ2V0SW5kZXgiLCJjbGFzc18xIiwiX19lbnRyaWVzX18iLCJpc0Jyb3dzZXIiLCJnbG9iYWwkMSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSQxIiwidHJhbnNpdGlvbktleXMiLCJtdXRhdGlvbk9ic2VydmVyU3VwcG9ydGVkIiwiTXV0YXRpb25PYnNlcnZlciIsIlJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciIsImNvbm5lY3RlZF8iLCJtdXRhdGlvbkV2ZW50c0FkZGVkXyIsIm11dGF0aW9uc09ic2VydmVyXyIsIm9ic2VydmVyc18iLCJvblRyYW5zaXRpb25FbmRfIiwicmVmcmVzaCIsImxlYWRpbmdDYWxsIiwidHJhaWxpbmdDYWxsIiwicmVzb2x2ZVBlbmRpbmciLCJwcm94eSIsInRpbWVvdXRDYWxsYmFjayIsInRocm90dGxlIiwiYWRkT2JzZXJ2ZXIiLCJvYnNlcnZlciIsImNvbm5lY3RfIiwicmVtb3ZlT2JzZXJ2ZXIiLCJvYnNlcnZlcnMiLCJkaXNjb25uZWN0XyIsInVwZGF0ZU9ic2VydmVyc18iLCJhY3RpdmVPYnNlcnZlcnMiLCJnYXRoZXJBY3RpdmUiLCJoYXNBY3RpdmUiLCJicm9hZGNhc3RBY3RpdmUiLCJhdHRyaWJ1dGVzIiwiY2hhcmFjdGVyRGF0YSIsInN1YnRyZWUiLCJnZXRJbnN0YW5jZSIsImluc3RhbmNlXyIsImRlZmluZUNvbmZpZ3VyYWJsZSIsImdldFdpbmRvd09mIiwiZW1wdHlSZWN0IiwiY3JlYXRlUmVjdEluaXQiLCJ0b0Zsb2F0IiwiZ2V0Qm9yZGVyc1NpemUiLCJwb3NpdGlvbnMiLCJwb3NpdGlvbiIsImdldEhUTUxFbGVtZW50Q29udGVudFJlY3QiLCJjbGllbnRXaWR0aCIsImNsaWVudEhlaWdodCIsInBhZGRpbmdzIiwicG9zaXRpb25zXzEiLCJnZXRQYWRkaW5ncyIsImhvcml6UGFkIiwidmVydFBhZCIsImlzRG9jdW1lbnRFbGVtZW50IiwidmVydFNjcm9sbGJhciIsImhvcml6U2Nyb2xsYmFyIiwiaXNTVkdHcmFwaGljc0VsZW1lbnQiLCJTVkdHcmFwaGljc0VsZW1lbnQiLCJTVkdFbGVtZW50IiwiZ2V0QkJveCIsImdldENvbnRlbnRSZWN0IiwiYmJveCIsImdldFNWR0NvbnRlbnRSZWN0IiwiUmVzaXplT2JzZXJ2YXRpb24iLCJicm9hZGNhc3RXaWR0aCIsImJyb2FkY2FzdEhlaWdodCIsImNvbnRlbnRSZWN0XyIsInJlY3QiLCJicm9hZGNhc3RSZWN0IiwiUmVzaXplT2JzZXJ2ZXJFbnRyeSIsInJlY3RJbml0IiwiQ29uc3RyIiwiY29udGVudFJlY3QiLCJET01SZWN0UmVhZE9ubHkiLCJSZXNpemVPYnNlcnZlclNQSSIsImNvbnRyb2xsZXIiLCJjYWxsYmFja0N0eCIsImFjdGl2ZU9ic2VydmF0aW9uc18iLCJvYnNlcnZhdGlvbnNfIiwiY2FsbGJhY2tfIiwiY29udHJvbGxlcl8iLCJjYWxsYmFja0N0eF8iLCJvYnNlcnZhdGlvbnMiLCJ1bm9ic2VydmUiLCJjbGVhckFjdGl2ZSIsIm9ic2VydmF0aW9uIiwiUmVzaXplT2JzZXJ2ZXIiLCJTYXZlUmVmIiwiX3JldCIsImlzU3R5bGVTdXBwb3J0Iiwic3R5bGVOYW1lTGlzdCIsImV2ZW50VHlwZSIsIl9yZWFjdERvbSIsIl9hZGREb21FdmVudExpc3RlbmVyIiwid3JhcENhbGxiYWNrIiwiX0V2ZW50T2JqZWN0MiIsInVzZUNhcHR1cmUiLCJjYXB0dXJlIiwiX0V2ZW50T2JqZWN0IiwiX0V2ZW50QmFzZU9iamVjdDIiLCJfb2JqZWN0QXNzaWduMiIsImNvbW1vblByb3BzIiwiaXNOdWxsT3JVbmRlZmluZWQiLCJldmVudE5vcm1hbGl6ZXJzIiwicmVnIiwiZml4IiwiZXZlbnQiLCJkZWx0YSIsImF4aXMiLCJIT1JJWk9OVEFMX0FYSVMiLCJWRVJUSUNBTF9BWElTIiwiZXZlbnREb2MiLCJkb2MiLCJjbGllbnRMZWZ0IiwiY2xpZW50VG9wIiwicmV0VHJ1ZSIsInJldEZhbHNlIiwiRG9tRXZlbnRPYmplY3QiLCJpc05hdGl2ZSIsImdldFByZXZlbnREZWZhdWx0IiwiZml4Rm5zIiwibm9ybWFsaXplciIsImZpeEZuIiwiRXZlbnRCYXNlT2JqZWN0UHJvdG8iLCJyZXR1cm5GYWxzZSIsInJldHVyblRydWUiLCJFdmVudEJhc2VPYmplY3QiLCJpc0V2ZW50T2JqZWN0IiwiaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQiLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCJoYWx0IiwiaW1tZWRpYXRlIiwiX3dhdmUiLCJyeFR3b0NOQ2hhciIsImlzVHdvQ05DaGFyIiwic3BhY2VDaGlsZHJlbiIsIm5lZWRJbnNlcnRlZCIsImlzUHJldkNoaWxkUHVyZSIsImlzQ3VycmVudENoaWxkUHVyZSIsImluc2VydFNwYWNlIiwiQnV0dG9uU2hhcGVzIiwiQnV0dG9uU2l6ZXMiLCJCdXR0b25IVE1MVHlwZXMiLCJCdXR0b24iLCJzYXZlQnV0dG9uUmVmIiwiYnV0dG9uTm9kZSIsImhhbmRsZUNsaWNrIiwicmVuZGVyQnV0dG9uIiwiZ2hvc3QiLCJibG9jayIsIl90aGlzJHN0YXRlIiwiaGFzVHdvQ05DaGFyIiwiYXV0b0luc2VydFNwYWNlIiwic2l6ZUNscyIsImljb25Ob2RlIiwia2lkcyIsImlzTmVlZEluc2VydGVkIiwibGlua0J1dHRvblJlc3RQcm9wcyIsImh0bWxUeXBlIiwiZml4VHdvQ05DaGFyIiwiZGVsYXlUaW1lb3V0IiwiYnV0dG9uVGV4dCIsIl9fQU5UX0JVVFRPTiIsInN0eWxlRm9yUGVzdWRvIiwiX0V2ZW50IiwiaXNIaWRkZW4iLCJvZmZzZXRQYXJlbnQiLCJpc05vdEdyZXkiLCJXYXZlIiwiYW5pbWF0aW9uU3RhcnQiLCJ3YXZlQ29sb3IiLCJpbnNlcnRFeHRyYU5vZGUiLCJleHRyYU5vZGUiLCJnZXRBdHRyaWJ1dGVOYW1lIiwibm9uY2UiLCJib3JkZXJDb2xvciIsIm9uVHJhbnNpdGlvblN0YXJ0IiwicmVzZXRFZmZlY3QiLCJiaW5kQW5pbWF0aW9uRXZlbnQiLCJjbGlja1dhdmVUaW1lb3V0SWQiLCJhbmltYXRpb25TdGFydElkIiwicmVuZGVyV2F2ZSIsIlRyYW5zaXRpb25FdmVudHMiLCJ3cmFwcGVyUmFmIiwiaWRzIiwiZGVsYXlGcmFtZXMiLCJteUlkIiwicmVzdEZyYW1lcyIsImludGVybmFsQ2FsbGJhY2siLCJwaWQiLCJkaXYiLCJjdXJyZW50Q29uZmlnIiwidW5tb3VudFJlc3VsdCIsInRyaWdnZXJDYW5jZWwiLCJDb25maXJtRGlhbG9nIiwiYWZ0ZXJDbG9zZSIsIklTX1JFQUNUXzE2IiwidXBkYXRlIiwibmV3Q29uZmlnIiwiX0FjdGlvbkJ1dHRvbiIsImtleWJvYXJkIiwibWFza1N0eWxlIiwiX3Byb3BzJGljb25UeXBlIiwiY29udGVudFByZWZpeENscyIsIm1hc2siLCJtYXNrQ2xvc2FibGUiLCJhdXRvRm9jdXNCdXR0b24iLCJjYW5jZWxCdXR0b24iLCJhY3Rpb25GbiIsImNsb3NlTW9kYWwiLCJidXR0b25Qcm9wcyIsIkFjdGlvbkJ1dHRvbiIsInRpbWVvdXRJZCIsIkxhenlSZW5kZXJCb3giLCJoaWRkZW5DbGFzc05hbWUiLCJ1c2VDbGFzc05hbWUiLCJ1dWlkIiwiZ2V0U2Nyb2xsIiwic2V0VHJhbnNmb3JtT3JpZ2luIiwiRGlhbG9nIiwiaW5UcmFuc2l0aW9uIiwib25BbmltYXRlTGVhdmUiLCJzd2l0Y2hTY3JvbGxpbmdFZmZlY3QiLCJvbkRpYWxvZ01vdXNlRG93biIsImRpYWxvZ01vdXNlRG93biIsIm9uTWFza01vdXNlVXAiLCJvbk1hc2tDbGljayIsIm9wZW5UaW1lIiwic2VudGluZWxTdGFydCIsInNlbnRpbmVsRW5kIiwiZ2V0RGlhbG9nRWxlbWVudCIsImRlc3QiLCJ0aXRsZUlkIiwiY2xvc2VyIiwic2VudGluZWxTdHlsZSIsImdldFRyYW5zaXRpb25OYW1lIiwiZGlhbG9nRWxlbWVudCIsIm9uTW91c2VEb3duIiwiYm9keVByb3BzIiwiZGVzdHJveU9uQ2xvc2UiLCJnZXRaSW5kZXhTdHlsZSIsImdldFdyYXBTdHlsZSIsIndyYXBTdHlsZSIsImdldE1hc2tTdHlsZSIsImdldE1hc2tFbGVtZW50IiwibWFza0VsZW1lbnQiLCJtYXNrVHJhbnNpdGlvbiIsImdldE1hc2tUcmFuc2l0aW9uTmFtZSIsIm1hc2tQcm9wcyIsIm1hc2tBbmltYXRpb24iLCJmb2N1c1RyaWdnZXJBZnRlckNsb3NlIiwidHJ5Rm9jdXMiLCJkaWFsb2dOb2RlIiwiZGlhbG9nIiwiZWxPZmZzZXQiLCJsYXN0T3V0U2lkZUZvY3VzTm9kZSIsImdldE9wZW5Db3VudCIsIm9uTW91c2VVcCIsIndyYXBQcm9wcyIsIkNvbnRhaW5lclJlbmRlciIsInJlbW92ZUNvbnRhaW5lciIsInJlbmRlckNvbXBvbmVudCIsInJlYWR5IiwiZ2V0Q29tcG9uZW50IiwicGFyZW50IiwiX2NvbXBvbmVudCIsImF1dG9Nb3VudCIsImF1dG9EZXN0cm95IiwiY2FjaGVkIiwiY3JlYXRlQ29udGFpbmVyIiwiZGlkVXBkYXRlIiwiX2NvbnRhaW5lciIsIl9vcHRpb25zJGVsZW1lbnQiLCJvbGRTdHlsZSIsInN0eWxlS2V5cyIsImNhY2hlU3R5bGUiLCJzY3JvbGxIZWlnaHQiLCJpbm5lckhlaWdodCIsImlubmVyV2lkdGgiLCJzY3JvbGxpbmdFZmZlY3RDbGFzc05hbWVSZWciLCJib2R5Q2xhc3NOYW1lIiwic2Nyb2xsQmFyU2l6ZSIsImZyZXNoIiwib3V0ZXIiLCJvdXRlclN0eWxlIiwicG9pbnRlckV2ZW50cyIsInZpc2liaWxpdHkiLCJ3aWR0aENvbnRhaW5lZCIsIndpZHRoU2Nyb2xsIiwiZ2V0U2Nyb2xsQmFyU2l6ZSIsImFkZENsYXNzTmFtZSIsIm93bktleXMiLCJlbnVtZXJhYmxlT25seSIsIl9vYmplY3RTcHJlYWQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwib3BlbkNvdW50Iiwid2luZG93SXNVbmRlZmluZWQiLCJjYWNoZU92ZXJmbG93IiwiUG9ydGFsV3JhcHBlciIsImdldFBhcmVudCIsIkhUTUxFbGVtZW50Iiwic2V0V3JhcHBlckNsYXNzTmFtZSIsInNhdmVQb3J0YWwiLCJyZW1vdmVDdXJyZW50Q29udGFpbmVyIiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIiwiX3Zpc2libGUiLCJfc2VsZiIsInByZXZWaXNpYmxlIiwicHJldkdldENvbnRhaW5lciIsInBvcnRhbCIsImNoaWxkUHJvcHMiLCJSZXN0UmVxdWVzdCIsInRpbWVvdXRJblNlY29uZHMiLCJyZXF1ZXN0IiwiZmV0Y2giLCJnZW5lcmF0ZUFyZ3MiLCJyZXNwb25zZSIsImJsb2IiLCJidWlsZEVycm9yIiwidmVyYiIsImhhbmRsZVJlcXVlc3QiLCJpY2xfdmFycyIsInJlc3RVcmwiLCJmZXRjaFdpdGhUaW1lb3V0IiwidGltZXIiLCJoZWFkZXJzIiwicmVzdE5vbmNlIiwiY3JlZGVudGlhbHMiLCJzdGF0dXNUZXh0IiwiQXBwIiwiZmlsZUNvdW50Iiwic2NhblByb2dyZXNzIiwib25IaWRlIiwiYnV0dG9uRXh0cmEiLCJlbmFibGUiLCJpbXBvcnRpbmciLCJzZXRJbXBvcnRpbmciLCJzZXREb25lIiwic2V0U2hvdyIsIm51bWJlckltcG9ydGVkIiwic2V0TnVtYmVySW1wb3J0ZWQiLCJkb0ltcG9ydCIsImVuZHBvaW50IiwicmVtYWluaW5nIiwicHJvZ3Jlc3NUZXh0IiwiVGl0bGUiLCJJbmZvIiwiSW1wb3J0QnV0dG9uIiwiTWVzc2FnZSIsIlByb2dyZXNzQXJlYSIsImNvbXBsZXRlZCIsIk1PU2NhblVJU1RQYWdlIiwic2V0U2VsZWN0ZWQiLCJyZWxvYWQiLCJTdHJpbmdUcmFuc2xhdGlvblBhbmVsIiwibW9TY2FuRWxlbWVudCIsImFkbWluVGV4dHNVcmwiLCJtb1NjYW5Db2x1bW4iLCJhZG1pblRleHRDb2x1bW4iLCJNT1NjYW5VSUxvY2FsaXphdGlvblBhZ2UiLCJhY2NvcmRpYW4iLCJVSSIsImZpbGVQYXRoIiwiaXNTVFBhZ2UiLCJydW5Gb3JBbGxTaXRlcyIsInNldHRpbmdzIiwidGV4dHMiLCJzZXRFcnJvciIsImRpc21pc3NpbmciLCJzZXREaXNtaXNzaW5nIiwib25EaXNtaXNzIiwiZ2V0U3RhdGUiLCJwcm9ncmVzc01zZyIsImdldEluZm8iLCJnZXRCdXR0b25UZXh0IiwiZ2V0RGlzbWlzc0J1dHRvblRleHQiLCJnZXRCdXR0b25FeHRyYSIsImVycm9yU3RhdGUiLCJUZXh0cyIsInN0UGFnZUVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInByZUdlbmVyYXRlIiwid3BtbF9tb19zY2FuX3VpX2ZpbGVzIiwiZG9tYWluc190b19wcmVfZ2VuZXJhdGVfY291bnQiLCJmaWxlX3BhdGgiLCJpc19zdF9wYWdlIiwiU2V0dGluZ3MiLCJydW5fcm9yX2FsbF9zaXRlcyIsImZpbGVzX3RvX3NjYW4iLCJzdHJpbmdUcmFuc2xhdGlvblBhbmVsRWxlbWVudCIsImlzX3NlYXJjaCIsImFkbWluX3RleHRzX3VybCIsImxvY2FsaXphdGlvblBhZ2VFbGVtZW50IiwiU2VudGluZWxDb250ZXh0IiwiU2VudGluZWxQcm92aWRlciIsIlNlbnRpbmVsQ29uc3VtZXIiLCJTZW50aW5lbCIsIm5leHRFbGVtZW50IiwicHJldkVsZW1lbnQiLCJzZXRSZWYiLCJzaG91bGRSZW5kZXIiLCJzZXRQYW5lbFNlbnRpbmVsU3RhcnQiLCJzZXRQYW5lbFNlbnRpbmVsRW5kIiwicGFuZWxTZW50aW5lbFN0YXJ0IiwicGFuZWxTZW50aW5lbEVuZCIsImdldERlZmF1bHRBY3RpdmVLZXkiLCJzZW50aW5lbElkIiwidGFiQmFyIiwib25OYXZLZXlEb3duIiwidGFiQ29udGVudCIsInNldFNlbnRpbmVsU3RhcnQiLCJzZXRTZW50aW5lbEVuZCIsImNvbnRlbnRzIiwib25TY3JvbGwiLCJuZXdTdGF0ZSIsImFjdGl2ZUtleUlzVmFsaWQiLCJldmVudEtleUNvZGUiLCJuZXh0S2V5IiwiZ2V0TmV4dEFjdGl2ZUtleSIsInByZXZpb3VzS2V5IiwidXBkYXRlU2VudGluZWxDb250ZXh0IiwidW5zaGlmdCIsIl9nZXQiLCJyZWNlaXZlciIsIl9zdXBlclByb3BCYXNlIiwiV3JhcHBlZENvbXBvbmVudCIsIl9XcmFwcGVkQ29tcG9uZW50IiwidXBkYXRlZCIsInBhdGhTdHlsZSIsInByZXZUaW1lU3RhbXAiLCJtaXhlZFR5cGUiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJleGNsdWRlZCIsInNvdXJjZUtleXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsInNvdXJjZVN5bWJvbEtleXMiLCJMaW5lIiwicGVyY2VudExpc3QiLCJzdHJva2VDb2xvckxpc3QiLCJjZW50ZXIiLCJwYXRoU3RyaW5nIiwidmlld0JveFN0cmluZyIsInN0YWNrUHRnIiwicHJlc2VydmVBc3BlY3RSYXRpbyIsImdyYWRpZW50U2VlZCIsInN0cmlwUGVyY2VudFRvTnVtYmVyIiwic3ltQXJyYXkiLCJnZXRQYXRoU3R5bGVzIiwicmFkaXVzIiwiYmVnaW5Qb3NpdGlvblgiLCJiZWdpblBvc2l0aW9uWSIsImVuZFBvc2l0aW9uWCIsImVuZFBvc2l0aW9uWSIsIlBJIiwiZ3JhZGllbnRJZCIsIl9nZXRQYXRoU3R5bGVzIiwiX2dldFBhdGhTdHlsZXMyIiwiZ3JhZGllbnQiLCJmaW5kIiwieDEiLCJ5MSIsIngyIiwieTIiLCJzdG9wQ29sb3IiLCJnZXRTdG9rZUxpc3QiLCJzYXZlSW5wdXQiLCJyZWFkT25seSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJnbG9iYWxQcm9wcyJdLCJtYXBwaW5ncyI6ImFBQ0UsSUFBSUEsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVUMsUUFHbkMsSUFBSUMsRUFBU0osRUFBaUJFLEdBQVksQ0FD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LElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxRQUFTLElBQ1QsV0FBWSxJQUNaLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsZ0JBQWlCLElBQ2pCLGFBQWMsSUFDZCxnQkFBaUIsSUFDakIsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLFVBQVcsSUFDWCxhQUFjLElBQ2QsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLFdBQVksSUFDWixjQUFlLElBQ2YsVUFBVyxJQUNYLGFBQWMsSUFDZCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFlBQWEsSUFD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SUFBVXRzQyxPQUFRLElBQVV1c0MsT0FDMUQySixTQUFVLElBQVUzSixLQUNwQndvSCxRQUFTLElBQVU1ekosS0FDbkI2ekosT0FBUSxJQUFVN3pKLEtBQ2xCNnVDLFNBQVUsSUFBVTd1QyxLQUNwQmt5QixRQUFTLElBQVVseUIsS0FDbkJpeUIsU0FBVSxJQUFVa1osVUFBVSxDQUFDLElBQVVsNkIsT0FBUSxJQUFVcFMsU0FDM0Q4MEosU0FBVSxJQUFVdm9ILEtBQ3BCbXRDLFVBQVcsSUFBVW50QyxLQUNyQngwQyxNQUFPLElBQVVzeUMsS0FFbkIsRUFBU3VDLGFBQWUsQ0FDdEJ6ZCxVQUFXLGNBQ1gyRCxVQUFXLEdBQ1htQixNQUFPLEdBQ1BsQixLQUFNLFdBQ053ekMsZ0JBQWdCLEVBQ2hCd3VGLFFBQVMsYUFDVEMsT0FBUSxhQUNSaGxILFNBQVUsY0FJWixtQkFBUyxHQUVNLFFDdEtBIiwiZmlsZSI6ImpzL21vLXNjYW4vYXBwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDI1Mik7XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0SXMgPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuXG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IGRldmVsb3BtZW50IGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIHZhciB0aHJvd09uRGlyZWN0QWNjZXNzID0gdHJ1ZTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzJykoUmVhY3RJcy5pc0VsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpO1xufSBlbHNlIHtcbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgcHJvZHVjdGlvbiBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zJykoKTtcbn1cbiIsIi8vISBtb21lbnQuanNcbi8vISB2ZXJzaW9uIDogMi4yNy4wXG4vLyEgYXV0aG9ycyA6IFRpbSBXb29kLCBJc2tyZW4gQ2hlcm5ldiwgTW9tZW50LmpzIGNvbnRyaWJ1dG9yc1xuLy8hIGxpY2Vuc2UgOiBNSVRcbi8vISBtb21lbnRqcy5jb21cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShmYWN0b3J5KSA6XG4gICAgZ2xvYmFsLm1vbWVudCA9IGZhY3RvcnkoKVxufSh0aGlzLCAoZnVuY3Rpb24gKCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgaG9va0NhbGxiYWNrO1xuXG4gICAgZnVuY3Rpb24gaG9va3MoKSB7XG4gICAgICAgIHJldHVybiBob29rQ2FsbGJhY2suYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIGRvbmUgdG8gcmVnaXN0ZXIgdGhlIG1ldGhvZCBjYWxsZWQgd2l0aCBtb21lbnQoKVxuICAgIC8vIHdpdGhvdXQgY3JlYXRpbmcgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLlxuICAgIGZ1bmN0aW9uIHNldEhvb2tDYWxsYmFjayhjYWxsYmFjaykge1xuICAgICAgICBob29rQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0FycmF5KGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbnB1dCBpbnN0YW5jZW9mIEFycmF5IHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBBcnJheV0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3QoaW5wdXQpIHtcbiAgICAgICAgLy8gSUU4IHdpbGwgdHJlYXQgdW5kZWZpbmVkIGFuZCBudWxsIGFzIG9iamVjdCBpZiBpdCB3YXNuJ3QgZm9yXG4gICAgICAgIC8vIGlucHV0ICE9IG51bGxcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlucHV0ICE9IG51bGwgJiZcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IE9iamVjdF0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzT3duUHJvcChhLCBiKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgYik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3RFbXB0eShvYmopIHtcbiAgICAgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5sZW5ndGggPT09IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaztcbiAgICAgICAgICAgIGZvciAoayBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGspKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVW5kZWZpbmVkKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PT0gdm9pZCAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTnVtYmVyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBOdW1iZXJdJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF0ZShpbnB1dCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaW5wdXQgaW5zdGFuY2VvZiBEYXRlIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBEYXRlXSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXAoYXJyLCBmbikge1xuICAgICAgICB2YXIgcmVzID0gW10sXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICByZXMucHVzaChmbihhcnJbaV0sIGkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dGVuZChhLCBiKSB7XG4gICAgICAgIGZvciAodmFyIGkgaW4gYikge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoYiwgaSkpIHtcbiAgICAgICAgICAgICAgICBhW2ldID0gYltpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd0b1N0cmluZycpKSB7XG4gICAgICAgICAgICBhLnRvU3RyaW5nID0gYi50b1N0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd2YWx1ZU9mJykpIHtcbiAgICAgICAgICAgIGEudmFsdWVPZiA9IGIudmFsdWVPZjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgdHJ1ZSkudXRjKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVmYXVsdFBhcnNpbmdGbGFncygpIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBkZWVwIGNsb25lIHRoaXMgb2JqZWN0LlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW1wdHk6IGZhbHNlLFxuICAgICAgICAgICAgdW51c2VkVG9rZW5zOiBbXSxcbiAgICAgICAgICAgIHVudXNlZElucHV0OiBbXSxcbiAgICAgICAgICAgIG92ZXJmbG93OiAtMixcbiAgICAgICAgICAgIGNoYXJzTGVmdE92ZXI6IDAsXG4gICAgICAgICAgICBudWxsSW5wdXQ6IGZhbHNlLFxuICAgICAgICAgICAgaW52YWxpZEVyYTogbnVsbCxcbiAgICAgICAgICAgIGludmFsaWRNb250aDogbnVsbCxcbiAgICAgICAgICAgIGludmFsaWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgICAgICAgdXNlckludmFsaWRhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGlzbzogZmFsc2UsXG4gICAgICAgICAgICBwYXJzZWREYXRlUGFydHM6IFtdLFxuICAgICAgICAgICAgZXJhOiBudWxsLFxuICAgICAgICAgICAgbWVyaWRpZW06IG51bGwsXG4gICAgICAgICAgICByZmMyODIyOiBmYWxzZSxcbiAgICAgICAgICAgIHdlZWtkYXlNaXNtYXRjaDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2luZ0ZsYWdzKG0pIHtcbiAgICAgICAgaWYgKG0uX3BmID09IG51bGwpIHtcbiAgICAgICAgICAgIG0uX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9wZjtcbiAgICB9XG5cbiAgICB2YXIgc29tZTtcbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLnNvbWUpIHtcbiAgICAgICAgc29tZSA9IEFycmF5LnByb3RvdHlwZS5zb21lO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNvbWUgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKSxcbiAgICAgICAgICAgICAgICBsZW4gPSB0Lmxlbmd0aCA+Pj4gMCxcbiAgICAgICAgICAgICAgICBpO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSBpbiB0ICYmIGZ1bi5jYWxsKHRoaXMsIHRbaV0sIGksIHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQobSkge1xuICAgICAgICBpZiAobS5faXNWYWxpZCA9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgZmxhZ3MgPSBnZXRQYXJzaW5nRmxhZ3MobSksXG4gICAgICAgICAgICAgICAgcGFyc2VkUGFydHMgPSBzb21lLmNhbGwoZmxhZ3MucGFyc2VkRGF0ZVBhcnRzLCBmdW5jdGlvbiAoaSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSAhPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgPVxuICAgICAgICAgICAgICAgICAgICAhaXNOYU4obS5fZC5nZXRUaW1lKCkpICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLm92ZXJmbG93IDwgMCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MuZW1wdHkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRFcmEgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRNb250aCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZFdlZWtkYXkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLndlZWtkYXlNaXNtYXRjaCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MubnVsbElucHV0ICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkRm9ybWF0ICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy51c2VySW52YWxpZGF0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgKCFmbGFncy5tZXJpZGllbSB8fCAoZmxhZ3MubWVyaWRpZW0gJiYgcGFyc2VkUGFydHMpKTtcblxuICAgICAgICAgICAgaWYgKG0uX3N0cmljdCkge1xuICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgPVxuICAgICAgICAgICAgICAgICAgICBpc05vd1ZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmNoYXJzTGVmdE92ZXIgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MudW51c2VkVG9rZW5zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy5iaWdIb3VyID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChPYmplY3QuaXNGcm96ZW4gPT0gbnVsbCB8fCAhT2JqZWN0LmlzRnJvemVuKG0pKSB7XG4gICAgICAgICAgICAgICAgbS5faXNWYWxpZCA9IGlzTm93VmFsaWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc05vd1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUludmFsaWQoZmxhZ3MpIHtcbiAgICAgICAgdmFyIG0gPSBjcmVhdGVVVEMoTmFOKTtcbiAgICAgICAgaWYgKGZsYWdzICE9IG51bGwpIHtcbiAgICAgICAgICAgIGV4dGVuZChnZXRQYXJzaW5nRmxhZ3MobSksIGZsYWdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhtKS51c2VySW52YWxpZGF0ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgLy8gUGx1Z2lucyB0aGF0IGFkZCBwcm9wZXJ0aWVzIHNob3VsZCBhbHNvIGFkZCB0aGUga2V5IGhlcmUgKG51bGwgdmFsdWUpLFxuICAgIC8vIHNvIHdlIGNhbiBwcm9wZXJseSBjbG9uZSBvdXJzZWx2ZXMuXG4gICAgdmFyIG1vbWVudFByb3BlcnRpZXMgPSAoaG9va3MubW9tZW50UHJvcGVydGllcyA9IFtdKSxcbiAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gY29weUNvbmZpZyh0bywgZnJvbSkge1xuICAgICAgICB2YXIgaSwgcHJvcCwgdmFsO1xuXG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5faXNBTW9tZW50T2JqZWN0KSkge1xuICAgICAgICAgICAgdG8uX2lzQU1vbWVudE9iamVjdCA9IGZyb20uX2lzQU1vbWVudE9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2kpKSB7XG4gICAgICAgICAgICB0by5faSA9IGZyb20uX2k7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9mKSkge1xuICAgICAgICAgICAgdG8uX2YgPSBmcm9tLl9mO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fbCkpIHtcbiAgICAgICAgICAgIHRvLl9sID0gZnJvbS5fbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX3N0cmljdCkpIHtcbiAgICAgICAgICAgIHRvLl9zdHJpY3QgPSBmcm9tLl9zdHJpY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl90em0pKSB7XG4gICAgICAgICAgICB0by5fdHptID0gZnJvbS5fdHptO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5faXNVVEMpKSB7XG4gICAgICAgICAgICB0by5faXNVVEMgPSBmcm9tLl9pc1VUQztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX29mZnNldCkpIHtcbiAgICAgICAgICAgIHRvLl9vZmZzZXQgPSBmcm9tLl9vZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9wZikpIHtcbiAgICAgICAgICAgIHRvLl9wZiA9IGdldFBhcnNpbmdGbGFncyhmcm9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2xvY2FsZSkpIHtcbiAgICAgICAgICAgIHRvLl9sb2NhbGUgPSBmcm9tLl9sb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9tZW50UHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbW9tZW50UHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHByb3AgPSBtb21lbnRQcm9wZXJ0aWVzW2ldO1xuICAgICAgICAgICAgICAgIHZhbCA9IGZyb21bcHJvcF07XG4gICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2YWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvW3Byb3BdID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0bztcbiAgICB9XG5cbiAgICAvLyBNb21lbnQgcHJvdG90eXBlIG9iamVjdFxuICAgIGZ1bmN0aW9uIE1vbWVudChjb25maWcpIHtcbiAgICAgICAgY29weUNvbmZpZyh0aGlzLCBjb25maWcpO1xuICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoY29uZmlnLl9kICE9IG51bGwgPyBjb25maWcuX2QuZ2V0VGltZSgpIDogTmFOKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fZCA9IG5ldyBEYXRlKE5hTik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wIGluIGNhc2UgdXBkYXRlT2Zmc2V0IGNyZWF0ZXMgbmV3IG1vbWVudFxuICAgICAgICAvLyBvYmplY3RzLlxuICAgICAgICBpZiAodXBkYXRlSW5Qcm9ncmVzcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHVwZGF0ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNNb21lbnQob2JqKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBvYmogaW5zdGFuY2VvZiBNb21lbnQgfHwgKG9iaiAhPSBudWxsICYmIG9iai5faXNBTW9tZW50T2JqZWN0ICE9IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Fybihtc2cpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgaG9va3Muc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICBjb25zb2xlLndhcm5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0RlcHJlY2F0aW9uIHdhcm5pbmc6ICcgKyBtc2cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVwcmVjYXRlKG1zZywgZm4pIHtcbiAgICAgICAgdmFyIGZpcnN0VGltZSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIGV4dGVuZChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIobnVsbCwgbXNnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaXJzdFRpbWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXJncyA9IFtdLFxuICAgICAgICAgICAgICAgICAgICBhcmcsXG4gICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgIGtleTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyArPSAnXFxuWycgKyBpICsgJ10gJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoa2V5IGluIGFyZ3VtZW50c1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGFyZ3VtZW50c1swXSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgKz0ga2V5ICsgJzogJyArIGFyZ3VtZW50c1swXVtrZXldICsgJywgJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcuc2xpY2UoMCwgLTIpOyAvLyBSZW1vdmUgdHJhaWxpbmcgY29tbWEgYW5kIHNwYWNlXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXJncy5wdXNoKGFyZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICAgICAgICAgIG1zZyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXFxuQXJndW1lbnRzOiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpLmpvaW4oJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmaXJzdFRpbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9LCBmbik7XG4gICAgfVxuXG4gICAgdmFyIGRlcHJlY2F0aW9ucyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gZGVwcmVjYXRlU2ltcGxlKG5hbWUsIG1zZykge1xuICAgICAgICBpZiAoaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlcihuYW1lLCBtc2cpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZGVwcmVjYXRpb25zW25hbWVdKSB7XG4gICAgICAgICAgICB3YXJuKG1zZyk7XG4gICAgICAgICAgICBkZXByZWNhdGlvbnNbbmFtZV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaG9va3Muc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID0gZmFsc2U7XG4gICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyID0gbnVsbDtcblxuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0eXBlb2YgRnVuY3Rpb24gIT09ICd1bmRlZmluZWQnICYmIGlucHV0IGluc3RhbmNlb2YgRnVuY3Rpb24pIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0KGNvbmZpZykge1xuICAgICAgICB2YXIgcHJvcCwgaTtcbiAgICAgICAgZm9yIChpIGluIGNvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoY29uZmlnLCBpKSkge1xuICAgICAgICAgICAgICAgIHByb3AgPSBjb25maWdbaV07XG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1tpXSA9IHByb3A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1snXycgKyBpXSA9IHByb3A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgLy8gTGVuaWVudCBvcmRpbmFsIHBhcnNpbmcgYWNjZXB0cyBqdXN0IGEgbnVtYmVyIGluIGFkZGl0aW9uIHRvXG4gICAgICAgIC8vIG51bWJlciArIChwb3NzaWJseSkgc3R1ZmYgY29taW5nIGZyb20gX2RheU9mTW9udGhPcmRpbmFsUGFyc2UuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBcIm9yZGluYWxQYXJzZVwiIGZhbGxiYWNrIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAgICAgICAgdGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQgPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgKHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2Uuc291cmNlIHx8IHRoaXMuX29yZGluYWxQYXJzZS5zb3VyY2UpICtcbiAgICAgICAgICAgICAgICAnfCcgK1xuICAgICAgICAgICAgICAgIC9cXGR7MSwyfS8uc291cmNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY2hpbGRDb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IGV4dGVuZCh7fSwgcGFyZW50Q29uZmlnKSxcbiAgICAgICAgICAgIHByb3A7XG4gICAgICAgIGZvciAocHJvcCBpbiBjaGlsZENvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkgJiYgaXNPYmplY3QoY2hpbGRDb25maWdbcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBwYXJlbnRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBjaGlsZENvbmZpZ1twcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZENvbmZpZ1twcm9wXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGNoaWxkQ29uZmlnW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAocHJvcCBpbiBwYXJlbnRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBoYXNPd25Qcm9wKHBhcmVudENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICAgICAhaGFzT3duUHJvcChjaGlsZENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICAgICBpc09iamVjdChwYXJlbnRDb25maWdbcHJvcF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2hhbmdlcyB0byBwcm9wZXJ0aWVzIGRvbid0IG1vZGlmeSBwYXJlbnQgY29uZmlnXG4gICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gZXh0ZW5kKHt9LCByZXNbcHJvcF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTG9jYWxlKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0KGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cztcblxuICAgIGlmIChPYmplY3Qua2V5cykge1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAga2V5cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgIHZhciBpLFxuICAgICAgICAgICAgICAgIHJlcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChpIGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKG9iaiwgaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdENhbGVuZGFyID0ge1xuICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhcihrZXksIG1vbSwgbm93KSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9jYWxlbmRhcltrZXldIHx8IHRoaXMuX2NhbGVuZGFyWydzYW1lRWxzZSddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihvdXRwdXQpID8gb3V0cHV0LmNhbGwobW9tLCBub3cpIDogb3V0cHV0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHplcm9GaWxsKG51bWJlciwgdGFyZ2V0TGVuZ3RoLCBmb3JjZVNpZ24pIHtcbiAgICAgICAgdmFyIGFic051bWJlciA9ICcnICsgTWF0aC5hYnMobnVtYmVyKSxcbiAgICAgICAgICAgIHplcm9zVG9GaWxsID0gdGFyZ2V0TGVuZ3RoIC0gYWJzTnVtYmVyLmxlbmd0aCxcbiAgICAgICAgICAgIHNpZ24gPSBudW1iZXIgPj0gMDtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChzaWduID8gKGZvcmNlU2lnbiA/ICcrJyA6ICcnKSA6ICctJykgK1xuICAgICAgICAgICAgTWF0aC5wb3coMTAsIE1hdGgubWF4KDAsIHplcm9zVG9GaWxsKSkudG9TdHJpbmcoKS5zdWJzdHIoMSkgK1xuICAgICAgICAgICAgYWJzTnVtYmVyXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGZvcm1hdHRpbmdUb2tlbnMgPSAvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oW0hoXW1tKHNzKT98TW98TU0/TT9NP3xEb3xERERvfEREP0Q/RD98ZGRkP2Q/fGRvP3x3W298d10/fFdbb3xXXT98UW8/fE57MSw1fXxZWVlZWVl8WVlZWVl8WVlZWXxZWXx5ezIsNH18eW8/fGdnKGdnZz8pP3xHRyhHR0c/KT98ZXxFfGF8QXxoaD98SEg/fGtrP3xtbT98c3M/fFN7MSw5fXx4fFh8eno/fFpaP3wuKS9nLFxuICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMgPSAvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLFxuICAgICAgICBmb3JtYXRGdW5jdGlvbnMgPSB7fSxcbiAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnMgPSB7fTtcblxuICAgIC8vIHRva2VuOiAgICAnTSdcbiAgICAvLyBwYWRkZWQ6ICAgWydNTScsIDJdXG4gICAgLy8gb3JkaW5hbDogICdNbydcbiAgICAvLyBjYWxsYmFjazogZnVuY3Rpb24gKCkgeyB0aGlzLm1vbnRoKCkgKyAxIH1cbiAgICBmdW5jdGlvbiBhZGRGb3JtYXRUb2tlbih0b2tlbiwgcGFkZGVkLCBvcmRpbmFsLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgZnVuYyA9IGNhbGxiYWNrO1xuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1tjYWxsYmFja10oKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWRkZWQpIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW3BhZGRlZFswXV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHplcm9GaWxsKGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgcGFkZGVkWzFdLCBwYWRkZWRbMl0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3JkaW5hbCkge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbb3JkaW5hbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm9yZGluYWwoXG4gICAgICAgICAgICAgICAgICAgIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSxcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoaW5wdXQpIHtcbiAgICAgICAgaWYgKGlucHV0Lm1hdGNoKC9cXFtbXFxzXFxTXS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXlxcW3xcXF0kL2csICcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxcXC9nLCAnJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCkge1xuICAgICAgICB2YXIgYXJyYXkgPSBmb3JtYXQubWF0Y2goZm9ybWF0dGluZ1Rva2VucyksXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbGVuZ3RoO1xuXG4gICAgICAgIGZvciAoaSA9IDAsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dKSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBmb3JtYXRUb2tlbkZ1bmN0aW9uc1thcnJheVtpXV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhhcnJheVtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG1vbSkge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnLFxuICAgICAgICAgICAgICAgIGk7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gaXNGdW5jdGlvbihhcnJheVtpXSlcbiAgICAgICAgICAgICAgICAgICAgPyBhcnJheVtpXS5jYWxsKG1vbSwgZm9ybWF0KVxuICAgICAgICAgICAgICAgICAgICA6IGFycmF5W2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBmb3JtYXQgZGF0ZSB1c2luZyBuYXRpdmUgZGF0ZSBvYmplY3RcbiAgICBmdW5jdGlvbiBmb3JtYXRNb21lbnQobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0ID0gZXhwYW5kRm9ybWF0KGZvcm1hdCwgbS5sb2NhbGVEYXRhKCkpO1xuICAgICAgICBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XSA9XG4gICAgICAgICAgICBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XSB8fCBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0obSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhwYW5kRm9ybWF0KGZvcm1hdCwgbG9jYWxlKSB7XG4gICAgICAgIHZhciBpID0gNTtcblxuICAgICAgICBmdW5jdGlvbiByZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnMoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUubG9uZ0RhdGVGb3JtYXQoaW5wdXQpIHx8IGlucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChpID49IDAgJiYgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLFxuICAgICAgICAgICAgICAgIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2Vuc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvbmdEYXRlRm9ybWF0ID0ge1xuICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgIEw6ICdNTS9ERC9ZWVlZJyxcbiAgICAgICAgTEw6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICBMTEw6ICdNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsb25nRGF0ZUZvcm1hdChrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0sXG4gICAgICAgICAgICBmb3JtYXRVcHBlciA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleS50b1VwcGVyQ2FzZSgpXTtcblxuICAgICAgICBpZiAoZm9ybWF0IHx8ICFmb3JtYXRVcHBlcikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0gPSBmb3JtYXRVcHBlclxuICAgICAgICAgICAgLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpXG4gICAgICAgICAgICAubWFwKGZ1bmN0aW9uICh0b2spIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHRvayA9PT0gJ01NTU0nIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvayA9PT0gJ01NJyB8fFxuICAgICAgICAgICAgICAgICAgICB0b2sgPT09ICdERCcgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9rID09PSAnZGRkZCdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvay5zbGljZSgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvaztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignJyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRJbnZhbGlkRGF0ZSA9ICdJbnZhbGlkIGRhdGUnO1xuXG4gICAgZnVuY3Rpb24gaW52YWxpZERhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZhbGlkRGF0ZTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdE9yZGluYWwgPSAnJWQnLFxuICAgICAgICBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSA9IC9cXGR7MSwyfS87XG5cbiAgICBmdW5jdGlvbiBvcmRpbmFsKG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JkaW5hbC5yZXBsYWNlKCclZCcsIG51bWJlcik7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRSZWxhdGl2ZVRpbWUgPSB7XG4gICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgdzogJ2Egd2VlaycsXG4gICAgICAgIHd3OiAnJWQgd2Vla3MnLFxuICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbc3RyaW5nXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob3V0cHV0KVxuICAgICAgICAgICAgPyBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKVxuICAgICAgICAgICAgOiBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXN0RnV0dXJlKGRpZmYsIG91dHB1dCkge1xuICAgICAgICB2YXIgZm9ybWF0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW2RpZmYgPiAwID8gJ2Z1dHVyZScgOiAncGFzdCddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihmb3JtYXQpID8gZm9ybWF0KG91dHB1dCkgOiBmb3JtYXQucmVwbGFjZSgvJXMvaSwgb3V0cHV0KTtcbiAgICB9XG5cbiAgICB2YXIgYWxpYXNlcyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkVW5pdEFsaWFzKHVuaXQsIHNob3J0aGFuZCkge1xuICAgICAgICB2YXIgbG93ZXJDYXNlID0gdW5pdC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBhbGlhc2VzW2xvd2VyQ2FzZV0gPSBhbGlhc2VzW2xvd2VyQ2FzZSArICdzJ10gPSBhbGlhc2VzW3Nob3J0aGFuZF0gPSB1bml0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdW5pdHMgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IGFsaWFzZXNbdW5pdHNdIHx8IGFsaWFzZXNbdW5pdHMudG9Mb3dlckNhc2UoKV1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdFVuaXRzKGlucHV0T2JqZWN0KSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSB7fSxcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wLFxuICAgICAgICAgICAgcHJvcDtcblxuICAgICAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGlucHV0T2JqZWN0LCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wID0gbm9ybWFsaXplVW5pdHMocHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRJbnB1dFtub3JtYWxpemVkUHJvcF0gPSBpbnB1dE9iamVjdFtwcm9wXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZElucHV0O1xuICAgIH1cblxuICAgIHZhciBwcmlvcml0aWVzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0UHJpb3JpdHkodW5pdCwgcHJpb3JpdHkpIHtcbiAgICAgICAgcHJpb3JpdGllc1t1bml0XSA9IHByaW9yaXR5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFByaW9yaXRpemVkVW5pdHModW5pdHNPYmopIHtcbiAgICAgICAgdmFyIHVuaXRzID0gW10sXG4gICAgICAgICAgICB1O1xuICAgICAgICBmb3IgKHUgaW4gdW5pdHNPYmopIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKHVuaXRzT2JqLCB1KSkge1xuICAgICAgICAgICAgICAgIHVuaXRzLnB1c2goeyB1bml0OiB1LCBwcmlvcml0eTogcHJpb3JpdGllc1t1XSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1bml0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdW5pdHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7XG4gICAgICAgIHJldHVybiAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCkgfHwgeWVhciAlIDQwMCA9PT0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNGbG9vcihudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIC8vIC0wIC0+IDBcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKSB8fCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSW50KGFyZ3VtZW50Rm9yQ29lcmNpb24pIHtcbiAgICAgICAgdmFyIGNvZXJjZWROdW1iZXIgPSArYXJndW1lbnRGb3JDb2VyY2lvbixcbiAgICAgICAgICAgIHZhbHVlID0gMDtcblxuICAgICAgICBpZiAoY29lcmNlZE51bWJlciAhPT0gMCAmJiBpc0Zpbml0ZShjb2VyY2VkTnVtYmVyKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBhYnNGbG9vcihjb2VyY2VkTnVtYmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlR2V0U2V0KHVuaXQsIGtlZXBUaW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0JDEodGhpcywgdW5pdCwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCBrZWVwVGltZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXQodGhpcywgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0KG1vbSwgdW5pdCkge1xuICAgICAgICByZXR1cm4gbW9tLmlzVmFsaWQoKVxuICAgICAgICAgICAgPyBtb20uX2RbJ2dldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0oKVxuICAgICAgICAgICAgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0JDEobW9tLCB1bml0LCB2YWx1ZSkge1xuICAgICAgICBpZiAobW9tLmlzVmFsaWQoKSAmJiAhaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdW5pdCA9PT0gJ0Z1bGxZZWFyJyAmJlxuICAgICAgICAgICAgICAgIGlzTGVhcFllYXIobW9tLnllYXIoKSkgJiZcbiAgICAgICAgICAgICAgICBtb20ubW9udGgoKSA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIG1vbS5kYXRlKCkgPT09IDI5XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRvSW50KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0oXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBtb20ubW9udGgoKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5c0luTW9udGgodmFsdWUsIG1vbS5tb250aCgpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBzdHJpbmdHZXQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RyaW5nU2V0KHVuaXRzLCB2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHVuaXRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVPYmplY3RVbml0cyh1bml0cyk7XG4gICAgICAgICAgICB2YXIgcHJpb3JpdGl6ZWQgPSBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzKSxcbiAgICAgICAgICAgICAgICBpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHByaW9yaXRpemVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpc1twcmlvcml0aXplZFtpXS51bml0XSh1bml0c1twcmlvcml0aXplZFtpXS51bml0XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW3VuaXRzXSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdmFyIG1hdGNoMSA9IC9cXGQvLCAvLyAgICAgICAwIC0gOVxuICAgICAgICBtYXRjaDIgPSAvXFxkXFxkLywgLy8gICAgICAwMCAtIDk5XG4gICAgICAgIG1hdGNoMyA9IC9cXGR7M30vLCAvLyAgICAgMDAwIC0gOTk5XG4gICAgICAgIG1hdGNoNCA9IC9cXGR7NH0vLCAvLyAgICAwMDAwIC0gOTk5OVxuICAgICAgICBtYXRjaDYgPSAvWystXT9cXGR7Nn0vLCAvLyAtOTk5OTk5IC0gOTk5OTk5XG4gICAgICAgIG1hdGNoMXRvMiA9IC9cXGRcXGQ/LywgLy8gICAgICAgMCAtIDk5XG4gICAgICAgIG1hdGNoM3RvNCA9IC9cXGRcXGRcXGRcXGQ/LywgLy8gICAgIDk5OSAtIDk5OTlcbiAgICAgICAgbWF0Y2g1dG82ID0gL1xcZFxcZFxcZFxcZFxcZFxcZD8vLCAvLyAgIDk5OTk5IC0gOTk5OTk5XG4gICAgICAgIG1hdGNoMXRvMyA9IC9cXGR7MSwzfS8sIC8vICAgICAgIDAgLSA5OTlcbiAgICAgICAgbWF0Y2gxdG80ID0gL1xcZHsxLDR9LywgLy8gICAgICAgMCAtIDk5OTlcbiAgICAgICAgbWF0Y2gxdG82ID0gL1srLV0/XFxkezEsNn0vLCAvLyAtOTk5OTk5IC0gOTk5OTk5XG4gICAgICAgIG1hdGNoVW5zaWduZWQgPSAvXFxkKy8sIC8vICAgICAgIDAgLSBpbmZcbiAgICAgICAgbWF0Y2hTaWduZWQgPSAvWystXT9cXGQrLywgLy8gICAgLWluZiAtIGluZlxuICAgICAgICBtYXRjaE9mZnNldCA9IC9afFsrLV1cXGRcXGQ6P1xcZFxcZC9naSwgLy8gKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgICAgIG1hdGNoU2hvcnRPZmZzZXQgPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy9naSwgLy8gKzAwIC0wMCArMDA6MDAgLTAwOjAwICswMDAwIC0wMDAwIG9yIFpcbiAgICAgICAgbWF0Y2hUaW1lc3RhbXAgPSAvWystXT9cXGQrKFxcLlxcZHsxLDN9KT8vLCAvLyAxMjM0NTY3ODkgMTIzNDU2Nzg5LjEyM1xuICAgICAgICAvLyBhbnkgd29yZCAob3IgdHdvKSBjaGFyYWN0ZXJzIG9yIG51bWJlcnMgaW5jbHVkaW5nIHR3by90aHJlZSB3b3JkIG1vbnRoIGluIGFyYWJpYy5cbiAgICAgICAgLy8gaW5jbHVkZXMgc2NvdHRpc2ggZ2FlbGljIHR3byB3b3JkIGFuZCBoeXBoZW5hdGVkIG1vbnRoc1xuICAgICAgICBtYXRjaFdvcmQgPSAvWzAtOV17MCwyNTZ9WydhLXpcXHUwMEEwLVxcdTA1RkZcXHUwNzAwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGMDdcXHVGRjEwLVxcdUZGRUZdezEsMjU2fXxbXFx1MDYwMC1cXHUwNkZGXFwvXXsxLDI1Nn0oXFxzKj9bXFx1MDYwMC1cXHUwNkZGXXsxLDI1Nn0pezEsMn0vaSxcbiAgICAgICAgcmVnZXhlcztcblxuICAgIHJlZ2V4ZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFJlZ2V4VG9rZW4odG9rZW4sIHJlZ2V4LCBzdHJpY3RSZWdleCkge1xuICAgICAgICByZWdleGVzW3Rva2VuXSA9IGlzRnVuY3Rpb24ocmVnZXgpXG4gICAgICAgICAgICA/IHJlZ2V4XG4gICAgICAgICAgICA6IGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlRGF0YSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzU3RyaWN0ICYmIHN0cmljdFJlZ2V4ID8gc3RyaWN0UmVnZXggOiByZWdleDtcbiAgICAgICAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4odG9rZW4sIGNvbmZpZykge1xuICAgICAgICBpZiAoIWhhc093blByb3AocmVnZXhlcywgdG9rZW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCh1bmVzY2FwZUZvcm1hdCh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlZ2V4ZXNbdG9rZW5dKGNvbmZpZy5fc3RyaWN0LCBjb25maWcuX2xvY2FsZSk7XG4gICAgfVxuXG4gICAgLy8gQ29kZSBmcm9tIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzU2MTQ5My9pcy10aGVyZS1hLXJlZ2V4cC1lc2NhcGUtZnVuY3Rpb24taW4tamF2YXNjcmlwdFxuICAgIGZ1bmN0aW9uIHVuZXNjYXBlRm9ybWF0KHMpIHtcbiAgICAgICAgcmV0dXJuIHJlZ2V4RXNjYXBlKFxuICAgICAgICAgICAgc1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKCdcXFxcJywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFwoXFxbKXxcXFxcKFxcXSl8XFxbKFteXFxdXFxbXSopXFxdfFxcXFwoLikvZywgZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkLFxuICAgICAgICAgICAgICAgICAgICBwMSxcbiAgICAgICAgICAgICAgICAgICAgcDIsXG4gICAgICAgICAgICAgICAgICAgIHAzLFxuICAgICAgICAgICAgICAgICAgICBwNFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcDEgfHwgcDIgfHwgcDMgfHwgcDQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWdleEVzY2FwZShzKSB7XG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICAgIH1cblxuICAgIHZhciB0b2tlbnMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFBhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgZnVuYyA9IGNhbGxiYWNrO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdG9rZW4gPSBbdG9rZW5dO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bWJlcihjYWxsYmFjaykpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbY2FsbGJhY2tdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG9rZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbltpXV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkV2Vla1BhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgICAgIGNvbmZpZy5fdyA9IGNvbmZpZy5fdyB8fCB7fTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGlucHV0LCBjb25maWcuX3csIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCAmJiBoYXNPd25Qcm9wKHRva2VucywgdG9rZW4pKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5dKGlucHV0LCBjb25maWcuX2EsIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIFlFQVIgPSAwLFxuICAgICAgICBNT05USCA9IDEsXG4gICAgICAgIERBVEUgPSAyLFxuICAgICAgICBIT1VSID0gMyxcbiAgICAgICAgTUlOVVRFID0gNCxcbiAgICAgICAgU0VDT05EID0gNSxcbiAgICAgICAgTUlMTElTRUNPTkQgPSA2LFxuICAgICAgICBXRUVLID0gNyxcbiAgICAgICAgV0VFS0RBWSA9IDg7XG5cbiAgICBmdW5jdGlvbiBtb2QobiwgeCkge1xuICAgICAgICByZXR1cm4gKChuICUgeCkgKyB4KSAlIHg7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4T2Y7XG5cbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICAgICAgaW5kZXhPZiA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4T2YgPSBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgLy8gSSBrbm93XG4gICAgICAgICAgICB2YXIgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXNbaV0gPT09IG8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gICAgICAgIGlmIChpc05hTih5ZWFyKSB8fCBpc05hTihtb250aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1vZE1vbnRoID0gbW9kKG1vbnRoLCAxMik7XG4gICAgICAgIHllYXIgKz0gKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG4gICAgICAgIHJldHVybiBtb2RNb250aCA9PT0gMVxuICAgICAgICAgICAgPyBpc0xlYXBZZWFyKHllYXIpXG4gICAgICAgICAgICAgICAgPyAyOVxuICAgICAgICAgICAgICAgIDogMjhcbiAgICAgICAgICAgIDogMzEgLSAoKG1vZE1vbnRoICUgNykgJSAyKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignTScsIFsnTU0nLCAyXSwgJ01vJywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aCgpICsgMTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ01NTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbW9udGgnLCAnTScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbW9udGgnLCA4KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ00nLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignTU1NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ00nLCAnTU0nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSB0b0ludChpbnB1dCkgLSAxO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ01NTScsICdNTU1NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgdmFyIG1vbnRoID0gY29uZmlnLl9sb2NhbGUubW9udGhzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIGEgbW9udGggbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkLlxuICAgICAgICBpZiAobW9udGggIT0gbnVsbCkge1xuICAgICAgICAgICAgYXJyYXlbTU9OVEhdID0gbW9udGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkTW9udGggPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNb250aHMgPSAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0ID0gJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBNT05USFNfSU5fRk9STUFUID0gL0Rbb0RdPyhcXFtbXlxcW1xcXV0qXFxdfFxccykrTU1NTT8vLFxuICAgICAgICBkZWZhdWx0TW9udGhzU2hvcnRSZWdleCA9IG1hdGNoV29yZCxcbiAgICAgICAgZGVmYXVsdE1vbnRoc1JlZ2V4ID0gbWF0Y2hXb3JkO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocylcbiAgICAgICAgICAgICAgICA/IHRoaXMuX21vbnRoc1xuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzWydzdGFuZGFsb25lJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzKVxuICAgICAgICAgICAgPyB0aGlzLl9tb250aHNbbS5tb250aCgpXVxuICAgICAgICAgICAgOiB0aGlzLl9tb250aHNbXG4gICAgICAgICAgICAgICAgICAodGhpcy5fbW9udGhzLmlzRm9ybWF0IHx8IE1PTlRIU19JTl9GT1JNQVQpLnRlc3QoZm9ybWF0KVxuICAgICAgICAgICAgICAgICAgICAgID8gJ2Zvcm1hdCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdzdGFuZGFsb25lJ1xuICAgICAgICAgICAgICBdW20ubW9udGgoKV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzU2hvcnQobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzU2hvcnQpXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNTaG9ydFxuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzU2hvcnRbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHNTaG9ydClcbiAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU2hvcnRbbS5tb250aCgpXVxuICAgICAgICAgICAgOiB0aGlzLl9tb250aHNTaG9ydFtcbiAgICAgICAgICAgICAgICAgIE1PTlRIU19JTl9GT1JNQVQudGVzdChmb3JtYXQpID8gJ2Zvcm1hdCcgOiAnc3RhbmRhbG9uZSdcbiAgICAgICAgICAgICAgXVttLm1vbnRoKCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZVN0cmljdFBhcnNlKG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBpaSxcbiAgICAgICAgICAgIG1vbSxcbiAgICAgICAgICAgIGxsYyA9IG1vbnRoTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRoaXMuX21vbnRoc1BhcnNlKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkXG4gICAgICAgICAgICB0aGlzLl9tb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7ICsraSkge1xuICAgICAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRoc1Nob3J0KFxuICAgICAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1BhcnNlKG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdHJpY3RQYXJzZS5jYWxsKHRoaXMsIG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogYWRkIHNvcnRpbmdcbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlclxuICAgICAgICAvLyBzZWUgc29ydGluZyBpbiBjb21wdXRlTW9udGhzUGFyc2VcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsXG4gICAgICAgICAgICAgICAgICAgICdpJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0cmljdCAmJiAhdGhpcy5fbW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICByZWdleCA9XG4gICAgICAgICAgICAgICAgICAgICdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMubW9udGhzU2hvcnQobW9tLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ01NTU0nICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ01NTScgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fbW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBzZXRNb250aChtb20sIHZhbHVlKSB7XG4gICAgICAgIHZhciBkYXlPZk1vbnRoO1xuXG4gICAgICAgIGlmICghbW9tLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgLy8gTm8gb3BcbiAgICAgICAgICAgIHJldHVybiBtb207XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKC9eXFxkKyQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0b0ludCh2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gbW9tLmxvY2FsZURhdGEoKS5tb250aHNQYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQW5vdGhlciBzaWxlbnQgZmFpbHVyZT9cbiAgICAgICAgICAgICAgICBpZiAoIWlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRheU9mTW9udGggPSBNYXRoLm1pbihtb20uZGF0ZSgpLCBkYXlzSW5Nb250aChtb20ueWVhcigpLCB2YWx1ZSkpO1xuICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgJ01vbnRoJ10odmFsdWUsIGRheU9mTW9udGgpO1xuICAgICAgICByZXR1cm4gbW9tO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldE1vbnRoKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBzZXRNb250aCh0aGlzLCB2YWx1ZSk7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnZXQodGhpcywgJ01vbnRoJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREYXlzSW5Nb250aCgpIHtcbiAgICAgICAgcmV0dXJuIGRheXNJbk1vbnRoKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1Nob3J0UmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSBkZWZhdWx0TW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4XG4gICAgICAgICAgICAgICAgOiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9udGhzUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gZGVmYXVsdE1vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb21wdXRlTW9udGhzUGFyc2UoKSB7XG4gICAgICAgIGZ1bmN0aW9uIGNtcExlblJldihhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYi5sZW5ndGggLSBhLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzaG9ydFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbG9uZ1BpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBtb207XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgc2hvcnRQaWVjZXMucHVzaCh0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaCh0aGlzLm1vbnRocyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHRoaXMubW9udGhzKG1vbSwgJycpKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChtb20sICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlciBpdFxuICAgICAgICAvLyB3aWxsIG1hdGNoIHRoZSBsb25nZXIgcGllY2UuXG4gICAgICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbG9uZ1BpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIG1peGVkUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHNob3J0UGllY2VzW2ldID0gcmVnZXhFc2NhcGUoc2hvcnRQaWVjZXNbaV0pO1xuICAgICAgICAgICAgbG9uZ1BpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKGxvbmdQaWVjZXNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNDsgaSsrKSB7XG4gICAgICAgICAgICBtaXhlZFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKG1peGVkUGllY2VzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9tb250aHNTaG9ydFJlZ2V4ID0gdGhpcy5fbW9udGhzUmVnZXg7XG4gICAgICAgIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgICAgICdpJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBzaG9ydFBpZWNlcy5qb2luKCd8JykgKyAnKScsXG4gICAgICAgICAgICAnaSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignWScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHkgPSB0aGlzLnllYXIoKTtcbiAgICAgICAgcmV0dXJuIHkgPD0gOTk5OSA/IHplcm9GaWxsKHksIDQpIDogJysnICsgeTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVknLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVknLCA0XSwgMCwgJ3llYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVlZJywgNV0sIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWVknLCA2LCB0cnVlXSwgMCwgJ3llYXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygneWVhcicsICd5Jyk7XG5cbiAgICAvLyBQUklPUklUSUVTXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3llYXInLCAxKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1knLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVknLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWScsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZWScsIG1hdGNoMXRvNiwgbWF0Y2g2KTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZWVknLCBtYXRjaDF0bzYsIG1hdGNoNik7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnWVlZWVknLCAnWVlZWVlZJ10sIFlFQVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1lZWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID1cbiAgICAgICAgICAgIGlucHV0Lmxlbmd0aCA9PT0gMiA/IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KSA6IHRvSW50KGlucHV0KTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBwYXJzZUludChpbnB1dCwgMTApO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gICAgICAgIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMzY2IDogMzY1O1xuICAgIH1cblxuICAgIC8vIEhPT0tTXG5cbiAgICBob29rcy5wYXJzZVR3b0RpZ2l0WWVhciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdG9JbnQoaW5wdXQpICsgKHRvSW50KGlucHV0KSA+IDY4ID8gMTkwMCA6IDIwMDApO1xuICAgIH07XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0WWVhciA9IG1ha2VHZXRTZXQoJ0Z1bGxZZWFyJywgdHJ1ZSk7XG5cbiAgICBmdW5jdGlvbiBnZXRJc0xlYXBZZWFyKCkge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih0aGlzLnllYXIoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRGF0ZSh5LCBtLCBkLCBoLCBNLCBzLCBtcykge1xuICAgICAgICAvLyBjYW4ndCBqdXN0IGFwcGx5KCkgdG8gY3JlYXRlIGEgZGF0ZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzE4MTM0OFxuICAgICAgICB2YXIgZGF0ZTtcbiAgICAgICAgLy8gdGhlIGRhdGUgY29uc3RydWN0b3IgcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCkge1xuICAgICAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh5ICsgNDAwLCBtLCBkLCBoLCBNLCBzLCBtcyk7XG4gICAgICAgICAgICBpZiAoaXNGaW5pdGUoZGF0ZS5nZXRGdWxsWWVhcigpKSkge1xuICAgICAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlVVRDRGF0ZSh5KSB7XG4gICAgICAgIHZhciBkYXRlLCBhcmdzO1xuICAgICAgICAvLyB0aGUgRGF0ZS5VVEMgZnVuY3Rpb24gcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCkge1xuICAgICAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICAgICAgYXJnc1swXSA9IHkgKyA0MDA7XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCwgYXJncykpO1xuICAgICAgICAgICAgaWYgKGlzRmluaXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgICAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgLy8gc3RhcnQtb2YtZmlyc3Qtd2VlayAtIHN0YXJ0LW9mLXllYXJcbiAgICBmdW5jdGlvbiBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIC8vIGZpcnN0LXdlZWsgZGF5IC0tIHdoaWNoIGphbnVhcnkgaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrICg0IGZvciBpc28sIDEgZm9yIG90aGVyKVxuICAgICAgICAgICAgZndkID0gNyArIGRvdyAtIGRveSxcbiAgICAgICAgICAgIC8vIGZpcnN0LXdlZWsgZGF5IGxvY2FsIHdlZWtkYXkgLS0gd2hpY2ggbG9jYWwgd2Vla2RheSBpcyBmd2RcbiAgICAgICAgICAgIGZ3ZGx3ID0gKDcgKyBjcmVhdGVVVENEYXRlKHllYXIsIDAsIGZ3ZCkuZ2V0VVRDRGF5KCkgLSBkb3cpICUgNztcblxuICAgICAgICByZXR1cm4gLWZ3ZGx3ICsgZndkIC0gMTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlI0NhbGN1bGF0aW5nX2FfZGF0ZV9naXZlbl90aGVfeWVhci4yQ193ZWVrX251bWJlcl9hbmRfd2Vla2RheVxuICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrcyh5ZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgbG9jYWxXZWVrZGF5ID0gKDcgKyB3ZWVrZGF5IC0gZG93KSAlIDcsXG4gICAgICAgICAgICB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIGRheU9mWWVhciA9IDEgKyA3ICogKHdlZWsgLSAxKSArIGxvY2FsV2Vla2RheSArIHdlZWtPZmZzZXQsXG4gICAgICAgICAgICByZXNZZWFyLFxuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyO1xuXG4gICAgICAgIGlmIChkYXlPZlllYXIgPD0gMCkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgLSAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5c0luWWVhcihyZXNZZWFyKSArIGRheU9mWWVhcjtcbiAgICAgICAgfSBlbHNlIGlmIChkYXlPZlllYXIgPiBkYXlzSW5ZZWFyKHllYXIpKSB7XG4gICAgICAgICAgICByZXNZZWFyID0geWVhciArIDE7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXIgLSBkYXlzSW5ZZWFyKHllYXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXI7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeWVhcjogcmVzWWVhcixcbiAgICAgICAgICAgIGRheU9mWWVhcjogcmVzRGF5T2ZZZWFyLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtPZlllYXIobW9tLCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldChtb20ueWVhcigpLCBkb3csIGRveSksXG4gICAgICAgICAgICB3ZWVrID0gTWF0aC5mbG9vcigobW9tLmRheU9mWWVhcigpIC0gd2Vla09mZnNldCAtIDEpIC8gNykgKyAxLFxuICAgICAgICAgICAgcmVzV2VlayxcbiAgICAgICAgICAgIHJlc1llYXI7XG5cbiAgICAgICAgaWYgKHdlZWsgPCAxKSB7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKSAtIDE7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlayArIHdlZWtzSW5ZZWFyKHJlc1llYXIsIGRvdywgZG95KTtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrID4gd2Vla3NJblllYXIobW9tLnllYXIoKSwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlayAtIHdlZWtzSW5ZZWFyKG1vbS55ZWFyKCksIGRvdywgZG95KTtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpO1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2VlazogcmVzV2VlayxcbiAgICAgICAgICAgIHllYXI6IHJlc1llYXIsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla3NJblllYXIoeWVhciwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpLFxuICAgICAgICAgICAgd2Vla09mZnNldE5leHQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciArIDEsIGRvdywgZG95KTtcbiAgICAgICAgcmV0dXJuIChkYXlzSW5ZZWFyKHllYXIpIC0gd2Vla09mZnNldCArIHdlZWtPZmZzZXROZXh0KSAvIDc7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3cnLCBbJ3d3JywgMl0sICd3bycsICd3ZWVrJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ1cnLCBbJ1dXJywgMl0sICdXbycsICdpc29XZWVrJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWsnLCAndycpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2VlaycsICdXJyk7XG5cbiAgICAvLyBQUklPUklUSUVTXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWsnLCA1KTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWsnLCA1KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3cnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3d3JywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1cnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1dXJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWyd3JywgJ3d3JywgJ1cnLCAnV1cnXSwgZnVuY3Rpb24gKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgd2VlayxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICB0b2tlblxuICAgICkge1xuICAgICAgICB3ZWVrW3Rva2VuLnN1YnN0cigwLCAxKV0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrKG1vbSkge1xuICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb20sIHRoaXMuX3dlZWsuZG93LCB0aGlzLl93ZWVrLmRveSkud2VlaztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWsgPSB7XG4gICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVGaXJzdERheU9mV2VlaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZZZWFyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vlay5kb3k7XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2VlayhpbnB1dCkge1xuICAgICAgICB2YXIgd2VlayA9IHRoaXMubG9jYWxlRGF0YSgpLndlZWsodGhpcyk7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09XZWVrKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gd2Vla09mWWVhcih0aGlzLCAxLCA0KS53ZWVrO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWsgOiB0aGlzLmFkZCgoaW5wdXQgLSB3ZWVrKSAqIDcsICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2QnLCAwLCAnZG8nLCAnZGF5Jyk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c01pbih0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdlJywgMCwgMCwgJ3dlZWtkYXknKTtcbiAgICBhZGRGb3JtYXRUb2tlbignRScsIDAsIDAsICdpc29XZWVrZGF5Jyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheScsICdkJyk7XG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrZGF5JywgJ2UnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWtkYXknLCAnRScpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RheScsIDExKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtkYXknLCAxMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrZGF5JywgMTEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignZCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZScsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignRScsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZGQnLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzTWluUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkZCcsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcbiAgICBhZGRSZWdleFRva2VuKCdkZGRkJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZGQnLCAnZGRkJywgJ2RkZGQnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgLy8gaWYgd2UgZGlkbid0IGdldCBhIHdlZWtkYXkgbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkXG4gICAgICAgIGlmICh3ZWVrZGF5ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdlZWsuZCA9IHdlZWtkYXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkV2Vla2RheSA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2QnLCAnZScsICdFJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzTmFOKGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCA9IGxvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpICUgNyB8fCA3O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05hTihpbnB1dCkgPyBudWxsIDogaW5wdXQ7XG4gICAgfVxuXG4gICAgLy8gTE9DQUxFU1xuICAgIGZ1bmN0aW9uIHNoaWZ0V2Vla2RheXMod3MsIG4pIHtcbiAgICAgICAgcmV0dXJuIHdzLnNsaWNlKG4sIDcpLmNvbmNhdCh3cy5zbGljZSgwLCBuKSk7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrZGF5cyA9ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQgPSAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICBkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4gPSAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGRlZmF1bHRXZWVrZGF5c1JlZ2V4ID0gbWF0Y2hXb3JkLFxuICAgICAgICBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4ID0gbWF0Y2hXb3JkLFxuICAgICAgICBkZWZhdWx0V2Vla2RheXNNaW5SZWdleCA9IG1hdGNoV29yZDtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzKG0sIGZvcm1hdCkge1xuICAgICAgICB2YXIgd2Vla2RheXMgPSBpc0FycmF5KHRoaXMuX3dlZWtkYXlzKVxuICAgICAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1xuICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1tcbiAgICAgICAgICAgICAgICAgIG0gJiYgbSAhPT0gdHJ1ZSAmJiB0aGlzLl93ZWVrZGF5cy5pc0Zvcm1hdC50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgICAgICAgICAgICA/ICdmb3JtYXQnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnc3RhbmRhbG9uZSdcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIG0gPT09IHRydWVcbiAgICAgICAgICAgID8gc2hpZnRXZWVrZGF5cyh3ZWVrZGF5cywgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgICAgICA6IG1cbiAgICAgICAgICAgID8gd2Vla2RheXNbbS5kYXkoKV1cbiAgICAgICAgICAgIDogd2Vla2RheXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNTaG9ydChtKSB7XG4gICAgICAgIHJldHVybiBtID09PSB0cnVlXG4gICAgICAgICAgICA/IHNoaWZ0V2Vla2RheXModGhpcy5fd2Vla2RheXNTaG9ydCwgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgICAgICA6IG1cbiAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNTaG9ydFttLmRheSgpXVxuICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1Nob3J0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzTWluKG0pIHtcbiAgICAgICAgcmV0dXJuIG0gPT09IHRydWVcbiAgICAgICAgICAgID8gc2hpZnRXZWVrZGF5cyh0aGlzLl93ZWVrZGF5c01pbiwgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgICAgICA6IG1cbiAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNNaW5bbS5kYXkoKV1cbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNNaW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UkMSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBpaSxcbiAgICAgICAgICAgIG1vbSxcbiAgICAgICAgICAgIGxsYyA9IHdlZWtkYXlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNNaW4oXG4gICAgICAgICAgICAgICAgICAgIG1vbSxcbiAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICApLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5c1Nob3J0KFxuICAgICAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnZGRkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c1BhcnNlKHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgbW9tLCByZWdleDtcblxuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlU3RyaWN0UGFyc2UkMS5jYWxsKHRoaXMsIHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuXG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy53ZWVrZGF5cyhtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAgICAgICAgICdeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFxcXC4/JykgKyAnJCcsXG4gICAgICAgICAgICAgICAgICAgICdpJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICByZWdleCA9XG4gICAgICAgICAgICAgICAgICAgICdeJyArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla2RheXMobW9tLCAnJykgK1xuICAgICAgICAgICAgICAgICAgICAnfF4nICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ3xeJyArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla2RheXNNaW4obW9tLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAocmVnZXgucmVwbGFjZSgnLicsICcnKSwgJ2knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHRlc3QgdGhlIHJlZ2V4XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc3RyaWN0ICYmXG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSAnZGRkZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ2RkZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdkZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmljdCAmJiB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXREYXlPZldlZWsoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXkgPSB0aGlzLl9pc1VUQyA/IHRoaXMuX2QuZ2V0VVRDRGF5KCkgOiB0aGlzLl9kLmdldERheSgpO1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaW5wdXQgPSBwYXJzZVdlZWtkYXkoaW5wdXQsIHRoaXMubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZChpbnB1dCAtIGRheSwgJ2QnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkYXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRMb2NhbGVEYXlPZldlZWsoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gKHRoaXMuZGF5KCkgKyA3IC0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93KSAlIDc7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2Vla2RheSA6IHRoaXMuYWRkKGlucHV0IC0gd2Vla2RheSwgJ2QnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09EYXlPZldlZWsoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYmVoYXZlcyB0aGUgc2FtZSBhcyBtb21lbnQjZGF5IGV4Y2VwdFxuICAgICAgICAvLyBhcyBhIGdldHRlciwgcmV0dXJucyA3IGluc3RlYWQgb2YgMCAoMS03IHJhbmdlIGluc3RlYWQgb2YgMC02KVxuICAgICAgICAvLyBhcyBhIHNldHRlciwgc3VuZGF5IHNob3VsZCBiZWxvbmcgdG8gdGhlIHByZXZpb3VzIHdlZWsuXG5cbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhciB3ZWVrZGF5ID0gcGFyc2VJc29XZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXkodGhpcy5kYXkoKSAlIDcgPyB3ZWVrZGF5IDogd2Vla2RheSAtIDcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KCkgfHwgNztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtkYXlzUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZVdlZWtkYXlzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUmVnZXggPSBkZWZhdWx0V2Vla2RheXNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4XG4gICAgICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXggPSBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4XG4gICAgICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrZGF5c01pblJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c01pblJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNNaW5SZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVXZWVrZGF5c1BhcnNlKCkge1xuICAgICAgICBmdW5jdGlvbiBjbXBMZW5SZXYoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWluUGllY2VzID0gW10sXG4gICAgICAgICAgICBzaG9ydFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbG9uZ1BpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBtaW5wLFxuICAgICAgICAgICAgc2hvcnRwLFxuICAgICAgICAgICAgbG9uZ3A7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgbWlucCA9IHJlZ2V4RXNjYXBlKHRoaXMud2Vla2RheXNNaW4obW9tLCAnJykpO1xuICAgICAgICAgICAgc2hvcnRwID0gcmVnZXhFc2NhcGUodGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgICAgIGxvbmdwID0gcmVnZXhFc2NhcGUodGhpcy53ZWVrZGF5cyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaW5QaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKG1pbnApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChzaG9ydHApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSB3ZWVrZGF5IChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgbWluUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuXG4gICAgICAgIHRoaXMuX3dlZWtkYXlzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluUmVnZXggPSB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuXG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXignICsgc2hvcnRQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ14oJyArIG1pblBpZWNlcy5qb2luKCd8JykgKyAnKScsXG4gICAgICAgICAgICAnaSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBmdW5jdGlvbiBoRm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3VycygpICUgMTIgfHwgMTI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24ga0Zvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKSB8fCAyNDtcbiAgICB9XG5cbiAgICBhZGRGb3JtYXRUb2tlbignSCcsIFsnSEgnLCAyXSwgMCwgJ2hvdXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignaCcsIFsnaGgnLCAyXSwgMCwgaEZvcm1hdCk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ2snLCBbJ2trJywgMl0sIDAsIGtGb3JtYXQpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgaEZvcm1hdC5hcHBseSh0aGlzKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdobW1zcycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICcnICtcbiAgICAgICAgICAgIGhGb3JtYXQuYXBwbHkodGhpcykgK1xuICAgICAgICAgICAgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMuc2Vjb25kcygpLCAyKVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgdGhpcy5ob3VycygpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgJycgK1xuICAgICAgICAgICAgdGhpcy5ob3VycygpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLnNlY29uZHMoKSwgMilcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtKHRva2VuLCBsb3dlcmNhc2UpIHtcbiAgICAgICAgYWRkRm9ybWF0VG9rZW4odG9rZW4sIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tZXJpZGllbShcbiAgICAgICAgICAgICAgICB0aGlzLmhvdXJzKCksXG4gICAgICAgICAgICAgICAgdGhpcy5taW51dGVzKCksXG4gICAgICAgICAgICAgICAgbG93ZXJjYXNlXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtZXJpZGllbSgnYScsIHRydWUpO1xuICAgIG1lcmlkaWVtKCdBJywgZmFsc2UpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdob3VyJywgJ2gnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdob3VyJywgMTMpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgZnVuY3Rpb24gbWF0Y2hNZXJpZGllbShpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuX21lcmlkaWVtUGFyc2U7XG4gICAgfVxuXG4gICAgYWRkUmVnZXhUb2tlbignYScsIG1hdGNoTWVyaWRpZW0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0EnLCBtYXRjaE1lcmlkaWVtKTtcbiAgICBhZGRSZWdleFRva2VuKCdIJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdoJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdrJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdISCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdoaCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdraycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbScsIG1hdGNoM3RvNCk7XG4gICAgYWRkUmVnZXhUb2tlbignaG1tc3MnLCBtYXRjaDV0bzYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbScsIG1hdGNoM3RvNCk7XG4gICAgYWRkUmVnZXhUb2tlbignSG1tc3MnLCBtYXRjaDV0bzYpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ0gnLCAnSEgnXSwgSE9VUik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2snLCAna2snXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBrSW5wdXQgPSB0b0ludChpbnB1dCk7XG4gICAgICAgIGFycmF5W0hPVVJdID0ga0lucHV0ID09PSAyNCA/IDAgOiBrSW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2EnLCAnQSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9pc1BtID0gY29uZmlnLl9sb2NhbGUuaXNQTShpbnB1dCk7XG4gICAgICAgIGNvbmZpZy5fbWVyaWRpZW0gPSBpbnB1dDtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKFsnaCcsICdoaCddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dCk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ2htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ2htbXNzJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MxID0gaW5wdXQubGVuZ3RoIC0gNCxcbiAgICAgICAgICAgIHBvczIgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MxKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMSwgMikpO1xuICAgICAgICBhcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczIpKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHRydWU7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MpKTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdIbW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQsXG4gICAgICAgICAgICBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgfSk7XG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVJc1BNKGlucHV0KSB7XG4gICAgICAgIC8vIElFOCBRdWlya3MgTW9kZSAmIElFNyBTdGFuZGFyZHMgTW9kZSBkbyBub3QgYWxsb3cgYWNjZXNzaW5nIHN0cmluZ3MgbGlrZSBhcnJheXNcbiAgICAgICAgLy8gVXNpbmcgY2hhckF0IHNob3VsZCBiZSBtb3JlIGNvbXBhdGlibGUuXG4gICAgICAgIHJldHVybiAoaW5wdXQgKyAnJykudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkgPT09ICdwJztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2UgPSAvW2FwXVxcLj9tP1xcLj8vaSxcbiAgICAgICAgLy8gU2V0dGluZyB0aGUgaG91ciBzaG91bGQga2VlcCB0aGUgdGltZSwgYmVjYXVzZSB0aGUgdXNlciBleHBsaWNpdGx5XG4gICAgICAgIC8vIHNwZWNpZmllZCB3aGljaCBob3VyIHRoZXkgd2FudC4gU28gdHJ5aW5nIHRvIG1haW50YWluIHRoZSBzYW1lIGhvdXIgKGluXG4gICAgICAgIC8vIGEgbmV3IHRpbWV6b25lKSBtYWtlcyBzZW5zZS4gQWRkaW5nL3N1YnRyYWN0aW5nIGhvdXJzIGRvZXMgbm90IGZvbGxvd1xuICAgICAgICAvLyB0aGlzIHJ1bGUuXG4gICAgICAgIGdldFNldEhvdXIgPSBtYWtlR2V0U2V0KCdIb3VycycsIHRydWUpO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlTWVyaWRpZW0oaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3BtJyA6ICdQTSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdhbScgOiAnQU0nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGJhc2VDb25maWcgPSB7XG4gICAgICAgIGNhbGVuZGFyOiBkZWZhdWx0Q2FsZW5kYXIsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQsXG4gICAgICAgIGludmFsaWREYXRlOiBkZWZhdWx0SW52YWxpZERhdGUsXG4gICAgICAgIG9yZGluYWw6IGRlZmF1bHRPcmRpbmFsLFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiBkZWZhdWx0UmVsYXRpdmVUaW1lLFxuXG4gICAgICAgIG1vbnRoczogZGVmYXVsdExvY2FsZU1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCxcblxuICAgICAgICB3ZWVrOiBkZWZhdWx0TG9jYWxlV2VlayxcblxuICAgICAgICB3ZWVrZGF5czogZGVmYXVsdExvY2FsZVdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCxcblxuICAgICAgICBtZXJpZGllbVBhcnNlOiBkZWZhdWx0TG9jYWxlTWVyaWRpZW1QYXJzZSxcbiAgICB9O1xuXG4gICAgLy8gaW50ZXJuYWwgc3RvcmFnZSBmb3IgbG9jYWxlIGNvbmZpZyBmaWxlc1xuICAgIHZhciBsb2NhbGVzID0ge30sXG4gICAgICAgIGxvY2FsZUZhbWlsaWVzID0ge30sXG4gICAgICAgIGdsb2JhbExvY2FsZTtcblxuICAgIGZ1bmN0aW9uIGNvbW1vblByZWZpeChhcnIxLCBhcnIyKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbWlubCA9IE1hdGgubWluKGFycjEubGVuZ3RoLCBhcnIyLmxlbmd0aCk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBtaW5sOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGlmIChhcnIxW2ldICE9PSBhcnIyW2ldKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbmw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGtleSkge1xuICAgICAgICByZXR1cm4ga2V5ID8ga2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnXycsICctJykgOiBrZXk7XG4gICAgfVxuXG4gICAgLy8gcGljayB0aGUgbG9jYWxlIGZyb20gdGhlIGFycmF5XG4gICAgLy8gdHJ5IFsnZW4tYXUnLCAnZW4tZ2InXSBhcyAnZW4tYXUnLCAnZW4tZ2InLCAnZW4nLCBhcyBpbiBtb3ZlIHRocm91Z2ggdGhlIGxpc3QgdHJ5aW5nIGVhY2hcbiAgICAvLyBzdWJzdHJpbmcgZnJvbSBtb3N0IHNwZWNpZmljIHRvIGxlYXN0LCBidXQgbW92ZSB0byB0aGUgbmV4dCBhcnJheSBpdGVtIGlmIGl0J3MgYSBtb3JlIHNwZWNpZmljIHZhcmlhbnQgdGhhbiB0aGUgY3VycmVudCByb290XG4gICAgZnVuY3Rpb24gY2hvb3NlTG9jYWxlKG5hbWVzKSB7XG4gICAgICAgIHZhciBpID0gMCxcbiAgICAgICAgICAgIGosXG4gICAgICAgICAgICBuZXh0LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgc3BsaXQ7XG5cbiAgICAgICAgd2hpbGUgKGkgPCBuYW1lcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHNwbGl0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2ldKS5zcGxpdCgnLScpO1xuICAgICAgICAgICAgaiA9IHNwbGl0Lmxlbmd0aDtcbiAgICAgICAgICAgIG5leHQgPSBub3JtYWxpemVMb2NhbGUobmFtZXNbaSArIDFdKTtcbiAgICAgICAgICAgIG5leHQgPSBuZXh0ID8gbmV4dC5zcGxpdCgnLScpIDogbnVsbDtcbiAgICAgICAgICAgIHdoaWxlIChqID4gMCkge1xuICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoc3BsaXQuc2xpY2UoMCwgaikuam9pbignLScpKTtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgbmV4dCAmJlxuICAgICAgICAgICAgICAgICAgICBuZXh0Lmxlbmd0aCA+PSBqICYmXG4gICAgICAgICAgICAgICAgICAgIGNvbW1vblByZWZpeChzcGxpdCwgbmV4dCkgPj0gaiAtIDFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgLy90aGUgbmV4dCBhcnJheSBpdGVtIGlzIGJldHRlciB0aGFuIGEgc2hhbGxvd2VyIHN1YnN0cmluZyBvZiB0aGlzIG9uZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgai0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZExvY2FsZShuYW1lKSB7XG4gICAgICAgIHZhciBvbGRMb2NhbGUgPSBudWxsLFxuICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmU7XG4gICAgICAgIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIHJlZ2lzdGVyIGFuZCBsb2FkIGFsbCB0aGUgbG9jYWxlcyBpbiBOb2RlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIG1vZHVsZSAmJlxuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG9sZExvY2FsZSA9IGdsb2JhbExvY2FsZS5fYWJicjtcbiAgICAgICAgICAgICAgICBhbGlhc2VkUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmUoJy4vbG9jYWxlLycgKyBuYW1lKTtcbiAgICAgICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUob2xkTG9jYWxlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIG5vdCBmb3VuZCB0byBhdm9pZCByZXBlYXRpbmcgZXhwZW5zaXZlIGZpbGUgcmVxdWlyZSBjYWxsIGNhdXNpbmcgaGlnaCBDUFVcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHRyeWluZyB0byBmaW5kIGVuLVVTLCBlbl9VUywgZW4tdXMgZm9yIGV2ZXJ5IGZvcm1hdCBjYWxsXG4gICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IG51bGw7IC8vIG51bGwgbWVhbnMgbm90IGZvdW5kXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGxvYWQgbG9jYWxlIGFuZCB0aGVuIHNldCB0aGUgZ2xvYmFsIGxvY2FsZS4gIElmXG4gICAgLy8gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4sIGl0IHdpbGwgc2ltcGx5IHJldHVybiB0aGUgY3VycmVudCBnbG9iYWxcbiAgICAvLyBsb2NhbGUga2V5LlxuICAgIGZ1bmN0aW9uIGdldFNldEdsb2JhbExvY2FsZShrZXksIHZhbHVlcykge1xuICAgICAgICB2YXIgZGF0YTtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxlKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBkZWZpbmVMb2NhbGUoa2V5LCB2YWx1ZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIC8vIG1vbWVudC5kdXJhdGlvbi5fbG9jYWxlID0gbW9tZW50Ll9sb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGdsb2JhbExvY2FsZSA9IGRhdGE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vd2FybiB1c2VyIGlmIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ1dCB0aGUgbG9jYWxlIGNvdWxkIG5vdCBiZSBzZXRcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0xvY2FsZSAnICsga2V5ICsgJyBub3QgZm91bmQuIERpZCB5b3UgZm9yZ2V0IHRvIGxvYWQgaXQ/J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGUuX2FiYnI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVmaW5lTG9jYWxlKG5hbWUsIGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlLFxuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG4gICAgICAgICAgICBjb25maWcuYWJiciA9IG5hbWU7XG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZGVwcmVjYXRlU2ltcGxlKFxuICAgICAgICAgICAgICAgICAgICAnZGVmaW5lTG9jYWxlT3ZlcnJpZGUnLFxuICAgICAgICAgICAgICAgICAgICAndXNlIG1vbWVudC51cGRhdGVMb2NhbGUobG9jYWxlTmFtZSwgY29uZmlnKSB0byBjaGFuZ2UgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnYW4gZXhpc3RpbmcgbG9jYWxlLiBtb21lbnQuZGVmaW5lTG9jYWxlKGxvY2FsZU5hbWUsICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZykgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1NlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2RlZmluZS1sb2NhbGUvIGZvciBtb3JlIGluZm8uJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gbG9jYWxlc1tuYW1lXS5fY29uZmlnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlc1tjb25maWcucGFyZW50TG9jYWxlXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZXNbY29uZmlnLnBhcmVudExvY2FsZV0uX2NvbmZpZztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKGNvbmZpZy5wYXJlbnRMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZS5fY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBuZXcgTG9jYWxlKG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZykpO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxlRmFtaWxpZXNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmluZUxvY2FsZSh4Lm5hbWUsIHguY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBsb2NhbGUgQUZURVIgYWxsIGNoaWxkIGxvY2FsZXMgaGF2ZSBiZWVuXG4gICAgICAgICAgICAvLyBjcmVhdGVkLCBzbyB3ZSB3b24ndCBlbmQgdXAgd2l0aCB0aGUgY2hpbGQgbG9jYWxlIHNldC5cbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB1c2VmdWwgZm9yIHRlc3RpbmdcbiAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVMb2NhbGUobmFtZSwgY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsZSxcbiAgICAgICAgICAgICAgICB0bXBMb2NhbGUsXG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gYmFzZUNvbmZpZztcblxuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCAmJiBsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIGNoaWxkIGxvY2FsZSBpbi1wbGFjZSB0byBhdm9pZCBtZW1vcnktbGVha3NcbiAgICAgICAgICAgICAgICBsb2NhbGVzW25hbWVdLnNldChtZXJnZUNvbmZpZ3MobG9jYWxlc1tuYW1lXS5fY29uZmlnLCBjb25maWcpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTUVSR0VcbiAgICAgICAgICAgICAgICB0bXBMb2NhbGUgPSBsb2FkTG9jYWxlKG5hbWUpO1xuICAgICAgICAgICAgICAgIGlmICh0bXBMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSB0bXBMb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uZmlnID0gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY29uZmlnKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wTG9jYWxlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlTG9jYWxlIGlzIGNhbGxlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBhYmJyIHNvIGl0IHdpbGwgaGF2ZSBhIG5hbWUgKGdldHRlcnMgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIC8vIHVuZGVmaW5lZCBvdGhlcndpc2UpLlxuICAgICAgICAgICAgICAgICAgICBjb25maWcuYWJiciA9IG5hbWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBMb2NhbGUoY29uZmlnKTtcbiAgICAgICAgICAgICAgICBsb2NhbGUucGFyZW50TG9jYWxlID0gbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbG9jYWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiYWNrd2FyZHMgY29tcGF0IGZvciBub3c6IGFsc28gc2V0IHRoZSBsb2NhbGVcbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHBhc3MgbnVsbCBmb3IgY29uZmlnIHRvIHVudXBkYXRlLCB1c2VmdWwgZm9yIHRlc3RzXG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gZ2V0U2V0R2xvYmFsTG9jYWxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICB9XG5cbiAgICAvLyByZXR1cm5zIGxvY2FsZSBkYXRhXG4gICAgZnVuY3Rpb24gZ2V0TG9jYWxlKGtleSkge1xuICAgICAgICB2YXIgbG9jYWxlO1xuXG4gICAgICAgIGlmIChrZXkgJiYga2V5Ll9sb2NhbGUgJiYga2V5Ll9sb2NhbGUuX2FiYnIpIHtcbiAgICAgICAgICAgIGtleSA9IGtleS5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQXJyYXkoa2V5KSkge1xuICAgICAgICAgICAgLy9zaG9ydC1jaXJjdWl0IGV2ZXJ5dGhpbmcgZWxzZVxuICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBrZXkgPSBba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaG9vc2VMb2NhbGUoa2V5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TG9jYWxlcygpIHtcbiAgICAgICAgcmV0dXJuIGtleXMobG9jYWxlcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyhtKSB7XG4gICAgICAgIHZhciBvdmVyZmxvdyxcbiAgICAgICAgICAgIGEgPSBtLl9hO1xuXG4gICAgICAgIGlmIChhICYmIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9PT0gLTIpIHtcbiAgICAgICAgICAgIG92ZXJmbG93ID1cbiAgICAgICAgICAgICAgICBhW01PTlRIXSA8IDAgfHwgYVtNT05USF0gPiAxMVxuICAgICAgICAgICAgICAgICAgICA/IE1PTlRIXG4gICAgICAgICAgICAgICAgICAgIDogYVtEQVRFXSA8IDEgfHwgYVtEQVRFXSA+IGRheXNJbk1vbnRoKGFbWUVBUl0sIGFbTU9OVEhdKVxuICAgICAgICAgICAgICAgICAgICA/IERBVEVcbiAgICAgICAgICAgICAgICAgICAgOiBhW0hPVVJdIDwgMCB8fFxuICAgICAgICAgICAgICAgICAgICAgIGFbSE9VUl0gPiAyNCB8fFxuICAgICAgICAgICAgICAgICAgICAgIChhW0hPVVJdID09PSAyNCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYVtNSU5VVEVdICE9PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhW1NFQ09ORF0gIT09IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbTUlMTElTRUNPTkRdICE9PSAwKSlcbiAgICAgICAgICAgICAgICAgICAgPyBIT1VSXG4gICAgICAgICAgICAgICAgICAgIDogYVtNSU5VVEVdIDwgMCB8fCBhW01JTlVURV0gPiA1OVxuICAgICAgICAgICAgICAgICAgICA/IE1JTlVURVxuICAgICAgICAgICAgICAgICAgICA6IGFbU0VDT05EXSA8IDAgfHwgYVtTRUNPTkRdID4gNTlcbiAgICAgICAgICAgICAgICAgICAgPyBTRUNPTkRcbiAgICAgICAgICAgICAgICAgICAgOiBhW01JTExJU0VDT05EXSA8IDAgfHwgYVtNSUxMSVNFQ09ORF0gPiA5OTlcbiAgICAgICAgICAgICAgICAgICAgPyBNSUxMSVNFQ09ORFxuICAgICAgICAgICAgICAgICAgICA6IC0xO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd0RheU9mWWVhciAmJlxuICAgICAgICAgICAgICAgIChvdmVyZmxvdyA8IFlFQVIgfHwgb3ZlcmZsb3cgPiBEQVRFKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBEQVRFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrcyAmJiBvdmVyZmxvdyA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IFdFRUs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd1dlZWtkYXkgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLREFZO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MobSkub3ZlcmZsb3cgPSBvdmVyZmxvdztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIC8vIGlzbyA4NjAxIHJlZ2V4XG4gICAgLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApXG4gICAgdmFyIGV4dGVuZGVkSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pLSg/OlxcZFxcZC1cXGRcXGR8V1xcZFxcZC1cXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzo6XFxkXFxkKD86OlxcZFxcZCg/OlsuLF1cXGQrKT8pPyk/KShbKy1dXFxkXFxkKD86Oj9cXGRcXGQpP3xcXHMqWik/KT8kLyxcbiAgICAgICAgYmFzaWNJc29SZWdleCA9IC9eXFxzKigoPzpbKy1dXFxkezZ9fFxcZHs0fSkoPzpcXGRcXGRcXGRcXGR8V1xcZFxcZFxcZHxXXFxkXFxkfFxcZFxcZFxcZHxcXGRcXGR8KSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoWystXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC8sXG4gICAgICAgIHR6UmVnZXggPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy8sXG4gICAgICAgIGlzb0RhdGVzID0gW1xuICAgICAgICAgICAgWydZWVlZWVktTU0tREQnLCAvWystXVxcZHs2fS1cXGRcXGQtXFxkXFxkL10sXG4gICAgICAgICAgICBbJ1lZWVktTU0tREQnLCAvXFxkezR9LVxcZFxcZC1cXGRcXGQvXSxcbiAgICAgICAgICAgIFsnR0dHRy1bV11XVy1FJywgL1xcZHs0fS1XXFxkXFxkLVxcZC9dLFxuICAgICAgICAgICAgWydHR0dHLVtXXVdXJywgL1xcZHs0fS1XXFxkXFxkLywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZLURERCcsIC9cXGR7NH0tXFxkezN9L10sXG4gICAgICAgICAgICBbJ1lZWVktTU0nLCAvXFxkezR9LVxcZFxcZC8sIGZhbHNlXSxcbiAgICAgICAgICAgIFsnWVlZWVlZTU1ERCcsIC9bKy1dXFxkezEwfS9dLFxuICAgICAgICAgICAgWydZWVlZTU1ERCcsIC9cXGR7OH0vXSxcbiAgICAgICAgICAgIFsnR0dHR1tXXVdXRScsIC9cXGR7NH1XXFxkezN9L10sXG4gICAgICAgICAgICBbJ0dHR0dbV11XVycsIC9cXGR7NH1XXFxkezJ9LywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZREREJywgL1xcZHs3fS9dLFxuICAgICAgICAgICAgWydZWVlZTU0nLCAvXFxkezZ9LywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZJywgL1xcZHs0fS8sIGZhbHNlXSxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gaXNvIHRpbWUgZm9ybWF0cyBhbmQgcmVnZXhlc1xuICAgICAgICBpc29UaW1lcyA9IFtcbiAgICAgICAgICAgIFsnSEg6bW06c3MuU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgICAgIFsnSEg6bW06c3MsU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZCxcXGQrL10sXG4gICAgICAgICAgICBbJ0hIOm1tOnNzJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIOm1tJywgL1xcZFxcZDpcXGRcXGQvXSxcbiAgICAgICAgICAgIFsnSEhtbXNzLlNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkXFwuXFxkKy9dLFxuICAgICAgICAgICAgWydISG1tc3MsU1NTUycsIC9cXGRcXGRcXGRcXGRcXGRcXGQsXFxkKy9dLFxuICAgICAgICAgICAgWydISG1tc3MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIbW0nLCAvXFxkXFxkXFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIJywgL1xcZFxcZC9dLFxuICAgICAgICBdLFxuICAgICAgICBhc3BOZXRKc29uUmVnZXggPSAvXlxcLz9EYXRlXFwoKC0/XFxkKykvaSxcbiAgICAgICAgLy8gUkZDIDI4MjIgcmVnZXg6IEZvciBkZXRhaWxzIHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjgyMiNzZWN0aW9uLTMuM1xuICAgICAgICByZmMyODIyID0gL14oPzooTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSw/XFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfChbKy1dXFxkezR9KSkkLyxcbiAgICAgICAgb2JzT2Zmc2V0cyA9IHtcbiAgICAgICAgICAgIFVUOiAwLFxuICAgICAgICAgICAgR01UOiAwLFxuICAgICAgICAgICAgRURUOiAtNCAqIDYwLFxuICAgICAgICAgICAgRVNUOiAtNSAqIDYwLFxuICAgICAgICAgICAgQ0RUOiAtNSAqIDYwLFxuICAgICAgICAgICAgQ1NUOiAtNiAqIDYwLFxuICAgICAgICAgICAgTURUOiAtNiAqIDYwLFxuICAgICAgICAgICAgTVNUOiAtNyAqIDYwLFxuICAgICAgICAgICAgUERUOiAtNyAqIDYwLFxuICAgICAgICAgICAgUFNUOiAtOCAqIDYwLFxuICAgICAgICB9O1xuXG4gICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXRcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tSVNPKGNvbmZpZykge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICBzdHJpbmcgPSBjb25maWcuX2ksXG4gICAgICAgICAgICBtYXRjaCA9IGV4dGVuZGVkSXNvUmVnZXguZXhlYyhzdHJpbmcpIHx8IGJhc2ljSXNvUmVnZXguZXhlYyhzdHJpbmcpLFxuICAgICAgICAgICAgYWxsb3dUaW1lLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgIHRpbWVGb3JtYXQsXG4gICAgICAgICAgICB0ekZvcm1hdDtcblxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmlzbyA9IHRydWU7XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29EYXRlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNvRGF0ZXNbaV1bMV0uZXhlYyhtYXRjaFsxXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9IGlzb0RhdGVzW2ldWzBdO1xuICAgICAgICAgICAgICAgICAgICBhbGxvd1RpbWUgPSBpc29EYXRlc1tpXVsyXSAhPT0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRlRm9ybWF0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hbM10pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvVGltZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc29UaW1lc1tpXVsxXS5leGVjKG1hdGNoWzNdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hbMl0gc2hvdWxkIGJlICdUJyBvciBzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvcm1hdCA9IChtYXRjaFsyXSB8fCAnICcpICsgaXNvVGltZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGltZUZvcm1hdCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFhbGxvd1RpbWUgJiYgdGltZUZvcm1hdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoWzRdKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR6UmVnZXguZXhlYyhtYXRjaFs0XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdHpGb3JtYXQgPSAnWic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcuX2YgPSBkYXRlRm9ybWF0ICsgKHRpbWVGb3JtYXQgfHwgJycpICsgKHR6Rm9ybWF0IHx8ICcnKTtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyhcbiAgICAgICAgeWVhclN0cixcbiAgICAgICAgbW9udGhTdHIsXG4gICAgICAgIGRheVN0cixcbiAgICAgICAgaG91clN0cixcbiAgICAgICAgbWludXRlU3RyLFxuICAgICAgICBzZWNvbmRTdHJcbiAgICApIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IFtcbiAgICAgICAgICAgIHVudHJ1bmNhdGVZZWFyKHllYXJTdHIpLFxuICAgICAgICAgICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpLFxuICAgICAgICAgICAgcGFyc2VJbnQoZGF5U3RyLCAxMCksXG4gICAgICAgICAgICBwYXJzZUludChob3VyU3RyLCAxMCksXG4gICAgICAgICAgICBwYXJzZUludChtaW51dGVTdHIsIDEwKSxcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoc2Vjb25kU3RyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChwYXJzZUludChzZWNvbmRTdHIsIDEwKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXJTdHIpIHtcbiAgICAgICAgdmFyIHllYXIgPSBwYXJzZUludCh5ZWFyU3RyLCAxMCk7XG4gICAgICAgIGlmICh5ZWFyIDw9IDQ5KSB7XG4gICAgICAgICAgICByZXR1cm4gMjAwMCArIHllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoeWVhciA8PSA5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiAxOTAwICsgeWVhcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geWVhcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzKSB7XG4gICAgICAgIC8vIFJlbW92ZSBjb21tZW50cyBhbmQgZm9sZGluZyB3aGl0ZXNwYWNlIGFuZCByZXBsYWNlIG11bHRpcGxlLXNwYWNlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG4gICAgICAgIHJldHVybiBzXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwoW14pXSpcXCl8W1xcblxcdF0vZywgJyAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCAnICcpXG4gICAgICAgICAgICAucmVwbGFjZSgvXlxcc1xccyovLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHNcXHMqJC8sICcnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja1dlZWtkYXkod2Vla2RheVN0ciwgcGFyc2VkSW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAod2Vla2RheVN0cikge1xuICAgICAgICAgICAgLy8gVE9ETzogUmVwbGFjZSB0aGUgdmFuaWxsYSBKUyBEYXRlIG9iamVjdCB3aXRoIGFuIGluZGVwZW5kZW50IGRheS1vZi13ZWVrIGNoZWNrLlxuICAgICAgICAgICAgdmFyIHdlZWtkYXlQcm92aWRlZCA9IGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0ciksXG4gICAgICAgICAgICAgICAgd2Vla2RheUFjdHVhbCA9IG5ldyBEYXRlKFxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRJbnB1dFswXSxcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkSW5wdXRbMV0sXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZElucHV0WzJdXG4gICAgICAgICAgICAgICAgKS5nZXREYXkoKTtcbiAgICAgICAgICAgIGlmICh3ZWVrZGF5UHJvdmlkZWQgIT09IHdlZWtkYXlBY3R1YWwpIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS53ZWVrZGF5TWlzbWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjYWxjdWxhdGVPZmZzZXQob2JzT2Zmc2V0LCBtaWxpdGFyeU9mZnNldCwgbnVtT2Zmc2V0KSB7XG4gICAgICAgIGlmIChvYnNPZmZzZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBvYnNPZmZzZXRzW29ic09mZnNldF07XG4gICAgICAgIH0gZWxzZSBpZiAobWlsaXRhcnlPZmZzZXQpIHtcbiAgICAgICAgICAgIC8vIHRoZSBvbmx5IGFsbG93ZWQgbWlsaXRhcnkgdHogaXMgWlxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBwYXJzZUludChudW1PZmZzZXQsIDEwKSxcbiAgICAgICAgICAgICAgICBtID0gaG0gJSAxMDAsXG4gICAgICAgICAgICAgICAgaCA9IChobSAtIG0pIC8gMTAwO1xuICAgICAgICAgICAgcmV0dXJuIGggKiA2MCArIG07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGFuZCB0aW1lIGZyb20gcmVmIDI4MjIgZm9ybWF0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHJmYzI4MjIuZXhlYyhwcmVwcm9jZXNzUkZDMjgyMihjb25maWcuX2kpKSxcbiAgICAgICAgICAgIHBhcnNlZEFycmF5O1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIHBhcnNlZEFycmF5ID0gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyhcbiAgICAgICAgICAgICAgICBtYXRjaFs0XSxcbiAgICAgICAgICAgICAgICBtYXRjaFszXSxcbiAgICAgICAgICAgICAgICBtYXRjaFsyXSxcbiAgICAgICAgICAgICAgICBtYXRjaFs1XSxcbiAgICAgICAgICAgICAgICBtYXRjaFs2XSxcbiAgICAgICAgICAgICAgICBtYXRjaFs3XVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghY2hlY2tXZWVrZGF5KG1hdGNoWzFdLCBwYXJzZWRBcnJheSwgY29uZmlnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uZmlnLl9hID0gcGFyc2VkQXJyYXk7XG4gICAgICAgICAgICBjb25maWcuX3R6bSA9IGNhbGN1bGF0ZU9mZnNldChtYXRjaFs4XSwgbWF0Y2hbOV0sIG1hdGNoWzEwXSk7XG5cbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IGNyZWF0ZVVUQ0RhdGUuYXBwbHkobnVsbCwgY29uZmlnLl9hKTtcbiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgLSBjb25maWcuX3R6bSk7XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnJmYzI4MjIgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGZyb20gMSkgQVNQLk5FVCwgMikgSVNPLCAzKSBSRkMgMjgyMiBmb3JtYXRzLCBvciA0KSBvcHRpb25hbCBmYWxsYmFjayBpZiBwYXJzaW5nIGlzbid0IHN0cmljdFxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmcoY29uZmlnKSB7XG4gICAgICAgIHZhciBtYXRjaGVkID0gYXNwTmV0SnNvblJlZ2V4LmV4ZWMoY29uZmlnLl9pKTtcbiAgICAgICAgaWYgKG1hdGNoZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKCttYXRjaGVkWzFdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tUkZDMjgyMihjb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuX3N0cmljdCkge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGaW5hbCBhdHRlbXB0LCB1c2UgSW5wdXQgRmFsbGJhY2tcbiAgICAgICAgICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrKGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ3ZhbHVlIHByb3ZpZGVkIGlzIG5vdCBpbiBhIHJlY29nbml6ZWQgUkZDMjgyMiBvciBJU08gZm9ybWF0LiBtb21lbnQgY29uc3RydWN0aW9uIGZhbGxzIGJhY2sgdG8ganMgRGF0ZSgpLCAnICtcbiAgICAgICAgICAgICd3aGljaCBpcyBub3QgcmVsaWFibGUgYWNyb3NzIGFsbCBicm93c2VycyBhbmQgdmVyc2lvbnMuIE5vbiBSRkMyODIyL0lTTyBkYXRlIGZvcm1hdHMgYXJlICcgK1xuICAgICAgICAgICAgJ2Rpc2NvdXJhZ2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgbWFqb3IgcmVsZWFzZS4gUGxlYXNlIHJlZmVyIHRvICcgK1xuICAgICAgICAgICAgJ2h0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvanMtZGF0ZS8gZm9yIG1vcmUgaW5mby4nLFxuICAgICAgICBmdW5jdGlvbiAoY29uZmlnKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIC8vIFBpY2sgdGhlIGZpcnN0IGRlZmluZWQgb2YgdHdvIG9yIHRocmVlIGFyZ3VtZW50cy5cbiAgICBmdW5jdGlvbiBkZWZhdWx0cyhhLCBiLCBjKSB7XG4gICAgICAgIGlmIChhICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKSB7XG4gICAgICAgIC8vIGhvb2tzIGlzIGFjdHVhbGx5IHRoZSBleHBvcnRlZCBtb21lbnQgb2JqZWN0XG4gICAgICAgIHZhciBub3dWYWx1ZSA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIG5vd1ZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgICAgICAgICAgICAgbm93VmFsdWUuZ2V0VVRDTW9udGgoKSxcbiAgICAgICAgICAgICAgICBub3dWYWx1ZS5nZXRVVENEYXRlKCksXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbbm93VmFsdWUuZ2V0RnVsbFllYXIoKSwgbm93VmFsdWUuZ2V0TW9udGgoKSwgbm93VmFsdWUuZ2V0RGF0ZSgpXTtcbiAgICB9XG5cbiAgICAvLyBjb252ZXJ0IGFuIGFycmF5IHRvIGEgZGF0ZS5cbiAgICAvLyB0aGUgYXJyYXkgc2hvdWxkIG1pcnJvciB0aGUgcGFyYW1ldGVycyBiZWxvd1xuICAgIC8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLlxuICAgIC8vIFt5ZWFyLCBtb250aCwgZGF5ICwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXVxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21BcnJheShjb25maWcpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgaW5wdXQgPSBbXSxcbiAgICAgICAgICAgIGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgZXhwZWN0ZWRXZWVrZGF5LFxuICAgICAgICAgICAgeWVhclRvVXNlO1xuXG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGVBcnJheShjb25maWcpO1xuXG4gICAgICAgIC8vY29tcHV0ZSBkYXkgb2YgdGhlIHllYXIgZnJvbSB3ZWVrcyBhbmQgd2Vla2RheXNcbiAgICAgICAgaWYgKGNvbmZpZy5fdyAmJiBjb25maWcuX2FbREFURV0gPT0gbnVsbCAmJiBjb25maWcuX2FbTU9OVEhdID09IG51bGwpIHtcbiAgICAgICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9pZiB0aGUgZGF5IG9mIHRoZSB5ZWFyIGlzIHNldCwgZmlndXJlIG91dCB3aGF0IGl0IGlzXG4gICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciAhPSBudWxsKSB7XG4gICAgICAgICAgICB5ZWFyVG9Vc2UgPSBkZWZhdWx0cyhjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyVG9Vc2UpIHx8XG4gICAgICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPT09IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd0RheU9mWWVhciA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGUgPSBjcmVhdGVVVENEYXRlKHllYXJUb1VzZSwgMCwgY29uZmlnLl9kYXlPZlllYXIpO1xuICAgICAgICAgICAgY29uZmlnLl9hW01PTlRIXSA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtEQVRFXSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IGRhdGUuXG4gICAgICAgIC8vICogaWYgbm8geWVhciwgbW9udGgsIGRheSBvZiBtb250aCBhcmUgZ2l2ZW4sIGRlZmF1bHQgdG8gdG9kYXlcbiAgICAgICAgLy8gKiBpZiBkYXkgb2YgbW9udGggaXMgZ2l2ZW4sIGRlZmF1bHQgbW9udGggYW5kIHllYXJcbiAgICAgICAgLy8gKiBpZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBvbmx5IHllYXJcbiAgICAgICAgLy8gKiBpZiB5ZWFyIGlzIGdpdmVuLCBkb24ndCBkZWZhdWx0IGFueXRoaW5nXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAzICYmIGNvbmZpZy5fYVtpXSA9PSBudWxsOyArK2kpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gY3VycmVudERhdGVbaV07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBaZXJvIG91dCB3aGF0ZXZlciB3YXMgbm90IGRlZmF1bHRlZCwgaW5jbHVkaW5nIHRpbWVcbiAgICAgICAgZm9yICg7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID1cbiAgICAgICAgICAgICAgICBjb25maWcuX2FbaV0gPT0gbnVsbCA/IChpID09PSAyID8gMSA6IDApIDogY29uZmlnLl9hW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIDI0OjAwOjAwLjAwMFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPT09IDI0ICYmXG4gICAgICAgICAgICBjb25maWcuX2FbTUlOVVRFXSA9PT0gMCAmJlxuICAgICAgICAgICAgY29uZmlnLl9hW1NFQ09ORF0gPT09IDAgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fYVtNSUxMSVNFQ09ORF0gPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25maWcuX25leHREYXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZy5fZCA9IChjb25maWcuX3VzZVVUQyA/IGNyZWF0ZVVUQ0RhdGUgOiBjcmVhdGVEYXRlKS5hcHBseShcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBpbnB1dFxuICAgICAgICApO1xuICAgICAgICBleHBlY3RlZFdlZWtkYXkgPSBjb25maWcuX3VzZVVUQ1xuICAgICAgICAgICAgPyBjb25maWcuX2QuZ2V0VVRDRGF5KClcbiAgICAgICAgICAgIDogY29uZmlnLl9kLmdldERheSgpO1xuXG4gICAgICAgIC8vIEFwcGx5IHRpbWV6b25lIG9mZnNldCBmcm9tIGlucHV0LiBUaGUgYWN0dWFsIHV0Y09mZnNldCBjYW4gYmUgY2hhbmdlZFxuICAgICAgICAvLyB3aXRoIHBhcnNlWm9uZS5cbiAgICAgICAgaWYgKGNvbmZpZy5fdHptICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgLSBjb25maWcuX3R6bSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLl9uZXh0RGF5KSB7XG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAyNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGZvciBtaXNtYXRjaGluZyBkYXkgb2Ygd2Vla1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuX3cgJiZcbiAgICAgICAgICAgIHR5cGVvZiBjb25maWcuX3cuZCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fdy5kICE9PSBleHBlY3RlZFdlZWtkYXlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS53ZWVrZGF5TWlzbWF0Y2ggPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtJbmZvKGNvbmZpZykge1xuICAgICAgICB2YXIgdywgd2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95LCB0ZW1wLCB3ZWVrZGF5T3ZlcmZsb3csIGN1cldlZWs7XG5cbiAgICAgICAgdyA9IGNvbmZpZy5fdztcbiAgICAgICAgaWYgKHcuR0cgIT0gbnVsbCB8fCB3LlcgIT0gbnVsbCB8fCB3LkUgIT0gbnVsbCkge1xuICAgICAgICAgICAgZG93ID0gMTtcbiAgICAgICAgICAgIGRveSA9IDQ7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IFdlIG5lZWQgdG8gdGFrZSB0aGUgY3VycmVudCBpc29XZWVrWWVhciwgYnV0IHRoYXQgZGVwZW5kcyBvblxuICAgICAgICAgICAgLy8gaG93IHdlIGludGVycHJldCBub3cgKGxvY2FsLCB1dGMsIGZpeGVkIG9mZnNldCkuIFNvIGNyZWF0ZVxuICAgICAgICAgICAgLy8gYSBub3cgdmVyc2lvbiBvZiBjdXJyZW50IGNvbmZpZyAodGFrZSBsb2NhbC91dGMvb2Zmc2V0IGZsYWdzLCBhbmRcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBub3cpLlxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyhcbiAgICAgICAgICAgICAgICB3LkdHLFxuICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtZRUFSXSxcbiAgICAgICAgICAgICAgICB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIDEsIDQpLnllYXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody5XLCAxKTtcbiAgICAgICAgICAgIHdlZWtkYXkgPSBkZWZhdWx0cyh3LkUsIDEpO1xuICAgICAgICAgICAgaWYgKHdlZWtkYXkgPCAxIHx8IHdlZWtkYXkgPiA3KSB7XG4gICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvdyA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRvdztcbiAgICAgICAgICAgIGRveSA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRveTtcblxuICAgICAgICAgICAgY3VyV2VlayA9IHdlZWtPZlllYXIoY3JlYXRlTG9jYWwoKSwgZG93LCBkb3kpO1xuXG4gICAgICAgICAgICB3ZWVrWWVhciA9IGRlZmF1bHRzKHcuZ2csIGNvbmZpZy5fYVtZRUFSXSwgY3VyV2Vlay55ZWFyKTtcblxuICAgICAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHdlZWsuXG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody53LCBjdXJXZWVrLndlZWspO1xuXG4gICAgICAgICAgICBpZiAody5kICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyB3ZWVrZGF5IC0tIGxvdyBkYXkgbnVtYmVycyBhcmUgY29uc2lkZXJlZCBuZXh0IHdlZWtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5kO1xuICAgICAgICAgICAgICAgIGlmICh3ZWVrZGF5IDwgMCB8fCB3ZWVrZGF5ID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAody5lICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBsb2NhbCB3ZWVrZGF5IC0tIGNvdW50aW5nIHN0YXJ0cyBmcm9tIGJlZ2lubmluZyBvZiB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZSArIGRvdztcbiAgICAgICAgICAgICAgICBpZiAody5lIDwgMCB8fCB3LmUgPiA2KSB7XG4gICAgICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvIGJlZ2lubmluZyBvZiB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IGRvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAod2VlayA8IDEgfHwgd2VlayA+IHdlZWtzSW5ZZWFyKHdlZWtZZWFyLCBkb3csIGRveSkpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrZGF5T3ZlcmZsb3cgIT0gbnVsbCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93V2Vla2RheSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0ZW1wID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSk7XG4gICAgICAgICAgICBjb25maWcuX2FbWUVBUl0gPSB0ZW1wLnllYXI7XG4gICAgICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRlbXAuZGF5T2ZZZWFyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIElTTyBzdGFuZGFyZFxuICAgIGhvb2tzLklTT184NjAxID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBjb25zdGFudCB0aGF0IHJlZmVycyB0byB0aGUgUkZDIDI4MjIgZm9ybVxuICAgIGhvb2tzLlJGQ18yODIyID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBmb3JtYXQgc3RyaW5nXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIGFub3RoZXIgcGFydCBvZiB0aGUgY3JlYXRpb24gZmxvdyB0byBwcmV2ZW50IGNpcmN1bGFyIGRlcHNcbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuSVNPXzg2MDEpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLl9mID09PSBob29rcy5SRkNfMjgyMikge1xuICAgICAgICAgICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25maWcuX2EgPSBbXTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSB0cnVlO1xuXG4gICAgICAgIC8vIFRoaXMgYXJyYXkgaXMgdXNlZCB0byBtYWtlIGEgRGF0ZSwgZWl0aGVyIHdpdGggYG5ldyBEYXRlYCBvciBgRGF0ZS5VVENgXG4gICAgICAgIHZhciBzdHJpbmcgPSAnJyArIGNvbmZpZy5faSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBwYXJzZWRJbnB1dCxcbiAgICAgICAgICAgIHRva2VucyxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgc2tpcHBlZCxcbiAgICAgICAgICAgIHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoID0gMCxcbiAgICAgICAgICAgIGVyYTtcblxuICAgICAgICB0b2tlbnMgPVxuICAgICAgICAgICAgZXhwYW5kRm9ybWF0KGNvbmZpZy5fZiwgY29uZmlnLl9sb2NhbGUpLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpIHx8IFtdO1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICAgICAgcGFyc2VkSW5wdXQgPSAoc3RyaW5nLm1hdGNoKGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSkgfHxcbiAgICAgICAgICAgICAgICBbXSlbMF07XG4gICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBza2lwcGVkID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkpO1xuICAgICAgICAgICAgICAgIGlmIChza2lwcGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChza2lwcGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkgKyBwYXJzZWRJbnB1dC5sZW5ndGhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGggKz0gcGFyc2VkSW5wdXQubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZG9uJ3QgcGFyc2UgaWYgaXQncyBub3QgYSBrbm93biB0b2tlblxuICAgICAgICAgICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW3Rva2VuXSkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lbXB0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZFRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIHBhcnNlZElucHV0LCBjb25maWcpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcuX3N0cmljdCAmJiAhcGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgcmVtYWluaW5nIHVucGFyc2VkIGlucHV0IGxlbmd0aCB0byB0aGUgc3RyaW5nXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmNoYXJzTGVmdE92ZXIgPVxuICAgICAgICAgICAgc3RyaW5nTGVuZ3RoIC0gdG90YWxQYXJzZWRJbnB1dExlbmd0aDtcbiAgICAgICAgaWYgKHN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRJbnB1dC5wdXNoKHN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbGVhciBfMTJoIGZsYWcgaWYgaG91ciBpcyA8PSAxMlxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPD0gMTIgJiZcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPT09IHRydWUgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykucGFyc2VkRGF0ZVBhcnRzID0gY29uZmlnLl9hLnNsaWNlKDApO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5tZXJpZGllbSA9IGNvbmZpZy5fbWVyaWRpZW07XG4gICAgICAgIC8vIGhhbmRsZSBtZXJpZGllbVxuICAgICAgICBjb25maWcuX2FbSE9VUl0gPSBtZXJpZGllbUZpeFdyYXAoXG4gICAgICAgICAgICBjb25maWcuX2xvY2FsZSxcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSxcbiAgICAgICAgICAgIGNvbmZpZy5fbWVyaWRpZW1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBoYW5kbGUgZXJhXG4gICAgICAgIGVyYSA9IGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVyYTtcbiAgICAgICAgaWYgKGVyYSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uZmlnLl9hW1lFQVJdID0gY29uZmlnLl9sb2NhbGUuZXJhc0NvbnZlcnRZZWFyKGVyYSwgY29uZmlnLl9hW1lFQVJdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgICAgICBjaGVja092ZXJmbG93KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyaWRpZW1GaXhXcmFwKGxvY2FsZSwgaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgdmFyIGlzUG07XG5cbiAgICAgICAgaWYgKG1lcmlkaWVtID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb2NhbGUubWVyaWRpZW1Ib3VyICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUubWVyaWRpZW1Ib3VyKGhvdXIsIG1lcmlkaWVtKTtcbiAgICAgICAgfSBlbHNlIGlmIChsb2NhbGUuaXNQTSAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFja1xuICAgICAgICAgICAgaXNQbSA9IGxvY2FsZS5pc1BNKG1lcmlkaWVtKTtcbiAgICAgICAgICAgIGlmIChpc1BtICYmIGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzUG0gJiYgaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3Qgc3VwcG9zZWQgdG8gaGFwcGVuXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGFycmF5IG9mIGZvcm1hdCBzdHJpbmdzXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZykge1xuICAgICAgICB2YXIgdGVtcENvbmZpZyxcbiAgICAgICAgICAgIGJlc3RNb21lbnQsXG4gICAgICAgICAgICBzY29yZVRvQmVhdCxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBjdXJyZW50U2NvcmUsXG4gICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kLFxuICAgICAgICAgICAgYmVzdEZvcm1hdElzVmFsaWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoY29uZmlnLl9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEZvcm1hdCA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShOYU4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy5fZi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY3VycmVudFNjb3JlID0gMDtcbiAgICAgICAgICAgIHZhbGlkRm9ybWF0Rm91bmQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRlbXBDb25maWcgPSBjb3B5Q29uZmlnKHt9LCBjb25maWcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0ZW1wQ29uZmlnLl91c2VVVEMgPSBjb25maWcuX3VzZVVUQztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRlbXBDb25maWcuX2YgPSBjb25maWcuX2ZbaV07XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KHRlbXBDb25maWcpO1xuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCh0ZW1wQ29uZmlnKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkRm9ybWF0Rm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbnkgaW5wdXQgdGhhdCB3YXMgbm90IHBhcnNlZCBhZGQgYSBwZW5hbHR5IGZvciB0aGF0IGZvcm1hdFxuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5jaGFyc0xlZnRPdmVyO1xuXG4gICAgICAgICAgICAvL29yIHRva2Vuc1xuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS51bnVzZWRUb2tlbnMubGVuZ3RoICogMTA7XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5zY29yZSA9IGN1cnJlbnRTY29yZTtcblxuICAgICAgICAgICAgaWYgKCFiZXN0Rm9ybWF0SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgc2NvcmVUb0JlYXQgPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCB8fFxuICAgICAgICAgICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkRm9ybWF0Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RGb3JtYXRJc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTY29yZSA8IHNjb3JlVG9CZWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRlbmQoY29uZmlnLCBiZXN0TW9tZW50IHx8IHRlbXBDb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoY29uZmlnLl9pKSxcbiAgICAgICAgICAgIGRheU9yRGF0ZSA9IGkuZGF5ID09PSB1bmRlZmluZWQgPyBpLmRhdGUgOiBpLmRheTtcbiAgICAgICAgY29uZmlnLl9hID0gbWFwKFxuICAgICAgICAgICAgW2kueWVhciwgaS5tb250aCwgZGF5T3JEYXRlLCBpLmhvdXIsIGkubWludXRlLCBpLnNlY29uZCwgaS5taWxsaXNlY29uZF0sXG4gICAgICAgICAgICBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iaiAmJiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tQ29uZmlnKGNvbmZpZykge1xuICAgICAgICB2YXIgcmVzID0gbmV3IE1vbWVudChjaGVja092ZXJmbG93KHByZXBhcmVDb25maWcoY29uZmlnKSkpO1xuICAgICAgICBpZiAocmVzLl9uZXh0RGF5KSB7XG4gICAgICAgICAgICAvLyBBZGRpbmcgaXMgc21hcnQgZW5vdWdoIGFyb3VuZCBEU1RcbiAgICAgICAgICAgIHJlcy5hZGQoMSwgJ2QnKTtcbiAgICAgICAgICAgIHJlcy5fbmV4dERheSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcGFyZUNvbmZpZyhjb25maWcpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gY29uZmlnLl9pLFxuICAgICAgICAgICAgZm9ybWF0ID0gY29uZmlnLl9mO1xuXG4gICAgICAgIGNvbmZpZy5fbG9jYWxlID0gY29uZmlnLl9sb2NhbGUgfHwgZ2V0TG9jYWxlKGNvbmZpZy5fbCk7XG5cbiAgICAgICAgaWYgKGlucHV0ID09PSBudWxsIHx8IChmb3JtYXQgPT09IHVuZGVmaW5lZCAmJiBpbnB1dCA9PT0gJycpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCh7IG51bGxJbnB1dDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWcuX2kgPSBpbnB1dCA9IGNvbmZpZy5fbG9jYWxlLnByZXBhcnNlKGlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc01vbWVudChpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9tZW50KGNoZWNrT3ZlcmZsb3coaW5wdXQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBpbnB1dDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCkge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnRnJvbUlucHV0KGNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzVmFsaWQoY29uZmlnKSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUlucHV0KGNvbmZpZykge1xuICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2k7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmcoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9hID0gbWFwKGlucHV0LnNsaWNlKDApLCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KG9iaiwgMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc09iamVjdChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkpIHtcbiAgICAgICAgICAgIC8vIGZyb20gbWlsbGlzZWNvbmRzXG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgaXNVVEMpIHtcbiAgICAgICAgdmFyIGMgPSB7fTtcblxuICAgICAgICBpZiAoZm9ybWF0ID09PSB0cnVlIHx8IGZvcm1hdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHN0cmljdCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsb2NhbGUgPT09IHRydWUgfHwgbG9jYWxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc3RyaWN0ID0gbG9jYWxlO1xuICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGlzT2JqZWN0KGlucHV0KSAmJiBpc09iamVjdEVtcHR5KGlucHV0KSkgfHxcbiAgICAgICAgICAgIChpc0FycmF5KGlucHV0KSAmJiBpbnB1dC5sZW5ndGggPT09IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgaW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiBtdXN0IGJlIGRvbmUgdGhpcyB3YXkuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8xNDIzXG4gICAgICAgIGMuX2lzQU1vbWVudE9iamVjdCA9IHRydWU7XG4gICAgICAgIGMuX3VzZVVUQyA9IGMuX2lzVVRDID0gaXNVVEM7XG4gICAgICAgIGMuX2wgPSBsb2NhbGU7XG4gICAgICAgIGMuX2kgPSBpbnB1dDtcbiAgICAgICAgYy5fZiA9IGZvcm1hdDtcbiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVGcm9tQ29uZmlnKGMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2FsKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvdHlwZU1pbiA9IGRlcHJlY2F0ZShcbiAgICAgICAgICAgICdtb21lbnQoKS5taW4gaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5tYXggaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA8IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIHByb3RvdHlwZU1heCA9IGRlcHJlY2F0ZShcbiAgICAgICAgICAgICdtb21lbnQoKS5tYXggaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5taW4gaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA+IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAvLyBQaWNrIGEgbW9tZW50IG0gZnJvbSBtb21lbnRzIHNvIHRoYXQgbVtmbl0ob3RoZXIpIGlzIHRydWUgZm9yIGFsbFxuICAgIC8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS5cbiAgICAvL1xuICAgIC8vIG1vbWVudHMgc2hvdWxkIGVpdGhlciBiZSBhbiBhcnJheSBvZiBtb21lbnQgb2JqZWN0cyBvciBhbiBhcnJheSwgd2hvc2VcbiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLlxuICAgIGZ1bmN0aW9uIHBpY2tCeShmbiwgbW9tZW50cykge1xuICAgICAgICB2YXIgcmVzLCBpO1xuICAgICAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkge1xuICAgICAgICAgICAgbW9tZW50cyA9IG1vbWVudHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtb21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzID0gbW9tZW50c1swXTtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IG1vbWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmICghbW9tZW50c1tpXS5pc1ZhbGlkKCkgfHwgbW9tZW50c1tpXVtmbl0ocmVzKSkge1xuICAgICAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgW10uc29ydCBpbnN0ZWFkP1xuICAgIGZ1bmN0aW9uIG1pbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgICAgICAgcmV0dXJuIHBpY2tCeSgnaXNCZWZvcmUnLCBhcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXgoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgIHJldHVybiBwaWNrQnkoJ2lzQWZ0ZXInLCBhcmdzKTtcbiAgICB9XG5cbiAgICB2YXIgbm93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gRGF0ZS5ub3cgPyBEYXRlLm5vdygpIDogK25ldyBEYXRlKCk7XG4gICAgfTtcblxuICAgIHZhciBvcmRlcmluZyA9IFtcbiAgICAgICAgJ3llYXInLFxuICAgICAgICAncXVhcnRlcicsXG4gICAgICAgICdtb250aCcsXG4gICAgICAgICd3ZWVrJyxcbiAgICAgICAgJ2RheScsXG4gICAgICAgICdob3VyJyxcbiAgICAgICAgJ21pbnV0ZScsXG4gICAgICAgICdzZWNvbmQnLFxuICAgICAgICAnbWlsbGlzZWNvbmQnLFxuICAgIF07XG5cbiAgICBmdW5jdGlvbiBpc0R1cmF0aW9uVmFsaWQobSkge1xuICAgICAgICB2YXIga2V5LFxuICAgICAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSBmYWxzZSxcbiAgICAgICAgICAgIGk7XG4gICAgICAgIGZvciAoa2V5IGluIG0pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBoYXNPd25Qcm9wKG0sIGtleSkgJiZcbiAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICBpbmRleE9mLmNhbGwob3JkZXJpbmcsIGtleSkgIT09IC0xICYmXG4gICAgICAgICAgICAgICAgICAgIChtW2tleV0gPT0gbnVsbCB8fCAhaXNOYU4obVtrZXldKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb3JkZXJpbmcubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmIChtW29yZGVyaW5nW2ldXSkge1xuICAgICAgICAgICAgICAgIGlmICh1bml0SGFzRGVjaW1hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG9ubHkgYWxsb3cgbm9uLWludGVnZXJzIGZvciBzbWFsbGVzdCB1bml0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJzZUZsb2F0KG1bb3JkZXJpbmdbaV1dKSAhPT0gdG9JbnQobVtvcmRlcmluZ1tpXV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaXRIYXNEZWNpbWFsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkJDEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUludmFsaWQkMSgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKE5hTik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gRHVyYXRpb24oZHVyYXRpb24pIHtcbiAgICAgICAgdmFyIG5vcm1hbGl6ZWRJbnB1dCA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGR1cmF0aW9uKSxcbiAgICAgICAgICAgIHllYXJzID0gbm9ybWFsaXplZElucHV0LnllYXIgfHwgMCxcbiAgICAgICAgICAgIHF1YXJ0ZXJzID0gbm9ybWFsaXplZElucHV0LnF1YXJ0ZXIgfHwgMCxcbiAgICAgICAgICAgIG1vbnRocyA9IG5vcm1hbGl6ZWRJbnB1dC5tb250aCB8fCAwLFxuICAgICAgICAgICAgd2Vla3MgPSBub3JtYWxpemVkSW5wdXQud2VlayB8fCBub3JtYWxpemVkSW5wdXQuaXNvV2VlayB8fCAwLFxuICAgICAgICAgICAgZGF5cyA9IG5vcm1hbGl6ZWRJbnB1dC5kYXkgfHwgMCxcbiAgICAgICAgICAgIGhvdXJzID0gbm9ybWFsaXplZElucHV0LmhvdXIgfHwgMCxcbiAgICAgICAgICAgIG1pbnV0ZXMgPSBub3JtYWxpemVkSW5wdXQubWludXRlIHx8IDAsXG4gICAgICAgICAgICBzZWNvbmRzID0gbm9ybWFsaXplZElucHV0LnNlY29uZCB8fCAwLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzID0gbm9ybWFsaXplZElucHV0Lm1pbGxpc2Vjb25kIHx8IDA7XG5cbiAgICAgICAgdGhpcy5faXNWYWxpZCA9IGlzRHVyYXRpb25WYWxpZChub3JtYWxpemVkSW5wdXQpO1xuXG4gICAgICAgIC8vIHJlcHJlc2VudGF0aW9uIGZvciBkYXRlQWRkUmVtb3ZlXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyA9XG4gICAgICAgICAgICArbWlsbGlzZWNvbmRzICtcbiAgICAgICAgICAgIHNlY29uZHMgKiAxZTMgKyAvLyAxMDAwXG4gICAgICAgICAgICBtaW51dGVzICogNmU0ICsgLy8gMTAwMCAqIDYwXG4gICAgICAgICAgICBob3VycyAqIDEwMDAgKiA2MCAqIDYwOyAvL3VzaW5nIDEwMDAgKiA2MCAqIDYwIGluc3RlYWQgb2YgMzZlNSB0byBhdm9pZCBmbG9hdGluZyBwb2ludCByb3VuZGluZyBlcnJvcnMgaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzI5NzhcbiAgICAgICAgLy8gQmVjYXVzZSBvZiBkYXRlQWRkUmVtb3ZlIHRyZWF0cyAyNCBob3VycyBhcyBkaWZmZXJlbnQgZnJvbSBhXG4gICAgICAgIC8vIGRheSB3aGVuIHdvcmtpbmcgYXJvdW5kIERTVCwgd2UgbmVlZCB0byBzdG9yZSB0aGVtIHNlcGFyYXRlbHlcbiAgICAgICAgdGhpcy5fZGF5cyA9ICtkYXlzICsgd2Vla3MgKiA3O1xuICAgICAgICAvLyBJdCBpcyBpbXBvc3NpYmxlIHRvIHRyYW5zbGF0ZSBtb250aHMgaW50byBkYXlzIHdpdGhvdXQga25vd2luZ1xuICAgICAgICAvLyB3aGljaCBtb250aHMgeW91IGFyZSBhcmUgdGFsa2luZyBhYm91dCwgc28gd2UgaGF2ZSB0byBzdG9yZVxuICAgICAgICAvLyBpdCBzZXBhcmF0ZWx5LlxuICAgICAgICB0aGlzLl9tb250aHMgPSArbW9udGhzICsgcXVhcnRlcnMgKiAzICsgeWVhcnMgKiAxMjtcblxuICAgICAgICB0aGlzLl9kYXRhID0ge307XG5cbiAgICAgICAgdGhpcy5fbG9jYWxlID0gZ2V0TG9jYWxlKCk7XG5cbiAgICAgICAgdGhpcy5fYnViYmxlKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEdXJhdGlvbihvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIER1cmF0aW9uO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic1JvdW5kKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoLTEgKiBudW1iZXIpICogLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY29tcGFyZSB0d28gYXJyYXlzLCByZXR1cm4gdGhlIG51bWJlciBvZiBkaWZmZXJlbmNlc1xuICAgIGZ1bmN0aW9uIGNvbXBhcmVBcnJheXMoYXJyYXkxLCBhcnJheTIsIGRvbnRDb252ZXJ0KSB7XG4gICAgICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcnJheTEubGVuZ3RoLCBhcnJheTIubGVuZ3RoKSxcbiAgICAgICAgICAgIGxlbmd0aERpZmYgPSBNYXRoLmFicyhhcnJheTEubGVuZ3RoIC0gYXJyYXkyLmxlbmd0aCksXG4gICAgICAgICAgICBkaWZmcyA9IDAsXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoZG9udENvbnZlcnQgJiYgYXJyYXkxW2ldICE9PSBhcnJheTJbaV0pIHx8XG4gICAgICAgICAgICAgICAgKCFkb250Q29udmVydCAmJiB0b0ludChhcnJheTFbaV0pICE9PSB0b0ludChhcnJheTJbaV0pKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlmZnMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlmZnMgKyBsZW5ndGhEaWZmO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIG9mZnNldCh0b2tlbiwgc2VwYXJhdG9yKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy51dGNPZmZzZXQoKSxcbiAgICAgICAgICAgICAgICBzaWduID0gJysnO1xuICAgICAgICAgICAgaWYgKG9mZnNldCA8IDApIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHNpZ24gPSAnLSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHNpZ24gK1xuICAgICAgICAgICAgICAgIHplcm9GaWxsKH5+KG9mZnNldCAvIDYwKSwgMikgK1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvciArXG4gICAgICAgICAgICAgICAgemVyb0ZpbGwofn5vZmZzZXQgJSA2MCwgMilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9mZnNldCgnWicsICc6Jyk7XG4gICAgb2Zmc2V0KCdaWicsICcnKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1onLCBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgICBhZGRSZWdleFRva2VuKCdaWicsIG1hdGNoU2hvcnRPZmZzZXQpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydaJywgJ1paJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX3VzZVVUQyA9IHRydWU7XG4gICAgICAgIGNvbmZpZy5fdHptID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyB0aW1lem9uZSBjaHVua2VyXG4gICAgLy8gJysxMDowMCcgPiBbJzEwJywgICcwMCddXG4gICAgLy8gJy0xNTMwJyAgPiBbJy0xNScsICczMCddXG4gICAgdmFyIGNodW5rT2Zmc2V0ID0gLyhbXFwrXFwtXXxcXGRcXGQpL2dpO1xuXG4gICAgZnVuY3Rpb24gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaGVyLCBzdHJpbmcpIHtcbiAgICAgICAgdmFyIG1hdGNoZXMgPSAoc3RyaW5nIHx8ICcnKS5tYXRjaChtYXRjaGVyKSxcbiAgICAgICAgICAgIGNodW5rLFxuICAgICAgICAgICAgcGFydHMsXG4gICAgICAgICAgICBtaW51dGVzO1xuXG4gICAgICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNodW5rID0gbWF0Y2hlc1ttYXRjaGVzLmxlbmd0aCAtIDFdIHx8IFtdO1xuICAgICAgICBwYXJ0cyA9IChjaHVuayArICcnKS5tYXRjaChjaHVua09mZnNldCkgfHwgWyctJywgMCwgMF07XG4gICAgICAgIG1pbnV0ZXMgPSArKHBhcnRzWzFdICogNjApICsgdG9JbnQocGFydHNbMl0pO1xuXG4gICAgICAgIHJldHVybiBtaW51dGVzID09PSAwID8gMCA6IHBhcnRzWzBdID09PSAnKycgPyBtaW51dGVzIDogLW1pbnV0ZXM7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC5cbiAgICBmdW5jdGlvbiBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIG1vZGVsKSB7XG4gICAgICAgIHZhciByZXMsIGRpZmY7XG4gICAgICAgIGlmIChtb2RlbC5faXNVVEMpIHtcbiAgICAgICAgICAgIHJlcyA9IG1vZGVsLmNsb25lKCk7XG4gICAgICAgICAgICBkaWZmID1cbiAgICAgICAgICAgICAgICAoaXNNb21lbnQoaW5wdXQpIHx8IGlzRGF0ZShpbnB1dClcbiAgICAgICAgICAgICAgICAgICAgPyBpbnB1dC52YWx1ZU9mKClcbiAgICAgICAgICAgICAgICAgICAgOiBjcmVhdGVMb2NhbChpbnB1dCkudmFsdWVPZigpKSAtIHJlcy52YWx1ZU9mKCk7XG4gICAgICAgICAgICAvLyBVc2UgbG93LWxldmVsIGFwaSwgYmVjYXVzZSB0aGlzIGZuIGlzIGxvdy1sZXZlbCBhcGkuXG4gICAgICAgICAgICByZXMuX2Quc2V0VGltZShyZXMuX2QudmFsdWVPZigpICsgZGlmZik7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQocmVzLCBmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKGlucHV0KS5sb2NhbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGF0ZU9mZnNldChtKSB7XG4gICAgICAgIC8vIE9uIEZpcmVmb3guMjQgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCByZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L3B1bGwvMTg3MVxuICAgICAgICByZXR1cm4gLU1hdGgucm91bmQobS5fZC5nZXRUaW1lem9uZU9mZnNldCgpKTtcbiAgICB9XG5cbiAgICAvLyBIT09LU1xuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLlxuICAgIC8vIEl0IGlzIGludGVuZGVkIHRvIGtlZXAgdGhlIG9mZnNldCBpbiBzeW5jIHdpdGggdGhlIHRpbWV6b25lLlxuICAgIGhvb2tzLnVwZGF0ZU9mZnNldCA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgLy8ga2VlcExvY2FsVGltZSA9IHRydWUgbWVhbnMgb25seSBjaGFuZ2UgdGhlIHRpbWV6b25lLCB3aXRob3V0XG4gICAgLy8gYWZmZWN0aW5nIHRoZSBsb2NhbCBob3VyLiBTbyA1OjMxOjI2ICswMzAwIC0tW3V0Y09mZnNldCgyLCB0cnVlKV0tLT5cbiAgICAvLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IHdpdGggb2Zmc2V0XG4gICAgLy8gKzAyMDAsIHNvIHdlIGFkanVzdCB0aGUgdGltZSBhcyBuZWVkZWQsIHRvIGJlIHZhbGlkLlxuICAgIC8vXG4gICAgLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpXG4gICAgLy8gZnJvbSB0aGUgYWN0dWFsIHJlcHJlc2VudGVkIHRpbWUuIFRoYXQgaXMgd2h5IHdlIGNhbGwgdXBkYXRlT2Zmc2V0XG4gICAgLy8gYSBzZWNvbmQgdGltZS4gSW4gY2FzZSBpdCB3YW50cyB1cyB0byBjaGFuZ2UgdGhlIG9mZnNldCBhZ2FpblxuICAgIC8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZVxuICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2ggdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuXG4gICAgZnVuY3Rpb24gZ2V0U2V0T2Zmc2V0KGlucHV0LCBrZWVwTG9jYWxUaW1lLCBrZWVwTWludXRlcykge1xuICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5fb2Zmc2V0IHx8IDAsXG4gICAgICAgICAgICBsb2NhbEFkanVzdDtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMoaW5wdXQpIDwgMTYgJiYgIWtlZXBNaW51dGVzKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dCAqIDYwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc1VUQyAmJiBrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxBZGp1c3QgPSBnZXREYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fb2Zmc2V0ID0gaW5wdXQ7XG4gICAgICAgICAgICB0aGlzLl9pc1VUQyA9IHRydWU7XG4gICAgICAgICAgICBpZiAobG9jYWxBZGp1c3QgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkKGxvY2FsQWRqdXN0LCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9mZnNldCAhPT0gaW5wdXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWtlZXBMb2NhbFRpbWUgfHwgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICBhZGRTdWJ0cmFjdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVEdXJhdGlvbihpbnB1dCAtIG9mZnNldCwgJ20nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyBvZmZzZXQgOiBnZXREYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0Wm9uZShpbnB1dCwga2VlcExvY2FsVGltZSkge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IC1pbnB1dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoaW5wdXQsIGtlZXBMb2NhbFRpbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAtdGhpcy51dGNPZmZzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvVVRDKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvTG9jYWwoa2VlcExvY2FsVGltZSkge1xuICAgICAgICBpZiAodGhpcy5faXNVVEMpIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgICAgICAgICAgdGhpcy5faXNVVEMgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnRyYWN0KGdldERhdGVPZmZzZXQodGhpcyksICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQoKSB7XG4gICAgICAgIGlmICh0aGlzLl90em0gIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQodGhpcy5fdHptLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX2kgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YXIgdFpvbmUgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoT2Zmc2V0LCB0aGlzLl9pKTtcbiAgICAgICAgICAgIGlmICh0Wm9uZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQodFpvbmUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNBbGlnbmVkSG91ck9mZnNldChpbnB1dCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQgPSBpbnB1dCA/IGNyZWF0ZUxvY2FsKGlucHV0KS51dGNPZmZzZXQoKSA6IDA7XG5cbiAgICAgICAgcmV0dXJuICh0aGlzLnV0Y09mZnNldCgpIC0gaW5wdXQpICUgNjAgPT09IDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXlsaWdodFNhdmluZ1RpbWUoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgpID4gdGhpcy5jbG9uZSgpLm1vbnRoKDApLnV0Y09mZnNldCgpIHx8XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgpID4gdGhpcy5jbG9uZSgpLm1vbnRoKDUpLnV0Y09mZnNldCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXlsaWdodFNhdmluZ1RpbWVTaGlmdGVkKCkge1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX2lzRFNUU2hpZnRlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYyA9IHt9LFxuICAgICAgICAgICAgb3RoZXI7XG5cbiAgICAgICAgY29weUNvbmZpZyhjLCB0aGlzKTtcbiAgICAgICAgYyA9IHByZXBhcmVDb25maWcoYyk7XG5cbiAgICAgICAgaWYgKGMuX2EpIHtcbiAgICAgICAgICAgIG90aGVyID0gYy5faXNVVEMgPyBjcmVhdGVVVEMoYy5fYSkgOiBjcmVhdGVMb2NhbChjLl9hKTtcbiAgICAgICAgICAgIHRoaXMuX2lzRFNUU2hpZnRlZCA9XG4gICAgICAgICAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiYgY29tcGFyZUFycmF5cyhjLl9hLCBvdGhlci50b0FycmF5KCkpID4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzRFNUU2hpZnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0xvY2FsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyAhdGhpcy5faXNVVEMgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1V0Y09mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1V0YygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgJiYgdGhpcy5fb2Zmc2V0ID09PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQVNQLk5FVCBqc29uIGRhdGUgZm9ybWF0IHJlZ2V4XG4gICAgdmFyIGFzcE5ldFJlZ2V4ID0gL14oLXxcXCspPyg/OihcXGQqKVsuIF0pPyhcXGQrKTooXFxkKykoPzo6KFxcZCspKFxcLlxcZCopPyk/JC8sXG4gICAgICAgIC8vIGZyb20gaHR0cDovL2RvY3MuY2xvc3VyZS1saWJyYXJ5Lmdvb2dsZWNvZGUuY29tL2dpdC9jbG9zdXJlX2dvb2dfZGF0ZV9kYXRlLmpzLnNvdXJjZS5odG1sXG4gICAgICAgIC8vIHNvbWV3aGF0IG1vcmUgaW4gbGluZSB3aXRoIDQuNC4zLjIgMjAwNCBzcGVjLCBidXQgYWxsb3dzIGRlY2ltYWwgYW55d2hlcmVcbiAgICAgICAgLy8gYW5kIGZ1cnRoZXIgbW9kaWZpZWQgdG8gYWxsb3cgZm9yIHN0cmluZ3MgY29udGFpbmluZyBib3RoIHdlZWsgYW5kIGRheVxuICAgICAgICBpc29SZWdleCA9IC9eKC18XFwrKT9QKD86KFstK10/WzAtOSwuXSopWSk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopVyk/KD86KFstK10/WzAtOSwuXSopRCk/KD86VCg/OihbLStdP1swLTksLl0qKUgpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVMpPyk/JC87XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVEdXJhdGlvbihpbnB1dCwga2V5KSB7XG4gICAgICAgIHZhciBkdXJhdGlvbiA9IGlucHV0LFxuICAgICAgICAgICAgLy8gbWF0Y2hpbmcgYWdhaW5zdCByZWdleHAgaXMgZXhwZW5zaXZlLCBkbyBpdCBvbiBkZW1hbmRcbiAgICAgICAgICAgIG1hdGNoID0gbnVsbCxcbiAgICAgICAgICAgIHNpZ24sXG4gICAgICAgICAgICByZXQsXG4gICAgICAgICAgICBkaWZmUmVzO1xuXG4gICAgICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSkge1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgbXM6IGlucHV0Ll9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICAgICAgZDogaW5wdXQuX2RheXMsXG4gICAgICAgICAgICAgICAgTTogaW5wdXQuX21vbnRocyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpIHx8ICFpc05hTigraW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uW2tleV0gPSAraW5wdXQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uLm1pbGxpc2Vjb25kcyA9ICtpbnB1dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgobWF0Y2ggPSBhc3BOZXRSZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSBtYXRjaFsxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICBkOiB0b0ludChtYXRjaFtEQVRFXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIGg6IHRvSW50KG1hdGNoW0hPVVJdKSAqIHNpZ24sXG4gICAgICAgICAgICAgICAgbTogdG9JbnQobWF0Y2hbTUlOVVRFXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIHM6IHRvSW50KG1hdGNoW1NFQ09ORF0pICogc2lnbixcbiAgICAgICAgICAgICAgICBtczogdG9JbnQoYWJzUm91bmQobWF0Y2hbTUlMTElTRUNPTkRdICogMTAwMCkpICogc2lnbiwgLy8gdGhlIG1pbGxpc2Vjb25kIGRlY2ltYWwgcG9pbnQgaXMgaW5jbHVkZWQgaW4gdGhlIG1hdGNoXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKChtYXRjaCA9IGlzb1JlZ2V4LmV4ZWMoaW5wdXQpKSkge1xuICAgICAgICAgICAgc2lnbiA9IG1hdGNoWzFdID09PSAnLScgPyAtMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5OiBwYXJzZUlzbyhtYXRjaFsyXSwgc2lnbiksXG4gICAgICAgICAgICAgICAgTTogcGFyc2VJc28obWF0Y2hbM10sIHNpZ24pLFxuICAgICAgICAgICAgICAgIHc6IHBhcnNlSXNvKG1hdGNoWzRdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBkOiBwYXJzZUlzbyhtYXRjaFs1XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgaDogcGFyc2VJc28obWF0Y2hbNl0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIG06IHBhcnNlSXNvKG1hdGNoWzddLCBzaWduKSxcbiAgICAgICAgICAgICAgICBzOiBwYXJzZUlzbyhtYXRjaFs4XSwgc2lnbiksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0eXBlb2YgZHVyYXRpb24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAoJ2Zyb20nIGluIGR1cmF0aW9uIHx8ICd0bycgaW4gZHVyYXRpb24pXG4gICAgICAgICkge1xuICAgICAgICAgICAgZGlmZlJlcyA9IG1vbWVudHNEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsKGR1cmF0aW9uLmZyb20pLFxuICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsKGR1cmF0aW9uLnRvKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgICAgIGR1cmF0aW9uLm1zID0gZGlmZlJlcy5taWxsaXNlY29uZHM7XG4gICAgICAgICAgICBkdXJhdGlvbi5NID0gZGlmZlJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXQgPSBuZXcgRHVyYXRpb24oZHVyYXRpb24pO1xuXG4gICAgICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSAmJiBoYXNPd25Qcm9wKGlucHV0LCAnX2xvY2FsZScpKSB7XG4gICAgICAgICAgICByZXQuX2xvY2FsZSA9IGlucHV0Ll9sb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkgJiYgaGFzT3duUHJvcChpbnB1dCwgJ19pc1ZhbGlkJykpIHtcbiAgICAgICAgICAgIHJldC5faXNWYWxpZCA9IGlucHV0Ll9pc1ZhbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBjcmVhdGVEdXJhdGlvbi5mbiA9IER1cmF0aW9uLnByb3RvdHlwZTtcbiAgICBjcmVhdGVEdXJhdGlvbi5pbnZhbGlkID0gY3JlYXRlSW52YWxpZCQxO1xuXG4gICAgZnVuY3Rpb24gcGFyc2VJc28oaW5wLCBzaWduKSB7XG4gICAgICAgIC8vIFdlJ2Qgbm9ybWFsbHkgdXNlIH5+aW5wIGZvciB0aGlzLCBidXQgdW5mb3J0dW5hdGVseSBpdCBhbHNvXG4gICAgICAgIC8vIGNvbnZlcnRzIGZsb2F0cyB0byBpbnRzLlxuICAgICAgICAvLyBpbnAgbWF5IGJlIHVuZGVmaW5lZCwgc28gY2FyZWZ1bCBjYWxsaW5nIHJlcGxhY2Ugb24gaXQuXG4gICAgICAgIHZhciByZXMgPSBpbnAgJiYgcGFyc2VGbG9hdChpbnAucmVwbGFjZSgnLCcsICcuJykpO1xuICAgICAgICAvLyBhcHBseSBzaWduIHdoaWxlIHdlJ3JlIGF0IGl0XG4gICAgICAgIHJldHVybiAoaXNOYU4ocmVzKSA/IDAgOiByZXMpICogc2lnbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXMgPSB7fTtcblxuICAgICAgICByZXMubW9udGhzID1cbiAgICAgICAgICAgIG90aGVyLm1vbnRoKCkgLSBiYXNlLm1vbnRoKCkgKyAob3RoZXIueWVhcigpIC0gYmFzZS55ZWFyKCkpICogMTI7XG4gICAgICAgIGlmIChiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJykuaXNBZnRlcihvdGhlcikpIHtcbiAgICAgICAgICAgIC0tcmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5taWxsaXNlY29uZHMgPSArb3RoZXIgLSArYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpO1xuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpIHtcbiAgICAgICAgdmFyIHJlcztcbiAgICAgICAgaWYgKCEoYmFzZS5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgbWlsbGlzZWNvbmRzOiAwLCBtb250aHM6IDAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIG90aGVyID0gY2xvbmVXaXRoT2Zmc2V0KG90aGVyLCBiYXNlKTtcbiAgICAgICAgaWYgKGJhc2UuaXNCZWZvcmUob3RoZXIpKSB7XG4gICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyA9IHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2Uob3RoZXIsIGJhc2UpO1xuICAgICAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9IC1yZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgcmVzLm1vbnRocyA9IC1yZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiByZW1vdmUgJ25hbWUnIGFyZyBhZnRlciBkZXByZWNhdGlvbiBpcyByZW1vdmVkXG4gICAgZnVuY3Rpb24gY3JlYXRlQWRkZXIoZGlyZWN0aW9uLCBuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHZhciBkdXIsIHRtcDtcbiAgICAgICAgICAgIC8vaW52ZXJ0IHRoZSBhcmd1bWVudHMsIGJ1dCBjb21wbGFpbiBhYm91dCBpdFxuICAgICAgICAgICAgaWYgKHBlcmlvZCAhPT0gbnVsbCAmJiAhaXNOYU4oK3BlcmlvZCkpIHtcbiAgICAgICAgICAgICAgICBkZXByZWNhdGVTaW1wbGUoXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICdtb21lbnQoKS4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJyhwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJyhudW1iZXIsIHBlcmlvZCkuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1NlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2FkZC1pbnZlcnRlZC1wYXJhbS8gZm9yIG1vcmUgaW5mby4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0bXAgPSB2YWw7XG4gICAgICAgICAgICAgICAgdmFsID0gcGVyaW9kO1xuICAgICAgICAgICAgICAgIHBlcmlvZCA9IHRtcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZHVyID0gY3JlYXRlRHVyYXRpb24odmFsLCBwZXJpb2QpO1xuICAgICAgICAgICAgYWRkU3VidHJhY3QodGhpcywgZHVyLCBkaXJlY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU3VidHJhY3QobW9tLCBkdXJhdGlvbiwgaXNBZGRpbmcsIHVwZGF0ZU9mZnNldCkge1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gZHVyYXRpb24uX21pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgIGRheXMgPSBhYnNSb3VuZChkdXJhdGlvbi5fZGF5cyksXG4gICAgICAgICAgICBtb250aHMgPSBhYnNSb3VuZChkdXJhdGlvbi5fbW9udGhzKTtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVPZmZzZXQgPSB1cGRhdGVPZmZzZXQgPT0gbnVsbCA/IHRydWUgOiB1cGRhdGVPZmZzZXQ7XG5cbiAgICAgICAgaWYgKG1vbnRocykge1xuICAgICAgICAgICAgc2V0TW9udGgobW9tLCBnZXQobW9tLCAnTW9udGgnKSArIG1vbnRocyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF5cykge1xuICAgICAgICAgICAgc2V0JDEobW9tLCAnRGF0ZScsIGdldChtb20sICdEYXRlJykgKyBkYXlzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaWxsaXNlY29uZHMpIHtcbiAgICAgICAgICAgIG1vbS5fZC5zZXRUaW1lKG1vbS5fZC52YWx1ZU9mKCkgKyBtaWxsaXNlY29uZHMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVwZGF0ZU9mZnNldCkge1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KG1vbSwgZGF5cyB8fCBtb250aHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFkZCA9IGNyZWF0ZUFkZGVyKDEsICdhZGQnKSxcbiAgICAgICAgc3VidHJhY3QgPSBjcmVhdGVBZGRlcigtMSwgJ3N1YnRyYWN0Jyk7XG5cbiAgICBmdW5jdGlvbiBpc1N0cmluZyhpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyB8fCBpbnB1dCBpbnN0YW5jZW9mIFN0cmluZztcbiAgICB9XG5cbiAgICAvLyB0eXBlIE1vbWVudElucHV0ID0gTW9tZW50IHwgRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IChudW1iZXIgfCBzdHJpbmcpW10gfCBNb21lbnRJbnB1dE9iamVjdCB8IHZvaWQ7IC8vIG51bGwgfCB1bmRlZmluZWRcbiAgICBmdW5jdGlvbiBpc01vbWVudElucHV0KGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc01vbWVudChpbnB1dCkgfHxcbiAgICAgICAgICAgIGlzRGF0ZShpbnB1dCkgfHxcbiAgICAgICAgICAgIGlzU3RyaW5nKGlucHV0KSB8fFxuICAgICAgICAgICAgaXNOdW1iZXIoaW5wdXQpIHx8XG4gICAgICAgICAgICBpc051bWJlck9yU3RyaW5nQXJyYXkoaW5wdXQpIHx8XG4gICAgICAgICAgICBpc01vbWVudElucHV0T2JqZWN0KGlucHV0KSB8fFxuICAgICAgICAgICAgaW5wdXQgPT09IG51bGwgfHxcbiAgICAgICAgICAgIGlucHV0ID09PSB1bmRlZmluZWRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc01vbWVudElucHV0T2JqZWN0KGlucHV0KSB7XG4gICAgICAgIHZhciBvYmplY3RUZXN0ID0gaXNPYmplY3QoaW5wdXQpICYmICFpc09iamVjdEVtcHR5KGlucHV0KSxcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IGZhbHNlLFxuICAgICAgICAgICAgcHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgICAgICAneWVhcnMnLFxuICAgICAgICAgICAgICAgICd5ZWFyJyxcbiAgICAgICAgICAgICAgICAneScsXG4gICAgICAgICAgICAgICAgJ21vbnRocycsXG4gICAgICAgICAgICAgICAgJ21vbnRoJyxcbiAgICAgICAgICAgICAgICAnTScsXG4gICAgICAgICAgICAgICAgJ2RheXMnLFxuICAgICAgICAgICAgICAgICdkYXknLFxuICAgICAgICAgICAgICAgICdkJyxcbiAgICAgICAgICAgICAgICAnZGF0ZXMnLFxuICAgICAgICAgICAgICAgICdkYXRlJyxcbiAgICAgICAgICAgICAgICAnRCcsXG4gICAgICAgICAgICAgICAgJ2hvdXJzJyxcbiAgICAgICAgICAgICAgICAnaG91cicsXG4gICAgICAgICAgICAgICAgJ2gnLFxuICAgICAgICAgICAgICAgICdtaW51dGVzJyxcbiAgICAgICAgICAgICAgICAnbWludXRlJyxcbiAgICAgICAgICAgICAgICAnbScsXG4gICAgICAgICAgICAgICAgJ3NlY29uZHMnLFxuICAgICAgICAgICAgICAgICdzZWNvbmQnLFxuICAgICAgICAgICAgICAgICdzJyxcbiAgICAgICAgICAgICAgICAnbWlsbGlzZWNvbmRzJyxcbiAgICAgICAgICAgICAgICAnbWlsbGlzZWNvbmQnLFxuICAgICAgICAgICAgICAgICdtcycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIHByb3BlcnR5O1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eSA9IHByb3BlcnRpZXNbaV07XG4gICAgICAgICAgICBwcm9wZXJ0eVRlc3QgPSBwcm9wZXJ0eVRlc3QgfHwgaGFzT3duUHJvcChpbnB1dCwgcHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9iamVjdFRlc3QgJiYgcHJvcGVydHlUZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTnVtYmVyT3JTdHJpbmdBcnJheShpbnB1dCkge1xuICAgICAgICB2YXIgYXJyYXlUZXN0ID0gaXNBcnJheShpbnB1dCksXG4gICAgICAgICAgICBkYXRhVHlwZVRlc3QgPSBmYWxzZTtcbiAgICAgICAgaWYgKGFycmF5VGVzdCkge1xuICAgICAgICAgICAgZGF0YVR5cGVUZXN0ID1cbiAgICAgICAgICAgICAgICBpbnB1dC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpc051bWJlcihpdGVtKSAmJiBpc1N0cmluZyhpbnB1dCk7XG4gICAgICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheVRlc3QgJiYgZGF0YVR5cGVUZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQ2FsZW5kYXJTcGVjKGlucHV0KSB7XG4gICAgICAgIHZhciBvYmplY3RUZXN0ID0gaXNPYmplY3QoaW5wdXQpICYmICFpc09iamVjdEVtcHR5KGlucHV0KSxcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IGZhbHNlLFxuICAgICAgICAgICAgcHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgICAgICAnc2FtZURheScsXG4gICAgICAgICAgICAgICAgJ25leHREYXknLFxuICAgICAgICAgICAgICAgICdsYXN0RGF5JyxcbiAgICAgICAgICAgICAgICAnbmV4dFdlZWsnLFxuICAgICAgICAgICAgICAgICdsYXN0V2VlaycsXG4gICAgICAgICAgICAgICAgJ3NhbWVFbHNlJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgcHJvcGVydHk7XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIHByb3BlcnR5ID0gcHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IHByb3BlcnR5VGVzdCB8fCBoYXNPd25Qcm9wKGlucHV0LCBwcm9wZXJ0eSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JqZWN0VGVzdCAmJiBwcm9wZXJ0eVRlc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Q2FsZW5kYXJGb3JtYXQobXlNb21lbnQsIG5vdykge1xuICAgICAgICB2YXIgZGlmZiA9IG15TW9tZW50LmRpZmYobm93LCAnZGF5cycsIHRydWUpO1xuICAgICAgICByZXR1cm4gZGlmZiA8IC02XG4gICAgICAgICAgICA/ICdzYW1lRWxzZSdcbiAgICAgICAgICAgIDogZGlmZiA8IC0xXG4gICAgICAgICAgICA/ICdsYXN0V2VlaydcbiAgICAgICAgICAgIDogZGlmZiA8IDBcbiAgICAgICAgICAgID8gJ2xhc3REYXknXG4gICAgICAgICAgICA6IGRpZmYgPCAxXG4gICAgICAgICAgICA/ICdzYW1lRGF5J1xuICAgICAgICAgICAgOiBkaWZmIDwgMlxuICAgICAgICAgICAgPyAnbmV4dERheSdcbiAgICAgICAgICAgIDogZGlmZiA8IDdcbiAgICAgICAgICAgID8gJ25leHRXZWVrJ1xuICAgICAgICAgICAgOiAnc2FtZUVsc2UnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNhbGVuZGFyJDEodGltZSwgZm9ybWF0cykge1xuICAgICAgICAvLyBTdXBwb3J0IGZvciBzaW5nbGUgcGFyYW1ldGVyLCBmb3JtYXRzIG9ubHkgb3ZlcmxvYWQgdG8gdGhlIGNhbGVuZGFyIGZ1bmN0aW9uXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBpZiAoaXNNb21lbnRJbnB1dChhcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgdGltZSA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgICBmb3JtYXRzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0NhbGVuZGFyU3BlYyhhcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0cyA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgICB0aW1lID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuXG4gICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIGxvY2FsL3V0Yy9vZmZzZXQgb3Igbm90LlxuICAgICAgICB2YXIgbm93ID0gdGltZSB8fCBjcmVhdGVMb2NhbCgpLFxuICAgICAgICAgICAgc29kID0gY2xvbmVXaXRoT2Zmc2V0KG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksXG4gICAgICAgICAgICBmb3JtYXQgPSBob29rcy5jYWxlbmRhckZvcm1hdCh0aGlzLCBzb2QpIHx8ICdzYW1lRWxzZScsXG4gICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgIGZvcm1hdHMgJiZcbiAgICAgICAgICAgICAgICAoaXNGdW5jdGlvbihmb3JtYXRzW2Zvcm1hdF0pXG4gICAgICAgICAgICAgICAgICAgID8gZm9ybWF0c1tmb3JtYXRdLmNhbGwodGhpcywgbm93KVxuICAgICAgICAgICAgICAgICAgICA6IGZvcm1hdHNbZm9ybWF0XSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KFxuICAgICAgICAgICAgb3V0cHV0IHx8IHRoaXMubG9jYWxlRGF0YSgpLmNhbGVuZGFyKGZvcm1hdCwgdGhpcywgY3JlYXRlTG9jYWwobm93KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb21lbnQodGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNBZnRlcihpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPiBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbElucHV0LnZhbHVlT2YoKSA8IHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0JlZm9yZShpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKSA8IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNCZXR3ZWVuKGZyb20sIHRvLCB1bml0cywgaW5jbHVzaXZpdHkpIHtcbiAgICAgICAgdmFyIGxvY2FsRnJvbSA9IGlzTW9tZW50KGZyb20pID8gZnJvbSA6IGNyZWF0ZUxvY2FsKGZyb20pLFxuICAgICAgICAgICAgbG9jYWxUbyA9IGlzTW9tZW50KHRvKSA/IHRvIDogY3JlYXRlTG9jYWwodG8pO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbEZyb20uaXNWYWxpZCgpICYmIGxvY2FsVG8uaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGluY2x1c2l2aXR5ID0gaW5jbHVzaXZpdHkgfHwgJygpJztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChpbmNsdXNpdml0eVswXSA9PT0gJygnXG4gICAgICAgICAgICAgICAgPyB0aGlzLmlzQWZ0ZXIobG9jYWxGcm9tLCB1bml0cylcbiAgICAgICAgICAgICAgICA6ICF0aGlzLmlzQmVmb3JlKGxvY2FsRnJvbSwgdW5pdHMpKSAmJlxuICAgICAgICAgICAgKGluY2x1c2l2aXR5WzFdID09PSAnKSdcbiAgICAgICAgICAgICAgICA/IHRoaXMuaXNCZWZvcmUobG9jYWxUbywgdW5pdHMpXG4gICAgICAgICAgICAgICAgOiAhdGhpcy5pc0FmdGVyKGxvY2FsVG8sIHVuaXRzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWUoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCksXG4gICAgICAgICAgICBpbnB1dE1zO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB8fCAnbWlsbGlzZWNvbmQnO1xuICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbnB1dE1zID0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCkgPD0gaW5wdXRNcyAmJlxuICAgICAgICAgICAgICAgIGlucHV0TXMgPD0gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckFmdGVyKGlucHV0LCB1bml0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQWZ0ZXIoaW5wdXQsIHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckJlZm9yZShpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGlucHV0LCB1bml0cykgfHwgdGhpcy5pc0JlZm9yZShpbnB1dCwgdW5pdHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpZmYoaW5wdXQsIHVuaXRzLCBhc0Zsb2F0KSB7XG4gICAgICAgIHZhciB0aGF0LCB6b25lRGVsdGEsIG91dHB1dDtcblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhhdCA9IGNsb25lV2l0aE9mZnNldChpbnB1dCwgdGhpcyk7XG5cbiAgICAgICAgaWYgKCF0aGF0LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHpvbmVEZWx0YSA9ICh0aGF0LnV0Y09mZnNldCgpIC0gdGhpcy51dGNPZmZzZXQoKSkgKiA2ZTQ7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMTI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDFlMztcbiAgICAgICAgICAgICAgICBicmVhazsgLy8gMTAwMFxuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gNmU0O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAzNmU1O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MFxuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gODY0ZTU7XG4gICAgICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA2MDQ4ZTU7XG4gICAgICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQgKiA3LCBuZWdhdGUgZHN0XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG91dHB1dCA9IHRoaXMgLSB0aGF0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFzRmxvYXQgPyBvdXRwdXQgOiBhYnNGbG9vcihvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoRGlmZihhLCBiKSB7XG4gICAgICAgIGlmIChhLmRhdGUoKSA8IGIuZGF0ZSgpKSB7XG4gICAgICAgICAgICAvLyBlbmQtb2YtbW9udGggY2FsY3VsYXRpb25zIHdvcmsgY29ycmVjdCB3aGVuIHRoZSBzdGFydCBtb250aCBoYXMgbW9yZVxuICAgICAgICAgICAgLy8gZGF5cyB0aGFuIHRoZSBlbmQgbW9udGguXG4gICAgICAgICAgICByZXR1cm4gLW1vbnRoRGlmZihiLCBhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkaWZmZXJlbmNlIGluIG1vbnRoc1xuICAgICAgICB2YXIgd2hvbGVNb250aERpZmYgPSAoYi55ZWFyKCkgLSBhLnllYXIoKSkgKiAxMiArIChiLm1vbnRoKCkgLSBhLm1vbnRoKCkpLFxuICAgICAgICAgICAgLy8gYiBpcyBpbiAoYW5jaG9yIC0gMSBtb250aCwgYW5jaG9yICsgMSBtb250aClcbiAgICAgICAgICAgIGFuY2hvciA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYsICdtb250aHMnKSxcbiAgICAgICAgICAgIGFuY2hvcjIsXG4gICAgICAgICAgICBhZGp1c3Q7XG5cbiAgICAgICAgaWYgKGIgLSBhbmNob3IgPCAwKSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiAtIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yIC0gYW5jaG9yMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiArIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yMiAtIGFuY2hvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvL2NoZWNrIGZvciBuZWdhdGl2ZSB6ZXJvLCByZXR1cm4gemVybyBpZiBuZWdhdGl2ZSB6ZXJvXG4gICAgICAgIHJldHVybiAtKHdob2xlTW9udGhEaWZmICsgYWRqdXN0KSB8fCAwO1xuICAgIH1cblxuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXQgPSAnWVlZWS1NTS1ERFRISDptbTpzc1onO1xuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXRVdGMgPSAnWVlZWS1NTS1ERFRISDptbTpzc1taXSc7XG5cbiAgICBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCdkZGQgTU1NIEREIFlZWVkgSEg6bW06c3MgW0dNVF1aWicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nKGtlZXBPZmZzZXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHV0YyA9IGtlZXBPZmZzZXQgIT09IHRydWUsXG4gICAgICAgICAgICBtID0gdXRjID8gdGhpcy5jbG9uZSgpLnV0YygpIDogdGhpcztcbiAgICAgICAgaWYgKG0ueWVhcigpIDwgMCB8fCBtLnllYXIoKSA+IDk5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQoXG4gICAgICAgICAgICAgICAgbSxcbiAgICAgICAgICAgICAgICB1dGNcbiAgICAgICAgICAgICAgICAgICAgPyAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJ1xuICAgICAgICAgICAgICAgICAgICA6ICdZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNGdW5jdGlvbihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZykpIHtcbiAgICAgICAgICAgIC8vIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBpcyB+NTB4IGZhc3RlciwgdXNlIGl0IHdoZW4gd2UgY2FuXG4gICAgICAgICAgICBpZiAodXRjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9EYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpICsgdGhpcy51dGNPZmZzZXQoKSAqIDYwICogMTAwMClcbiAgICAgICAgICAgICAgICAgICAgLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ1onLCBmb3JtYXRNb21lbnQobSwgJ1onKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChcbiAgICAgICAgICAgIG0sXG4gICAgICAgICAgICB1dGMgPyAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXScgOiAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1onXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgaHVtYW4gcmVhZGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBtb21lbnQgdGhhdCBjYW5cbiAgICAgKiBhbHNvIGJlIGV2YWx1YXRlZCB0byBnZXQgYSBuZXcgbW9tZW50IHdoaWNoIGlzIHRoZSBzYW1lXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QvZG9jcy9hcGkvdXRpbC5odG1sI3V0aWxfY3VzdG9tX2luc3BlY3RfZnVuY3Rpb25fb25fb2JqZWN0c1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnbW9tZW50LmludmFsaWQoLyogJyArIHRoaXMuX2kgKyAnICovKSc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZ1bmMgPSAnbW9tZW50JyxcbiAgICAgICAgICAgIHpvbmUgPSAnJyxcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICBkYXRldGltZSxcbiAgICAgICAgICAgIHN1ZmZpeDtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9jYWwoKSkge1xuICAgICAgICAgICAgZnVuYyA9IHRoaXMudXRjT2Zmc2V0KCkgPT09IDAgPyAnbW9tZW50LnV0YycgOiAnbW9tZW50LnBhcnNlWm9uZSc7XG4gICAgICAgICAgICB6b25lID0gJ1onO1xuICAgICAgICB9XG4gICAgICAgIHByZWZpeCA9ICdbJyArIGZ1bmMgKyAnKFwiXSc7XG4gICAgICAgIHllYXIgPSAwIDw9IHRoaXMueWVhcigpICYmIHRoaXMueWVhcigpIDw9IDk5OTkgPyAnWVlZWScgOiAnWVlZWVlZJztcbiAgICAgICAgZGF0ZXRpbWUgPSAnLU1NLUREW1RdSEg6bW06c3MuU1NTJztcbiAgICAgICAgc3VmZml4ID0gem9uZSArICdbXCIpXSc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KHByZWZpeCArIHllYXIgKyBkYXRldGltZSArIHN1ZmZpeCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZm9ybWF0KGlucHV0U3RyaW5nKSB7XG4gICAgICAgIGlmICghaW5wdXRTdHJpbmcpIHtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nID0gdGhpcy5pc1V0YygpXG4gICAgICAgICAgICAgICAgPyBob29rcy5kZWZhdWx0Rm9ybWF0VXRjXG4gICAgICAgICAgICAgICAgOiBob29rcy5kZWZhdWx0Rm9ybWF0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdXRwdXQgPSBmb3JtYXRNb21lbnQodGhpcywgaW5wdXRTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb20odGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgKChpc01vbWVudCh0aW1lKSAmJiB0aW1lLmlzVmFsaWQoKSkgfHwgY3JlYXRlTG9jYWwodGltZSkuaXNWYWxpZCgpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7IHRvOiB0aGlzLCBmcm9tOiB0aW1lIH0pXG4gICAgICAgICAgICAgICAgLmxvY2FsZSh0aGlzLmxvY2FsZSgpKVxuICAgICAgICAgICAgICAgIC5odW1hbml6ZSghd2l0aG91dFN1ZmZpeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb21Ob3cod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICgoaXNNb21lbnQodGltZSkgJiYgdGltZS5pc1ZhbGlkKCkpIHx8IGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oeyBmcm9tOiB0aGlzLCB0bzogdGltZSB9KVxuICAgICAgICAgICAgICAgIC5sb2NhbGUodGhpcy5sb2NhbGUoKSlcbiAgICAgICAgICAgICAgICAuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b05vdyh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIC8vIElmIHBhc3NlZCBhIGxvY2FsZSBrZXksIGl0IHdpbGwgc2V0IHRoZSBsb2NhbGUgZm9yIHRoaXNcbiAgICAvLyBpbnN0YW5jZS4gIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIGxvY2FsZSBjb25maWd1cmF0aW9uXG4gICAgLy8gdmFyaWFibGVzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgIGZ1bmN0aW9uIGxvY2FsZShrZXkpIHtcbiAgICAgICAgdmFyIG5ld0xvY2FsZURhdGE7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TG9jYWxlRGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKG5ld0xvY2FsZURhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IG5ld0xvY2FsZURhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYW5nID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubGFuZygpIGlzIGRlcHJlY2F0ZWQuIEluc3RlYWQsIHVzZSBtb21lbnQoKS5sb2NhbGVEYXRhKCkgdG8gZ2V0IHRoZSBsYW5ndWFnZSBjb25maWd1cmF0aW9uLiBVc2UgbW9tZW50KCkubG9jYWxlKCkgdG8gY2hhbmdlIGxhbmd1YWdlcy4nLFxuICAgICAgICBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZURhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgdmFyIE1TX1BFUl9TRUNPTkQgPSAxMDAwLFxuICAgICAgICBNU19QRVJfTUlOVVRFID0gNjAgKiBNU19QRVJfU0VDT05ELFxuICAgICAgICBNU19QRVJfSE9VUiA9IDYwICogTVNfUEVSX01JTlVURSxcbiAgICAgICAgTVNfUEVSXzQwMF9ZRUFSUyA9ICgzNjUgKiA0MDAgKyA5NykgKiAyNCAqIE1TX1BFUl9IT1VSO1xuXG4gICAgLy8gYWN0dWFsIG1vZHVsbyAtIGhhbmRsZXMgbmVnYXRpdmUgbnVtYmVycyAoZm9yIGRhdGVzIGJlZm9yZSAxOTcwKTpcbiAgICBmdW5jdGlvbiBtb2QkMShkaXZpZGVuZCwgZGl2aXNvcikge1xuICAgICAgICByZXR1cm4gKChkaXZpZGVuZCAlIGRpdmlzb3IpICsgZGl2aXNvcikgJSBkaXZpc29yO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsU3RhcnRPZkRhdGUoeSwgbSwgZCkge1xuICAgICAgICAvLyB0aGUgZGF0ZSBjb25zdHJ1Y3RvciByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICAgICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwKSB7XG4gICAgICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHkgKyA0MDAsIG0sIGQpIC0gTVNfUEVSXzQwMF9ZRUFSUztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5LCBtLCBkKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1dGNTdGFydE9mRGF0ZSh5LCBtLCBkKSB7XG4gICAgICAgIC8vIERhdGUuVVRDIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIC8vIHByZXNlcnZlIGxlYXAgeWVhcnMgdXNpbmcgYSBmdWxsIDQwMCB5ZWFyIGN5Y2xlLCB0aGVuIHJlc2V0XG4gICAgICAgICAgICByZXR1cm4gRGF0ZS5VVEMoeSArIDQwMCwgbSwgZCkgLSBNU19QRVJfNDAwX1lFQVJTO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIERhdGUuVVRDKHksIG0sIGQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RhcnRPZih1bml0cykge1xuICAgICAgICB2YXIgdGltZSwgc3RhcnRPZkRhdGU7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJyB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIDAsIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpIC0gKHRoaXMubW9udGgoKSAlIDMpLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSgpIC0gdGhpcy53ZWVrZGF5KClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaXNvV2Vlayc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtICh0aGlzLmlzb1dlZWtkYXkoKSAtIDEpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgdGhpcy5kYXRlKCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEoXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgKyAodGhpcy5faXNVVEMgPyAwIDogdGhpcy51dGNPZmZzZXQoKSAqIE1TX1BFUl9NSU5VVEUpLFxuICAgICAgICAgICAgICAgICAgICBNU19QRVJfSE9VUlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lIC09IG1vZCQxKHRpbWUsIE1TX1BFUl9NSU5VVEUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgdGltZSAtPSBtb2QkMSh0aW1lLCBNU19QRVJfU0VDT05EKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Quc2V0VGltZSh0aW1lKTtcbiAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbmRPZih1bml0cykge1xuICAgICAgICB2YXIgdGltZSwgc3RhcnRPZkRhdGU7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJyB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCkgKyAxLCAwLCAxKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aW1lID1cbiAgICAgICAgICAgICAgICAgICAgc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSAtICh0aGlzLm1vbnRoKCkgJSAzKSArIDMsXG4gICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpICsgMSwgMSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgdGltZSA9XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtIHRoaXMud2Vla2RheSgpICsgN1xuICAgICAgICAgICAgICAgICAgICApIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgICAgICAgICBzdGFydE9mRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKCkgLSAodGhpcy5pc29XZWVrZGF5KCkgLSAxKSArIDdcbiAgICAgICAgICAgICAgICAgICAgKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCksIHRoaXMuZGF0ZSgpICsgMSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgKz1cbiAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVIgLVxuICAgICAgICAgICAgICAgICAgICBtb2QkMShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgKyAodGhpcy5faXNVVEMgPyAwIDogdGhpcy51dGNPZmZzZXQoKSAqIE1TX1BFUl9NSU5VVEUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVJcbiAgICAgICAgICAgICAgICAgICAgKSAtXG4gICAgICAgICAgICAgICAgICAgIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9NSU5VVEUgLSBtb2QkMSh0aW1lLCBNU19QRVJfTUlOVVRFKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9TRUNPTkQgLSBtb2QkMSh0aW1lLCBNU19QRVJfU0VDT05EKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kLnNldFRpbWUodGltZSk7XG4gICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsdWVPZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2QudmFsdWVPZigpIC0gKHRoaXMuX29mZnNldCB8fCAwKSAqIDYwMDAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVuaXgoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpIC8gMTAwMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9EYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvQXJyYXkoKSB7XG4gICAgICAgIHZhciBtID0gdGhpcztcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG0ueWVhcigpLFxuICAgICAgICAgICAgbS5tb250aCgpLFxuICAgICAgICAgICAgbS5kYXRlKCksXG4gICAgICAgICAgICBtLmhvdXIoKSxcbiAgICAgICAgICAgIG0ubWludXRlKCksXG4gICAgICAgICAgICBtLnNlY29uZCgpLFxuICAgICAgICAgICAgbS5taWxsaXNlY29uZCgpLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvT2JqZWN0KCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyczogbS55ZWFyKCksXG4gICAgICAgICAgICBtb250aHM6IG0ubW9udGgoKSxcbiAgICAgICAgICAgIGRhdGU6IG0uZGF0ZSgpLFxuICAgICAgICAgICAgaG91cnM6IG0uaG91cnMoKSxcbiAgICAgICAgICAgIG1pbnV0ZXM6IG0ubWludXRlcygpLFxuICAgICAgICAgICAgc2Vjb25kczogbS5zZWNvbmRzKCksXG4gICAgICAgICAgICBtaWxsaXNlY29uZHM6IG0ubWlsbGlzZWNvbmRzKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgICAvLyBuZXcgRGF0ZShOYU4pLnRvSlNPTigpID09PSBudWxsXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMudG9JU09TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQyKCkge1xuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzaW5nRmxhZ3MoKSB7XG4gICAgICAgIHJldHVybiBleHRlbmQoe30sIGdldFBhcnNpbmdGbGFncyh0aGlzKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW52YWxpZEF0KCkge1xuICAgICAgICByZXR1cm4gZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpLm92ZXJmbG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0aW9uRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlucHV0OiB0aGlzLl9pLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLl9mLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzLl9sb2NhbGUsXG4gICAgICAgICAgICBpc1VUQzogdGhpcy5faXNVVEMsXG4gICAgICAgICAgICBzdHJpY3Q6IHRoaXMuX3N0cmljdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhZGRGb3JtYXRUb2tlbignTicsIDAsIDAsICdlcmFBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OJywgMCwgMCwgJ2VyYUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignTk5OJywgMCwgMCwgJ2VyYUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignTk5OTicsIDAsIDAsICdlcmFOYW1lJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OTk5OJywgMCwgMCwgJ2VyYU5hcnJvdycpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3knLCAxXSwgJ3lvJywgJ2VyYVllYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneScsIFsneXknLCAyXSwgMCwgJ2VyYVllYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneScsIFsneXl5JywgM10sIDAsICdlcmFZZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3l5eXknLCA0XSwgMCwgJ2VyYVllYXInKTtcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ04nLCBtYXRjaEVyYUFiYnIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OJywgbWF0Y2hFcmFBYmJyKTtcbiAgICBhZGRSZWdleFRva2VuKCdOTk4nLCBtYXRjaEVyYUFiYnIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OTk4nLCBtYXRjaEVyYU5hbWUpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OTk5OJywgbWF0Y2hFcmFOYXJyb3cpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ04nLCAnTk4nLCAnTk5OJywgJ05OTk4nLCAnTk5OTk4nXSwgZnVuY3Rpb24gKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgYXJyYXksXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgdG9rZW5cbiAgICApIHtcbiAgICAgICAgdmFyIGVyYSA9IGNvbmZpZy5fbG9jYWxlLmVyYXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgaWYgKGVyYSkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZXJhID0gZXJhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEVyYSA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGRSZWdleFRva2VuKCd5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneXknLCBtYXRjaFVuc2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCd5eXknLCBtYXRjaFVuc2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCd5eXl5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneW8nLCBtYXRjaEVyYVllYXJPcmRpbmFsKTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWyd5JywgJ3l5JywgJ3l5eScsICd5eXl5J10sIFlFQVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWyd5byddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciBtYXRjaDtcbiAgICAgICAgaWYgKGNvbmZpZy5fbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4KSB7XG4gICAgICAgICAgICBtYXRjaCA9IGlucHV0Lm1hdGNoKGNvbmZpZy5fbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuX2xvY2FsZS5lcmFZZWFyT3JkaW5hbFBhcnNlKSB7XG4gICAgICAgICAgICBhcnJheVtZRUFSXSA9IGNvbmZpZy5fbG9jYWxlLmVyYVllYXJPcmRpbmFsUGFyc2UoaW5wdXQsIG1hdGNoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5W1lFQVJdID0gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlRXJhcyhtLCBmb3JtYXQpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLl9lcmFzIHx8IGdldExvY2FsZSgnZW4nKS5fZXJhcztcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBlcmFzW2ldLnNpbmNlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgICAgICAgICBkYXRlID0gaG9va3MoZXJhc1tpXS5zaW5jZSkuc3RhcnRPZignZGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgIGVyYXNbaV0uc2luY2UgPSBkYXRlLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIGVyYXNbaV0udW50aWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgICAgICAgICAgICAgICBlcmFzW2ldLnVudGlsID0gK0luZmluaXR5O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICAgICAgICAgIGRhdGUgPSBob29rcyhlcmFzW2ldLnVudGlsKS5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgICAgIGVyYXNbaV0udW50aWwgPSBkYXRlLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVyYXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlRXJhc1BhcnNlKGVyYU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmVyYXMoKSxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBhYmJyLFxuICAgICAgICAgICAgbmFycm93O1xuICAgICAgICBlcmFOYW1lID0gZXJhTmFtZS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgbmFtZSA9IGVyYXNbaV0ubmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgYWJiciA9IGVyYXNbaV0uYWJici50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbmFycm93ID0gZXJhc1tpXS5uYXJyb3cudG9VcHBlckNhc2UoKTtcblxuICAgICAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ04nOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdOTic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05OTic6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWJiciA9PT0gZXJhTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTk5OTic6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gZXJhTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTk5OTk4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hcnJvdyA9PT0gZXJhTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChbbmFtZSwgYWJiciwgbmFycm93XS5pbmRleE9mKGVyYU5hbWUpID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUVyYXNDb252ZXJ0WWVhcihlcmEsIHllYXIpIHtcbiAgICAgICAgdmFyIGRpciA9IGVyYS5zaW5jZSA8PSBlcmEudW50aWwgPyArMSA6IC0xO1xuICAgICAgICBpZiAoeWVhciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gaG9va3MoZXJhLnNpbmNlKS55ZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaG9va3MoZXJhLnNpbmNlKS55ZWFyKCkgKyAoeWVhciAtIGVyYS5vZmZzZXQpICogZGlyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhTmFtZSgpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICB2YWwgPSB0aGlzLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKGVyYXNbaV0uc2luY2UgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0ubmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnVudGlsIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhTmFycm93KCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO1xuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgICAgIHZhbCA9IHRoaXMuc3RhcnRPZignZGF5JykudmFsdWVPZigpO1xuXG4gICAgICAgICAgICBpZiAoZXJhc1tpXS5zaW5jZSA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0udW50aWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5uYXJyb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5uYXJyb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhQWJicigpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICB2YWwgPSB0aGlzLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKGVyYXNbaV0uc2luY2UgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0uYWJicjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnVudGlsIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLmFiYnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhWWVhcigpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgZGlyLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICBkaXIgPSBlcmFzW2ldLnNpbmNlIDw9IGVyYXNbaV0udW50aWwgPyArMSA6IC0xO1xuXG4gICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICB2YWwgPSB0aGlzLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkgfHxcbiAgICAgICAgICAgICAgICAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAodGhpcy55ZWFyKCkgLSBob29rcyhlcmFzW2ldLnNpbmNlKS55ZWFyKCkpICogZGlyICtcbiAgICAgICAgICAgICAgICAgICAgZXJhc1tpXS5vZmZzZXRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVyYXNOYW1lUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfZXJhc05hbWVSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlRXJhc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID8gdGhpcy5fZXJhc05hbWVSZWdleCA6IHRoaXMuX2VyYXNSZWdleDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlcmFzQWJiclJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX2VyYXNBYmJyUmVnZXgnKSkge1xuICAgICAgICAgICAgY29tcHV0ZUVyYXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1N0cmljdCA/IHRoaXMuX2VyYXNBYmJyUmVnZXggOiB0aGlzLl9lcmFzUmVnZXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXJhc05hcnJvd1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX2VyYXNOYXJyb3dSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlRXJhc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID8gdGhpcy5fZXJhc05hcnJvd1JlZ2V4IDogdGhpcy5fZXJhc1JlZ2V4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hdGNoRXJhQWJicihpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZXJhc0FiYnJSZWdleChpc1N0cmljdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF0Y2hFcmFOYW1lKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5lcmFzTmFtZVJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEVyYU5hcnJvdyhpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZXJhc05hcnJvd1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEVyYVllYXJPcmRpbmFsKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCB8fCBtYXRjaFVuc2lnbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVFcmFzUGFyc2UoKSB7XG4gICAgICAgIHZhciBhYmJyUGllY2VzID0gW10sXG4gICAgICAgICAgICBuYW1lUGllY2VzID0gW10sXG4gICAgICAgICAgICBuYXJyb3dQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmVyYXMoKTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIG5hbWVQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hbWUpKTtcbiAgICAgICAgICAgIGFiYnJQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLmFiYnIpKTtcbiAgICAgICAgICAgIG5hcnJvd1BpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0ubmFycm93KSk7XG5cbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5uYW1lKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0uYWJicikpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hcnJvdykpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZXJhc1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9lcmFzTmFtZVJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbmFtZVBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX2VyYXNBYmJyUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBhYmJyUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fZXJhc05hcnJvd1JlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBuYXJyb3dQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydnZycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ0dHJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2Vla1llYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4odG9rZW4sIGdldHRlcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbigwLCBbdG9rZW4sIHRva2VuLmxlbmd0aF0sIDAsIGdldHRlcik7XG4gICAgfVxuXG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignZ2dnZycsICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2dnJywgJ3dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHRycsICdpc29XZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ0dHR0dHJywgJ2lzb1dlZWtZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWtZZWFyJywgJ2dnJyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrWWVhcicsICdHRycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnd2Vla1llYXInLCAxKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWtZZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdHJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2cnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignR0cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignZ2cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignR0dHRycsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdnZ2dnJywgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHR0dHJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnZ2dnJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydnZ2dnJywgJ2dnZ2dnJywgJ0dHR0cnLCAnR0dHR0cnXSwgZnVuY3Rpb24gKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgd2VlayxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICB0b2tlblxuICAgICkge1xuICAgICAgICB3ZWVrW3Rva2VuLnN1YnN0cigwLCAyKV0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2dnJywgJ0dHJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWtZZWFyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgdGhpcy53ZWVrKCksXG4gICAgICAgICAgICB0aGlzLndlZWtkYXkoKSxcbiAgICAgICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdyxcbiAgICAgICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRveVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT1dlZWtZZWFyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgdGhpcy5pc29XZWVrKCksXG4gICAgICAgICAgICB0aGlzLmlzb1dlZWtkYXkoKSxcbiAgICAgICAgICAgIDEsXG4gICAgICAgICAgICA0XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SVNPV2Vla3NJblllYXIoKSB7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgMSwgNCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SVNPV2Vla3NJbklTT1dlZWtZZWFyKCkge1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy5pc29XZWVrWWVhcigpLCAxLCA0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRXZWVrc0luWWVhcigpIHtcbiAgICAgICAgdmFyIHdlZWtJbmZvID0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgd2Vla0luZm8uZG93LCB3ZWVrSW5mby5kb3kpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFdlZWtzSW5XZWVrWWVhcigpIHtcbiAgICAgICAgdmFyIHdlZWtJbmZvID0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLndlZWtZZWFyKCksIHdlZWtJbmZvLmRvdywgd2Vla0luZm8uZG95KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRXZWVrWWVhckhlbHBlcihpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtzVGFyZ2V0O1xuICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIodGhpcywgZG93LCBkb3kpLnllYXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3ZWVrc1RhcmdldCA9IHdlZWtzSW5ZZWFyKGlucHV0LCBkb3csIGRveSk7XG4gICAgICAgICAgICBpZiAod2VlayA+IHdlZWtzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgd2VlayA9IHdlZWtzVGFyZ2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNldFdlZWtBbGwuY2FsbCh0aGlzLCBpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0V2Vla0FsbCh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIGRheU9mWWVhckRhdGEgPSBkYXlPZlllYXJGcm9tV2Vla3Mod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSxcbiAgICAgICAgICAgIGRhdGUgPSBjcmVhdGVVVENEYXRlKGRheU9mWWVhckRhdGEueWVhciwgMCwgZGF5T2ZZZWFyRGF0YS5kYXlPZlllYXIpO1xuXG4gICAgICAgIHRoaXMueWVhcihkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpO1xuICAgICAgICB0aGlzLm1vbnRoKGRhdGUuZ2V0VVRDTW9udGgoKSk7XG4gICAgICAgIHRoaXMuZGF0ZShkYXRlLmdldFVUQ0RhdGUoKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdRJywgMCwgJ1FvJywgJ3F1YXJ0ZXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygncXVhcnRlcicsICdRJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdxdWFydGVyJywgNyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdRJywgbWF0Y2gxKTtcbiAgICBhZGRQYXJzZVRva2VuKCdRJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSAodG9JbnQoaW5wdXQpIC0gMSkgKiAzO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0UXVhcnRlcihpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbFxuICAgICAgICAgICAgPyBNYXRoLmNlaWwoKHRoaXMubW9udGgoKSArIDEpIC8gMylcbiAgICAgICAgICAgIDogdGhpcy5tb250aCgoaW5wdXQgLSAxKSAqIDMgKyAodGhpcy5tb250aCgpICUgMykpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEJywgWydERCcsIDJdLCAnRG8nLCAnZGF0ZScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXRlJywgJ0QnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXRlJywgOSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdEJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdERCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdEbycsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBcIm9yZGluYWxQYXJzZVwiIGZhbGxiYWNrIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0XG4gICAgICAgICAgICA/IGxvY2FsZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZSB8fCBsb2NhbGUuX29yZGluYWxQYXJzZVxuICAgICAgICAgICAgOiBsb2NhbGUuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50O1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ0QnLCAnREQnXSwgREFURSk7XG4gICAgYWRkUGFyc2VUb2tlbignRG8nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W0RBVEVdID0gdG9JbnQoaW5wdXQubWF0Y2gobWF0Y2gxdG8yKVswXSk7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0RGF5T2ZNb250aCA9IG1ha2VHZXRTZXQoJ0RhdGUnLCB0cnVlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEREQnLCBbJ0REREQnLCAzXSwgJ0RERG8nLCAnZGF5T2ZZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheU9mWWVhcicsICdEREQnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXlPZlllYXInLCA0KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0RERCcsIG1hdGNoMXRvMyk7XG4gICAgYWRkUmVnZXhUb2tlbignRERERCcsIG1hdGNoMyk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ0RERCcsICdEREREJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldERheU9mWWVhcihpbnB1dCkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyID1cbiAgICAgICAgICAgIE1hdGgucm91bmQoXG4gICAgICAgICAgICAgICAgKHRoaXMuY2xvbmUoKS5zdGFydE9mKCdkYXknKSAtIHRoaXMuY2xvbmUoKS5zdGFydE9mKCd5ZWFyJykpIC8gODY0ZTVcbiAgICAgICAgICAgICkgKyAxO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGRheU9mWWVhciA6IHRoaXMuYWRkKGlucHV0IC0gZGF5T2ZZZWFyLCAnZCcpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdtJywgWydtbScsIDJdLCAwLCAnbWludXRlJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21pbnV0ZScsICdtJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdtaW51dGUnLCAxNCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdtJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdtbScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnbScsICdtbSddLCBNSU5VVEUpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldE1pbnV0ZSA9IG1ha2VHZXRTZXQoJ01pbnV0ZXMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigncycsIFsnc3MnLCAyXSwgMCwgJ3NlY29uZCcpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdzZWNvbmQnLCAncycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnc2Vjb25kJywgMTUpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigncycsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignc3MnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ3MnLCAnc3MnXSwgU0VDT05EKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRTZWNvbmQgPSBtYWtlR2V0U2V0KCdTZWNvbmRzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMDApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTUycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTUycsIDNdLCAwLCAnbWlsbGlzZWNvbmQnKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1MnLCA0XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTUycsIDVdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1MnLCA2XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1MnLCA3XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTUycsIDhdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTU1MnLCA5XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDAwMDtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWlsbGlzZWNvbmQnLCAnbXMnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbGxpc2Vjb25kJywgMTYpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUycsIG1hdGNoMXRvMywgbWF0Y2gxKTtcbiAgICBhZGRSZWdleFRva2VuKCdTUycsIG1hdGNoMXRvMywgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdTU1MnLCBtYXRjaDF0bzMsIG1hdGNoMyk7XG5cbiAgICB2YXIgdG9rZW4sIGdldFNldE1pbGxpc2Vjb25kO1xuICAgIGZvciAodG9rZW4gPSAnU1NTUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICAgICAgYWRkUmVnZXhUb2tlbih0b2tlbiwgbWF0Y2hVbnNpZ25lZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VNcyhpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTUlMTElTRUNPTkRdID0gdG9JbnQoKCcwLicgKyBpbnB1dCkgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBmb3IgKHRva2VuID0gJ1MnOyB0b2tlbi5sZW5ndGggPD0gOTsgdG9rZW4gKz0gJ1MnKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIHBhcnNlTXMpO1xuICAgIH1cblxuICAgIGdldFNldE1pbGxpc2Vjb25kID0gbWFrZUdldFNldCgnTWlsbGlzZWNvbmRzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3onLCAwLCAwLCAnem9uZUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignenonLCAwLCAwLCAnem9uZU5hbWUnKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFpvbmVBYmJyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnVVRDJyA6ICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFpvbmVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvID0gTW9tZW50LnByb3RvdHlwZTtcblxuICAgIHByb3RvLmFkZCA9IGFkZDtcbiAgICBwcm90by5jYWxlbmRhciA9IGNhbGVuZGFyJDE7XG4gICAgcHJvdG8uY2xvbmUgPSBjbG9uZTtcbiAgICBwcm90by5kaWZmID0gZGlmZjtcbiAgICBwcm90by5lbmRPZiA9IGVuZE9mO1xuICAgIHByb3RvLmZvcm1hdCA9IGZvcm1hdDtcbiAgICBwcm90by5mcm9tID0gZnJvbTtcbiAgICBwcm90by5mcm9tTm93ID0gZnJvbU5vdztcbiAgICBwcm90by50byA9IHRvO1xuICAgIHByb3RvLnRvTm93ID0gdG9Ob3c7XG4gICAgcHJvdG8uZ2V0ID0gc3RyaW5nR2V0O1xuICAgIHByb3RvLmludmFsaWRBdCA9IGludmFsaWRBdDtcbiAgICBwcm90by5pc0FmdGVyID0gaXNBZnRlcjtcbiAgICBwcm90by5pc0JlZm9yZSA9IGlzQmVmb3JlO1xuICAgIHByb3RvLmlzQmV0d2VlbiA9IGlzQmV0d2VlbjtcbiAgICBwcm90by5pc1NhbWUgPSBpc1NhbWU7XG4gICAgcHJvdG8uaXNTYW1lT3JBZnRlciA9IGlzU2FtZU9yQWZ0ZXI7XG4gICAgcHJvdG8uaXNTYW1lT3JCZWZvcmUgPSBpc1NhbWVPckJlZm9yZTtcbiAgICBwcm90by5pc1ZhbGlkID0gaXNWYWxpZCQyO1xuICAgIHByb3RvLmxhbmcgPSBsYW5nO1xuICAgIHByb3RvLmxvY2FsZSA9IGxvY2FsZTtcbiAgICBwcm90by5sb2NhbGVEYXRhID0gbG9jYWxlRGF0YTtcbiAgICBwcm90by5tYXggPSBwcm90b3R5cGVNYXg7XG4gICAgcHJvdG8ubWluID0gcHJvdG90eXBlTWluO1xuICAgIHByb3RvLnBhcnNpbmdGbGFncyA9IHBhcnNpbmdGbGFncztcbiAgICBwcm90by5zZXQgPSBzdHJpbmdTZXQ7XG4gICAgcHJvdG8uc3RhcnRPZiA9IHN0YXJ0T2Y7XG4gICAgcHJvdG8uc3VidHJhY3QgPSBzdWJ0cmFjdDtcbiAgICBwcm90by50b0FycmF5ID0gdG9BcnJheTtcbiAgICBwcm90by50b09iamVjdCA9IHRvT2JqZWN0O1xuICAgIHByb3RvLnRvRGF0ZSA9IHRvRGF0ZTtcbiAgICBwcm90by50b0lTT1N0cmluZyA9IHRvSVNPU3RyaW5nO1xuICAgIHByb3RvLmluc3BlY3QgPSBpbnNwZWN0O1xuICAgIGlmICh0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wuZm9yICE9IG51bGwpIHtcbiAgICAgICAgcHJvdG9bU3ltYm9sLmZvcignbm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20nKV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gJ01vbWVudDwnICsgdGhpcy5mb3JtYXQoKSArICc+JztcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJvdG8udG9KU09OID0gdG9KU09OO1xuICAgIHByb3RvLnRvU3RyaW5nID0gdG9TdHJpbmc7XG4gICAgcHJvdG8udW5peCA9IHVuaXg7XG4gICAgcHJvdG8udmFsdWVPZiA9IHZhbHVlT2Y7XG4gICAgcHJvdG8uY3JlYXRpb25EYXRhID0gY3JlYXRpb25EYXRhO1xuICAgIHByb3RvLmVyYU5hbWUgPSBnZXRFcmFOYW1lO1xuICAgIHByb3RvLmVyYU5hcnJvdyA9IGdldEVyYU5hcnJvdztcbiAgICBwcm90by5lcmFBYmJyID0gZ2V0RXJhQWJicjtcbiAgICBwcm90by5lcmFZZWFyID0gZ2V0RXJhWWVhcjtcbiAgICBwcm90by55ZWFyID0gZ2V0U2V0WWVhcjtcbiAgICBwcm90by5pc0xlYXBZZWFyID0gZ2V0SXNMZWFwWWVhcjtcbiAgICBwcm90by53ZWVrWWVhciA9IGdldFNldFdlZWtZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtZZWFyID0gZ2V0U2V0SVNPV2Vla1llYXI7XG4gICAgcHJvdG8ucXVhcnRlciA9IHByb3RvLnF1YXJ0ZXJzID0gZ2V0U2V0UXVhcnRlcjtcbiAgICBwcm90by5tb250aCA9IGdldFNldE1vbnRoO1xuICAgIHByb3RvLmRheXNJbk1vbnRoID0gZ2V0RGF5c0luTW9udGg7XG4gICAgcHJvdG8ud2VlayA9IHByb3RvLndlZWtzID0gZ2V0U2V0V2VlaztcbiAgICBwcm90by5pc29XZWVrID0gcHJvdG8uaXNvV2Vla3MgPSBnZXRTZXRJU09XZWVrO1xuICAgIHByb3RvLndlZWtzSW5ZZWFyID0gZ2V0V2Vla3NJblllYXI7XG4gICAgcHJvdG8ud2Vla3NJbldlZWtZZWFyID0gZ2V0V2Vla3NJbldlZWtZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtzSW5ZZWFyID0gZ2V0SVNPV2Vla3NJblllYXI7XG4gICAgcHJvdG8uaXNvV2Vla3NJbklTT1dlZWtZZWFyID0gZ2V0SVNPV2Vla3NJbklTT1dlZWtZZWFyO1xuICAgIHByb3RvLmRhdGUgPSBnZXRTZXREYXlPZk1vbnRoO1xuICAgIHByb3RvLmRheSA9IHByb3RvLmRheXMgPSBnZXRTZXREYXlPZldlZWs7XG4gICAgcHJvdG8ud2Vla2RheSA9IGdldFNldExvY2FsZURheU9mV2VlaztcbiAgICBwcm90by5pc29XZWVrZGF5ID0gZ2V0U2V0SVNPRGF5T2ZXZWVrO1xuICAgIHByb3RvLmRheU9mWWVhciA9IGdldFNldERheU9mWWVhcjtcbiAgICBwcm90by5ob3VyID0gcHJvdG8uaG91cnMgPSBnZXRTZXRIb3VyO1xuICAgIHByb3RvLm1pbnV0ZSA9IHByb3RvLm1pbnV0ZXMgPSBnZXRTZXRNaW51dGU7XG4gICAgcHJvdG8uc2Vjb25kID0gcHJvdG8uc2Vjb25kcyA9IGdldFNldFNlY29uZDtcbiAgICBwcm90by5taWxsaXNlY29uZCA9IHByb3RvLm1pbGxpc2Vjb25kcyA9IGdldFNldE1pbGxpc2Vjb25kO1xuICAgIHByb3RvLnV0Y09mZnNldCA9IGdldFNldE9mZnNldDtcbiAgICBwcm90by51dGMgPSBzZXRPZmZzZXRUb1VUQztcbiAgICBwcm90by5sb2NhbCA9IHNldE9mZnNldFRvTG9jYWw7XG4gICAgcHJvdG8ucGFyc2Vab25lID0gc2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQ7XG4gICAgcHJvdG8uaGFzQWxpZ25lZEhvdXJPZmZzZXQgPSBoYXNBbGlnbmVkSG91ck9mZnNldDtcbiAgICBwcm90by5pc0RTVCA9IGlzRGF5bGlnaHRTYXZpbmdUaW1lO1xuICAgIHByb3RvLmlzTG9jYWwgPSBpc0xvY2FsO1xuICAgIHByb3RvLmlzVXRjT2Zmc2V0ID0gaXNVdGNPZmZzZXQ7XG4gICAgcHJvdG8uaXNVdGMgPSBpc1V0YztcbiAgICBwcm90by5pc1VUQyA9IGlzVXRjO1xuICAgIHByb3RvLnpvbmVBYmJyID0gZ2V0Wm9uZUFiYnI7XG4gICAgcHJvdG8uem9uZU5hbWUgPSBnZXRab25lTmFtZTtcbiAgICBwcm90by5kYXRlcyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ2RhdGVzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBkYXRlIGluc3RlYWQuJyxcbiAgICAgICAgZ2V0U2V0RGF5T2ZNb250aFxuICAgICk7XG4gICAgcHJvdG8ubW9udGhzID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9udGhzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb250aCBpbnN0ZWFkJyxcbiAgICAgICAgZ2V0U2V0TW9udGhcbiAgICApO1xuICAgIHByb3RvLnllYXJzID0gZGVwcmVjYXRlKFxuICAgICAgICAneWVhcnMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIHllYXIgaW5zdGVhZCcsXG4gICAgICAgIGdldFNldFllYXJcbiAgICApO1xuICAgIHByb3RvLnpvbmUgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQoKS56b25lIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQoKS51dGNPZmZzZXQgaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy96b25lLycsXG4gICAgICAgIGdldFNldFpvbmVcbiAgICApO1xuICAgIHByb3RvLmlzRFNUU2hpZnRlZCA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ2lzRFNUU2hpZnRlZCBpcyBkZXByZWNhdGVkLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kc3Qtc2hpZnRlZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24nLFxuICAgICAgICBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWRcbiAgICApO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlVW5peChpbnB1dCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoaW5wdXQgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJblpvbmUoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhcnNlWm9uZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZVBhcnNlUG9zdEZvcm1hdChzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8kMSA9IExvY2FsZS5wcm90b3R5cGU7XG5cbiAgICBwcm90byQxLmNhbGVuZGFyID0gY2FsZW5kYXI7XG4gICAgcHJvdG8kMS5sb25nRGF0ZUZvcm1hdCA9IGxvbmdEYXRlRm9ybWF0O1xuICAgIHByb3RvJDEuaW52YWxpZERhdGUgPSBpbnZhbGlkRGF0ZTtcbiAgICBwcm90byQxLm9yZGluYWwgPSBvcmRpbmFsO1xuICAgIHByb3RvJDEucHJlcGFyc2UgPSBwcmVQYXJzZVBvc3RGb3JtYXQ7XG4gICAgcHJvdG8kMS5wb3N0Zm9ybWF0ID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucmVsYXRpdmVUaW1lID0gcmVsYXRpdmVUaW1lO1xuICAgIHByb3RvJDEucGFzdEZ1dHVyZSA9IHBhc3RGdXR1cmU7XG4gICAgcHJvdG8kMS5zZXQgPSBzZXQ7XG4gICAgcHJvdG8kMS5lcmFzID0gbG9jYWxlRXJhcztcbiAgICBwcm90byQxLmVyYXNQYXJzZSA9IGxvY2FsZUVyYXNQYXJzZTtcbiAgICBwcm90byQxLmVyYXNDb252ZXJ0WWVhciA9IGxvY2FsZUVyYXNDb252ZXJ0WWVhcjtcbiAgICBwcm90byQxLmVyYXNBYmJyUmVnZXggPSBlcmFzQWJiclJlZ2V4O1xuICAgIHByb3RvJDEuZXJhc05hbWVSZWdleCA9IGVyYXNOYW1lUmVnZXg7XG4gICAgcHJvdG8kMS5lcmFzTmFycm93UmVnZXggPSBlcmFzTmFycm93UmVnZXg7XG5cbiAgICBwcm90byQxLm1vbnRocyA9IGxvY2FsZU1vbnRocztcbiAgICBwcm90byQxLm1vbnRoc1Nob3J0ID0gbG9jYWxlTW9udGhzU2hvcnQ7XG4gICAgcHJvdG8kMS5tb250aHNQYXJzZSA9IGxvY2FsZU1vbnRoc1BhcnNlO1xuICAgIHByb3RvJDEubW9udGhzUmVnZXggPSBtb250aHNSZWdleDtcbiAgICBwcm90byQxLm1vbnRoc1Nob3J0UmVnZXggPSBtb250aHNTaG9ydFJlZ2V4O1xuICAgIHByb3RvJDEud2VlayA9IGxvY2FsZVdlZWs7XG4gICAgcHJvdG8kMS5maXJzdERheU9mWWVhciA9IGxvY2FsZUZpcnN0RGF5T2ZZZWFyO1xuICAgIHByb3RvJDEuZmlyc3REYXlPZldlZWsgPSBsb2NhbGVGaXJzdERheU9mV2VlaztcblxuICAgIHByb3RvJDEud2Vla2RheXMgPSBsb2NhbGVXZWVrZGF5cztcbiAgICBwcm90byQxLndlZWtkYXlzTWluID0gbG9jYWxlV2Vla2RheXNNaW47XG4gICAgcHJvdG8kMS53ZWVrZGF5c1Nob3J0ID0gbG9jYWxlV2Vla2RheXNTaG9ydDtcbiAgICBwcm90byQxLndlZWtkYXlzUGFyc2UgPSBsb2NhbGVXZWVrZGF5c1BhcnNlO1xuXG4gICAgcHJvdG8kMS53ZWVrZGF5c1JlZ2V4ID0gd2Vla2RheXNSZWdleDtcbiAgICBwcm90byQxLndlZWtkYXlzU2hvcnRSZWdleCA9IHdlZWtkYXlzU2hvcnRSZWdleDtcbiAgICBwcm90byQxLndlZWtkYXlzTWluUmVnZXggPSB3ZWVrZGF5c01pblJlZ2V4O1xuXG4gICAgcHJvdG8kMS5pc1BNID0gbG9jYWxlSXNQTTtcbiAgICBwcm90byQxLm1lcmlkaWVtID0gbG9jYWxlTWVyaWRpZW07XG5cbiAgICBmdW5jdGlvbiBnZXQkMShmb3JtYXQsIGluZGV4LCBmaWVsZCwgc2V0dGVyKSB7XG4gICAgICAgIHZhciBsb2NhbGUgPSBnZXRMb2NhbGUoKSxcbiAgICAgICAgICAgIHV0YyA9IGNyZWF0ZVVUQygpLnNldChzZXR0ZXIsIGluZGV4KTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZVtmaWVsZF0odXRjLCBmb3JtYXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsIGZpZWxkKSB7XG4gICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcblxuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldCQxKGZvcm1hdCwgaW5kZXgsIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSBnZXQkMShmb3JtYXQsIGksIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIC8vICgpXG4gICAgLy8gKDUpXG4gICAgLy8gKGZtdCwgNSlcbiAgICAvLyAoZm10KVxuICAgIC8vICh0cnVlKVxuICAgIC8vICh0cnVlLCA1KVxuICAgIC8vICh0cnVlLCBmbXQsIDUpXG4gICAgLy8gKHRydWUsIGZtdClcbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhbGVTb3J0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGxvY2FsZVNvcnRlZDtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgbG9jYWxlU29ydGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCksXG4gICAgICAgICAgICBzaGlmdCA9IGxvY2FsZVNvcnRlZCA/IGxvY2FsZS5fd2Vlay5kb3cgOiAwLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIG91dCA9IFtdO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCAoaW5kZXggKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gZ2V0JDEoZm9ybWF0LCAoaSArIHNoaWZ0KSAlIDcsIGZpZWxkLCAnZGF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzKGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsICdtb250aHMnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzU2hvcnQoZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgJ21vbnRoc1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5cycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c1Nob3J0KGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzTWluKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c01pbicpO1xuICAgIH1cblxuICAgIGdldFNldEdsb2JhbExvY2FsZSgnZW4nLCB7XG4gICAgICAgIGVyYXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzAwMDEtMDEtMDEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiArSW5maW5pdHksXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBbm5vIERvbWluaScsXG4gICAgICAgICAgICAgICAgbmFycm93OiAnQUQnLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdBRCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMDAwMC0xMi0zMScsXG4gICAgICAgICAgICAgICAgdW50aWw6IC1JbmZpbml0eSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ0JlZm9yZSBDaHJpc3QnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ0JDJyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnQkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHRofHN0fG5kfHJkKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgdG9JbnQoKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcblxuICAgIGhvb2tzLmxhbmcgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQubGFuZyBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZSBpbnN0ZWFkLicsXG4gICAgICAgIGdldFNldEdsb2JhbExvY2FsZVxuICAgICk7XG4gICAgaG9va3MubGFuZ0RhdGEgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQubGFuZ0RhdGEgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGVEYXRhIGluc3RlYWQuJyxcbiAgICAgICAgZ2V0TG9jYWxlXG4gICAgKTtcblxuICAgIHZhciBtYXRoQWJzID0gTWF0aC5hYnM7XG5cbiAgICBmdW5jdGlvbiBhYnMoKSB7XG4gICAgICAgIHZhciBkYXRhID0gdGhpcy5fZGF0YTtcblxuICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPSBtYXRoQWJzKHRoaXMuX21pbGxpc2Vjb25kcyk7XG4gICAgICAgIHRoaXMuX2RheXMgPSBtYXRoQWJzKHRoaXMuX2RheXMpO1xuICAgICAgICB0aGlzLl9tb250aHMgPSBtYXRoQWJzKHRoaXMuX21vbnRocyk7XG5cbiAgICAgICAgZGF0YS5taWxsaXNlY29uZHMgPSBtYXRoQWJzKGRhdGEubWlsbGlzZWNvbmRzKTtcbiAgICAgICAgZGF0YS5zZWNvbmRzID0gbWF0aEFicyhkYXRhLnNlY29uZHMpO1xuICAgICAgICBkYXRhLm1pbnV0ZXMgPSBtYXRoQWJzKGRhdGEubWludXRlcyk7XG4gICAgICAgIGRhdGEuaG91cnMgPSBtYXRoQWJzKGRhdGEuaG91cnMpO1xuICAgICAgICBkYXRhLm1vbnRocyA9IG1hdGhBYnMoZGF0YS5tb250aHMpO1xuICAgICAgICBkYXRhLnllYXJzID0gbWF0aEFicyhkYXRhLnllYXJzKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRTdWJ0cmFjdCQxKGR1cmF0aW9uLCBpbnB1dCwgdmFsdWUsIGRpcmVjdGlvbikge1xuICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVEdXJhdGlvbihpbnB1dCwgdmFsdWUpO1xuXG4gICAgICAgIGR1cmF0aW9uLl9taWxsaXNlY29uZHMgKz0gZGlyZWN0aW9uICogb3RoZXIuX21pbGxpc2Vjb25kcztcbiAgICAgICAgZHVyYXRpb24uX2RheXMgKz0gZGlyZWN0aW9uICogb3RoZXIuX2RheXM7XG4gICAgICAgIGR1cmF0aW9uLl9tb250aHMgKz0gZGlyZWN0aW9uICogb3RoZXIuX21vbnRocztcblxuICAgICAgICByZXR1cm4gZHVyYXRpb24uX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnRzIG9ubHkgMi4wLXN0eWxlIGFkZCgxLCAncycpIG9yIGFkZChkdXJhdGlvbilcbiAgICBmdW5jdGlvbiBhZGQkMShpbnB1dCwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGFkZFN1YnRyYWN0JDEodGhpcywgaW5wdXQsIHZhbHVlLCAxKTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBzdWJ0cmFjdCgxLCAncycpIG9yIHN1YnRyYWN0KGR1cmF0aW9uKVxuICAgIGZ1bmN0aW9uIHN1YnRyYWN0JDEoaW5wdXQsIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBhZGRTdWJ0cmFjdCQxKHRoaXMsIGlucHV0LCB2YWx1ZSwgLTEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic0NlaWwobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbChudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYnViYmxlKCkge1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMsXG4gICAgICAgICAgICBtb250aHMgPSB0aGlzLl9tb250aHMsXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5fZGF0YSxcbiAgICAgICAgICAgIHNlY29uZHMsXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICB5ZWFycyxcbiAgICAgICAgICAgIG1vbnRoc0Zyb21EYXlzO1xuXG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYSBtaXggb2YgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHZhbHVlcywgYnViYmxlIGRvd24gZmlyc3RcbiAgICAgICAgLy8gY2hlY2s6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8yMTY2XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgKG1pbGxpc2Vjb25kcyA+PSAwICYmIGRheXMgPj0gMCAmJiBtb250aHMgPj0gMCkgfHxcbiAgICAgICAgICAgICAgICAobWlsbGlzZWNvbmRzIDw9IDAgJiYgZGF5cyA8PSAwICYmIG1vbnRocyA8PSAwKVxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyArPSBhYnNDZWlsKG1vbnRoc1RvRGF5cyhtb250aHMpICsgZGF5cykgKiA4NjRlNTtcbiAgICAgICAgICAgIGRheXMgPSAwO1xuICAgICAgICAgICAgbW9udGhzID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBidWJibGVzIHVwIHZhbHVlcywgc2VlIHRoZSB0ZXN0cyBmb3JcbiAgICAgICAgLy8gZXhhbXBsZXMgb2Ygd2hhdCB0aGF0IG1lYW5zLlxuICAgICAgICBkYXRhLm1pbGxpc2Vjb25kcyA9IG1pbGxpc2Vjb25kcyAlIDEwMDA7XG5cbiAgICAgICAgc2Vjb25kcyA9IGFic0Zsb29yKG1pbGxpc2Vjb25kcyAvIDEwMDApO1xuICAgICAgICBkYXRhLnNlY29uZHMgPSBzZWNvbmRzICUgNjA7XG5cbiAgICAgICAgbWludXRlcyA9IGFic0Zsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgICAgIGRhdGEubWludXRlcyA9IG1pbnV0ZXMgJSA2MDtcblxuICAgICAgICBob3VycyA9IGFic0Zsb29yKG1pbnV0ZXMgLyA2MCk7XG4gICAgICAgIGRhdGEuaG91cnMgPSBob3VycyAlIDI0O1xuXG4gICAgICAgIGRheXMgKz0gYWJzRmxvb3IoaG91cnMgLyAyNCk7XG5cbiAgICAgICAgLy8gY29udmVydCBkYXlzIHRvIG1vbnRoc1xuICAgICAgICBtb250aHNGcm9tRGF5cyA9IGFic0Zsb29yKGRheXNUb01vbnRocyhkYXlzKSk7XG4gICAgICAgIG1vbnRocyArPSBtb250aHNGcm9tRGF5cztcbiAgICAgICAgZGF5cyAtPSBhYnNDZWlsKG1vbnRoc1RvRGF5cyhtb250aHNGcm9tRGF5cykpO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgICAgIG1vbnRocyAlPSAxMjtcblxuICAgICAgICBkYXRhLmRheXMgPSBkYXlzO1xuICAgICAgICBkYXRhLm1vbnRocyA9IG1vbnRocztcbiAgICAgICAgZGF0YS55ZWFycyA9IHllYXJzO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNUb01vbnRocyhkYXlzKSB7XG4gICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDE0NjA5NyBkYXlzICh0YWtpbmcgaW50byBhY2NvdW50IGxlYXAgeWVhciBydWxlcylcbiAgICAgICAgLy8gNDAwIHllYXJzIGhhdmUgMTIgbW9udGhzID09PSA0ODAwXG4gICAgICAgIHJldHVybiAoZGF5cyAqIDQ4MDApIC8gMTQ2MDk3O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1RvRGF5cyhtb250aHMpIHtcbiAgICAgICAgLy8gdGhlIHJldmVyc2Ugb2YgZGF5c1RvTW9udGhzXG4gICAgICAgIHJldHVybiAobW9udGhzICogMTQ2MDk3KSAvIDQ4MDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXModW5pdHMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF5cyxcbiAgICAgICAgICAgIG1vbnRocyxcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcztcblxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcblxuICAgICAgICBpZiAodW5pdHMgPT09ICdtb250aCcgfHwgdW5pdHMgPT09ICdxdWFydGVyJyB8fCB1bml0cyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzICsgZGF5c1RvTW9udGhzKGRheXMpO1xuICAgICAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRocztcbiAgICAgICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRocyAvIDM7XG4gICAgICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb250aHMgLyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGhhbmRsZSBtaWxsaXNlY29uZHMgc2VwYXJhdGVseSBiZWNhdXNlIG9mIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIChpc3N1ZSAjMTg2NylcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgTWF0aC5yb3VuZChtb250aHNUb0RheXModGhpcy5fbW9udGhzKSk7XG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXlzIC8gNyArIG1pbGxpc2Vjb25kcyAvIDYwNDhlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAqIDI0ICsgbWlsbGlzZWNvbmRzIC8gMzZlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAqIDE0NDAgKyBtaWxsaXNlY29uZHMgLyA2ZTQ7XG4gICAgICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKiA4NjQwMCArIG1pbGxpc2Vjb25kcyAvIDEwMDA7XG4gICAgICAgICAgICAgICAgLy8gTWF0aC5mbG9vciBwcmV2ZW50cyBmbG9hdGluZyBwb2ludCBtYXRoIGVycm9ycyBoZXJlXG4gICAgICAgICAgICAgICAgY2FzZSAnbWlsbGlzZWNvbmQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihkYXlzICogODY0ZTUpICsgbWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biB1bml0ICcgKyB1bml0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgdGhpcy5hcygnbXMnKT9cbiAgICBmdW5jdGlvbiB2YWx1ZU9mJDEoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyArXG4gICAgICAgICAgICB0aGlzLl9kYXlzICogODY0ZTUgK1xuICAgICAgICAgICAgKHRoaXMuX21vbnRocyAlIDEyKSAqIDI1OTJlNiArXG4gICAgICAgICAgICB0b0ludCh0aGlzLl9tb250aHMgLyAxMikgKiAzMTUzNmU2XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUFzKGFsaWFzKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcyhhbGlhcyk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGFzTWlsbGlzZWNvbmRzID0gbWFrZUFzKCdtcycpLFxuICAgICAgICBhc1NlY29uZHMgPSBtYWtlQXMoJ3MnKSxcbiAgICAgICAgYXNNaW51dGVzID0gbWFrZUFzKCdtJyksXG4gICAgICAgIGFzSG91cnMgPSBtYWtlQXMoJ2gnKSxcbiAgICAgICAgYXNEYXlzID0gbWFrZUFzKCdkJyksXG4gICAgICAgIGFzV2Vla3MgPSBtYWtlQXMoJ3cnKSxcbiAgICAgICAgYXNNb250aHMgPSBtYWtlQXMoJ00nKSxcbiAgICAgICAgYXNRdWFydGVycyA9IG1ha2VBcygnUScpLFxuICAgICAgICBhc1llYXJzID0gbWFrZUFzKCd5Jyk7XG5cbiAgICBmdW5jdGlvbiBjbG9uZSQxKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24odGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0JDIodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXNbdW5pdHMgKyAncyddKCkgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUdldHRlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9kYXRhW25hbWVdIDogTmFOO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBtaWxsaXNlY29uZHMgPSBtYWtlR2V0dGVyKCdtaWxsaXNlY29uZHMnKSxcbiAgICAgICAgc2Vjb25kcyA9IG1ha2VHZXR0ZXIoJ3NlY29uZHMnKSxcbiAgICAgICAgbWludXRlcyA9IG1ha2VHZXR0ZXIoJ21pbnV0ZXMnKSxcbiAgICAgICAgaG91cnMgPSBtYWtlR2V0dGVyKCdob3VycycpLFxuICAgICAgICBkYXlzID0gbWFrZUdldHRlcignZGF5cycpLFxuICAgICAgICBtb250aHMgPSBtYWtlR2V0dGVyKCdtb250aHMnKSxcbiAgICAgICAgeWVhcnMgPSBtYWtlR2V0dGVyKCd5ZWFycycpO1xuXG4gICAgZnVuY3Rpb24gd2Vla3MoKSB7XG4gICAgICAgIHJldHVybiBhYnNGbG9vcih0aGlzLmRheXMoKSAvIDcpO1xuICAgIH1cblxuICAgIHZhciByb3VuZCA9IE1hdGgucm91bmQsXG4gICAgICAgIHRocmVzaG9sZHMgPSB7XG4gICAgICAgICAgICBzczogNDQsIC8vIGEgZmV3IHNlY29uZHMgdG8gc2Vjb25kc1xuICAgICAgICAgICAgczogNDUsIC8vIHNlY29uZHMgdG8gbWludXRlXG4gICAgICAgICAgICBtOiA0NSwgLy8gbWludXRlcyB0byBob3VyXG4gICAgICAgICAgICBoOiAyMiwgLy8gaG91cnMgdG8gZGF5XG4gICAgICAgICAgICBkOiAyNiwgLy8gZGF5cyB0byBtb250aC93ZWVrXG4gICAgICAgICAgICB3OiBudWxsLCAvLyB3ZWVrcyB0byBtb250aFxuICAgICAgICAgICAgTTogMTEsIC8vIG1vbnRocyB0byB5ZWFyXG4gICAgICAgIH07XG5cbiAgICAvLyBoZWxwZXIgZnVuY3Rpb24gZm9yIG1vbWVudC5mbi5mcm9tLCBtb21lbnQuZm4uZnJvbU5vdywgYW5kIG1vbWVudC5kdXJhdGlvbi5mbi5odW1hbml6ZVxuICAgIGZ1bmN0aW9uIHN1YnN0aXR1dGVUaW1lQWdvKHN0cmluZywgbnVtYmVyLCB3aXRob3V0U3VmZml4LCBpc0Z1dHVyZSwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUucmVsYXRpdmVUaW1lKG51bWJlciB8fCAxLCAhIXdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZSQxKHBvc05lZ0R1cmF0aW9uLCB3aXRob3V0U3VmZml4LCB0aHJlc2hvbGRzLCBsb2NhbGUpIHtcbiAgICAgICAgdmFyIGR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb24ocG9zTmVnRHVyYXRpb24pLmFicygpLFxuICAgICAgICAgICAgc2Vjb25kcyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdzJykpLFxuICAgICAgICAgICAgbWludXRlcyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdtJykpLFxuICAgICAgICAgICAgaG91cnMgPSByb3VuZChkdXJhdGlvbi5hcygnaCcpKSxcbiAgICAgICAgICAgIGRheXMgPSByb3VuZChkdXJhdGlvbi5hcygnZCcpKSxcbiAgICAgICAgICAgIG1vbnRocyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdNJykpLFxuICAgICAgICAgICAgd2Vla3MgPSByb3VuZChkdXJhdGlvbi5hcygndycpKSxcbiAgICAgICAgICAgIHllYXJzID0gcm91bmQoZHVyYXRpb24uYXMoJ3knKSksXG4gICAgICAgICAgICBhID1cbiAgICAgICAgICAgICAgICAoc2Vjb25kcyA8PSB0aHJlc2hvbGRzLnNzICYmIFsncycsIHNlY29uZHNdKSB8fFxuICAgICAgICAgICAgICAgIChzZWNvbmRzIDwgdGhyZXNob2xkcy5zICYmIFsnc3MnLCBzZWNvbmRzXSkgfHxcbiAgICAgICAgICAgICAgICAobWludXRlcyA8PSAxICYmIFsnbSddKSB8fFxuICAgICAgICAgICAgICAgIChtaW51dGVzIDwgdGhyZXNob2xkcy5tICYmIFsnbW0nLCBtaW51dGVzXSkgfHxcbiAgICAgICAgICAgICAgICAoaG91cnMgPD0gMSAmJiBbJ2gnXSkgfHxcbiAgICAgICAgICAgICAgICAoaG91cnMgPCB0aHJlc2hvbGRzLmggJiYgWydoaCcsIGhvdXJzXSkgfHxcbiAgICAgICAgICAgICAgICAoZGF5cyA8PSAxICYmIFsnZCddKSB8fFxuICAgICAgICAgICAgICAgIChkYXlzIDwgdGhyZXNob2xkcy5kICYmIFsnZGQnLCBkYXlzXSk7XG5cbiAgICAgICAgaWYgKHRocmVzaG9sZHMudyAhPSBudWxsKSB7XG4gICAgICAgICAgICBhID1cbiAgICAgICAgICAgICAgICBhIHx8XG4gICAgICAgICAgICAgICAgKHdlZWtzIDw9IDEgJiYgWyd3J10pIHx8XG4gICAgICAgICAgICAgICAgKHdlZWtzIDwgdGhyZXNob2xkcy53ICYmIFsnd3cnLCB3ZWVrc10pO1xuICAgICAgICB9XG4gICAgICAgIGEgPSBhIHx8XG4gICAgICAgICAgICAobW9udGhzIDw9IDEgJiYgWydNJ10pIHx8XG4gICAgICAgICAgICAobW9udGhzIDwgdGhyZXNob2xkcy5NICYmIFsnTU0nLCBtb250aHNdKSB8fFxuICAgICAgICAgICAgKHllYXJzIDw9IDEgJiYgWyd5J10pIHx8IFsneXknLCB5ZWFyc107XG5cbiAgICAgICAgYVsyXSA9IHdpdGhvdXRTdWZmaXg7XG4gICAgICAgIGFbM10gPSArcG9zTmVnRHVyYXRpb24gPiAwO1xuICAgICAgICBhWzRdID0gbG9jYWxlO1xuICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZVRpbWVBZ28uYXBwbHkobnVsbCwgYSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCB0aGUgcm91bmRpbmcgZnVuY3Rpb24gZm9yIHJlbGF0aXZlIHRpbWUgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nKHJvdW5kaW5nRnVuY3Rpb24pIHtcbiAgICAgICAgaWYgKHJvdW5kaW5nRnVuY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdW5kO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygcm91bmRpbmdGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcm91bmQgPSByb3VuZGluZ0Z1bmN0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBzZXQgYSB0aHJlc2hvbGQgZm9yIHJlbGF0aXZlIHRpbWUgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGdldFNldFJlbGF0aXZlVGltZVRocmVzaG9sZCh0aHJlc2hvbGQsIGxpbWl0KSB7XG4gICAgICAgIGlmICh0aHJlc2hvbGRzW3RocmVzaG9sZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaW1pdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyZXNob2xkc1t0aHJlc2hvbGRdO1xuICAgICAgICB9XG4gICAgICAgIHRocmVzaG9sZHNbdGhyZXNob2xkXSA9IGxpbWl0O1xuICAgICAgICBpZiAodGhyZXNob2xkID09PSAncycpIHtcbiAgICAgICAgICAgIHRocmVzaG9sZHMuc3MgPSBsaW1pdCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaHVtYW5pemUoYXJnV2l0aFN1ZmZpeCwgYXJnVGhyZXNob2xkcykge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB3aXRoU3VmZml4ID0gZmFsc2UsXG4gICAgICAgICAgICB0aCA9IHRocmVzaG9sZHMsXG4gICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICBvdXRwdXQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhcmdXaXRoU3VmZml4ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgYXJnVGhyZXNob2xkcyA9IGFyZ1dpdGhTdWZmaXg7XG4gICAgICAgICAgICBhcmdXaXRoU3VmZml4ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhcmdXaXRoU3VmZml4ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHdpdGhTdWZmaXggPSBhcmdXaXRoU3VmZml4O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYXJnVGhyZXNob2xkcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoID0gT2JqZWN0LmFzc2lnbih7fSwgdGhyZXNob2xkcywgYXJnVGhyZXNob2xkcyk7XG4gICAgICAgICAgICBpZiAoYXJnVGhyZXNob2xkcy5zICE9IG51bGwgJiYgYXJnVGhyZXNob2xkcy5zcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGguc3MgPSBhcmdUaHJlc2hvbGRzLnMgLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxlID0gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgIG91dHB1dCA9IHJlbGF0aXZlVGltZSQxKHRoaXMsICF3aXRoU3VmZml4LCB0aCwgbG9jYWxlKTtcblxuICAgICAgICBpZiAod2l0aFN1ZmZpeCkge1xuICAgICAgICAgICAgb3V0cHV0ID0gbG9jYWxlLnBhc3RGdXR1cmUoK3RoaXMsIG91dHB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbG9jYWxlLnBvc3Rmb3JtYXQob3V0cHV0KTtcbiAgICB9XG5cbiAgICB2YXIgYWJzJDEgPSBNYXRoLmFicztcblxuICAgIGZ1bmN0aW9uIHNpZ24oeCkge1xuICAgICAgICByZXR1cm4gKHggPiAwKSAtICh4IDwgMCkgfHwgK3g7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JU09TdHJpbmckMSgpIHtcbiAgICAgICAgLy8gZm9yIElTTyBzdHJpbmdzIHdlIGRvIG5vdCB1c2UgdGhlIG5vcm1hbCBidWJibGluZyBydWxlczpcbiAgICAgICAgLy8gICogbWlsbGlzZWNvbmRzIGJ1YmJsZSB1cCB1bnRpbCB0aGV5IGJlY29tZSBob3Vyc1xuICAgICAgICAvLyAgKiBkYXlzIGRvIG5vdCBidWJibGUgYXQgYWxsXG4gICAgICAgIC8vICAqIG1vbnRocyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgeWVhcnNcbiAgICAgICAgLy8gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGlzIG5vIGNvbnRleHQtZnJlZSBjb252ZXJzaW9uIGJldHdlZW4gaG91cnMgYW5kIGRheXNcbiAgICAgICAgLy8gKHRoaW5rIG9mIGNsb2NrIGNoYW5nZXMpXG4gICAgICAgIC8vIGFuZCBhbHNvIG5vdCBiZXR3ZWVuIGRheXMgYW5kIG1vbnRocyAoMjgtMzEgZGF5cyBwZXIgbW9udGgpXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNlY29uZHMgPSBhYnMkMSh0aGlzLl9taWxsaXNlY29uZHMpIC8gMTAwMCxcbiAgICAgICAgICAgIGRheXMgPSBhYnMkMSh0aGlzLl9kYXlzKSxcbiAgICAgICAgICAgIG1vbnRocyA9IGFicyQxKHRoaXMuX21vbnRocyksXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICB5ZWFycyxcbiAgICAgICAgICAgIHMsXG4gICAgICAgICAgICB0b3RhbCA9IHRoaXMuYXNTZWNvbmRzKCksXG4gICAgICAgICAgICB0b3RhbFNpZ24sXG4gICAgICAgICAgICB5bVNpZ24sXG4gICAgICAgICAgICBkYXlzU2lnbixcbiAgICAgICAgICAgIGhtc1NpZ247XG5cbiAgICAgICAgaWYgKCF0b3RhbCkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyBDIydzIChOb2RhKSBhbmQgcHl0aG9uIChpc29kYXRlKS4uLlxuICAgICAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKVxuICAgICAgICAgICAgcmV0dXJuICdQMEQnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gMzYwMCBzZWNvbmRzIC0+IDYwIG1pbnV0ZXMgLT4gMSBob3VyXG4gICAgICAgIG1pbnV0ZXMgPSBhYnNGbG9vcihzZWNvbmRzIC8gNjApO1xuICAgICAgICBob3VycyA9IGFic0Zsb29yKG1pbnV0ZXMgLyA2MCk7XG4gICAgICAgIHNlY29uZHMgJT0gNjA7XG4gICAgICAgIG1pbnV0ZXMgJT0gNjA7XG5cbiAgICAgICAgLy8gMTIgbW9udGhzIC0+IDEgeWVhclxuICAgICAgICB5ZWFycyA9IGFic0Zsb29yKG1vbnRocyAvIDEyKTtcbiAgICAgICAgbW9udGhzICU9IDEyO1xuXG4gICAgICAgIC8vIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9kb3JkaWxsZS9tb21lbnQtaXNvZHVyYXRpb24vYmxvYi9tYXN0ZXIvbW9tZW50Lmlzb2R1cmF0aW9uLmpzXG4gICAgICAgIHMgPSBzZWNvbmRzID8gc2Vjb25kcy50b0ZpeGVkKDMpLnJlcGxhY2UoL1xcLj8wKyQvLCAnJykgOiAnJztcblxuICAgICAgICB0b3RhbFNpZ24gPSB0b3RhbCA8IDAgPyAnLScgOiAnJztcbiAgICAgICAgeW1TaWduID0gc2lnbih0aGlzLl9tb250aHMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICBkYXlzU2lnbiA9IHNpZ24odGhpcy5fZGF5cykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG4gICAgICAgIGhtc1NpZ24gPSBzaWduKHRoaXMuX21pbGxpc2Vjb25kcykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRvdGFsU2lnbiArXG4gICAgICAgICAgICAnUCcgK1xuICAgICAgICAgICAgKHllYXJzID8geW1TaWduICsgeWVhcnMgKyAnWScgOiAnJykgK1xuICAgICAgICAgICAgKG1vbnRocyA/IHltU2lnbiArIG1vbnRocyArICdNJyA6ICcnKSArXG4gICAgICAgICAgICAoZGF5cyA/IGRheXNTaWduICsgZGF5cyArICdEJyA6ICcnKSArXG4gICAgICAgICAgICAoaG91cnMgfHwgbWludXRlcyB8fCBzZWNvbmRzID8gJ1QnIDogJycpICtcbiAgICAgICAgICAgIChob3VycyA/IGhtc1NpZ24gKyBob3VycyArICdIJyA6ICcnKSArXG4gICAgICAgICAgICAobWludXRlcyA/IGhtc1NpZ24gKyBtaW51dGVzICsgJ00nIDogJycpICtcbiAgICAgICAgICAgIChzZWNvbmRzID8gaG1zU2lnbiArIHMgKyAnUycgOiAnJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8kMiA9IER1cmF0aW9uLnByb3RvdHlwZTtcblxuICAgIHByb3RvJDIuaXNWYWxpZCA9IGlzVmFsaWQkMTtcbiAgICBwcm90byQyLmFicyA9IGFicztcbiAgICBwcm90byQyLmFkZCA9IGFkZCQxO1xuICAgIHByb3RvJDIuc3VidHJhY3QgPSBzdWJ0cmFjdCQxO1xuICAgIHByb3RvJDIuYXMgPSBhcztcbiAgICBwcm90byQyLmFzTWlsbGlzZWNvbmRzID0gYXNNaWxsaXNlY29uZHM7XG4gICAgcHJvdG8kMi5hc1NlY29uZHMgPSBhc1NlY29uZHM7XG4gICAgcHJvdG8kMi5hc01pbnV0ZXMgPSBhc01pbnV0ZXM7XG4gICAgcHJvdG8kMi5hc0hvdXJzID0gYXNIb3VycztcbiAgICBwcm90byQyLmFzRGF5cyA9IGFzRGF5cztcbiAgICBwcm90byQyLmFzV2Vla3MgPSBhc1dlZWtzO1xuICAgIHByb3RvJDIuYXNNb250aHMgPSBhc01vbnRocztcbiAgICBwcm90byQyLmFzUXVhcnRlcnMgPSBhc1F1YXJ0ZXJzO1xuICAgIHByb3RvJDIuYXNZZWFycyA9IGFzWWVhcnM7XG4gICAgcHJvdG8kMi52YWx1ZU9mID0gdmFsdWVPZiQxO1xuICAgIHByb3RvJDIuX2J1YmJsZSA9IGJ1YmJsZTtcbiAgICBwcm90byQyLmNsb25lID0gY2xvbmUkMTtcbiAgICBwcm90byQyLmdldCA9IGdldCQyO1xuICAgIHByb3RvJDIubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzO1xuICAgIHByb3RvJDIuc2Vjb25kcyA9IHNlY29uZHM7XG4gICAgcHJvdG8kMi5taW51dGVzID0gbWludXRlcztcbiAgICBwcm90byQyLmhvdXJzID0gaG91cnM7XG4gICAgcHJvdG8kMi5kYXlzID0gZGF5cztcbiAgICBwcm90byQyLndlZWtzID0gd2Vla3M7XG4gICAgcHJvdG8kMi5tb250aHMgPSBtb250aHM7XG4gICAgcHJvdG8kMi55ZWFycyA9IHllYXJzO1xuICAgIHByb3RvJDIuaHVtYW5pemUgPSBodW1hbml6ZTtcbiAgICBwcm90byQyLnRvSVNPU3RyaW5nID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvU3RyaW5nID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvSlNPTiA9IHRvSVNPU3RyaW5nJDE7XG4gICAgcHJvdG8kMi5sb2NhbGUgPSBsb2NhbGU7XG4gICAgcHJvdG8kMi5sb2NhbGVEYXRhID0gbG9jYWxlRGF0YTtcblxuICAgIHByb3RvJDIudG9Jc29TdHJpbmcgPSBkZXByZWNhdGUoXG4gICAgICAgICd0b0lzb1N0cmluZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdG9JU09TdHJpbmcoKSBpbnN0ZWFkIChub3RpY2UgdGhlIGNhcGl0YWxzKScsXG4gICAgICAgIHRvSVNPU3RyaW5nJDFcbiAgICApO1xuICAgIHByb3RvJDIubGFuZyA9IGxhbmc7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignWCcsIDAsIDAsICd1bml4Jyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3gnLCAwLCAwLCAndmFsdWVPZicpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigneCcsIG1hdGNoU2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCdYJywgbWF0Y2hUaW1lc3RhbXApO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUocGFyc2VGbG9hdChpbnB1dCkgKiAxMDAwKTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCd4JywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHRvSW50KGlucHV0KSk7XG4gICAgfSk7XG5cbiAgICAvLyEgbW9tZW50LmpzXG5cbiAgICBob29rcy52ZXJzaW9uID0gJzIuMjcuMCc7XG5cbiAgICBzZXRIb29rQ2FsbGJhY2soY3JlYXRlTG9jYWwpO1xuXG4gICAgaG9va3MuZm4gPSBwcm90bztcbiAgICBob29rcy5taW4gPSBtaW47XG4gICAgaG9va3MubWF4ID0gbWF4O1xuICAgIGhvb2tzLm5vdyA9IG5vdztcbiAgICBob29rcy51dGMgPSBjcmVhdGVVVEM7XG4gICAgaG9va3MudW5peCA9IGNyZWF0ZVVuaXg7XG4gICAgaG9va3MubW9udGhzID0gbGlzdE1vbnRocztcbiAgICBob29rcy5pc0RhdGUgPSBpc0RhdGU7XG4gICAgaG9va3MubG9jYWxlID0gZ2V0U2V0R2xvYmFsTG9jYWxlO1xuICAgIGhvb2tzLmludmFsaWQgPSBjcmVhdGVJbnZhbGlkO1xuICAgIGhvb2tzLmR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb247XG4gICAgaG9va3MuaXNNb21lbnQgPSBpc01vbWVudDtcbiAgICBob29rcy53ZWVrZGF5cyA9IGxpc3RXZWVrZGF5cztcbiAgICBob29rcy5wYXJzZVpvbmUgPSBjcmVhdGVJblpvbmU7XG4gICAgaG9va3MubG9jYWxlRGF0YSA9IGdldExvY2FsZTtcbiAgICBob29rcy5pc0R1cmF0aW9uID0gaXNEdXJhdGlvbjtcbiAgICBob29rcy5tb250aHNTaG9ydCA9IGxpc3RNb250aHNTaG9ydDtcbiAgICBob29rcy53ZWVrZGF5c01pbiA9IGxpc3RXZWVrZGF5c01pbjtcbiAgICBob29rcy5kZWZpbmVMb2NhbGUgPSBkZWZpbmVMb2NhbGU7XG4gICAgaG9va3MudXBkYXRlTG9jYWxlID0gdXBkYXRlTG9jYWxlO1xuICAgIGhvb2tzLmxvY2FsZXMgPSBsaXN0TG9jYWxlcztcbiAgICBob29rcy53ZWVrZGF5c1Nob3J0ID0gbGlzdFdlZWtkYXlzU2hvcnQ7XG4gICAgaG9va3Mubm9ybWFsaXplVW5pdHMgPSBub3JtYWxpemVVbml0cztcbiAgICBob29rcy5yZWxhdGl2ZVRpbWVSb3VuZGluZyA9IGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nO1xuICAgIGhvb2tzLnJlbGF0aXZlVGltZVRocmVzaG9sZCA9IGdldFNldFJlbGF0aXZlVGltZVRocmVzaG9sZDtcbiAgICBob29rcy5jYWxlbmRhckZvcm1hdCA9IGdldENhbGVuZGFyRm9ybWF0O1xuICAgIGhvb2tzLnByb3RvdHlwZSA9IHByb3RvO1xuXG4gICAgLy8gY3VycmVudGx5IEhUTUw1IGlucHV0IHR5cGUgb25seSBzdXBwb3J0cyAyNC1ob3VyIGZvcm1hdHNcbiAgICBob29rcy5IVE1MNV9GTVQgPSB7XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMOiAnWVlZWS1NTS1ERFRISDptbScsIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiAvPlxuICAgICAgICBEQVRFVElNRV9MT0NBTF9TRUNPTkRTOiAnWVlZWS1NTS1ERFRISDptbTpzcycsIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBzdGVwPVwiMVwiIC8+XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMX01TOiAnWVlZWS1NTS1ERFRISDptbTpzcy5TU1MnLCAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgc3RlcD1cIjAuMDAxXCIgLz5cbiAgICAgICAgREFURTogJ1lZWVktTU0tREQnLCAvLyA8aW5wdXQgdHlwZT1cImRhdGVcIiAvPlxuICAgICAgICBUSU1FOiAnSEg6bW0nLCAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiAvPlxuICAgICAgICBUSU1FX1NFQ09ORFM6ICdISDptbTpzcycsIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIxXCIgLz5cbiAgICAgICAgVElNRV9NUzogJ0hIOm1tOnNzLlNTUycsIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgICAgIFdFRUs6ICdHR0dHLVtXXVdXJywgLy8gPGlucHV0IHR5cGU9XCJ3ZWVrXCIgLz5cbiAgICAgICAgTU9OVEg6ICdZWVlZLU1NJywgLy8gPGlucHV0IHR5cGU9XCJtb250aFwiIC8+XG4gICAgfTtcblxuICAgIHJldHVybiBob29rcztcblxufSkpKTtcbiIsIi8qIVxuICBDb3B5cmlnaHQgKGMpIDIwMTcgSmVkIFdhdHNvbi5cbiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChNSVQpLCBzZWVcbiAgaHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lc1xuKi9cbi8qIGdsb2JhbCBkZWZpbmUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBoYXNPd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuXHRmdW5jdGlvbiBjbGFzc05hbWVzICgpIHtcblx0XHR2YXIgY2xhc3NlcyA9IFtdO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBhcmcgPSBhcmd1bWVudHNbaV07XG5cdFx0XHRpZiAoIWFyZykgY29udGludWU7XG5cblx0XHRcdHZhciBhcmdUeXBlID0gdHlwZW9mIGFyZztcblxuXHRcdFx0aWYgKGFyZ1R5cGUgPT09ICdzdHJpbmcnIHx8IGFyZ1R5cGUgPT09ICdudW1iZXInKSB7XG5cdFx0XHRcdGNsYXNzZXMucHVzaChhcmcpO1xuXHRcdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFyZykgJiYgYXJnLmxlbmd0aCkge1xuXHRcdFx0XHR2YXIgaW5uZXIgPSBjbGFzc05hbWVzLmFwcGx5KG51bGwsIGFyZyk7XG5cdFx0XHRcdGlmIChpbm5lcikge1xuXHRcdFx0XHRcdGNsYXNzZXMucHVzaChpbm5lcik7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoYXJnVHlwZSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0Zm9yICh2YXIga2V5IGluIGFyZykge1xuXHRcdFx0XHRcdGlmIChoYXNPd24uY2FsbChhcmcsIGtleSkgJiYgYXJnW2tleV0pIHtcblx0XHRcdFx0XHRcdGNsYXNzZXMucHVzaChrZXkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuXHRcdGNsYXNzTmFtZXMuZGVmYXVsdCA9IGNsYXNzTmFtZXM7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBjbGFzc05hbWVzO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyByZWdpc3RlciBhcyAnY2xhc3NuYW1lcycsIGNvbnNpc3RlbnQgd2l0aCBucG0gcGFja2FnZSBuYW1lXG5cdFx0ZGVmaW5lKCdjbGFzc25hbWVzJywgW10sIGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBjbGFzc05hbWVzO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHdpbmRvdy5jbGFzc05hbWVzID0gY2xhc3NOYW1lcztcblx0fVxufSgpKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9hc3NpZ25cIik7XG5cbnZhciBfYXNzaWduMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Fzc2lnbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9hc3NpZ24yLmRlZmF1bHQgfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59OyIsIi8qIGdsb2JhbHMgd3AgKi9cblxuaW1wb3J0IHtzcHJpbnRmIGFzIHNwcmludGZGcm9tTm9kZX0gZnJvbSAnc3ByaW50Zi1qcyc7XG5cbmV4cG9ydCBjb25zdCBfXyA9ICh0ZXh0LCBkb21haW4pID0+IHtcblx0cmV0dXJuIHR5cGVvZiB3cCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3AuaTE4biA/IHdwLmkxOG4uX18odGV4dCwgZG9tYWluKSA6IHRleHQ7XG59O1xuZXhwb3J0IGNvbnN0IF94ID0gKHRleHQsIGNvbnRleHQsIGRvbWFpbikgPT4ge1xuXHRyZXR1cm4gdHlwZW9mIHdwICE9PSAndW5kZWZpbmVkJyAmJiB3cC5pMThuID8gd3AuaTE4bi5feCh0ZXh0LCBjb250ZXh0LCBkb21haW4pIDogdGV4dDtcbn07XG5leHBvcnQgY29uc3QgX24gPSAoc2luZ2xlLCBwbHVyYWwsIG51bWJlciwgZG9tYWluKSA9PiB7XG5cdHJldHVybiB0eXBlb2Ygd3AgIT09ICd1bmRlZmluZWQnICYmIHdwLmkxOG4gPyB3cC5pMThuLl9uKHNpbmdsZSwgcGx1cmFsLCBudW1iZXIsIGRvbWFpbikgOiBzaW5nbGU7XG59O1xuZXhwb3J0IGNvbnN0IF9ueCA9IChzaW5nbGUsIHBsdXJhbCwgbnVtYmVyLCBjb250ZXh0LCBkb21haW4pID0+IHtcblx0cmV0dXJuIHR5cGVvZiB3cCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3AuaTE4biA/IHdwLmkxOG4uX254KHNpbmdsZSwgcGx1cmFsLCBudW1iZXIsIGNvbnRleHQsIGRvbWFpbikgOiBzaW5nbGU7XG59O1xuZXhwb3J0IGNvbnN0IHNwcmludGYgPSAoLi4uYXJncykgPT4ge1xuXHRyZXR1cm4gdHlwZW9mIHdwICE9PSAndW5kZWZpbmVkJyAmJiB3cC5pMThuID8gd3AuaTE4bi5zcHJpbnRmKC4uLmFyZ3MpIDogc3ByaW50ZkZyb21Ob2RlKC4uLmFyZ3MpO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2RlZmluZVByb3BlcnR5ID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kZWZpbmVQcm9wZXJ0eSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChvYmosIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSBpbiBvYmopIHtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHNlbGYsIGNhbGwpIHtcbiAgaWYgKCFzZWxmKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGNhbGwgJiYgKCh0eXBlb2YgY2FsbCA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoY2FsbCkpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX3NldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L3NldC1wcm90b3R5cGUtb2ZcIik7XG5cbnZhciBfc2V0UHJvdG90eXBlT2YyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2V0UHJvdG90eXBlT2YpO1xuXG52YXIgX2NyZWF0ZSA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9jcmVhdGVcIik7XG5cbnZhciBfY3JlYXRlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZSk7XG5cbnZhciBfdHlwZW9mMiA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3R5cGVvZlwiKTtcblxudmFyIF90eXBlb2YzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdHlwZW9mMik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyAodHlwZW9mIHN1cGVyQ2xhc3MgPT09IFwidW5kZWZpbmVkXCIgPyBcInVuZGVmaW5lZFwiIDogKDAsIF90eXBlb2YzLmRlZmF1bHQpKHN1cGVyQ2xhc3MpKSk7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSAoMCwgX2NyZWF0ZTIuZGVmYXVsdCkoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwge1xuICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICB2YWx1ZTogc3ViQ2xhc3MsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZjIuZGVmYXVsdCA/ICgwLCBfc2V0UHJvdG90eXBlT2YyLmRlZmF1bHQpKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2RlZmluZVByb3BlcnR5ID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kZWZpbmVQcm9wZXJ0eSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICAgIGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICB9O1xufSgpOyIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ29uZmlnQ29uc3VtZXJcIiwge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2NvbnRleHQuQ29uZmlnQ29uc3VtZXI7XG4gIH1cbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBleHBvcnRzLmNvbmZpZ0NvbnN1bWVyUHJvcHMgPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfbG9jYWxlUHJvdmlkZXIgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyXCIpKTtcblxudmFyIF9Mb2NhbGVSZWNlaXZlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS1wcm92aWRlci9Mb2NhbGVSZWNlaXZlclwiKSk7XG5cbnZhciBfY29udGV4dCA9IHJlcXVpcmUoXCIuL2NvbnRleHRcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBjb25maWdDb25zdW1lclByb3BzID0gWydnZXRQb3B1cENvbnRhaW5lcicsICdyb290UHJlZml4Q2xzJywgJ2dldFByZWZpeENscycsICdyZW5kZXJFbXB0eScsICdjc3AnLCAnYXV0b0luc2VydFNwYWNlSW5CdXR0b24nLCAnbG9jYWxlJywgJ3BhZ2VIZWFkZXInXTtcbmV4cG9ydHMuY29uZmlnQ29uc3VtZXJQcm9wcyA9IGNvbmZpZ0NvbnN1bWVyUHJvcHM7XG5cbnZhciBDb25maWdQcm92aWRlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ29uZmlnUHJvdmlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoQ29uZmlnUHJvdmlkZXIpO1xuXG4gIGZ1bmN0aW9uIENvbmZpZ1Byb3ZpZGVyKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb25maWdQcm92aWRlcik7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgX3RoaXMuZ2V0UHJlZml4Q2xzID0gZnVuY3Rpb24gKHN1ZmZpeENscywgY3VzdG9taXplUHJlZml4Q2xzKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMkcHJlZml4Q2xzID0gX3RoaXMucHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIHByZWZpeENscyA9IF90aGlzJHByb3BzJHByZWZpeENscyA9PT0gdm9pZCAwID8gJ2FudCcgOiBfdGhpcyRwcm9wcyRwcmVmaXhDbHM7XG4gICAgICBpZiAoY3VzdG9taXplUHJlZml4Q2xzKSByZXR1cm4gY3VzdG9taXplUHJlZml4Q2xzO1xuICAgICAgcmV0dXJuIHN1ZmZpeENscyA/IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzdWZmaXhDbHMpIDogcHJlZml4Q2xzO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJQcm92aWRlciA9IGZ1bmN0aW9uIChjb250ZXh0LCBsZWdhY3lMb2NhbGUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgZ2V0UG9wdXBDb250YWluZXIgPSBfdGhpcyRwcm9wcy5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgICByZW5kZXJFbXB0eSA9IF90aGlzJHByb3BzLnJlbmRlckVtcHR5LFxuICAgICAgICAgIGNzcCA9IF90aGlzJHByb3BzLmNzcCxcbiAgICAgICAgICBhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbiA9IF90aGlzJHByb3BzLmF1dG9JbnNlcnRTcGFjZUluQnV0dG9uLFxuICAgICAgICAgIGxvY2FsZSA9IF90aGlzJHByb3BzLmxvY2FsZSxcbiAgICAgICAgICBwYWdlSGVhZGVyID0gX3RoaXMkcHJvcHMucGFnZUhlYWRlcjtcblxuICAgICAgdmFyIGNvbmZpZyA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCBjb250ZXh0KSwge1xuICAgICAgICBnZXRQcmVmaXhDbHM6IF90aGlzLmdldFByZWZpeENscyxcbiAgICAgICAgY3NwOiBjc3AsXG4gICAgICAgIGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uOiBhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvblxuICAgICAgfSk7XG5cbiAgICAgIGlmIChnZXRQb3B1cENvbnRhaW5lcikge1xuICAgICAgICBjb25maWcuZ2V0UG9wdXBDb250YWluZXIgPSBnZXRQb3B1cENvbnRhaW5lcjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlbmRlckVtcHR5KSB7XG4gICAgICAgIGNvbmZpZy5yZW5kZXJFbXB0eSA9IHJlbmRlckVtcHR5O1xuICAgICAgfVxuXG4gICAgICBpZiAocGFnZUhlYWRlcikge1xuICAgICAgICBjb25maWcucGFnZUhlYWRlciA9IHBhZ2VIZWFkZXI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29udGV4dC5Db25maWdDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBjb25maWdcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9sb2NhbGVQcm92aWRlcltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgbG9jYWxlOiBsb2NhbGUgfHwgbGVnYWN5TG9jYWxlLFxuICAgICAgICBfQU5UX01BUktfXzogX2xvY2FsZVByb3ZpZGVyLkFOVF9NQVJLXG4gICAgICB9LCBjaGlsZHJlbikpO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ29uZmlnUHJvdmlkZXIsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9Mb2NhbGVSZWNlaXZlcltcImRlZmF1bHRcIl0sIG51bGwsIGZ1bmN0aW9uIChfLCBfXywgbGVnYWN5TG9jYWxlKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29udGV4dC5Db25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMyLnJlbmRlclByb3ZpZGVyKGNvbnRleHQsIGxlZ2FjeUxvY2FsZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIENvbmZpZ1Byb3ZpZGVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG52YXIgX2RlZmF1bHQgPSBDb25maWdQcm92aWRlcjtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwidmFyIGFycmF5V2l0aEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRoSG9sZXMuanNcIik7XG5cbnZhciBpdGVyYWJsZVRvQXJyYXlMaW1pdCA9IHJlcXVpcmUoXCIuL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzXCIpO1xuXG52YXIgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qc1wiKTtcblxudmFyIG5vbkl0ZXJhYmxlUmVzdCA9IHJlcXVpcmUoXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiKTtcblxuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfc2xpY2VkVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJpbXBvcnQge19ffSBmcm9tICd3cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL2kxOG4nO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0QWxsID0gX18oJ1NlbGVjdCBhbGwnLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKTtcbmV4cG9ydCBjb25zdCBwbHVnaW5zID0gX18oJ1BsdWdpbnM6JywgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyk7XG5leHBvcnQgY29uc3QgdGhlbWVzID0gX18oJ1RoZW1lczonLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKTtcbmV4cG9ydCBjb25zdCBjb3JlID0gX18oJ0NvcmU6JywgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyk7XG5leHBvcnQgY29uc3Qgc3RyaW5nVHJhbnNsYXRpb25QYW5lbEhlYWRlciA9IF9fKFwiQ2FuJ3QgZmluZCB0aGUgc3RyaW5ncyB5b3UncmUgbG9va2luZyB0byB0cmFuc2xhdGU/XCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpO1xuZXhwb3J0IGNvbnN0IHN0cmluZ1RyYW5zbGF0aW9uUGFuZWxDb250ZW50ID0gX18oJ01vc3QgbGlrZWx5IHlvdSBjYW5ub3Qgc2VlIHRoZSBzdHJpbmdzIHlvdSB3YW50IHRvIHRyYW5zbGF0ZSBiZWNhdXNlOicsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpO1xuZXhwb3J0IGNvbnN0IGFkbWluU3RyaW5nc0NhcmRIZWFkZXIgPSBfXygnVGV4dHMgYXJlIG5vdCBzZWxlY3RlZCBmb3IgdHJhbnNsYXRpb24nLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKTtcbmV4cG9ydCBjb25zdCBhZG1pblN0cmluZ3NDYXJkQ29udGVudCA9IF9fKCdGaW5kIGFkZGl0aW9uYWwgdGV4dHMgdGhhdCBXb3JkUHJlc3MsIHRoZSB0aGVtZSBhbmQgcGx1Z2lucyBjcmVhdGVkIGFuZCBjaG9vc2Ugd2hpY2ggb25lcyB0byB0cmFuc2xhdGUnLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKTtcbmV4cG9ydCBjb25zdCBhZG1pblN0cmluZ3NDYXJkQnV0dG9uVGV4dCA9IF9fKCdDaG9vc2UgdGV4dHMgZm9yIHRyYW5zbGF0aW9uJywgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyk7XG5leHBvcnQgY29uc3QgbW9TY2FuQ2FyZEhlYWRlciA9IF9fKCdTb21lIG9mIHRoZSB0cmFuc2xhdGlvbnMgaGF2ZSBjaGFuZ2VkJywgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyk7XG5leHBvcnQgY29uc3QgbW9TY2FuQ2FyZENvbnRlbnQgPSBfXygnU2NhbiB0aGUgc2VsZWN0ZWQgY29tcG9uZW50cyB0byBtYWtlIG5ldyB0ZXh0cyBhdmFpbGFibGUgZm9yIHRyYW5zbGF0aW9uLicsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpO1xuZXhwb3J0IGNvbnN0IG1vU2NhbkNhcmRCdXR0b25UZXh0ID0gX18oJ1NjYW4gdHJhbnNsYXRpb24gZmlsZXMnLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKTtcbmV4cG9ydCBjb25zdCBtb1NjYW5DYXJkUHJvZ3Jlc3NUZXh0ID0gX18oJ1NjYW5uZWQgJTEkZCBvZiAlMiRkIGZpbGVzLi4uJywgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2dyaWQgPSByZXF1aXJlKFwiLi4vZ3JpZFwiKTtcblxudmFyIF9kZWZhdWx0ID0gX2dyaWQuQ29sO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKG9iaiwga2V5cykge1xuICB2YXIgdGFyZ2V0ID0ge307XG5cbiAgZm9yICh2YXIgaSBpbiBvYmopIHtcbiAgICBpZiAoa2V5cy5pbmRleE9mKGkpID49IDApIGNvbnRpbnVlO1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlO1xuICAgIHRhcmdldFtpXSA9IG9ialtpXTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBhbGxJY29ucyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy9saWIvZGlzdFwiKSk7XG5cbnZhciBfaWNvbnNSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2ljb25zLXJlYWN0XCIpKTtcblxudmFyIF9JY29uRm9udCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vSWNvbkZvbnRcIikpO1xuXG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG52YXIgX0xvY2FsZVJlY2VpdmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyL0xvY2FsZVJlY2VpdmVyXCIpKTtcblxudmFyIF90d29Ub25lUHJpbWFyeUNvbG9yID0gcmVxdWlyZShcIi4vdHdvVG9uZVByaW1hcnlDb2xvclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHsgcmV0dXJuIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfbm9uSXRlcmFibGVTcHJlYWQoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHsgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChpdGVyKSkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7IH1cblxuZnVuY3Rpb24gX2FycmF5V2l0aG91dEhvbGVzKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkoYXJyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cblxuXG4vLyBJbml0aWFsIHNldHRpbmdcbl9pY29uc1JlYWN0W1wiZGVmYXVsdFwiXS5hZGQuYXBwbHkoX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLCBfdG9Db25zdW1hYmxlQXJyYXkoT2JqZWN0LmtleXMoYWxsSWNvbnMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBhbGxJY29uc1trZXldO1xufSkpKTtcblxuKDAsIF90d29Ub25lUHJpbWFyeUNvbG9yLnNldFR3b1RvbmVDb2xvcikoJyMxODkwZmYnKTtcbnZhciBkZWZhdWx0VGhlbWUgPSAnb3V0bGluZWQnO1xudmFyIGRhbmdlcm91c1RoZW1lO1xuXG5mdW5jdGlvbiB1bnN0YWJsZV9DaGFuZ2VUaGVtZU9mSWNvbnNEYW5nZXJvdXNseSh0aGVtZSkge1xuICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShmYWxzZSwgJ0ljb24nLCBcIllvdSBhcmUgdXNpbmcgdGhlIHVuc3RhYmxlIG1ldGhvZCAnSWNvbi51bnN0YWJsZV9DaGFuZ2VUaGVtZU9mQWxsSWNvbnNEYW5nZXJvdXNseScsIFwiICsgXCJtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGljb25zIHdpdGggdGhlbWUgJ1wiLmNvbmNhdCh0aGVtZSwgXCInIGRpc3BsYXkgY29ycmVjdGx5LlwiKSk7XG4gIGRhbmdlcm91c1RoZW1lID0gdGhlbWU7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX0NoYW5nZURlZmF1bHRUaGVtZU9mSWNvbnModGhlbWUpIHtcbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoZmFsc2UsICdJY29uJywgXCJZb3UgYXJlIHVzaW5nIHRoZSB1bnN0YWJsZSBtZXRob2QgJ0ljb24udW5zdGFibGVfQ2hhbmdlRGVmYXVsdFRoZW1lT2ZJY29ucycsIFwiICsgXCJtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGljb25zIHdpdGggdGhlbWUgJ1wiLmNvbmNhdCh0aGVtZSwgXCInIGRpc3BsYXkgY29ycmVjdGx5LlwiKSk7XG4gIGRlZmF1bHRUaGVtZSA9IHRoZW1lO1xufVxuXG52YXIgSWNvbiA9IGZ1bmN0aW9uIEljb24ocHJvcHMpIHtcbiAgdmFyIF9jbGFzc05hbWVzO1xuXG4gIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICB0eXBlID0gcHJvcHMudHlwZSxcbiAgICAgIENvbXBvbmVudCA9IHByb3BzLmNvbXBvbmVudCxcbiAgICAgIHZpZXdCb3ggPSBwcm9wcy52aWV3Qm94LFxuICAgICAgc3BpbiA9IHByb3BzLnNwaW4sXG4gICAgICByb3RhdGUgPSBwcm9wcy5yb3RhdGUsXG4gICAgICB0YWJJbmRleCA9IHByb3BzLnRhYkluZGV4LFxuICAgICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgdGhlbWUgPSBwcm9wcy50aGVtZSxcbiAgICAgIHR3b1RvbmVDb2xvciA9IHByb3BzLnR3b1RvbmVDb2xvcixcbiAgICAgIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwidHlwZVwiLCBcImNvbXBvbmVudFwiLCBcInZpZXdCb3hcIiwgXCJzcGluXCIsIFwicm90YXRlXCIsIFwidGFiSW5kZXhcIiwgXCJvbkNsaWNrXCIsIFwiY2hpbGRyZW5cIiwgXCJ0aGVtZVwiLCBcInR3b1RvbmVDb2xvclwiXSk7XG5cbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoQm9vbGVhbih0eXBlIHx8IENvbXBvbmVudCB8fCBjaGlsZHJlbiksICdJY29uJywgJ1Nob3VsZCBoYXZlIGB0eXBlYCBwcm9wIG9yIGBjb21wb25lbnRgIHByb3Agb3IgYGNoaWxkcmVuYC4nKTtcbiAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJhbnRpY29uXCIsIHRydWUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiYW50aWNvbi1cIi5jb25jYXQodHlwZSksIEJvb2xlYW4odHlwZSkpLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG4gIHZhciBzdmdDbGFzc1N0cmluZyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJhbnRpY29uLXNwaW5cIiwgISFzcGluIHx8IHR5cGUgPT09ICdsb2FkaW5nJykpO1xuICB2YXIgc3ZnU3R5bGUgPSByb3RhdGUgPyB7XG4gICAgbXNUcmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKSxcbiAgICB0cmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKVxuICB9IDogdW5kZWZpbmVkO1xuXG4gIHZhciBpbm5lclN2Z1Byb3BzID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIF91dGlscy5zdmdCYXNlUHJvcHMpLCB7XG4gICAgY2xhc3NOYW1lOiBzdmdDbGFzc1N0cmluZyxcbiAgICBzdHlsZTogc3ZnU3R5bGUsXG4gICAgdmlld0JveDogdmlld0JveFxuICB9KTtcblxuICBpZiAoIXZpZXdCb3gpIHtcbiAgICBkZWxldGUgaW5uZXJTdmdQcm9wcy52aWV3Qm94O1xuICB9XG5cbiAgdmFyIHJlbmRlcklubmVyTm9kZSA9IGZ1bmN0aW9uIHJlbmRlcklubmVyTm9kZSgpIHtcbiAgICAvLyBjb21wb25lbnQgPiBjaGlsZHJlbiA+IHR5cGVcbiAgICBpZiAoQ29tcG9uZW50KSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBpbm5lclN2Z1Byb3BzLCBjaGlsZHJlbik7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShCb29sZWFuKHZpZXdCb3gpIHx8IFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA9PT0gMSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pICYmIFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pLnR5cGUgPT09ICd1c2UnLCAnSWNvbicsICdNYWtlIHN1cmUgdGhhdCB5b3UgcHJvdmlkZSBjb3JyZWN0IGB2aWV3Qm94YCcgKyAnIHByb3AgKGRlZmF1bHQgYDAgMCAxMDI0IDEwMjRgKSB0byB0aGUgaWNvbi4nKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7fSwgaW5uZXJTdmdQcm9wcywge1xuICAgICAgICB2aWV3Qm94OiB2aWV3Qm94XG4gICAgICB9KSwgY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBjb21wdXRlZFR5cGUgPSB0eXBlO1xuXG4gICAgICBpZiAodGhlbWUpIHtcbiAgICAgICAgdmFyIHRoZW1lSW5OYW1lID0gKDAsIF91dGlscy5nZXRUaGVtZUZyb21UeXBlTmFtZSkodHlwZSk7XG4gICAgICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKCF0aGVtZUluTmFtZSB8fCB0aGVtZSA9PT0gdGhlbWVJbk5hbWUsICdJY29uJywgXCJUaGUgaWNvbiBuYW1lICdcIi5jb25jYXQodHlwZSwgXCInIGFscmVhZHkgc3BlY2lmeSBhIHRoZW1lICdcIikuY29uY2F0KHRoZW1lSW5OYW1lLCBcIicsXCIpICsgXCIgdGhlICd0aGVtZScgcHJvcCAnXCIuY29uY2F0KHRoZW1lLCBcIicgd2lsbCBiZSBpZ25vcmVkLlwiKSk7XG4gICAgICB9XG5cbiAgICAgIGNvbXB1dGVkVHlwZSA9ICgwLCBfdXRpbHMud2l0aFRoZW1lU3VmZml4KSgoMCwgX3V0aWxzLnJlbW92ZVR5cGVUaGVtZSkoKDAsIF91dGlscy5hbGlhcykoY29tcHV0ZWRUeXBlKSksIGRhbmdlcm91c1RoZW1lIHx8IHRoZW1lIHx8IGRlZmF1bHRUaGVtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGNsYXNzTmFtZTogc3ZnQ2xhc3NTdHJpbmcsXG4gICAgICAgIHR5cGU6IGNvbXB1dGVkVHlwZSxcbiAgICAgICAgcHJpbWFyeUNvbG9yOiB0d29Ub25lQ29sb3IsXG4gICAgICAgIHN0eWxlOiBzdmdTdHlsZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHZhciBpY29uVGFiSW5kZXggPSB0YWJJbmRleDtcblxuICBpZiAoaWNvblRhYkluZGV4ID09PSB1bmRlZmluZWQgJiYgb25DbGljaykge1xuICAgIGljb25UYWJJbmRleCA9IC0xO1xuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9Mb2NhbGVSZWNlaXZlcltcImRlZmF1bHRcIl0sIHtcbiAgICBjb21wb25lbnROYW1lOiBcIkljb25cIlxuICB9LCBmdW5jdGlvbiAobG9jYWxlKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaVwiLCBfZXh0ZW5kcyh7XG4gICAgICBcImFyaWEtbGFiZWxcIjogdHlwZSAmJiBcIlwiLmNvbmNhdChsb2NhbGUuaWNvbiwgXCI6IFwiKS5jb25jYXQodHlwZSlcbiAgICB9LCByZXN0UHJvcHMsIHtcbiAgICAgIHRhYkluZGV4OiBpY29uVGFiSW5kZXgsXG4gICAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZ1xuICAgIH0pLCByZW5kZXJJbm5lck5vZGUoKSk7XG4gIH0pO1xufTtcblxuSWNvbi5jcmVhdGVGcm9tSWNvbmZvbnRDTiA9IF9JY29uRm9udFtcImRlZmF1bHRcIl07XG5JY29uLmdldFR3b1RvbmVDb2xvciA9IF90d29Ub25lUHJpbWFyeUNvbG9yLmdldFR3b1RvbmVDb2xvcjtcbkljb24uc2V0VHdvVG9uZUNvbG9yID0gX3R3b1RvbmVQcmltYXJ5Q29sb3Iuc2V0VHdvVG9uZUNvbG9yO1xudmFyIF9kZWZhdWx0ID0gSWNvbjtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5mdW5jdGlvbiBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gIC8vIENhbGwgdGhpcy5jb25zdHJ1Y3Rvci5nRFNGUCB0byBzdXBwb3J0IHN1Yi1jbGFzc2VzLlxuICB2YXIgc3RhdGUgPSB0aGlzLmNvbnN0cnVjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyh0aGlzLnByb3BzLCB0aGlzLnN0YXRlKTtcbiAgaWYgKHN0YXRlICE9PSBudWxsICYmIHN0YXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNldFN0YXRlKHN0YXRlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAvLyBDYWxsIHRoaXMuY29uc3RydWN0b3IuZ0RTRlAgdG8gc3VwcG9ydCBzdWItY2xhc3Nlcy5cbiAgLy8gVXNlIHRoZSBzZXRTdGF0ZSgpIHVwZGF0ZXIgdG8gZW5zdXJlIHN0YXRlIGlzbid0IHN0YWxlIGluIGNlcnRhaW4gZWRnZSBjYXNlcy5cbiAgZnVuY3Rpb24gdXBkYXRlcihwcmV2U3RhdGUpIHtcbiAgICB2YXIgc3RhdGUgPSB0aGlzLmNvbnN0cnVjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSk7XG4gICAgcmV0dXJuIHN0YXRlICE9PSBudWxsICYmIHN0YXRlICE9PSB1bmRlZmluZWQgPyBzdGF0ZSA6IG51bGw7XG4gIH1cbiAgLy8gQmluZGluZyBcInRoaXNcIiBpcyBpbXBvcnRhbnQgZm9yIHNoYWxsb3cgcmVuZGVyZXIgc3VwcG9ydC5cbiAgdGhpcy5zZXRTdGF0ZSh1cGRhdGVyLmJpbmQodGhpcykpO1xufVxuXG5mdW5jdGlvbiBjb21wb25lbnRXaWxsVXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlKSB7XG4gIHRyeSB7XG4gICAgdmFyIHByZXZQcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgdmFyIHByZXZTdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5wcm9wcyA9IG5leHRQcm9wcztcbiAgICB0aGlzLnN0YXRlID0gbmV4dFN0YXRlO1xuICAgIHRoaXMuX19yZWFjdEludGVybmFsU25hcHNob3RGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90ID0gdGhpcy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShcbiAgICAgIHByZXZQcm9wcyxcbiAgICAgIHByZXZTdGF0ZVxuICAgICk7XG4gIH0gZmluYWxseSB7XG4gICAgdGhpcy5wcm9wcyA9IHByZXZQcm9wcztcbiAgICB0aGlzLnN0YXRlID0gcHJldlN0YXRlO1xuICB9XG59XG5cbi8vIFJlYWN0IG1heSB3YXJuIGFib3V0IGNXTS9jV1JQL2NXVSBtZXRob2RzIGJlaW5nIGRlcHJlY2F0ZWQuXG4vLyBBZGQgYSBmbGFnIHRvIHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzIGZvciB0aGlzIHNwZWNpYWwgY2FzZS5cbmNvbXBvbmVudFdpbGxNb3VudC5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID0gdHJ1ZTtcbmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyA9IHRydWU7XG5jb21wb25lbnRXaWxsVXBkYXRlLl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgPSB0cnVlO1xuXG5mdW5jdGlvbiBwb2x5ZmlsbChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG5cbiAgaWYgKCFwcm90b3R5cGUgfHwgIXByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gb25seSBwb2x5ZmlsbCBjbGFzcyBjb21wb25lbnRzJyk7XG4gIH1cblxuICBpZiAoXG4gICAgdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgIT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgcHJvdG90eXBlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybiBDb21wb25lbnQ7XG4gIH1cblxuICAvLyBJZiBuZXcgY29tcG9uZW50IEFQSXMgYXJlIGRlZmluZWQsIFwidW5zYWZlXCIgbGlmZWN5Y2xlcyB3b24ndCBiZSBjYWxsZWQuXG4gIC8vIEVycm9yIGlmIGFueSBvZiB0aGVzZSBsaWZlY3ljbGVzIGFyZSBwcmVzZW50LFxuICAvLyBCZWNhdXNlIHRoZXkgd291bGQgd29yayBkaWZmZXJlbnRseSBiZXR3ZWVuIG9sZGVyIGFuZCBuZXdlciAoMTYuMyspIHZlcnNpb25zIG9mIFJlYWN0LlxuICB2YXIgZm91bmRXaWxsTW91bnROYW1lID0gbnVsbDtcbiAgdmFyIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSBudWxsO1xuICB2YXIgZm91bmRXaWxsVXBkYXRlTmFtZSA9IG51bGw7XG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbE1vdW50TmFtZSA9ICdjb21wb25lbnRXaWxsTW91bnQnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBwcm90b3R5cGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbE1vdW50TmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JztcbiAgfVxuICBpZiAodHlwZW9mIHByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA9ICdjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJztcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvdG90eXBlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gIH1cbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSAnY29tcG9uZW50V2lsbFVwZGF0ZSc7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByb3RvdHlwZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICB9XG4gIGlmIChcbiAgICBmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgfHxcbiAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lICE9PSBudWxsIHx8XG4gICAgZm91bmRXaWxsVXBkYXRlTmFtZSAhPT0gbnVsbFxuICApIHtcbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZTtcbiAgICB2YXIgbmV3QXBpTmFtZSA9XG4gICAgICB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/ICdnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoKSdcbiAgICAgICAgOiAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSc7XG5cbiAgICB0aHJvdyBFcnJvcihcbiAgICAgICdVbnNhZmUgbGVnYWN5IGxpZmVjeWNsZXMgd2lsbCBub3QgYmUgY2FsbGVkIGZvciBjb21wb25lbnRzIHVzaW5nIG5ldyBjb21wb25lbnQgQVBJcy5cXG5cXG4nICtcbiAgICAgICAgY29tcG9uZW50TmFtZSArXG4gICAgICAgICcgdXNlcyAnICtcbiAgICAgICAgbmV3QXBpTmFtZSArXG4gICAgICAgICcgYnV0IGFsc28gY29udGFpbnMgdGhlIGZvbGxvd2luZyBsZWdhY3kgbGlmZWN5Y2xlczonICtcbiAgICAgICAgKGZvdW5kV2lsbE1vdW50TmFtZSAhPT0gbnVsbCA/ICdcXG4gICcgKyBmb3VuZFdpbGxNb3VudE5hbWUgOiAnJykgK1xuICAgICAgICAoZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbFxuICAgICAgICAgID8gJ1xcbiAgJyArIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWVcbiAgICAgICAgICA6ICcnKSArXG4gICAgICAgIChmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsID8gJ1xcbiAgJyArIGZvdW5kV2lsbFVwZGF0ZU5hbWUgOiAnJykgK1xuICAgICAgICAnXFxuXFxuVGhlIGFib3ZlIGxpZmVjeWNsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIExlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6XFxuJyArXG4gICAgICAgICdodHRwczovL2ZiLm1lL3JlYWN0LWFzeW5jLWNvbXBvbmVudC1saWZlY3ljbGUtaG9va3MnXG4gICAgKTtcbiAgfVxuXG4gIC8vIFJlYWN0IDw9IDE2LjIgZG9lcyBub3Qgc3VwcG9ydCBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLlxuICAvLyBBcyBhIHdvcmthcm91bmQsIHVzZSBjV00gYW5kIGNXUlAgdG8gaW52b2tlIHRoZSBuZXcgc3RhdGljIGxpZmVjeWNsZS5cbiAgLy8gTmV3ZXIgdmVyc2lvbnMgb2YgUmVhY3Qgd2lsbCBpZ25vcmUgdGhlc2UgbGlmZWN5Y2xlcyBpZiBnRFNGUCBleGlzdHMuXG4gIGlmICh0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHByb3RvdHlwZS5jb21wb25lbnRXaWxsTW91bnQgPSBjb21wb25lbnRXaWxsTW91bnQ7XG4gICAgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPSBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzO1xuICB9XG5cbiAgLy8gUmVhY3QgPD0gMTYuMiBkb2VzIG5vdCBzdXBwb3J0IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLlxuICAvLyBBcyBhIHdvcmthcm91bmQsIHVzZSBjV1UgdG8gaW52b2tlIHRoZSBuZXcgbGlmZWN5Y2xlLlxuICAvLyBOZXdlciB2ZXJzaW9ucyBvZiBSZWFjdCB3aWxsIGlnbm9yZSB0aGF0IGxpZmVjeWNsZSBpZiBnU0JVIGV4aXN0cy5cbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZW9mIHByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBwb2x5ZmlsbCBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpIGZvciBjb21wb25lbnRzIHRoYXQgZG8gbm90IGRlZmluZSBjb21wb25lbnREaWRVcGRhdGUoKSBvbiB0aGUgcHJvdG90eXBlJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90b3R5cGUuY29tcG9uZW50V2lsbFVwZGF0ZSA9IGNvbXBvbmVudFdpbGxVcGRhdGU7XG5cbiAgICB2YXIgY29tcG9uZW50RGlkVXBkYXRlID0gcHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZTtcblxuICAgIHByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGUgPSBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGVQb2x5ZmlsbChcbiAgICAgIHByZXZQcm9wcyxcbiAgICAgIHByZXZTdGF0ZSxcbiAgICAgIG1heWJlU25hcHNob3RcbiAgICApIHtcbiAgICAgIC8vIDE2LjMrIHdpbGwgbm90IGV4ZWN1dGUgb3VyIHdpbGwtdXBkYXRlIG1ldGhvZDtcbiAgICAgIC8vIEl0IHdpbGwgcGFzcyBhIHNuYXBzaG90IHZhbHVlIHRvIGRpZC11cGRhdGUgdGhvdWdoLlxuICAgICAgLy8gT2xkZXIgdmVyc2lvbnMgd2lsbCByZXF1aXJlIG91ciBwb2x5ZmlsbGVkIHdpbGwtdXBkYXRlIHZhbHVlLlxuICAgICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgYm90aCBjYXNlcywgYnV0IGNhbid0IGp1c3QgY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiBcIm1heWJlU25hcHNob3RcIixcbiAgICAgIC8vIEJlY2F1c2UgZm9yIDw9IDE1LnggdmVyc2lvbnMgdGhpcyBtaWdodCBiZSBhIFwicHJldkNvbnRleHRcIiBvYmplY3QuXG4gICAgICAvLyBXZSBhbHNvIGNhbid0IGp1c3QgY2hlY2sgXCJfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdFwiLFxuICAgICAgLy8gQmVjYXVzZSBnZXQtc25hcHNob3QgbWlnaHQgcmV0dXJuIGEgZmFsc3kgdmFsdWUuXG4gICAgICAvLyBTbyBjaGVjayBmb3IgdGhlIGV4cGxpY2l0IF9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZyBmbGFnIHRvIGRldGVybWluZSBiZWhhdmlvci5cbiAgICAgIHZhciBzbmFwc2hvdCA9IHRoaXMuX19yZWFjdEludGVybmFsU25hcHNob3RGbGFnXG4gICAgICAgID8gdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdFxuICAgICAgICA6IG1heWJlU25hcHNob3Q7XG5cbiAgICAgIGNvbXBvbmVudERpZFVwZGF0ZS5jYWxsKHRoaXMsIHByZXZQcm9wcywgcHJldlN0YXRlLCBzbmFwc2hvdCk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBDb21wb25lbnQ7XG59XG5cbmV4cG9ydCB7IHBvbHlmaWxsIH07XG4iLCIvL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCLCBjb21wYXJlLCBjb21wYXJlQ29udGV4dCkge1xuICB2YXIgcmV0ID0gY29tcGFyZSA/IGNvbXBhcmUuY2FsbChjb21wYXJlQ29udGV4dCwgb2JqQSwgb2JqQikgOiB2b2lkIDA7XG5cbiAgaWYgKHJldCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuICEhcmV0O1xuICB9XG5cbiAgaWYgKG9iakEgPT09IG9iakIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqQSAhPT0gXCJvYmplY3RcIiB8fCAhb2JqQSB8fCB0eXBlb2Ygb2JqQiAhPT0gXCJvYmplY3RcIiB8fCAhb2JqQikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpO1xuICB2YXIga2V5c0IgPSBPYmplY3Qua2V5cyhvYmpCKTtcblxuICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgYkhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5iaW5kKG9iakIpO1xuXG4gIC8vIFRlc3QgZm9yIEEncyBrZXlzIGRpZmZlcmVudCBmcm9tIEIuXG4gIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IGtleXNBLmxlbmd0aDsgaWR4KyspIHtcbiAgICB2YXIga2V5ID0ga2V5c0FbaWR4XTtcblxuICAgIGlmICghYkhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB2YXIgdmFsdWVBID0gb2JqQVtrZXldO1xuICAgIHZhciB2YWx1ZUIgPSBvYmpCW2tleV07XG5cbiAgICByZXQgPSBjb21wYXJlID8gY29tcGFyZS5jYWxsKGNvbXBhcmVDb250ZXh0LCB2YWx1ZUEsIHZhbHVlQiwga2V5KSA6IHZvaWQgMDtcblxuICAgIGlmIChyZXQgPT09IGZhbHNlIHx8IChyZXQgPT09IHZvaWQgMCAmJiB2YWx1ZUEgIT09IHZhbHVlQikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxudmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG4gID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5pZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgX19nID0gZ2xvYmFsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCJ2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi42LjEyJyB9O1xuaWYgKHR5cGVvZiBfX2UgPT0gJ251bWJlcicpIF9fZSA9IGNvcmU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiIsIi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuIiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCB7IGdlbmVyYXRlIGFzIGdlbmVyYXRlQ29sb3IgfSBmcm9tICdAYW50LWRlc2lnbi9jb2xvcnMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7XG4gICAgaWYgKCEocHJvY2VzcyAmJiBwcm9jZXNzLmVudiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbQGFudC1kZXNpZ24vaWNvbnMtcmVhY3RdOiAnICsgbWVzc2FnZSArICcuJyk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSWNvbkRlZmluaXRpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0YXJnZXQubmFtZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHRhcmdldC50aGVtZSA9PT0gJ3N0cmluZycgJiYgKHR5cGVvZiB0YXJnZXQuaWNvbiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBdHRycygpIHtcbiAgICB2YXIgYXR0cnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICAgIHZhciB2YWwgPSBhdHRyc1trZXldO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICAgICAgICAgIGFjYy5jbGFzc05hbWUgPSB2YWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGFjY1snY2xhc3MnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYWNjW2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG59XG5leHBvcnQgdmFyIE1pbmlNYXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTWluaU1hcCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1pbmlNYXApO1xuXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHt9O1xuICAgIH1cblxuICAgIF9jcmVhdGVDbGFzcyhNaW5pTWFwLCBbe1xuICAgICAgICBrZXk6ICdjbGVhcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHt9O1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdkZWxldGUnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2RlbGV0ZShrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxldGUgdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2dldCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXQoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2hhcycsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBoYXMoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLmNvbGxlY3Rpb25ba2V5XSk7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ3NldCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb2xsZWN0aW9uW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdzaXplJyxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5jb2xsZWN0aW9uKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gTWluaU1hcDtcbn0oKTtcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZShub2RlLCBrZXksIHJvb3RQcm9wcykge1xuICAgIGlmICghcm9vdFByb3BzKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCBfZXh0ZW5kcyh7IGtleToga2V5IH0sIG5vcm1hbGl6ZUF0dHJzKG5vZGUuYXR0cnMpKSwgKG5vZGUuY2hpbGRyZW4gfHwgW10pLm1hcChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIGtleSArICctJyArIG5vZGUudGFnICsgJy0nICsgaW5kZXgpO1xuICAgICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCBfZXh0ZW5kcyh7XG4gICAgICAgIGtleToga2V5XG4gICAgfSwgbm9ybWFsaXplQXR0cnMobm9kZS5hdHRycyksIHJvb3RQcm9wcyksIChub2RlLmNoaWxkcmVuIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIGtleSArICctJyArIG5vZGUudGFnICsgJy0nICsgaW5kZXgpO1xuICAgIH0pKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWNvbmRhcnlDb2xvcihwcmltYXJ5Q29sb3IpIHtcbiAgICAvLyBjaG9vc2UgdGhlIHNlY29uZCBjb2xvclxuICAgIHJldHVybiBnZW5lcmF0ZUNvbG9yKHByaW1hcnlDb2xvcilbMF07XG59XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN1ZmZpeChuYW1lLCB0aGVtZSkge1xuICAgIHN3aXRjaCAodGhlbWUpIHtcbiAgICAgICAgY2FzZSAnZmlsbCc6XG4gICAgICAgICAgICByZXR1cm4gbmFtZSArICctZmlsbCc7XG4gICAgICAgIGNhc2UgJ291dGxpbmUnOlxuICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAnLW8nO1xuICAgICAgICBjYXNlICd0d290b25lJzpcbiAgICAgICAgICAgIHJldHVybiBuYW1lICsgJy10d290b25lJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gdGhlbWUgdHlwZTogJyArIHRoZW1lICsgJywgbmFtZTogJyArIG5hbWUpO1xuICAgIH1cbn0iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZXNldFdhcm5lZFwiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfd2FybmluZy5yZXNldFdhcm5lZDtcbiAgfVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF93YXJuaW5nID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJjLXV0aWwvbGliL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgX2RlZmF1bHQgPSBmdW5jdGlvbiBfZGVmYXVsdCh2YWxpZCwgY29tcG9uZW50LCBtZXNzYWdlKSB7XG4gICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKHZhbGlkLCBcIlthbnRkOiBcIi5jb25jYXQoY29tcG9uZW50LCBcIl0gXCIpLmNvbmNhdChtZXNzYWdlKSk7XG59O1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcbiAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG4gIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG4gIHZhciBJU19XUkFQID0gdHlwZSAmICRleHBvcnQuVztcbiAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBjb3JlIDogY29yZVtuYW1lXSB8fCAoY29yZVtuYW1lXSA9IHt9KTtcbiAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdO1xuICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gZ2xvYmFsIDogSVNfU1RBVElDID8gZ2xvYmFsW25hbWVdIDogKGdsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcbiAgdmFyIGtleSwgb3duLCBvdXQ7XG4gIGlmIChJU19HTE9CQUwpIHNvdXJjZSA9IG5hbWU7XG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG4gICAgaWYgKG93biAmJiBoYXMoZXhwb3J0cywga2V5KSkgY29udGludWU7XG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcbiAgICBvdXQgPSBvd24gPyB0YXJnZXRba2V5XSA6IHNvdXJjZVtrZXldO1xuICAgIC8vIHByZXZlbnQgZ2xvYmFsIHBvbGx1dGlvbiBmb3IgbmFtZXNwYWNlc1xuICAgIGV4cG9ydHNba2V5XSA9IElTX0dMT0JBTCAmJiB0eXBlb2YgdGFyZ2V0W2tleV0gIT0gJ2Z1bmN0aW9uJyA/IHNvdXJjZVtrZXldXG4gICAgLy8gYmluZCB0aW1lcnMgdG8gZ2xvYmFsIGZvciBjYWxsIGZyb20gZXhwb3J0IGNvbnRleHRcbiAgICA6IElTX0JJTkQgJiYgb3duID8gY3R4KG91dCwgZ2xvYmFsKVxuICAgIC8vIHdyYXAgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgcHJldmVudCBjaGFuZ2UgdGhlbSBpbiBsaWJyYXJ5XG4gICAgOiBJU19XUkFQICYmIHRhcmdldFtrZXldID09IG91dCA/IChmdW5jdGlvbiAoQykge1xuICAgICAgdmFyIEYgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIEMpIHtcbiAgICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBDKCk7XG4gICAgICAgICAgICBjYXNlIDE6IHJldHVybiBuZXcgQyhhKTtcbiAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDKGEsIGIpO1xuICAgICAgICAgIH0gcmV0dXJuIG5ldyBDKGEsIGIsIGMpO1xuICAgICAgICB9IHJldHVybiBDLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgICAgRltQUk9UT1RZUEVdID0gQ1tQUk9UT1RZUEVdO1xuICAgICAgcmV0dXJuIEY7XG4gICAgLy8gbWFrZSBzdGF0aWMgdmVyc2lvbnMgZm9yIHByb3RvdHlwZSBtZXRob2RzXG4gICAgfSkob3V0KSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5tZXRob2RzLiVOQU1FJVxuICAgIGlmIChJU19QUk9UTykge1xuICAgICAgKGV4cG9ydHMudmlydHVhbCB8fCAoZXhwb3J0cy52aXJ0dWFsID0ge30pKVtrZXldID0gb3V0O1xuICAgICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLnByb3RvdHlwZS4lTkFNRSVcbiAgICAgIGlmICh0eXBlICYgJGV4cG9ydC5SICYmIGV4cFByb3RvICYmICFleHBQcm90b1trZXldKSBoaWRlKGV4cFByb3RvLCBrZXksIG91dCk7XG4gICAgfVxuICB9XG59O1xuLy8gdHlwZSBiaXRtYXBcbiRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG4kZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuJGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcbiRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cbiRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuJGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG4kZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcbiRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxubW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCIvLyB0byBpbmRleGVkIG9iamVjdCwgdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSU9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwidmFyIHN0b3JlID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ3drcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLlN5bWJvbDtcbnZhciBVU0VfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xuXG52YXIgJGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuIiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kc1wiO1xuZnVuY3Rpb24gb21pdChvYmosIGZpZWxkcykge1xuICB2YXIgc2hhbGxvd0NvcHkgPSBfZXh0ZW5kcyh7fSwgb2JqKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWVsZHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0gZmllbGRzW2ldO1xuICAgIGRlbGV0ZSBzaGFsbG93Q29weVtrZXldO1xuICB9XG4gIHJldHVybiBzaGFsbG93Q29weTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb21pdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2dyaWQgPSByZXF1aXJlKFwiLi4vZ3JpZFwiKTtcblxudmFyIF9kZWZhdWx0ID0gX2dyaWQuUm93O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJ2YXIgbm93ID0gcmVxdWlyZSgncGVyZm9ybWFuY2Utbm93JylcbiAgLCByb290ID0gdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB3aW5kb3dcbiAgLCB2ZW5kb3JzID0gWydtb3onLCAnd2Via2l0J11cbiAgLCBzdWZmaXggPSAnQW5pbWF0aW9uRnJhbWUnXG4gICwgcmFmID0gcm9vdFsncmVxdWVzdCcgKyBzdWZmaXhdXG4gICwgY2FmID0gcm9vdFsnY2FuY2VsJyArIHN1ZmZpeF0gfHwgcm9vdFsnY2FuY2VsUmVxdWVzdCcgKyBzdWZmaXhdXG5cbmZvcih2YXIgaSA9IDA7ICFyYWYgJiYgaSA8IHZlbmRvcnMubGVuZ3RoOyBpKyspIHtcbiAgcmFmID0gcm9vdFt2ZW5kb3JzW2ldICsgJ1JlcXVlc3QnICsgc3VmZml4XVxuICBjYWYgPSByb290W3ZlbmRvcnNbaV0gKyAnQ2FuY2VsJyArIHN1ZmZpeF1cbiAgICAgIHx8IHJvb3RbdmVuZG9yc1tpXSArICdDYW5jZWxSZXF1ZXN0JyArIHN1ZmZpeF1cbn1cblxuLy8gU29tZSB2ZXJzaW9ucyBvZiBGRiBoYXZlIHJBRiBidXQgbm90IGNBRlxuaWYoIXJhZiB8fCAhY2FmKSB7XG4gIHZhciBsYXN0ID0gMFxuICAgICwgaWQgPSAwXG4gICAgLCBxdWV1ZSA9IFtdXG4gICAgLCBmcmFtZUR1cmF0aW9uID0gMTAwMCAvIDYwXG5cbiAgcmFmID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICBpZihxdWV1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHZhciBfbm93ID0gbm93KClcbiAgICAgICAgLCBuZXh0ID0gTWF0aC5tYXgoMCwgZnJhbWVEdXJhdGlvbiAtIChfbm93IC0gbGFzdCkpXG4gICAgICBsYXN0ID0gbmV4dCArIF9ub3dcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjcCA9IHF1ZXVlLnNsaWNlKDApXG4gICAgICAgIC8vIENsZWFyIHF1ZXVlIGhlcmUgdG8gcHJldmVudFxuICAgICAgICAvLyBjYWxsYmFja3MgZnJvbSBhcHBlbmRpbmcgbGlzdGVuZXJzXG4gICAgICAgIC8vIHRvIHRoZSBjdXJyZW50IGZyYW1lJ3MgcXVldWVcbiAgICAgICAgcXVldWUubGVuZ3RoID0gMFxuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgY3AubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZighY3BbaV0uY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICB0cnl7XG4gICAgICAgICAgICAgIGNwW2ldLmNhbGxiYWNrKGxhc3QpXG4gICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgZSB9LCAwKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgTWF0aC5yb3VuZChuZXh0KSlcbiAgICB9XG4gICAgcXVldWUucHVzaCh7XG4gICAgICBoYW5kbGU6ICsraWQsXG4gICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICBjYW5jZWxsZWQ6IGZhbHNlXG4gICAgfSlcbiAgICByZXR1cm4gaWRcbiAgfVxuXG4gIGNhZiA9IGZ1bmN0aW9uKGhhbmRsZSkge1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYocXVldWVbaV0uaGFuZGxlID09PSBoYW5kbGUpIHtcbiAgICAgICAgcXVldWVbaV0uY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGZuKSB7XG4gIC8vIFdyYXAgaW4gYSBuZXcgZnVuY3Rpb24gdG8gcHJldmVudFxuICAvLyBgY2FuY2VsYCBwb3RlbnRpYWxseSBiZWluZyBhc3NpZ25lZFxuICAvLyB0byB0aGUgbmF0aXZlIHJBRiBmdW5jdGlvblxuICByZXR1cm4gcmFmLmNhbGwocm9vdCwgZm4pXG59XG5tb2R1bGUuZXhwb3J0cy5jYW5jZWwgPSBmdW5jdGlvbigpIHtcbiAgY2FmLmFwcGx5KHJvb3QsIGFyZ3VtZW50cylcbn1cbm1vZHVsZS5leHBvcnRzLnBvbHlmaWxsID0gZnVuY3Rpb24ob2JqZWN0KSB7XG4gIGlmICghb2JqZWN0KSB7XG4gICAgb2JqZWN0ID0gcm9vdDtcbiAgfVxuICBvYmplY3QucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gcmFmXG4gIG9iamVjdC5jYW5jZWxBbmltYXRpb25GcmFtZSA9IGNhZlxufVxuIiwidmFyIFNUQVJUX0VWRU5UX05BTUVfTUFQID0ge1xuICB0cmFuc2l0aW9uc3RhcnQ6IHtcbiAgICB0cmFuc2l0aW9uOiAndHJhbnNpdGlvbnN0YXJ0JyxcbiAgICBXZWJraXRUcmFuc2l0aW9uOiAnd2Via2l0VHJhbnNpdGlvblN0YXJ0JyxcbiAgICBNb3pUcmFuc2l0aW9uOiAnbW96VHJhbnNpdGlvblN0YXJ0JyxcbiAgICBPVHJhbnNpdGlvbjogJ29UcmFuc2l0aW9uU3RhcnQnLFxuICAgIG1zVHJhbnNpdGlvbjogJ01TVHJhbnNpdGlvblN0YXJ0J1xuICB9LFxuXG4gIGFuaW1hdGlvbnN0YXJ0OiB7XG4gICAgYW5pbWF0aW9uOiAnYW5pbWF0aW9uc3RhcnQnLFxuICAgIFdlYmtpdEFuaW1hdGlvbjogJ3dlYmtpdEFuaW1hdGlvblN0YXJ0JyxcbiAgICBNb3pBbmltYXRpb246ICdtb3pBbmltYXRpb25TdGFydCcsXG4gICAgT0FuaW1hdGlvbjogJ29BbmltYXRpb25TdGFydCcsXG4gICAgbXNBbmltYXRpb246ICdNU0FuaW1hdGlvblN0YXJ0J1xuICB9XG59O1xuXG52YXIgRU5EX0VWRU5UX05BTUVfTUFQID0ge1xuICB0cmFuc2l0aW9uZW5kOiB7XG4gICAgdHJhbnNpdGlvbjogJ3RyYW5zaXRpb25lbmQnLFxuICAgIFdlYmtpdFRyYW5zaXRpb246ICd3ZWJraXRUcmFuc2l0aW9uRW5kJyxcbiAgICBNb3pUcmFuc2l0aW9uOiAnbW96VHJhbnNpdGlvbkVuZCcsXG4gICAgT1RyYW5zaXRpb246ICdvVHJhbnNpdGlvbkVuZCcsXG4gICAgbXNUcmFuc2l0aW9uOiAnTVNUcmFuc2l0aW9uRW5kJ1xuICB9LFxuXG4gIGFuaW1hdGlvbmVuZDoge1xuICAgIGFuaW1hdGlvbjogJ2FuaW1hdGlvbmVuZCcsXG4gICAgV2Via2l0QW5pbWF0aW9uOiAnd2Via2l0QW5pbWF0aW9uRW5kJyxcbiAgICBNb3pBbmltYXRpb246ICdtb3pBbmltYXRpb25FbmQnLFxuICAgIE9BbmltYXRpb246ICdvQW5pbWF0aW9uRW5kJyxcbiAgICBtc0FuaW1hdGlvbjogJ01TQW5pbWF0aW9uRW5kJ1xuICB9XG59O1xuXG52YXIgc3RhcnRFdmVudHMgPSBbXTtcbnZhciBlbmRFdmVudHMgPSBbXTtcblxuZnVuY3Rpb24gZGV0ZWN0RXZlbnRzKCkge1xuICB2YXIgdGVzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHZhciBzdHlsZSA9IHRlc3RFbC5zdHlsZTtcblxuICBpZiAoISgnQW5pbWF0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgU1RBUlRfRVZFTlRfTkFNRV9NQVAuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uO1xuICAgIGRlbGV0ZSBFTkRfRVZFTlRfTkFNRV9NQVAuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbjtcbiAgfVxuXG4gIGlmICghKCdUcmFuc2l0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgU1RBUlRfRVZFTlRfTkFNRV9NQVAudHJhbnNpdGlvbnN0YXJ0LnRyYW5zaXRpb247XG4gICAgZGVsZXRlIEVORF9FVkVOVF9OQU1FX01BUC50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb247XG4gIH1cblxuICBmdW5jdGlvbiBwcm9jZXNzKEVWRU5UX05BTUVfTUFQLCBldmVudHMpIHtcbiAgICBmb3IgKHZhciBiYXNlRXZlbnROYW1lIGluIEVWRU5UX05BTUVfTUFQKSB7XG4gICAgICBpZiAoRVZFTlRfTkFNRV9NQVAuaGFzT3duUHJvcGVydHkoYmFzZUV2ZW50TmFtZSkpIHtcbiAgICAgICAgdmFyIGJhc2VFdmVudHMgPSBFVkVOVF9OQU1FX01BUFtiYXNlRXZlbnROYW1lXTtcbiAgICAgICAgZm9yICh2YXIgc3R5bGVOYW1lIGluIGJhc2VFdmVudHMpIHtcbiAgICAgICAgICBpZiAoc3R5bGVOYW1lIGluIHN0eWxlKSB7XG4gICAgICAgICAgICBldmVudHMucHVzaChiYXNlRXZlbnRzW3N0eWxlTmFtZV0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvY2VzcyhTVEFSVF9FVkVOVF9OQU1FX01BUCwgc3RhcnRFdmVudHMpO1xuICBwcm9jZXNzKEVORF9FVkVOVF9OQU1FX01BUCwgZW5kRXZlbnRzKTtcbn1cblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgZGV0ZWN0RXZlbnRzKCk7XG59XG5cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnROYW1lLCBldmVudExpc3RlbmVyKSB7XG4gIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIsIGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lciwgZmFsc2UpO1xufVxuXG52YXIgVHJhbnNpdGlvbkV2ZW50cyA9IHtcbiAgLy8gU3RhcnQgZXZlbnRzXG4gIHN0YXJ0RXZlbnRzOiBzdGFydEV2ZW50cyxcblxuICBhZGRTdGFydEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIGFkZFN0YXJ0RXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKHN0YXJ0RXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoZXZlbnRMaXN0ZW5lciwgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXJ0RXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKHN0YXJ0RXZlbnQpIHtcbiAgICAgIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgc3RhcnRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH0sXG4gIHJlbW92ZVN0YXJ0RXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gcmVtb3ZlU3RhcnRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoc3RhcnRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXJ0RXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKHN0YXJ0RXZlbnQpIHtcbiAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIobm9kZSwgc3RhcnRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH0sXG5cblxuICAvLyBFbmQgZXZlbnRzXG4gIGVuZEV2ZW50czogZW5kRXZlbnRzLFxuXG4gIGFkZEVuZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIGFkZEVuZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChlbmRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dChldmVudExpc3RlbmVyLCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZW5kRXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGVuZEV2ZW50KSB7XG4gICAgICBhZGRFdmVudExpc3RlbmVyKG5vZGUsIGVuZEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfSxcbiAgcmVtb3ZlRW5kRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gcmVtb3ZlRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKGVuZEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZW5kRXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGVuZEV2ZW50KSB7XG4gICAgICByZW1vdmVFdmVudExpc3RlbmVyKG5vZGUsIGVuZEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhbnNpdGlvbkV2ZW50czsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvdHlwZW9mJztcbmltcG9ydCBFdmVudCBmcm9tICcuL0V2ZW50JztcbmltcG9ydCBjbGFzc2VzIGZyb20gJ2NvbXBvbmVudC1jbGFzc2VzJztcblxudmFyIGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkID0gRXZlbnQuZW5kRXZlbnRzLmxlbmd0aCAhPT0gMDtcbnZhciBjYXBpdGFsUHJlZml4ZXMgPSBbJ1dlYmtpdCcsICdNb3onLCAnTycsXG4vLyBtcyBpcyBzcGVjaWFsIC4uLi4gIVxuJ21zJ107XG52YXIgcHJlZml4ZXMgPSBbJy13ZWJraXQtJywgJy1tb3otJywgJy1vLScsICdtcy0nLCAnJ107XG5cbmZ1bmN0aW9uIGdldFN0eWxlUHJvcGVydHkobm9kZSwgbmFtZSkge1xuICAvLyBvbGQgZmYgbmVlZCBudWxsLCBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2luZG93L2dldENvbXB1dGVkU3R5bGVcbiAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSwgbnVsbCk7XG4gIHZhciByZXQgPSAnJztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmVmaXhlcy5sZW5ndGg7IGkrKykge1xuICAgIHJldCA9IHN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJlZml4ZXNbaV0gKyBuYW1lKTtcbiAgICBpZiAocmV0KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gZml4QnJvd3NlckJ5VGltZW91dChub2RlKSB7XG4gIGlmIChpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCkge1xuICAgIHZhciB0cmFuc2l0aW9uRGVsYXkgPSBwYXJzZUZsb2F0KGdldFN0eWxlUHJvcGVydHkobm9kZSwgJ3RyYW5zaXRpb24tZGVsYXknKSkgfHwgMDtcbiAgICB2YXIgdHJhbnNpdGlvbkR1cmF0aW9uID0gcGFyc2VGbG9hdChnZXRTdHlsZVByb3BlcnR5KG5vZGUsICd0cmFuc2l0aW9uLWR1cmF0aW9uJykpIHx8IDA7XG4gICAgdmFyIGFuaW1hdGlvbkRlbGF5ID0gcGFyc2VGbG9hdChnZXRTdHlsZVByb3BlcnR5KG5vZGUsICdhbmltYXRpb24tZGVsYXknKSkgfHwgMDtcbiAgICB2YXIgYW5pbWF0aW9uRHVyYXRpb24gPSBwYXJzZUZsb2F0KGdldFN0eWxlUHJvcGVydHkobm9kZSwgJ2FuaW1hdGlvbi1kdXJhdGlvbicpKSB8fCAwO1xuICAgIHZhciB0aW1lID0gTWF0aC5tYXgodHJhbnNpdGlvbkR1cmF0aW9uICsgdHJhbnNpdGlvbkRlbGF5LCBhbmltYXRpb25EdXJhdGlvbiArIGFuaW1hdGlvbkRlbGF5KTtcbiAgICAvLyBzb21ldGltZXMsIGJyb3dzZXIgYnVnXG4gICAgbm9kZS5yY0VuZEFuaW1UaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBub2RlLnJjRW5kQW5pbVRpbWVvdXQgPSBudWxsO1xuICAgICAgaWYgKG5vZGUucmNFbmRMaXN0ZW5lcikge1xuICAgICAgICBub2RlLnJjRW5kTGlzdGVuZXIoKTtcbiAgICAgIH1cbiAgICB9LCB0aW1lICogMTAwMCArIDIwMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYXJCcm93c2VyQnVnVGltZW91dChub2RlKSB7XG4gIGlmIChub2RlLnJjRW5kQW5pbVRpbWVvdXQpIHtcbiAgICBjbGVhclRpbWVvdXQobm9kZS5yY0VuZEFuaW1UaW1lb3V0KTtcbiAgICBub2RlLnJjRW5kQW5pbVRpbWVvdXQgPSBudWxsO1xuICB9XG59XG5cbnZhciBjc3NBbmltYXRpb24gPSBmdW5jdGlvbiBjc3NBbmltYXRpb24obm9kZSwgdHJhbnNpdGlvbk5hbWUsIGVuZENhbGxiYWNrKSB7XG4gIHZhciBuYW1lSXNPYmogPSAodHlwZW9mIHRyYW5zaXRpb25OYW1lID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZih0cmFuc2l0aW9uTmFtZSkpID09PSAnb2JqZWN0JztcbiAgdmFyIGNsYXNzTmFtZSA9IG5hbWVJc09iaiA/IHRyYW5zaXRpb25OYW1lLm5hbWUgOiB0cmFuc2l0aW9uTmFtZTtcbiAgdmFyIGFjdGl2ZUNsYXNzTmFtZSA9IG5hbWVJc09iaiA/IHRyYW5zaXRpb25OYW1lLmFjdGl2ZSA6IHRyYW5zaXRpb25OYW1lICsgJy1hY3RpdmUnO1xuICB2YXIgZW5kID0gZW5kQ2FsbGJhY2s7XG4gIHZhciBzdGFydCA9IHZvaWQgMDtcbiAgdmFyIGFjdGl2ZSA9IHZvaWQgMDtcbiAgdmFyIG5vZGVDbGFzc2VzID0gY2xhc3Nlcyhub2RlKTtcblxuICBpZiAoZW5kQ2FsbGJhY2sgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGVuZENhbGxiYWNrKSA9PT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICBlbmQgPSBlbmRDYWxsYmFjay5lbmQ7XG4gICAgc3RhcnQgPSBlbmRDYWxsYmFjay5zdGFydDtcbiAgICBhY3RpdmUgPSBlbmRDYWxsYmFjay5hY3RpdmU7XG4gIH1cblxuICBpZiAobm9kZS5yY0VuZExpc3RlbmVyKSB7XG4gICAgbm9kZS5yY0VuZExpc3RlbmVyKCk7XG4gIH1cblxuICBub2RlLnJjRW5kTGlzdGVuZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmIChlICYmIGUudGFyZ2V0ICE9PSBub2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5vZGUucmNBbmltVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KG5vZGUucmNBbmltVGltZW91dCk7XG4gICAgICBub2RlLnJjQW5pbVRpbWVvdXQgPSBudWxsO1xuICAgIH1cblxuICAgIGNsZWFyQnJvd3NlckJ1Z1RpbWVvdXQobm9kZSk7XG5cbiAgICBub2RlQ2xhc3Nlcy5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgICBub2RlQ2xhc3Nlcy5yZW1vdmUoYWN0aXZlQ2xhc3NOYW1lKTtcblxuICAgIEV2ZW50LnJlbW92ZUVuZEV2ZW50TGlzdGVuZXIobm9kZSwgbm9kZS5yY0VuZExpc3RlbmVyKTtcbiAgICBub2RlLnJjRW5kTGlzdGVuZXIgPSBudWxsO1xuXG4gICAgLy8gVXN1YWxseSB0aGlzIG9wdGlvbmFsIGVuZCBpcyB1c2VkIGZvciBpbmZvcm1pbmcgYW4gb3duZXIgb2ZcbiAgICAvLyBhIGxlYXZlIGFuaW1hdGlvbiBhbmQgdGVsbGluZyBpdCB0byByZW1vdmUgdGhlIGNoaWxkLlxuICAgIGlmIChlbmQpIHtcbiAgICAgIGVuZCgpO1xuICAgIH1cbiAgfTtcblxuICBFdmVudC5hZGRFbmRFdmVudExpc3RlbmVyKG5vZGUsIG5vZGUucmNFbmRMaXN0ZW5lcik7XG5cbiAgaWYgKHN0YXJ0KSB7XG4gICAgc3RhcnQoKTtcbiAgfVxuICBub2RlQ2xhc3Nlcy5hZGQoY2xhc3NOYW1lKTtcblxuICBub2RlLnJjQW5pbVRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBub2RlLnJjQW5pbVRpbWVvdXQgPSBudWxsO1xuICAgIG5vZGVDbGFzc2VzLmFkZChhY3RpdmVDbGFzc05hbWUpO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHNldFRpbWVvdXQoYWN0aXZlLCAwKTtcbiAgICB9XG4gICAgZml4QnJvd3NlckJ5VGltZW91dChub2RlKTtcbiAgICAvLyAzMG1zIGZvciBmaXJlZm94XG4gIH0sIDMwKTtcblxuICByZXR1cm4ge1xuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICBpZiAobm9kZS5yY0VuZExpc3RlbmVyKSB7XG4gICAgICAgIG5vZGUucmNFbmRMaXN0ZW5lcigpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbmNzc0FuaW1hdGlvbi5zdHlsZSA9IGZ1bmN0aW9uIChub2RlLCBzdHlsZSwgY2FsbGJhY2spIHtcbiAgaWYgKG5vZGUucmNFbmRMaXN0ZW5lcikge1xuICAgIG5vZGUucmNFbmRMaXN0ZW5lcigpO1xuICB9XG5cbiAgbm9kZS5yY0VuZExpc3RlbmVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSAmJiBlLnRhcmdldCAhPT0gbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChub2RlLnJjQW5pbVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dChub2RlLnJjQW5pbVRpbWVvdXQpO1xuICAgICAgbm9kZS5yY0FuaW1UaW1lb3V0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBjbGVhckJyb3dzZXJCdWdUaW1lb3V0KG5vZGUpO1xuXG4gICAgRXZlbnQucmVtb3ZlRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBub2RlLnJjRW5kTGlzdGVuZXIpO1xuICAgIG5vZGUucmNFbmRMaXN0ZW5lciA9IG51bGw7XG5cbiAgICAvLyBVc3VhbGx5IHRoaXMgb3B0aW9uYWwgY2FsbGJhY2sgaXMgdXNlZCBmb3IgaW5mb3JtaW5nIGFuIG93bmVyIG9mXG4gICAgLy8gYSBsZWF2ZSBhbmltYXRpb24gYW5kIHRlbGxpbmcgaXQgdG8gcmVtb3ZlIHRoZSBjaGlsZC5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuICB9O1xuXG4gIEV2ZW50LmFkZEVuZEV2ZW50TGlzdGVuZXIobm9kZSwgbm9kZS5yY0VuZExpc3RlbmVyKTtcblxuICBub2RlLnJjQW5pbVRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKHZhciBzIGluIHN0eWxlKSB7XG4gICAgICBpZiAoc3R5bGUuaGFzT3duUHJvcGVydHkocykpIHtcbiAgICAgICAgbm9kZS5zdHlsZVtzXSA9IHN0eWxlW3NdO1xuICAgICAgfVxuICAgIH1cbiAgICBub2RlLnJjQW5pbVRpbWVvdXQgPSBudWxsO1xuICAgIGZpeEJyb3dzZXJCeVRpbWVvdXQobm9kZSk7XG4gIH0sIDApO1xufTtcblxuY3NzQW5pbWF0aW9uLnNldFRyYW5zaXRpb24gPSBmdW5jdGlvbiAobm9kZSwgcCwgdmFsdWUpIHtcbiAgdmFyIHByb3BlcnR5ID0gcDtcbiAgdmFyIHYgPSB2YWx1ZTtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICB2ID0gcHJvcGVydHk7XG4gICAgcHJvcGVydHkgPSAnJztcbiAgfVxuICBwcm9wZXJ0eSA9IHByb3BlcnR5IHx8ICcnO1xuICBjYXBpdGFsUHJlZml4ZXMuZm9yRWFjaChmdW5jdGlvbiAocHJlZml4KSB7XG4gICAgbm9kZS5zdHlsZVtwcmVmaXggKyAnVHJhbnNpdGlvbicgKyBwcm9wZXJ0eV0gPSB2O1xuICB9KTtcbn07XG5cbmNzc0FuaW1hdGlvbi5pc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCA9IGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkO1xuXG5leHBvcnQgeyBpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCB9O1xuXG5leHBvcnQgZGVmYXVsdCBjc3NBbmltYXRpb247IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9Db2xsYXBzZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vQ29sbGFwc2VcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIF9kZWZhdWx0ID0gX0NvbGxhcHNlW1wiZGVmYXVsdFwiXTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwidmFyIGc7XG5cbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXG5nID0gKGZ1bmN0aW9uKCkge1xuXHRyZXR1cm4gdGhpcztcbn0pKCk7XG5cbnRyeSB7XG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxuXHRnID0gZyB8fCBuZXcgRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpO1xufSBjYXRjaCAoZSkge1xuXHQvLyBUaGlzIHdvcmtzIGlmIHRoZSB3aW5kb3cgcmVmZXJlbmNlIGlzIGF2YWlsYWJsZVxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIikgZyA9IHdpbmRvdztcbn1cblxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3Ncbi8vIGVhc2llciB0byBoYW5kbGUgdGhpcyBjYXNlLiBpZighZ2xvYmFsKSB7IC4uLn1cblxubW9kdWxlLmV4cG9ydHMgPSBnO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eScpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5Mik7XG5cbmV4cG9ydHMudG9BcnJheSA9IHRvQXJyYXk7XG5leHBvcnRzLmdldEFjdGl2ZUluZGV4ID0gZ2V0QWN0aXZlSW5kZXg7XG5leHBvcnRzLmdldEFjdGl2ZUtleSA9IGdldEFjdGl2ZUtleTtcbmV4cG9ydHMuc2V0VHJhbnNmb3JtID0gc2V0VHJhbnNmb3JtO1xuZXhwb3J0cy5pc1RyYW5zZm9ybTNkU3VwcG9ydGVkID0gaXNUcmFuc2Zvcm0zZFN1cHBvcnRlZDtcbmV4cG9ydHMuc2V0VHJhbnNpdGlvbiA9IHNldFRyYW5zaXRpb247XG5leHBvcnRzLmdldFRyYW5zZm9ybVByb3BWYWx1ZSA9IGdldFRyYW5zZm9ybVByb3BWYWx1ZTtcbmV4cG9ydHMuaXNWZXJ0aWNhbCA9IGlzVmVydGljYWw7XG5leHBvcnRzLmdldFRyYW5zZm9ybUJ5SW5kZXggPSBnZXRUcmFuc2Zvcm1CeUluZGV4O1xuZXhwb3J0cy5nZXRNYXJnaW5TdHlsZSA9IGdldE1hcmdpblN0eWxlO1xuZXhwb3J0cy5nZXRTdHlsZSA9IGdldFN0eWxlO1xuZXhwb3J0cy5zZXRQeFN0eWxlID0gc2V0UHhTdHlsZTtcbmV4cG9ydHMuZ2V0RGF0YUF0dHIgPSBnZXREYXRhQXR0cjtcbmV4cG9ydHMuZ2V0TGVmdCA9IGdldExlZnQ7XG5leHBvcnRzLmdldFRvcCA9IGdldFRvcDtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIHRvQXJyYXkoY2hpbGRyZW4pIHtcbiAgLy8gYWxsb3cgW2MsW2EsYl1dXG4gIHZhciBjID0gW107XG4gIF9yZWFjdDJbJ2RlZmF1bHQnXS5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQpIHtcbiAgICAgIGMucHVzaChjaGlsZCk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGM7XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUluZGV4KGNoaWxkcmVuLCBhY3RpdmVLZXkpIHtcbiAgdmFyIGMgPSB0b0FycmF5KGNoaWxkcmVuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGNbaV0ua2V5ID09PSBhY3RpdmVLZXkpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUtleShjaGlsZHJlbiwgaW5kZXgpIHtcbiAgdmFyIGMgPSB0b0FycmF5KGNoaWxkcmVuKTtcbiAgcmV0dXJuIGNbaW5kZXhdLmtleTtcbn1cblxuZnVuY3Rpb24gc2V0VHJhbnNmb3JtKHN0eWxlLCB2KSB7XG4gIHN0eWxlLnRyYW5zZm9ybSA9IHY7XG4gIHN0eWxlLndlYmtpdFRyYW5zZm9ybSA9IHY7XG4gIHN0eWxlLm1velRyYW5zZm9ybSA9IHY7XG59XG5cbmZ1bmN0aW9uIGlzVHJhbnNmb3JtM2RTdXBwb3J0ZWQoc3R5bGUpIHtcbiAgcmV0dXJuICgndHJhbnNmb3JtJyBpbiBzdHlsZSB8fCAnd2Via2l0VHJhbnNmb3JtJyBpbiBzdHlsZSB8fCAnTW96VHJhbnNmb3JtJyBpbiBzdHlsZSkgJiYgd2luZG93LmF0b2I7XG59XG5cbmZ1bmN0aW9uIHNldFRyYW5zaXRpb24oc3R5bGUsIHYpIHtcbiAgc3R5bGUudHJhbnNpdGlvbiA9IHY7XG4gIHN0eWxlLndlYmtpdFRyYW5zaXRpb24gPSB2O1xuICBzdHlsZS5Nb3pUcmFuc2l0aW9uID0gdjtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNmb3JtUHJvcFZhbHVlKHYpIHtcbiAgcmV0dXJuIHtcbiAgICB0cmFuc2Zvcm06IHYsXG4gICAgV2Via2l0VHJhbnNmb3JtOiB2LFxuICAgIE1velRyYW5zZm9ybTogdlxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1ZlcnRpY2FsKHRhYkJhclBvc2l0aW9uKSB7XG4gIHJldHVybiB0YWJCYXJQb3NpdGlvbiA9PT0gJ2xlZnQnIHx8IHRhYkJhclBvc2l0aW9uID09PSAncmlnaHQnO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2Zvcm1CeUluZGV4KGluZGV4LCB0YWJCYXJQb3NpdGlvbikge1xuICB2YXIgZGlyZWN0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAnbHRyJztcblxuICB2YXIgdHJhbnNsYXRlID0gaXNWZXJ0aWNhbCh0YWJCYXJQb3NpdGlvbikgPyAndHJhbnNsYXRlWScgOiAndHJhbnNsYXRlWCc7XG5cbiAgaWYgKCFpc1ZlcnRpY2FsKHRhYkJhclBvc2l0aW9uKSAmJiBkaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZSArICcoJyArIGluZGV4ICogMTAwICsgJyUpIHRyYW5zbGF0ZVooMCknO1xuICB9XG4gIHJldHVybiB0cmFuc2xhdGUgKyAnKCcgKyAtaW5kZXggKiAxMDAgKyAnJSkgdHJhbnNsYXRlWigwKSc7XG59XG5cbmZ1bmN0aW9uIGdldE1hcmdpblN0eWxlKGluZGV4LCB0YWJCYXJQb3NpdGlvbikge1xuICB2YXIgbWFyZ2luRGlyZWN0aW9uID0gaXNWZXJ0aWNhbCh0YWJCYXJQb3NpdGlvbikgPyAnbWFyZ2luVG9wJyA6ICdtYXJnaW5MZWZ0JztcbiAgcmV0dXJuICgwLCBfZGVmaW5lUHJvcGVydHkzWydkZWZhdWx0J10pKHt9LCBtYXJnaW5EaXJlY3Rpb24sIC1pbmRleCAqIDEwMCArICclJyk7XG59XG5cbmZ1bmN0aW9uIGdldFN0eWxlKGVsLCBwcm9wZXJ0eSkge1xuICByZXR1cm4gK3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KS5yZXBsYWNlKCdweCcsICcnKTtcbn1cblxuZnVuY3Rpb24gc2V0UHhTdHlsZShlbCwgdmFsdWUsIHZlcnRpY2FsKSB7XG4gIHZhbHVlID0gdmVydGljYWwgPyAnMHB4LCAnICsgdmFsdWUgKyAncHgsIDBweCcgOiB2YWx1ZSArICdweCwgMHB4LCAwcHgnO1xuICBzZXRUcmFuc2Zvcm0oZWwuc3R5bGUsICd0cmFuc2xhdGUzZCgnICsgdmFsdWUgKyAnKScpO1xufVxuXG5mdW5jdGlvbiBnZXREYXRhQXR0cihwcm9wcykge1xuICByZXR1cm4gT2JqZWN0LmtleXMocHJvcHMpLnJlZHVjZShmdW5jdGlvbiAocHJldiwga2V5KSB7XG4gICAgaWYgKGtleS5zdWJzdHIoMCwgNSkgPT09ICdhcmlhLScgfHwga2V5LnN1YnN0cigwLCA1KSA9PT0gJ2RhdGEtJyB8fCBrZXkgPT09ICdyb2xlJykge1xuICAgICAgcHJldltrZXldID0gcHJvcHNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gdG9OdW0oc3R5bGUsIHByb3BlcnR5KSB7XG4gIHJldHVybiArc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSkucmVwbGFjZSgncHgnLCAnJyk7XG59XG5cbmZ1bmN0aW9uIGdldFR5cGVWYWx1ZShzdGFydCwgY3VycmVudCwgZW5kLCB0YWJOb2RlLCB3cmFwcGVyTm9kZSkge1xuICB2YXIgdG90YWwgPSBnZXRTdHlsZSh3cmFwcGVyTm9kZSwgJ3BhZGRpbmctJyArIHN0YXJ0KTtcbiAgaWYgKCF0YWJOb2RlIHx8ICF0YWJOb2RlLnBhcmVudE5vZGUpIHtcbiAgICByZXR1cm4gdG90YWw7XG4gIH1cblxuICB2YXIgY2hpbGROb2RlcyA9IHRhYk5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzO1xuXG4gIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoY2hpbGROb2RlcywgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcblxuICAgIGlmIChub2RlICE9PSB0YWJOb2RlKSB7XG4gICAgICB0b3RhbCArPSB0b051bShzdHlsZSwgJ21hcmdpbi0nICsgc3RhcnQpO1xuICAgICAgdG90YWwgKz0gbm9kZVtjdXJyZW50XTtcbiAgICAgIHRvdGFsICs9IHRvTnVtKHN0eWxlLCAnbWFyZ2luLScgKyBlbmQpO1xuXG4gICAgICBpZiAoc3R5bGUuYm94U2l6aW5nID09PSAnY29udGVudC1ib3gnKSB7XG4gICAgICAgIHRvdGFsICs9IHRvTnVtKHN0eWxlLCAnYm9yZGVyLScgKyBzdGFydCArICctd2lkdGgnKSArIHRvTnVtKHN0eWxlLCAnYm9yZGVyLScgKyBlbmQgKyAnLXdpZHRoJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gV2UgbmVlZCBjb3VudCBjdXJyZW50IG5vZGUgbWFyZ2luXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtY29tcG9uZW50L3RhYnMvcHVsbC8xMzkjaXNzdWVjb21tZW50LTQzMTAwNTI2MlxuICAgIHRvdGFsICs9IHRvTnVtKHN0eWxlLCAnbWFyZ2luLScgKyBzdGFydCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRvdGFsO1xufVxuXG5mdW5jdGlvbiBnZXRMZWZ0KHRhYk5vZGUsIHdyYXBwZXJOb2RlKSB7XG4gIHJldHVybiBnZXRUeXBlVmFsdWUoJ2xlZnQnLCAnb2Zmc2V0V2lkdGgnLCAncmlnaHQnLCB0YWJOb2RlLCB3cmFwcGVyTm9kZSk7XG59XG5cbmZ1bmN0aW9uIGdldFRvcCh0YWJOb2RlLCB3cmFwcGVyTm9kZSkge1xuICByZXR1cm4gZ2V0VHlwZVZhbHVlKCd0b3AnLCAnb2Zmc2V0SGVpZ2h0JywgJ2JvdHRvbScsIHRhYk5vZGUsIHdyYXBwZXJOb2RlKTtcbn0iLCIvKipcbiAqIEBpZ25vcmVcbiAqIHNvbWUga2V5LWNvZGVzIGRlZmluaXRpb24gYW5kIHV0aWxzIGZyb20gY2xvc3VyZS1saWJyYXJ5XG4gKiBAYXV0aG9yIHlpbWluZ2hlQGdtYWlsLmNvbVxuICovXG52YXIgS2V5Q29kZSA9IHtcbiAgLyoqXG4gICAqIE1BQ19FTlRFUlxuICAgKi9cbiAgTUFDX0VOVEVSOiAzLFxuXG4gIC8qKlxuICAgKiBCQUNLU1BBQ0VcbiAgICovXG4gIEJBQ0tTUEFDRTogOCxcblxuICAvKipcbiAgICogVEFCXG4gICAqL1xuICBUQUI6IDksXG5cbiAgLyoqXG4gICAqIE5VTUxPQ0sgb24gRkYvU2FmYXJpIE1hY1xuICAgKi9cbiAgTlVNX0NFTlRFUjogMTIsXG5cbiAgLyoqXG4gICAqIEVOVEVSXG4gICAqL1xuICBFTlRFUjogMTMsXG5cbiAgLyoqXG4gICAqIFNISUZUXG4gICAqL1xuICBTSElGVDogMTYsXG5cbiAgLyoqXG4gICAqIENUUkxcbiAgICovXG4gIENUUkw6IDE3LFxuXG4gIC8qKlxuICAgKiBBTFRcbiAgICovXG4gIEFMVDogMTgsXG5cbiAgLyoqXG4gICAqIFBBVVNFXG4gICAqL1xuICBQQVVTRTogMTksXG5cbiAgLyoqXG4gICAqIENBUFNfTE9DS1xuICAgKi9cbiAgQ0FQU19MT0NLOiAyMCxcblxuICAvKipcbiAgICogRVNDXG4gICAqL1xuICBFU0M6IDI3LFxuXG4gIC8qKlxuICAgKiBTUEFDRVxuICAgKi9cbiAgU1BBQ0U6IDMyLFxuXG4gIC8qKlxuICAgKiBQQUdFX1VQXG4gICAqL1xuICBQQUdFX1VQOiAzMyxcblxuICAvKipcbiAgICogUEFHRV9ET1dOXG4gICAqL1xuICBQQUdFX0RPV046IDM0LFxuXG4gIC8qKlxuICAgKiBFTkRcbiAgICovXG4gIEVORDogMzUsXG5cbiAgLyoqXG4gICAqIEhPTUVcbiAgICovXG4gIEhPTUU6IDM2LFxuXG4gIC8qKlxuICAgKiBMRUZUXG4gICAqL1xuICBMRUZUOiAzNyxcblxuICAvKipcbiAgICogVVBcbiAgICovXG4gIFVQOiAzOCxcblxuICAvKipcbiAgICogUklHSFRcbiAgICovXG4gIFJJR0hUOiAzOSxcblxuICAvKipcbiAgICogRE9XTlxuICAgKi9cbiAgRE9XTjogNDAsXG5cbiAgLyoqXG4gICAqIFBSSU5UX1NDUkVFTlxuICAgKi9cbiAgUFJJTlRfU0NSRUVOOiA0NCxcblxuICAvKipcbiAgICogSU5TRVJUXG4gICAqL1xuICBJTlNFUlQ6IDQ1LFxuXG4gIC8qKlxuICAgKiBERUxFVEVcbiAgICovXG4gIERFTEVURTogNDYsXG5cbiAgLyoqXG4gICAqIFpFUk9cbiAgICovXG4gIFpFUk86IDQ4LFxuXG4gIC8qKlxuICAgKiBPTkVcbiAgICovXG4gIE9ORTogNDksXG5cbiAgLyoqXG4gICAqIFRXT1xuICAgKi9cbiAgVFdPOiA1MCxcblxuICAvKipcbiAgICogVEhSRUVcbiAgICovXG4gIFRIUkVFOiA1MSxcblxuICAvKipcbiAgICogRk9VUlxuICAgKi9cbiAgRk9VUjogNTIsXG5cbiAgLyoqXG4gICAqIEZJVkVcbiAgICovXG4gIEZJVkU6IDUzLFxuXG4gIC8qKlxuICAgKiBTSVhcbiAgICovXG4gIFNJWDogNTQsXG5cbiAgLyoqXG4gICAqIFNFVkVOXG4gICAqL1xuICBTRVZFTjogNTUsXG5cbiAgLyoqXG4gICAqIEVJR0hUXG4gICAqL1xuICBFSUdIVDogNTYsXG5cbiAgLyoqXG4gICAqIE5JTkVcbiAgICovXG4gIE5JTkU6IDU3LFxuXG4gIC8qKlxuICAgKiBRVUVTVElPTl9NQVJLXG4gICAqL1xuICBRVUVTVElPTl9NQVJLOiA2MyxcblxuICAvKipcbiAgICogQVxuICAgKi9cbiAgQTogNjUsXG5cbiAgLyoqXG4gICAqIEJcbiAgICovXG4gIEI6IDY2LFxuXG4gIC8qKlxuICAgKiBDXG4gICAqL1xuICBDOiA2NyxcblxuICAvKipcbiAgICogRFxuICAgKi9cbiAgRDogNjgsXG5cbiAgLyoqXG4gICAqIEVcbiAgICovXG4gIEU6IDY5LFxuXG4gIC8qKlxuICAgKiBGXG4gICAqL1xuICBGOiA3MCxcblxuICAvKipcbiAgICogR1xuICAgKi9cbiAgRzogNzEsXG5cbiAgLyoqXG4gICAqIEhcbiAgICovXG4gIEg6IDcyLFxuXG4gIC8qKlxuICAgKiBJXG4gICAqL1xuICBJOiA3MyxcblxuICAvKipcbiAgICogSlxuICAgKi9cbiAgSjogNzQsXG5cbiAgLyoqXG4gICAqIEtcbiAgICovXG4gIEs6IDc1LFxuXG4gIC8qKlxuICAgKiBMXG4gICAqL1xuICBMOiA3NixcblxuICAvKipcbiAgICogTVxuICAgKi9cbiAgTTogNzcsXG5cbiAgLyoqXG4gICAqIE5cbiAgICovXG4gIE46IDc4LFxuXG4gIC8qKlxuICAgKiBPXG4gICAqL1xuICBPOiA3OSxcblxuICAvKipcbiAgICogUFxuICAgKi9cbiAgUDogODAsXG5cbiAgLyoqXG4gICAqIFFcbiAgICovXG4gIFE6IDgxLFxuXG4gIC8qKlxuICAgKiBSXG4gICAqL1xuICBSOiA4MixcblxuICAvKipcbiAgICogU1xuICAgKi9cbiAgUzogODMsXG5cbiAgLyoqXG4gICAqIFRcbiAgICovXG4gIFQ6IDg0LFxuXG4gIC8qKlxuICAgKiBVXG4gICAqL1xuICBVOiA4NSxcblxuICAvKipcbiAgICogVlxuICAgKi9cbiAgVjogODYsXG5cbiAgLyoqXG4gICAqIFdcbiAgICovXG4gIFc6IDg3LFxuXG4gIC8qKlxuICAgKiBYXG4gICAqL1xuICBYOiA4OCxcblxuICAvKipcbiAgICogWVxuICAgKi9cbiAgWTogODksXG5cbiAgLyoqXG4gICAqIFpcbiAgICovXG4gIFo6IDkwLFxuXG4gIC8qKlxuICAgKiBNRVRBXG4gICAqL1xuICBNRVRBOiA5MSxcblxuICAvKipcbiAgICogV0lOX0tFWV9SSUdIVFxuICAgKi9cbiAgV0lOX0tFWV9SSUdIVDogOTIsXG5cbiAgLyoqXG4gICAqIENPTlRFWFRfTUVOVVxuICAgKi9cbiAgQ09OVEVYVF9NRU5VOiA5MyxcblxuICAvKipcbiAgICogTlVNX1pFUk9cbiAgICovXG4gIE5VTV9aRVJPOiA5NixcblxuICAvKipcbiAgICogTlVNX09ORVxuICAgKi9cbiAgTlVNX09ORTogOTcsXG5cbiAgLyoqXG4gICAqIE5VTV9UV09cbiAgICovXG4gIE5VTV9UV086IDk4LFxuXG4gIC8qKlxuICAgKiBOVU1fVEhSRUVcbiAgICovXG4gIE5VTV9USFJFRTogOTksXG5cbiAgLyoqXG4gICAqIE5VTV9GT1VSXG4gICAqL1xuICBOVU1fRk9VUjogMTAwLFxuXG4gIC8qKlxuICAgKiBOVU1fRklWRVxuICAgKi9cbiAgTlVNX0ZJVkU6IDEwMSxcblxuICAvKipcbiAgICogTlVNX1NJWFxuICAgKi9cbiAgTlVNX1NJWDogMTAyLFxuXG4gIC8qKlxuICAgKiBOVU1fU0VWRU5cbiAgICovXG4gIE5VTV9TRVZFTjogMTAzLFxuXG4gIC8qKlxuICAgKiBOVU1fRUlHSFRcbiAgICovXG4gIE5VTV9FSUdIVDogMTA0LFxuXG4gIC8qKlxuICAgKiBOVU1fTklORVxuICAgKi9cbiAgTlVNX05JTkU6IDEwNSxcblxuICAvKipcbiAgICogTlVNX01VTFRJUExZXG4gICAqL1xuICBOVU1fTVVMVElQTFk6IDEwNixcblxuICAvKipcbiAgICogTlVNX1BMVVNcbiAgICovXG4gIE5VTV9QTFVTOiAxMDcsXG5cbiAgLyoqXG4gICAqIE5VTV9NSU5VU1xuICAgKi9cbiAgTlVNX01JTlVTOiAxMDksXG5cbiAgLyoqXG4gICAqIE5VTV9QRVJJT0RcbiAgICovXG4gIE5VTV9QRVJJT0Q6IDExMCxcblxuICAvKipcbiAgICogTlVNX0RJVklTSU9OXG4gICAqL1xuICBOVU1fRElWSVNJT046IDExMSxcblxuICAvKipcbiAgICogRjFcbiAgICovXG4gIEYxOiAxMTIsXG5cbiAgLyoqXG4gICAqIEYyXG4gICAqL1xuICBGMjogMTEzLFxuXG4gIC8qKlxuICAgKiBGM1xuICAgKi9cbiAgRjM6IDExNCxcblxuICAvKipcbiAgICogRjRcbiAgICovXG4gIEY0OiAxMTUsXG5cbiAgLyoqXG4gICAqIEY1XG4gICAqL1xuICBGNTogMTE2LFxuXG4gIC8qKlxuICAgKiBGNlxuICAgKi9cbiAgRjY6IDExNyxcblxuICAvKipcbiAgICogRjdcbiAgICovXG4gIEY3OiAxMTgsXG5cbiAgLyoqXG4gICAqIEY4XG4gICAqL1xuICBGODogMTE5LFxuXG4gIC8qKlxuICAgKiBGOVxuICAgKi9cbiAgRjk6IDEyMCxcblxuICAvKipcbiAgICogRjEwXG4gICAqL1xuICBGMTA6IDEyMSxcblxuICAvKipcbiAgICogRjExXG4gICAqL1xuICBGMTE6IDEyMixcblxuICAvKipcbiAgICogRjEyXG4gICAqL1xuICBGMTI6IDEyMyxcblxuICAvKipcbiAgICogTlVNTE9DS1xuICAgKi9cbiAgTlVNTE9DSzogMTQ0LFxuXG4gIC8qKlxuICAgKiBTRU1JQ09MT05cbiAgICovXG4gIFNFTUlDT0xPTjogMTg2LFxuXG4gIC8qKlxuICAgKiBEQVNIXG4gICAqL1xuICBEQVNIOiAxODksXG5cbiAgLyoqXG4gICAqIEVRVUFMU1xuICAgKi9cbiAgRVFVQUxTOiAxODcsXG5cbiAgLyoqXG4gICAqIENPTU1BXG4gICAqL1xuICBDT01NQTogMTg4LFxuXG4gIC8qKlxuICAgKiBQRVJJT0RcbiAgICovXG4gIFBFUklPRDogMTkwLFxuXG4gIC8qKlxuICAgKiBTTEFTSFxuICAgKi9cbiAgU0xBU0g6IDE5MSxcblxuICAvKipcbiAgICogQVBPU1RST1BIRVxuICAgKi9cbiAgQVBPU1RST1BIRTogMTkyLFxuXG4gIC8qKlxuICAgKiBTSU5HTEVfUVVPVEVcbiAgICovXG4gIFNJTkdMRV9RVU9URTogMjIyLFxuXG4gIC8qKlxuICAgKiBPUEVOX1NRVUFSRV9CUkFDS0VUXG4gICAqL1xuICBPUEVOX1NRVUFSRV9CUkFDS0VUOiAyMTksXG5cbiAgLyoqXG4gICAqIEJBQ0tTTEFTSFxuICAgKi9cbiAgQkFDS1NMQVNIOiAyMjAsXG5cbiAgLyoqXG4gICAqIENMT1NFX1NRVUFSRV9CUkFDS0VUXG4gICAqL1xuICBDTE9TRV9TUVVBUkVfQlJBQ0tFVDogMjIxLFxuXG4gIC8qKlxuICAgKiBXSU5fS0VZXG4gICAqL1xuICBXSU5fS0VZOiAyMjQsXG5cbiAgLyoqXG4gICAqIE1BQ19GRl9NRVRBXG4gICAqL1xuICBNQUNfRkZfTUVUQTogMjI0LFxuXG4gIC8qKlxuICAgKiBXSU5fSU1FXG4gICAqL1xuICBXSU5fSU1FOiAyMjksXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBGdW5jdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogd2hldGhlciB0ZXh0IGFuZCBtb2RpZmllZCBrZXkgaXMgZW50ZXJlZCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKi9cbiAgaXNUZXh0TW9kaWZ5aW5nS2V5RXZlbnQ6IGZ1bmN0aW9uIGlzVGV4dE1vZGlmeWluZ0tleUV2ZW50KGUpIHtcbiAgICB2YXIga2V5Q29kZSA9IGUua2V5Q29kZTtcblxuICAgIGlmIChlLmFsdEtleSAmJiAhZS5jdHJsS2V5IHx8IGUubWV0YUtleSB8fCAvLyBGdW5jdGlvbiBrZXlzIGRvbid0IGdlbmVyYXRlIHRleHRcbiAgICBrZXlDb2RlID49IEtleUNvZGUuRjEgJiYga2V5Q29kZSA8PSBLZXlDb2RlLkYxMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gVGhlIGZvbGxvd2luZyBrZXlzIGFyZSBxdWl0ZSBoYXJtbGVzcywgZXZlbiBpbiBjb21iaW5hdGlvbiB3aXRoXG4gICAgLy8gQ1RSTCwgQUxUIG9yIFNISUZULlxuXG5cbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgS2V5Q29kZS5BTFQ6XG4gICAgICBjYXNlIEtleUNvZGUuQ0FQU19MT0NLOlxuICAgICAgY2FzZSBLZXlDb2RlLkNPTlRFWFRfTUVOVTpcbiAgICAgIGNhc2UgS2V5Q29kZS5DVFJMOlxuICAgICAgY2FzZSBLZXlDb2RlLkRPV046XG4gICAgICBjYXNlIEtleUNvZGUuRU5EOlxuICAgICAgY2FzZSBLZXlDb2RlLkVTQzpcbiAgICAgIGNhc2UgS2V5Q29kZS5IT01FOlxuICAgICAgY2FzZSBLZXlDb2RlLklOU0VSVDpcbiAgICAgIGNhc2UgS2V5Q29kZS5MRUZUOlxuICAgICAgY2FzZSBLZXlDb2RlLk1BQ19GRl9NRVRBOlxuICAgICAgY2FzZSBLZXlDb2RlLk1FVEE6XG4gICAgICBjYXNlIEtleUNvZGUuTlVNTE9DSzpcbiAgICAgIGNhc2UgS2V5Q29kZS5OVU1fQ0VOVEVSOlxuICAgICAgY2FzZSBLZXlDb2RlLlBBR0VfRE9XTjpcbiAgICAgIGNhc2UgS2V5Q29kZS5QQUdFX1VQOlxuICAgICAgY2FzZSBLZXlDb2RlLlBBVVNFOlxuICAgICAgY2FzZSBLZXlDb2RlLlBSSU5UX1NDUkVFTjpcbiAgICAgIGNhc2UgS2V5Q29kZS5SSUdIVDpcbiAgICAgIGNhc2UgS2V5Q29kZS5TSElGVDpcbiAgICAgIGNhc2UgS2V5Q29kZS5VUDpcbiAgICAgIGNhc2UgS2V5Q29kZS5XSU5fS0VZOlxuICAgICAgY2FzZSBLZXlDb2RlLldJTl9LRVlfUklHSFQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiB3aGV0aGVyIGNoYXJhY3RlciBpcyBlbnRlcmVkLlxuICAgKi9cbiAgaXNDaGFyYWN0ZXJLZXk6IGZ1bmN0aW9uIGlzQ2hhcmFjdGVyS2V5KGtleUNvZGUpIHtcbiAgICBpZiAoa2V5Q29kZSA+PSBLZXlDb2RlLlpFUk8gJiYga2V5Q29kZSA8PSBLZXlDb2RlLk5JTkUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChrZXlDb2RlID49IEtleUNvZGUuTlVNX1pFUk8gJiYga2V5Q29kZSA8PSBLZXlDb2RlLk5VTV9NVUxUSVBMWSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGtleUNvZGUgPj0gS2V5Q29kZS5BICYmIGtleUNvZGUgPD0gS2V5Q29kZS5aKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IC8vIFNhZmFyaSBzZW5kcyB6ZXJvIGtleSBjb2RlIGZvciBub24tbGF0aW4gY2hhcmFjdGVycy5cblxuXG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1dlYktpdCcpICE9PSAtMSAmJiBrZXlDb2RlID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgS2V5Q29kZS5TUEFDRTpcbiAgICAgIGNhc2UgS2V5Q29kZS5RVUVTVElPTl9NQVJLOlxuICAgICAgY2FzZSBLZXlDb2RlLk5VTV9QTFVTOlxuICAgICAgY2FzZSBLZXlDb2RlLk5VTV9NSU5VUzpcbiAgICAgIGNhc2UgS2V5Q29kZS5OVU1fUEVSSU9EOlxuICAgICAgY2FzZSBLZXlDb2RlLk5VTV9ESVZJU0lPTjpcbiAgICAgIGNhc2UgS2V5Q29kZS5TRU1JQ09MT046XG4gICAgICBjYXNlIEtleUNvZGUuREFTSDpcbiAgICAgIGNhc2UgS2V5Q29kZS5FUVVBTFM6XG4gICAgICBjYXNlIEtleUNvZGUuQ09NTUE6XG4gICAgICBjYXNlIEtleUNvZGUuUEVSSU9EOlxuICAgICAgY2FzZSBLZXlDb2RlLlNMQVNIOlxuICAgICAgY2FzZSBLZXlDb2RlLkFQT1NUUk9QSEU6XG4gICAgICBjYXNlIEtleUNvZGUuU0lOR0xFX1FVT1RFOlxuICAgICAgY2FzZSBLZXlDb2RlLk9QRU5fU1FVQVJFX0JSQUNLRVQ6XG4gICAgICBjYXNlIEtleUNvZGUuQkFDS1NMQVNIOlxuICAgICAgY2FzZSBLZXlDb2RlLkNMT1NFX1NRVUFSRV9CUkFDS0VUOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufTtcbmV4cG9ydCBkZWZhdWx0IEtleUNvZGU7IiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXlDaGlsZHJlbihjaGlsZHJlbikge1xuICB2YXIgcmV0ID0gW107XG4gIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldC5wdXNoKGNoaWxkKTtcbiAgfSk7XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY2hpbGRyZW4sIGtleSkge1xuICB2YXIgcmV0ID0gbnVsbDtcbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHJldCA9IGNoaWxkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleShjaGlsZHJlbiwga2V5LCBzaG93UHJvcCkge1xuICB2YXIgcmV0ID0gbnVsbDtcbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC5rZXkgPT09IGtleSAmJiBjaGlsZC5wcm9wc1tzaG93UHJvcF0pIHtcbiAgICAgICAgaWYgKHJldCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndHdvIGNoaWxkIHdpdGggc2FtZSBrZXkgZm9yIDxyYy1hbmltYXRlPiBjaGlsZHJlbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldCA9IGNoaWxkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSGlkZGVuQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY2hpbGRyZW4sIGtleSwgc2hvd1Byb3ApIHtcbiAgdmFyIGZvdW5kID0gMDtcbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3VuZCA9IGNoaWxkICYmIGNoaWxkLmtleSA9PT0ga2V5ICYmICFjaGlsZC5wcm9wc1tzaG93UHJvcF07XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lQ2hpbGRyZW4oYzEsIGMyLCBzaG93UHJvcCkge1xuICB2YXIgc2FtZSA9IGMxLmxlbmd0aCA9PT0gYzIubGVuZ3RoO1xuICBpZiAoc2FtZSkge1xuICAgIGMxLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgdmFyIGNoaWxkMiA9IGMyW2luZGV4XTtcbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZDIpIHtcbiAgICAgICAgaWYgKGNoaWxkICYmICFjaGlsZDIgfHwgIWNoaWxkICYmIGNoaWxkMikge1xuICAgICAgICAgIHNhbWUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGlsZC5rZXkgIT09IGNoaWxkMi5rZXkpIHtcbiAgICAgICAgICBzYW1lID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hvd1Byb3AgJiYgY2hpbGQucHJvcHNbc2hvd1Byb3BdICE9PSBjaGlsZDIucHJvcHNbc2hvd1Byb3BdKSB7XG4gICAgICAgICAgc2FtZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHNhbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUNoaWxkcmVuKHByZXYsIG5leHQpIHtcbiAgdmFyIHJldCA9IFtdO1xuXG4gIC8vIEZvciBlYWNoIGtleSBvZiBgbmV4dGAsIHRoZSBsaXN0IG9mIGtleXMgdG8gaW5zZXJ0IGJlZm9yZSB0aGF0IGtleSBpblxuICAvLyB0aGUgY29tYmluZWQgbGlzdFxuICB2YXIgbmV4dENoaWxkcmVuUGVuZGluZyA9IHt9O1xuICB2YXIgcGVuZGluZ0NoaWxkcmVuID0gW107XG4gIHByZXYuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQgJiYgZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KG5leHQsIGNoaWxkLmtleSkpIHtcbiAgICAgIGlmIChwZW5kaW5nQ2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIG5leHRDaGlsZHJlblBlbmRpbmdbY2hpbGQua2V5XSA9IHBlbmRpbmdDaGlsZHJlbjtcbiAgICAgICAgcGVuZGluZ0NoaWxkcmVuID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlbmRpbmdDaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH0pO1xuXG4gIG5leHQuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5leHRDaGlsZHJlblBlbmRpbmcsIGNoaWxkLmtleSkpIHtcbiAgICAgIHJldCA9IHJldC5jb25jYXQobmV4dENoaWxkcmVuUGVuZGluZ1tjaGlsZC5rZXldKTtcbiAgICB9XG4gICAgcmV0LnB1c2goY2hpbGQpO1xuICB9KTtcblxuICByZXQgPSByZXQuY29uY2F0KHBlbmRpbmdDaGlsZHJlbik7XG5cbiAgcmV0dXJuIHJldDtcbn0iLCJ2YXIgdXRpbCA9IHtcbiAgaXNBcHBlYXJTdXBwb3J0ZWQ6IGZ1bmN0aW9uIGlzQXBwZWFyU3VwcG9ydGVkKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25OYW1lICYmIHByb3BzLnRyYW5zaXRpb25BcHBlYXIgfHwgcHJvcHMuYW5pbWF0aW9uLmFwcGVhcjtcbiAgfSxcbiAgaXNFbnRlclN1cHBvcnRlZDogZnVuY3Rpb24gaXNFbnRlclN1cHBvcnRlZChwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uTmFtZSAmJiBwcm9wcy50cmFuc2l0aW9uRW50ZXIgfHwgcHJvcHMuYW5pbWF0aW9uLmVudGVyO1xuICB9LFxuICBpc0xlYXZlU3VwcG9ydGVkOiBmdW5jdGlvbiBpc0xlYXZlU3VwcG9ydGVkKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25OYW1lICYmIHByb3BzLnRyYW5zaXRpb25MZWF2ZSB8fCBwcm9wcy5hbmltYXRpb24ubGVhdmU7XG4gIH0sXG4gIGFsbG93QXBwZWFyQ2FsbGJhY2s6IGZ1bmN0aW9uIGFsbG93QXBwZWFyQ2FsbGJhY2socHJvcHMpIHtcbiAgICByZXR1cm4gcHJvcHMudHJhbnNpdGlvbkFwcGVhciB8fCBwcm9wcy5hbmltYXRpb24uYXBwZWFyO1xuICB9LFxuICBhbGxvd0VudGVyQ2FsbGJhY2s6IGZ1bmN0aW9uIGFsbG93RW50ZXJDYWxsYmFjayhwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uRW50ZXIgfHwgcHJvcHMuYW5pbWF0aW9uLmVudGVyO1xuICB9LFxuICBhbGxvd0xlYXZlQ2FsbGJhY2s6IGZ1bmN0aW9uIGFsbG93TGVhdmVDYWxsYmFjayhwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uTGVhdmUgfHwgcHJvcHMuYW5pbWF0aW9uLmxlYXZlO1xuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgdXRpbDsiLCJpbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjc3NBbmltYXRlLCB7IGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkIH0gZnJvbSAnY3NzLWFuaW1hdGlvbic7XG5pbXBvcnQgYW5pbVV0aWwgZnJvbSAnLi91dGlsL2FuaW1hdGUnO1xuXG52YXIgdHJhbnNpdGlvbk1hcCA9IHtcbiAgZW50ZXI6ICd0cmFuc2l0aW9uRW50ZXInLFxuICBhcHBlYXI6ICd0cmFuc2l0aW9uQXBwZWFyJyxcbiAgbGVhdmU6ICd0cmFuc2l0aW9uTGVhdmUnXG59O1xuXG52YXIgQW5pbWF0ZUNoaWxkID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEFuaW1hdGVDaGlsZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gQW5pbWF0ZUNoaWxkKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBbmltYXRlQ2hpbGQpO1xuXG4gICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChBbmltYXRlQ2hpbGQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihBbmltYXRlQ2hpbGQpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhBbmltYXRlQ2hpbGQsIFt7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbFVubW91bnQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuc3RvcCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxFbnRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxFbnRlcihkb25lKSB7XG4gICAgICBpZiAoYW5pbVV0aWwuaXNFbnRlclN1cHBvcnRlZCh0aGlzLnByb3BzKSkge1xuICAgICAgICB0aGlzLnRyYW5zaXRpb24oJ2VudGVyJywgZG9uZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbEFwcGVhcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxBcHBlYXIoZG9uZSkge1xuICAgICAgaWYgKGFuaW1VdGlsLmlzQXBwZWFyU3VwcG9ydGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbignYXBwZWFyJywgZG9uZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbExlYXZlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbExlYXZlKGRvbmUpIHtcbiAgICAgIGlmIChhbmltVXRpbC5pc0xlYXZlU3VwcG9ydGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbignbGVhdmUnLCBkb25lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFsd2F5cyBzeW5jLCBkbyBub3QgaW50ZXJ1cHQgd2l0aCByZWFjdCBjb21wb25lbnQgbGlmZSBjeWNsZVxuICAgICAgICAvLyB1cGRhdGUgaGlkZGVuIC0+IGFuaW1hdGUgaGlkZGVuIC0+XG4gICAgICAgIC8vIGRpZFVwZGF0ZSAtPiBhbmltYXRlIGxlYXZlIC0+IHVubW91bnQgKGlmIGFuaW1hdGUgaXMgbm9uZSlcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3RyYW5zaXRpb24nLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0cmFuc2l0aW9uKGFuaW1hdGlvblR5cGUsIGZpbmlzaENhbGxiYWNrKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIG5vZGUgPSBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgdHJhbnNpdGlvbk5hbWUgPSBwcm9wcy50cmFuc2l0aW9uTmFtZTtcbiAgICAgIHZhciBuYW1lSXNPYmogPSB0eXBlb2YgdHJhbnNpdGlvbk5hbWUgPT09ICdvYmplY3QnO1xuICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICB2YXIgZW5kID0gZnVuY3Rpb24gZW5kKCkge1xuICAgICAgICBfdGhpczIuc3RvcHBlciA9IG51bGw7XG4gICAgICAgIGZpbmlzaENhbGxiYWNrKCk7XG4gICAgICB9O1xuICAgICAgaWYgKChpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCB8fCAhcHJvcHMuYW5pbWF0aW9uW2FuaW1hdGlvblR5cGVdKSAmJiB0cmFuc2l0aW9uTmFtZSAmJiBwcm9wc1t0cmFuc2l0aW9uTWFwW2FuaW1hdGlvblR5cGVdXSkge1xuICAgICAgICB2YXIgbmFtZSA9IG5hbWVJc09iaiA/IHRyYW5zaXRpb25OYW1lW2FuaW1hdGlvblR5cGVdIDogdHJhbnNpdGlvbk5hbWUgKyAnLScgKyBhbmltYXRpb25UeXBlO1xuICAgICAgICB2YXIgYWN0aXZlTmFtZSA9IG5hbWUgKyAnLWFjdGl2ZSc7XG4gICAgICAgIGlmIChuYW1lSXNPYmogJiYgdHJhbnNpdGlvbk5hbWVbYW5pbWF0aW9uVHlwZSArICdBY3RpdmUnXSkge1xuICAgICAgICAgIGFjdGl2ZU5hbWUgPSB0cmFuc2l0aW9uTmFtZVthbmltYXRpb25UeXBlICsgJ0FjdGl2ZSddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcHBlciA9IGNzc0FuaW1hdGUobm9kZSwge1xuICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgYWN0aXZlOiBhY3RpdmVOYW1lXG4gICAgICAgIH0sIGVuZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0b3BwZXIgPSBwcm9wcy5hbmltYXRpb25bYW5pbWF0aW9uVHlwZV0obm9kZSwgZW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdzdG9wJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc3RvcCgpIHtcbiAgICAgIHZhciBzdG9wcGVyID0gdGhpcy5zdG9wcGVyO1xuICAgICAgaWYgKHN0b3BwZXIpIHtcbiAgICAgICAgdGhpcy5zdG9wcGVyID0gbnVsbDtcbiAgICAgICAgc3RvcHBlci5zdG9wKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEFuaW1hdGVDaGlsZDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuQW5pbWF0ZUNoaWxkLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnlcbn07XG5leHBvcnQgZGVmYXVsdCBBbmltYXRlQ2hpbGQ7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5JztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHRvQXJyYXlDaGlsZHJlbiwgbWVyZ2VDaGlsZHJlbiwgZmluZFNob3duQ2hpbGRJbkNoaWxkcmVuQnlLZXksIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleSwgaXNTYW1lQ2hpbGRyZW4gfSBmcm9tICcuL0NoaWxkcmVuVXRpbHMnO1xuaW1wb3J0IEFuaW1hdGVDaGlsZCBmcm9tICcuL0FuaW1hdGVDaGlsZCc7XG5pbXBvcnQgYW5pbVV0aWwgZnJvbSAnLi91dGlsL2FuaW1hdGUnO1xuXG52YXIgZGVmYXVsdEtleSA9ICdyY19hbmltYXRlXycgKyBEYXRlLm5vdygpO1xuXG5mdW5jdGlvbiBnZXRDaGlsZHJlbkZyb21Qcm9wcyhwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcbiAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgIGlmICghY2hpbGRyZW4ua2V5KSB7XG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7XG4gICAgICAgIGtleTogZGVmYXVsdEtleVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnZhciBBbmltYXRlID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEFuaW1hdGUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICBmdW5jdGlvbiBBbmltYXRlKHByb3BzKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFuaW1hdGUpO1xuXG4gICAgdmFyIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEFuaW1hdGUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihBbmltYXRlKSkuY2FsbCh0aGlzLCBwcm9wcykpO1xuXG4gICAgX2luaXRpYWxpc2VQcm9wcy5jYWxsKF90aGlzKTtcblxuICAgIF90aGlzLmN1cnJlbnRseUFuaW1hdGluZ0tleXMgPSB7fTtcbiAgICBfdGhpcy5rZXlzVG9FbnRlciA9IFtdO1xuICAgIF90aGlzLmtleXNUb0xlYXZlID0gW107XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNoaWxkcmVuOiB0b0FycmF5Q2hpbGRyZW4oZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMocHJvcHMpKVxuICAgIH07XG5cbiAgICBfdGhpcy5jaGlsZHJlblJlZnMgPSB7fTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQW5pbWF0ZSwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBzaG93UHJvcCA9IHRoaXMucHJvcHMuc2hvd1Byb3A7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnN0YXRlLmNoaWxkcmVuO1xuICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgIHJldHVybiAhIWNoaWxkLnByb3BzW3Nob3dQcm9wXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICBfdGhpczIucGVyZm9ybUFwcGVhcihjaGlsZC5rZXkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB0aGlzLm5leHRQcm9wcyA9IG5leHRQcm9wcztcbiAgICAgIHZhciBuZXh0Q2hpbGRyZW4gPSB0b0FycmF5Q2hpbGRyZW4oZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMobmV4dFByb3BzKSk7XG4gICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgLy8gZXhjbHVzaXZlIG5lZWRzIGltbWVkaWF0ZSByZXNwb25zZVxuICAgICAgaWYgKHByb3BzLmV4Y2x1c2l2ZSkge1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRseUFuaW1hdGluZ0tleXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgIF90aGlzMy5zdG9wKGtleSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdmFyIHNob3dQcm9wID0gcHJvcHMuc2hvd1Byb3A7XG4gICAgICB2YXIgY3VycmVudGx5QW5pbWF0aW5nS2V5cyA9IHRoaXMuY3VycmVudGx5QW5pbWF0aW5nS2V5cztcbiAgICAgIC8vIGxhc3QgcHJvcHMgY2hpbGRyZW4gaWYgZXhjbHVzaXZlXG4gICAgICB2YXIgY3VycmVudENoaWxkcmVuID0gcHJvcHMuZXhjbHVzaXZlID8gdG9BcnJheUNoaWxkcmVuKGdldENoaWxkcmVuRnJvbVByb3BzKHByb3BzKSkgOiB0aGlzLnN0YXRlLmNoaWxkcmVuO1xuICAgICAgLy8gaW4gY2FzZSBkZXN0cm95IGluIHNob3dQcm9wIG1vZGVcbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgIGN1cnJlbnRDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjdXJyZW50Q2hpbGQpIHtcbiAgICAgICAgICB2YXIgbmV4dENoaWxkID0gY3VycmVudENoaWxkICYmIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShuZXh0Q2hpbGRyZW4sIGN1cnJlbnRDaGlsZC5rZXkpO1xuICAgICAgICAgIHZhciBuZXdDaGlsZCA9IHZvaWQgMDtcbiAgICAgICAgICBpZiAoKCFuZXh0Q2hpbGQgfHwgIW5leHRDaGlsZC5wcm9wc1tzaG93UHJvcF0pICYmIGN1cnJlbnRDaGlsZC5wcm9wc1tzaG93UHJvcF0pIHtcbiAgICAgICAgICAgIG5ld0NoaWxkID0gUmVhY3QuY2xvbmVFbGVtZW50KG5leHRDaGlsZCB8fCBjdXJyZW50Q2hpbGQsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgc2hvd1Byb3AsIHRydWUpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3Q2hpbGQgPSBuZXh0Q2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuZXdDaGlsZCkge1xuICAgICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaChuZXdDaGlsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbmV4dENoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKG5leHRDaGlsZCkge1xuICAgICAgICAgIGlmICghbmV4dENoaWxkIHx8ICFmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY3VycmVudENoaWxkcmVuLCBuZXh0Q2hpbGQua2V5KSkge1xuICAgICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaChuZXh0Q2hpbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdDaGlsZHJlbiA9IG1lcmdlQ2hpbGRyZW4oY3VycmVudENoaWxkcmVuLCBuZXh0Q2hpbGRyZW4pO1xuICAgICAgfVxuXG4gICAgICAvLyBuZWVkIHJlbmRlciB0byBhdm9pZCB1cGRhdGVcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjaGlsZHJlbjogbmV3Q2hpbGRyZW5cbiAgICAgIH0pO1xuXG4gICAgICBuZXh0Q2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgdmFyIGtleSA9IGNoaWxkICYmIGNoaWxkLmtleTtcbiAgICAgICAgaWYgKGNoaWxkICYmIGN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaGFzUHJldiA9IGNoaWxkICYmIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSk7XG4gICAgICAgIGlmIChzaG93UHJvcCkge1xuICAgICAgICAgIHZhciBzaG93SW5OZXh0ID0gY2hpbGQucHJvcHNbc2hvd1Byb3BdO1xuICAgICAgICAgIGlmIChoYXNQcmV2KSB7XG4gICAgICAgICAgICB2YXIgc2hvd0luTm93ID0gZmluZFNob3duQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXksIHNob3dQcm9wKTtcbiAgICAgICAgICAgIGlmICghc2hvd0luTm93ICYmIHNob3dJbk5leHQpIHtcbiAgICAgICAgICAgICAgX3RoaXMzLmtleXNUb0VudGVyLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHNob3dJbk5leHQpIHtcbiAgICAgICAgICAgIF90aGlzMy5rZXlzVG9FbnRlci5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFoYXNQcmV2KSB7XG4gICAgICAgICAgX3RoaXMzLmtleXNUb0VudGVyLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGN1cnJlbnRDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICB2YXIga2V5ID0gY2hpbGQgJiYgY2hpbGQua2V5O1xuICAgICAgICBpZiAoY2hpbGQgJiYgY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBoYXNOZXh0ID0gY2hpbGQgJiYgZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KG5leHRDaGlsZHJlbiwga2V5KTtcbiAgICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgICAgdmFyIHNob3dJbk5vdyA9IGNoaWxkLnByb3BzW3Nob3dQcm9wXTtcbiAgICAgICAgICBpZiAoaGFzTmV4dCkge1xuICAgICAgICAgICAgdmFyIHNob3dJbk5leHQgPSBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleShuZXh0Q2hpbGRyZW4sIGtleSwgc2hvd1Byb3ApO1xuICAgICAgICAgICAgaWYgKCFzaG93SW5OZXh0ICYmIHNob3dJbk5vdykge1xuICAgICAgICAgICAgICBfdGhpczMua2V5c1RvTGVhdmUucHVzaChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc2hvd0luTm93KSB7XG4gICAgICAgICAgICBfdGhpczMua2V5c1RvTGVhdmUucHVzaChrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghaGFzTmV4dCkge1xuICAgICAgICAgIF90aGlzMy5rZXlzVG9MZWF2ZS5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudERpZFVwZGF0ZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIHZhciBrZXlzVG9FbnRlciA9IHRoaXMua2V5c1RvRW50ZXI7XG4gICAgICB0aGlzLmtleXNUb0VudGVyID0gW107XG4gICAgICBrZXlzVG9FbnRlci5mb3JFYWNoKHRoaXMucGVyZm9ybUVudGVyKTtcbiAgICAgIHZhciBrZXlzVG9MZWF2ZSA9IHRoaXMua2V5c1RvTGVhdmU7XG4gICAgICB0aGlzLmtleXNUb0xlYXZlID0gW107XG4gICAgICBrZXlzVG9MZWF2ZS5mb3JFYWNoKHRoaXMucGVyZm9ybUxlYXZlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdpc1ZhbGlkQ2hpbGRCeUtleScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzVmFsaWRDaGlsZEJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5KSB7XG4gICAgICB2YXIgc2hvd1Byb3AgPSB0aGlzLnByb3BzLnNob3dQcm9wO1xuICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgIHJldHVybiBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSwgc2hvd1Byb3ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc3RvcCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3Aoa2V5KSB7XG4gICAgICBkZWxldGUgdGhpcy5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV07XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5jaGlsZHJlblJlZnNba2V5XTtcbiAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgY29tcG9uZW50LnN0b3AoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHRoaXMubmV4dFByb3BzID0gcHJvcHM7XG4gICAgICB2YXIgc3RhdGVDaGlsZHJlbiA9IHRoaXMuc3RhdGUuY2hpbGRyZW47XG4gICAgICB2YXIgY2hpbGRyZW4gPSBudWxsO1xuICAgICAgaWYgKHN0YXRlQ2hpbGRyZW4pIHtcbiAgICAgICAgY2hpbGRyZW4gPSBzdGF0ZUNoaWxkcmVuLm1hcChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICBpZiAoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWNoaWxkLmtleSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHNldCBrZXkgZm9yIDxyYy1hbmltYXRlPiBjaGlsZHJlbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIEFuaW1hdGVDaGlsZCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAga2V5OiBjaGlsZC5rZXksXG4gICAgICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBfdGhpczQuY2hpbGRyZW5SZWZzW2NoaWxkLmtleV0gPSBub2RlO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBhbmltYXRpb246IHByb3BzLmFuaW1hdGlvbixcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbk5hbWU6IHByb3BzLnRyYW5zaXRpb25OYW1lLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uRW50ZXI6IHByb3BzLnRyYW5zaXRpb25FbnRlcixcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbkFwcGVhcjogcHJvcHMudHJhbnNpdGlvbkFwcGVhcixcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbkxlYXZlOiBwcm9wcy50cmFuc2l0aW9uTGVhdmVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdmFyIENvbXBvbmVudCA9IHByb3BzLmNvbXBvbmVudDtcbiAgICAgIGlmIChDb21wb25lbnQpIHtcbiAgICAgICAgdmFyIHBhc3NlZFByb3BzID0gcHJvcHM7XG4gICAgICAgIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHBhc3NlZFByb3BzID0gX2V4dGVuZHMoe1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgICBzdHlsZTogcHJvcHMuc3R5bGVcbiAgICAgICAgICB9LCBwcm9wcy5jb21wb25lbnRQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgIHBhc3NlZFByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2hpbGRyZW5bMF0gfHwgbnVsbDtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQW5pbWF0ZTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuQW5pbWF0ZS5pc0FuaW1hdGUgPSB0cnVlO1xuQW5pbWF0ZS5wcm9wVHlwZXMgPSB7XG4gIGNvbXBvbmVudDogUHJvcFR5cGVzLmFueSxcbiAgY29tcG9uZW50UHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFuaW1hdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgdHJhbnNpdGlvbk5hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgdHJhbnNpdGlvbkVudGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgdHJhbnNpdGlvbkFwcGVhcjogUHJvcFR5cGVzLmJvb2wsXG4gIGV4Y2x1c2l2ZTogUHJvcFR5cGVzLmJvb2wsXG4gIHRyYW5zaXRpb25MZWF2ZTogUHJvcFR5cGVzLmJvb2wsXG4gIG9uRW5kOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25FbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuICBvbkFwcGVhcjogUHJvcFR5cGVzLmZ1bmMsXG4gIHNob3dQcm9wOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn07XG5BbmltYXRlLmRlZmF1bHRQcm9wcyA9IHtcbiAgYW5pbWF0aW9uOiB7fSxcbiAgY29tcG9uZW50OiAnc3BhbicsXG4gIGNvbXBvbmVudFByb3BzOiB7fSxcbiAgdHJhbnNpdGlvbkVudGVyOiB0cnVlLFxuICB0cmFuc2l0aW9uTGVhdmU6IHRydWUsXG4gIHRyYW5zaXRpb25BcHBlYXI6IGZhbHNlLFxuICBvbkVuZDogbm9vcCxcbiAgb25FbnRlcjogbm9vcCxcbiAgb25MZWF2ZTogbm9vcCxcbiAgb25BcHBlYXI6IG5vb3Bcbn07XG5cbnZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgdGhpcy5wZXJmb3JtRW50ZXIgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgLy8gbWF5IGFscmVhZHkgcmVtb3ZlIGJ5IGV4Y2x1c2l2ZVxuICAgIGlmIChfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0pIHtcbiAgICAgIF90aGlzNS5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV0gPSB0cnVlO1xuICAgICAgX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldLmNvbXBvbmVudFdpbGxFbnRlcihfdGhpczUuaGFuZGxlRG9uZUFkZGluZy5iaW5kKF90aGlzNSwga2V5LCAnZW50ZXInKSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMucGVyZm9ybUFwcGVhciA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldKSB7XG4gICAgICBfdGhpczUuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgIF90aGlzNS5jaGlsZHJlblJlZnNba2V5XS5jb21wb25lbnRXaWxsQXBwZWFyKF90aGlzNS5oYW5kbGVEb25lQWRkaW5nLmJpbmQoX3RoaXM1LCBrZXksICdhcHBlYXInKSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuaGFuZGxlRG9uZUFkZGluZyA9IGZ1bmN0aW9uIChrZXksIHR5cGUpIHtcbiAgICB2YXIgcHJvcHMgPSBfdGhpczUucHJvcHM7XG4gICAgZGVsZXRlIF90aGlzNS5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV07XG4gICAgLy8gaWYgdXBkYXRlIG9uIGV4Y2x1c2l2ZSBtb2RlLCBza2lwIGNoZWNrXG4gICAgaWYgKHByb3BzLmV4Y2x1c2l2ZSAmJiBwcm9wcyAhPT0gX3RoaXM1Lm5leHRQcm9wcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgY3VycmVudENoaWxkcmVuID0gdG9BcnJheUNoaWxkcmVuKGdldENoaWxkcmVuRnJvbVByb3BzKHByb3BzKSk7XG4gICAgaWYgKCFfdGhpczUuaXNWYWxpZENoaWxkQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXkpKSB7XG4gICAgICAvLyBleGNsdXNpdmUgd2lsbCBub3QgbmVlZCB0aGlzXG4gICAgICBfdGhpczUucGVyZm9ybUxlYXZlKGtleSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnYXBwZWFyJykge1xuICAgICAgaWYgKGFuaW1VdGlsLmFsbG93QXBwZWFyQ2FsbGJhY2socHJvcHMpKSB7XG4gICAgICAgIHByb3BzLm9uQXBwZWFyKGtleSk7XG4gICAgICAgIHByb3BzLm9uRW5kKGtleSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhbmltVXRpbC5hbGxvd0VudGVyQ2FsbGJhY2socHJvcHMpKSB7XG4gICAgICBwcm9wcy5vbkVudGVyKGtleSk7XG4gICAgICBwcm9wcy5vbkVuZChrZXksIHRydWUpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLnBlcmZvcm1MZWF2ZSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAvLyBtYXkgYWxyZWFkeSByZW1vdmUgYnkgZXhjbHVzaXZlXG4gICAgaWYgKF90aGlzNS5jaGlsZHJlblJlZnNba2V5XSkge1xuICAgICAgX3RoaXM1LmN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XSA9IHRydWU7XG4gICAgICBfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0uY29tcG9uZW50V2lsbExlYXZlKF90aGlzNS5oYW5kbGVEb25lTGVhdmluZy5iaW5kKF90aGlzNSwga2V5KSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuaGFuZGxlRG9uZUxlYXZpbmcgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIHByb3BzID0gX3RoaXM1LnByb3BzO1xuICAgIGRlbGV0ZSBfdGhpczUuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldO1xuICAgIC8vIGlmIHVwZGF0ZSBvbiBleGNsdXNpdmUgbW9kZSwgc2tpcCBjaGVja1xuICAgIGlmIChwcm9wcy5leGNsdXNpdmUgJiYgcHJvcHMgIT09IF90aGlzNS5uZXh0UHJvcHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGN1cnJlbnRDaGlsZHJlbiA9IHRvQXJyYXlDaGlsZHJlbihnZXRDaGlsZHJlbkZyb21Qcm9wcyhwcm9wcykpO1xuICAgIC8vIGluIGNhc2Ugc3RhdGUgY2hhbmdlIGlzIHRvbyBmYXN0XG4gICAgaWYgKF90aGlzNS5pc1ZhbGlkQ2hpbGRCeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSkpIHtcbiAgICAgIF90aGlzNS5wZXJmb3JtRW50ZXIoa2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVuZCA9IGZ1bmN0aW9uIGVuZCgpIHtcbiAgICAgICAgaWYgKGFuaW1VdGlsLmFsbG93TGVhdmVDYWxsYmFjayhwcm9wcykpIHtcbiAgICAgICAgICBwcm9wcy5vbkxlYXZlKGtleSk7XG4gICAgICAgICAgcHJvcHMub25FbmQoa2V5LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpZiAoIWlzU2FtZUNoaWxkcmVuKF90aGlzNS5zdGF0ZS5jaGlsZHJlbiwgY3VycmVudENoaWxkcmVuLCBwcm9wcy5zaG93UHJvcCkpIHtcbiAgICAgICAgX3RoaXM1LnNldFN0YXRlKHtcbiAgICAgICAgICBjaGlsZHJlbjogY3VycmVudENoaWxkcmVuXG4gICAgICAgIH0sIGVuZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBbmltYXRlOyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcbiAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfTtcbn07XG4iLCIvLyAxOS4xLjIuMTQgLyAxNS4yLjMuMTQgT2JqZWN0LmtleXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB0cnVlO1xuIiwidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG4iLCJleHBvcnRzLmYgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfZGVmYXVsdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZGVmYXVsdFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBMb2NhbGVSZWNlaXZlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTG9jYWxlUmVjZWl2ZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoTG9jYWxlUmVjZWl2ZXIpO1xuXG4gIGZ1bmN0aW9uIExvY2FsZVJlY2VpdmVyKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2NhbGVSZWNlaXZlcik7XG5cbiAgICByZXR1cm4gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTG9jYWxlUmVjZWl2ZXIsIFt7XG4gICAga2V5OiBcImdldExvY2FsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRMb2NhbGUoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGNvbXBvbmVudE5hbWUgPSBfdGhpcyRwcm9wcy5jb21wb25lbnROYW1lLFxuICAgICAgICAgIGRlZmF1bHRMb2NhbGUgPSBfdGhpcyRwcm9wcy5kZWZhdWx0TG9jYWxlO1xuICAgICAgdmFyIGxvY2FsZSA9IGRlZmF1bHRMb2NhbGUgfHwgX2RlZmF1bHRbXCJkZWZhdWx0XCJdW2NvbXBvbmVudE5hbWUgfHwgJ2dsb2JhbCddO1xuICAgICAgdmFyIGFudExvY2FsZSA9IHRoaXMuY29udGV4dC5hbnRMb2NhbGU7XG4gICAgICB2YXIgbG9jYWxlRnJvbUNvbnRleHQgPSBjb21wb25lbnROYW1lICYmIGFudExvY2FsZSA/IGFudExvY2FsZVtjb21wb25lbnROYW1lXSA6IHt9O1xuICAgICAgcmV0dXJuIF9leHRlbmRzKF9leHRlbmRzKHt9LCB0eXBlb2YgbG9jYWxlID09PSAnZnVuY3Rpb24nID8gbG9jYWxlKCkgOiBsb2NhbGUpLCBsb2NhbGVGcm9tQ29udGV4dCB8fCB7fSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldExvY2FsZUNvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TG9jYWxlQ29kZSgpIHtcbiAgICAgIHZhciBhbnRMb2NhbGUgPSB0aGlzLmNvbnRleHQuYW50TG9jYWxlO1xuICAgICAgdmFyIGxvY2FsZUNvZGUgPSBhbnRMb2NhbGUgJiYgYW50TG9jYWxlLmxvY2FsZTsgLy8gSGFkIHVzZSBMb2NhbGVQcm92aWRlIGJ1dCBkaWRuJ3Qgc2V0IGxvY2FsZVxuXG4gICAgICBpZiAoYW50TG9jYWxlICYmIGFudExvY2FsZS5leGlzdCAmJiAhbG9jYWxlQ29kZSkge1xuICAgICAgICByZXR1cm4gX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmxvY2FsZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZUNvZGU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbih0aGlzLmdldExvY2FsZSgpLCB0aGlzLmdldExvY2FsZUNvZGUoKSwgdGhpcy5jb250ZXh0LmFudExvY2FsZSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIExvY2FsZVJlY2VpdmVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IExvY2FsZVJlY2VpdmVyO1xuTG9jYWxlUmVjZWl2ZXIuZGVmYXVsdFByb3BzID0ge1xuICBjb21wb25lbnROYW1lOiAnZ2xvYmFsJ1xufTtcbkxvY2FsZVJlY2VpdmVyLmNvbnRleHRUeXBlcyA9IHtcbiAgYW50TG9jYWxlOiBQcm9wVHlwZXMub2JqZWN0XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy50dXBsZU51bSA9IGV4cG9ydHMudHVwbGUgPSB2b2lkIDA7XG5cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MTc2MTY1L3dheXMtdG8tZ2V0LXN0cmluZy1saXRlcmFsLXR5cGUtb2YtYXJyYXktdmFsdWVzLXdpdGhvdXQtZW51bS1vdmVyaGVhZFxudmFyIHR1cGxlID0gZnVuY3Rpb24gdHVwbGUoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gYXJncztcbn07XG5cbmV4cG9ydHMudHVwbGUgPSB0dXBsZTtcblxudmFyIHR1cGxlTnVtID0gZnVuY3Rpb24gdHVwbGVOdW0oKSB7XG4gIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuXG4gIHJldHVybiBhcmdzO1xufTtcblxuZXhwb3J0cy50dXBsZU51bSA9IHR1cGxlTnVtOyIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2l0ZXJhdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yXCIpO1xuXG52YXIgX2l0ZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2l0ZXJhdG9yKTtcblxudmFyIF9zeW1ib2wgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2xcIik7XG5cbnZhciBfc3ltYm9sMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N5bWJvbCk7XG5cbnZhciBfdHlwZW9mID0gdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgX2l0ZXJhdG9yMi5kZWZhdWx0ID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgX3N5bWJvbDIuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gX3N5bWJvbDIuZGVmYXVsdCAmJiBvYmogIT09IF9zeW1ib2wyLmRlZmF1bHQucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgX3R5cGVvZihfaXRlcmF0b3IyLmRlZmF1bHQpID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59IDogZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICYmIHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBfc3ltYm9sMi5kZWZhdWx0ICYmIG9iaiAhPT0gX3N5bWJvbDIuZGVmYXVsdC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59OyIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX2ltcGxlbWVudGF0aW9uID0gcmVxdWlyZSgnLi9pbXBsZW1lbnRhdGlvbicpO1xuXG52YXIgX2ltcGxlbWVudGF0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ltcGxlbWVudGF0aW9uKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUNvbnRleHQgfHwgX2ltcGxlbWVudGF0aW9uMi5kZWZhdWx0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSBcImFudGQvbGliL2NoZWNrYm94XCI7XG5pbXBvcnQgJ2FudGQvbGliL2NoZWNrYm94L3N0eWxlL2luZGV4LmNzcyc7XG5pbXBvcnQgKiBhcyBUZXh0IGZyb20gXCIuL3RleHRzXCI7XG5cbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuXG5jb25zdCBDaGVja2JveEdyb3VwID0gQ2hlY2tib3guR3JvdXA7XG5cbmludGVyZmFjZSBJdGVtc1Byb3BzIHtcbiAgICBoZWFkaW5nOiBzdHJpbmcsXG4gICAgaXRlbXM6IEFycmF5PHN0cmluZz4sXG4gICAgb25TZWxlY3RlZDogKHNlbGVjdGVkOiBBcnJheTxzdHJpbmc+KSA9PiB2b2lkLFxufVxuXG5leHBvcnQgY29uc3QgSXRlbXNUb1NjYW4gPSAoe2hlYWRpbmcsIGl0ZW1zLCBvblNlbGVjdGVkfTogSXRlbXNQcm9wcykgPT4ge1xuICAgIGNvbnN0IFtjaGVja2VkSXRlbXMsIHNldENoZWNrZWRJdGVtc10gPSB1c2VTdGF0ZShbXSk7XG5cbiAgICBjb25zdCBvbkl0ZW1DaGVjayA9IHVzZUNhbGxiYWNrKChjaGVja2VkKSA9PiB7XG4gICAgICAgIHNldENoZWNrZWRJdGVtcyhjaGVja2VkKTtcbiAgICAgICAgb25TZWxlY3RlZChjaGVja2VkKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvbkNoZWNrQWxsID0gdXNlQ2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2tlZCA9IGUudGFyZ2V0LmNoZWNrZWQgPyBpdGVtcyA6IFtdO1xuICAgICAgICBzZXRDaGVja2VkSXRlbXMoY2hlY2tlZCk7XG4gICAgICAgIG9uU2VsZWN0ZWQoY2hlY2tlZCk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBzdHlsZT17e21hcmdpbkJvdHRvbTogMTB9fT5cbiAgICAgICAgICAgIDxzdHJvbmc+e2hlYWRpbmd9PC9zdHJvbmc+XG4gICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAge2l0ZW1zLmxlbmd0aCA+IDEgJiYgPGRpdiBzdHlsZT17e2JvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjRTlFOUU5J319PlxuXHRcdFx0XHQ8Q2hlY2tib3hcblx0XHRcdFx0XHRpbmRldGVybWluYXRlPXtjaGVja2VkSXRlbXMubGVuZ3RoID4gMCAmJiBjaGVja2VkSXRlbXMubGVuZ3RoICE9IGl0ZW1zLmxlbmd0aH1cblx0XHRcdFx0XHRjaGVja2VkPXtjaGVja2VkSXRlbXMubGVuZ3RoID09PSBpdGVtcy5sZW5ndGh9XG5cdFx0XHRcdFx0b25DaGFuZ2U9e29uQ2hlY2tBbGx9XG5cdFx0XHRcdD5cbiAgICAgICAgICAgICAgICAgICAge1RleHQuc2VsZWN0QWxsfVxuXHRcdFx0XHQ8L0NoZWNrYm94PlxuXHRcdFx0PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8Q2hlY2tib3hHcm91cFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e2l0ZW1zfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjaGVja2VkSXRlbXN9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uSXRlbUNoZWNrfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmludGVyZmFjZSBGaWxlc1RvU2NhbiB7XG4gICAgcGx1Z2luczogQXJyYXk8c3RyaW5nPixcbiAgICB0aGVtZXM6IEFycmF5PHN0cmluZz4sXG4gICAgb3RoZXI6IEFycmF5PHN0cmluZz5cbn1cblxuaW50ZXJmYWNlIEl0ZW1zTGlzdFByb3BzIHtcbiAgICBmaWxlc1RvU2NhbjogRmlsZXNUb1NjYW4sXG4gICAgb25TZWxlY3RlZDogKHNlbGVjdGVkOiBGaWxlc1RvU2NhbikgPT4gdm9pZCxcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW1zVG9TY2FuTGlzdCA9ICh7ZmlsZXNUb1NjYW4sIG9uU2VsZWN0ZWR9OiBJdGVtc0xpc3RQcm9wcykgPT4ge1xuICAgIGNvbnN0IFtzZWxlY3RlZFBsdWdpbnMsIHNldFNlbGVjdGVkUGx1Z2luc10gPSB1c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW3NlbGVjdGVkVGhlbWVzLCBzZXRTZWxlY3RlZFRoZW1lc10gPSB1c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW3NlbGVjdGVkT3RoZXIsIHNldFNlbGVjdGVkT3RoZXJdID0gdXNlU3RhdGUoW10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgb25TZWxlY3RlZCh7cGx1Z2luczogc2VsZWN0ZWRQbHVnaW5zLCB0aGVtZXM6IHNlbGVjdGVkVGhlbWVzLCBvdGhlcjogc2VsZWN0ZWRPdGhlcn0pO1xuICAgIH0sIFtzZWxlY3RlZFBsdWdpbnMsIHNlbGVjdGVkVGhlbWVzLCBzZWxlY3RlZE90aGVyXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICB7ZmlsZXNUb1NjYW4ucGx1Z2lucy5sZW5ndGggPiAwICYmIDxJdGVtc1RvU2NhblxuXHRcdFx0XHRoZWFkaW5nPXtUZXh0LnBsdWdpbnN9XG5cdFx0XHRcdGl0ZW1zPXtmaWxlc1RvU2Nhbi5wbHVnaW5zfVxuXHRcdFx0XHRvblNlbGVjdGVkPXsoc2VsZWN0ZWQpID0+IHNldFNlbGVjdGVkUGx1Z2lucyhzZWxlY3RlZCl9XG5cdFx0XHQvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge2ZpbGVzVG9TY2FuLnRoZW1lcy5sZW5ndGggPiAwICYmIDwgSXRlbXNUb1NjYW5cblx0XHRcdFx0aGVhZGluZz17VGV4dC50aGVtZXN9XG5cdFx0XHRcdGl0ZW1zPXtmaWxlc1RvU2Nhbi50aGVtZXN9XG5cdFx0XHRcdG9uU2VsZWN0ZWQ9eyhzZWxlY3RlZCkgPT4gc2V0U2VsZWN0ZWRUaGVtZXMoc2VsZWN0ZWQpfVxuXHRcdFx0Lz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtmaWxlc1RvU2Nhbi5vdGhlci5sZW5ndGggPiAwICYmIDxJdGVtc1RvU2NhblxuXHRcdFx0XHRoZWFkaW5nPXtUZXh0LmNvcmV9XG5cdFx0XHRcdGl0ZW1zPXtmaWxlc1RvU2Nhbi5vdGhlcn1cblx0XHRcdFx0b25TZWxlY3RlZD17KHNlbGVjdGVkKSA9PiBzZXRTZWxlY3RlZE90aGVyKHNlbGVjdGVkKX1cblx0XHRcdC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbn07XG5cbiIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCIvLyA3LjEuMSBUb1ByaW1pdGl2ZShpbnB1dCBbLCBQcmVmZXJyZWRUeXBlXSlcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xuLy8gaW5zdGVhZCBvZiB0aGUgRVM2IHNwZWMgdmVyc2lvbiwgd2UgZGlkbid0IGltcGxlbWVudCBAQHRvUHJpbWl0aXZlIGNhc2Vcbi8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgUykge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIGl0O1xuICB2YXIgZm4sIHZhbDtcbiAgaWYgKFMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICh0eXBlb2YgKGZuID0gaXQudmFsdWVPZikgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbn07XG4iLCIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gNy4xLjQgVG9JbnRlZ2VyXG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcbiIsInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAyMCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwiLy8gSUUgOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSAoXG4gICdjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2YnXG4pLnNwbGl0KCcsJyk7XG4iLCJleHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuIiwiLy8gNy4xLjEzIFRvT2JqZWN0KGFyZ3VtZW50KVxudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwiLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBkUHMgPSByZXF1aXJlKCcuL19vYmplY3QtZHBzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgRW1wdHkgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBjcmVhdGVEaWN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gcmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdpZnJhbWUnKTtcbiAgdmFyIGkgPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHZhciBsdCA9ICc8JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICByZXF1aXJlKCcuL19odG1sJykuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0Oic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2NyaXB0LXVybFxuICAvLyBjcmVhdGVEaWN0ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuT2JqZWN0O1xuICAvLyBodG1sLnJlbW92ZUNoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyAnc2NyaXB0JyArIGd0ICsgJ2RvY3VtZW50LkY9T2JqZWN0JyArIGx0ICsgJy9zY3JpcHQnICsgZ3QpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICBjcmVhdGVEaWN0ID0gaWZyYW1lRG9jdW1lbnQuRjtcbiAgd2hpbGUgKGktLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tpXV07XG4gIHJldHVybiBjcmVhdGVEaWN0KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5KCk7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gY3JlYXRlRGljdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZFBzKHJlc3VsdCwgUHJvcGVydGllcyk7XG59O1xuIiwidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG4iLCJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgd2tzRXh0ID0gcmVxdWlyZSgnLi9fd2tzLWV4dCcpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgdmFyICRTeW1ib2wgPSBjb3JlLlN5bWJvbCB8fCAoY29yZS5TeW1ib2wgPSBMSUJSQVJZID8ge30gOiBnbG9iYWwuU3ltYm9sIHx8IHt9KTtcbiAgaWYgKG5hbWUuY2hhckF0KDApICE9ICdfJyAmJiAhKG5hbWUgaW4gJFN5bWJvbCkpIGRlZmluZVByb3BlcnR5KCRTeW1ib2wsIG5hbWUsIHsgdmFsdWU6IHdrc0V4dC5mKG5hbWUpIH0pO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5jaGFuZ2VDb25maXJtTG9jYWxlID0gY2hhbmdlQ29uZmlybUxvY2FsZTtcbmV4cG9ydHMuZ2V0Q29uZmlybUxvY2FsZSA9IGdldENvbmZpcm1Mb2NhbGU7XG5cbnZhciBfZGVmYXVsdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS9kZWZhdWx0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbnZhciBydW50aW1lTG9jYWxlID0gX2V4dGVuZHMoe30sIF9kZWZhdWx0W1wiZGVmYXVsdFwiXS5Nb2RhbCk7XG5cbmZ1bmN0aW9uIGNoYW5nZUNvbmZpcm1Mb2NhbGUobmV3TG9jYWxlKSB7XG4gIGlmIChuZXdMb2NhbGUpIHtcbiAgICBydW50aW1lTG9jYWxlID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIHJ1bnRpbWVMb2NhbGUpLCBuZXdMb2NhbGUpO1xuICB9IGVsc2Uge1xuICAgIHJ1bnRpbWVMb2NhbGUgPSBfZXh0ZW5kcyh7fSwgX2RlZmF1bHRbXCJkZWZhdWx0XCJdLk1vZGFsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRDb25maXJtTG9jYWxlKCkge1xuICByZXR1cm4gcnVudGltZUxvY2FsZTtcbn0iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMudmFsaWRQcm9ncmVzcyA9IHZhbGlkUHJvZ3Jlc3M7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvcHJlZmVyLWRlZmF1bHQtZXhwb3J0XG5mdW5jdGlvbiB2YWxpZFByb2dyZXNzKHByb2dyZXNzKSB7XG4gIGlmICghcHJvZ3Jlc3MgfHwgcHJvZ3Jlc3MgPCAwKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZiAocHJvZ3Jlc3MgPiAxMDApIHtcbiAgICByZXR1cm4gMTAwO1xuICB9XG5cbiAgcmV0dXJuIHByb2dyZXNzO1xufSIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWdlbmVyYXRvci1ydW50aW1lXCIpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9vbWl0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwib21pdC5qc1wiKSk7XG5cbnZhciBfR3JpZCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vR3JpZFwiKSk7XG5cbnZhciBfTWV0YSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vTWV0YVwiKSk7XG5cbnZhciBfdGFicyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3RhYnNcIikpO1xuXG52YXIgX3JvdyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3Jvd1wiKSk7XG5cbnZhciBfY29sID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vY29sXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxuZnVuY3Rpb24gZ2V0QWN0aW9uKGFjdGlvbnMpIHtcbiAgdmFyIGFjdGlvbkxpc3QgPSBhY3Rpb25zLm1hcChmdW5jdGlvbiAoYWN0aW9uLCBpbmRleCkge1xuICAgIHJldHVybiAoXG4gICAgICAvKiNfX1BVUkVfXyovXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge1xuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIHdpZHRoOiBcIlwiLmNvbmNhdCgxMDAgLyBhY3Rpb25zLmxlbmd0aCwgXCIlXCIpXG4gICAgICAgIH0sXG4gICAgICAgIGtleTogXCJhY3Rpb24tXCIuY29uY2F0KGluZGV4KVxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIGFjdGlvbikpXG4gICAgKTtcbiAgfSk7XG4gIHJldHVybiBhY3Rpb25MaXN0O1xufVxuXG52YXIgQ2FyZCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ2FyZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDYXJkKTtcblxuICBmdW5jdGlvbiBDYXJkKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDYXJkKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5vblRhYkNoYW5nZSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vblRhYkNoYW5nZSkge1xuICAgICAgICBfdGhpcy5wcm9wcy5vblRhYkNoYW5nZShrZXkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJDYXJkID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcywgX2V4dHJhUHJvcHM7XG5cbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSxcbiAgICAgICAgICBleHRyYSA9IF9hLmV4dHJhLFxuICAgICAgICAgIF9hJGhlYWRTdHlsZSA9IF9hLmhlYWRTdHlsZSxcbiAgICAgICAgICBoZWFkU3R5bGUgPSBfYSRoZWFkU3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX2EkaGVhZFN0eWxlLFxuICAgICAgICAgIF9hJGJvZHlTdHlsZSA9IF9hLmJvZHlTdHlsZSxcbiAgICAgICAgICBib2R5U3R5bGUgPSBfYSRib2R5U3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX2EkYm9keVN0eWxlLFxuICAgICAgICAgIHRpdGxlID0gX2EudGl0bGUsXG4gICAgICAgICAgbG9hZGluZyA9IF9hLmxvYWRpbmcsXG4gICAgICAgICAgX2EkYm9yZGVyZWQgPSBfYS5ib3JkZXJlZCxcbiAgICAgICAgICBib3JkZXJlZCA9IF9hJGJvcmRlcmVkID09PSB2b2lkIDAgPyB0cnVlIDogX2EkYm9yZGVyZWQsXG4gICAgICAgICAgX2Ekc2l6ZSA9IF9hLnNpemUsXG4gICAgICAgICAgc2l6ZSA9IF9hJHNpemUgPT09IHZvaWQgMCA/ICdkZWZhdWx0JyA6IF9hJHNpemUsXG4gICAgICAgICAgdHlwZSA9IF9hLnR5cGUsXG4gICAgICAgICAgY292ZXIgPSBfYS5jb3ZlcixcbiAgICAgICAgICBhY3Rpb25zID0gX2EuYWN0aW9ucyxcbiAgICAgICAgICB0YWJMaXN0ID0gX2EudGFiTGlzdCxcbiAgICAgICAgICBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLFxuICAgICAgICAgIGFjdGl2ZVRhYktleSA9IF9hLmFjdGl2ZVRhYktleSxcbiAgICAgICAgICBkZWZhdWx0QWN0aXZlVGFiS2V5ID0gX2EuZGVmYXVsdEFjdGl2ZVRhYktleSxcbiAgICAgICAgICB0YWJCYXJFeHRyYUNvbnRlbnQgPSBfYS50YWJCYXJFeHRyYUNvbnRlbnQsXG4gICAgICAgICAgb3RoZXJzID0gX19yZXN0KF9hLCBbXCJwcmVmaXhDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJleHRyYVwiLCBcImhlYWRTdHlsZVwiLCBcImJvZHlTdHlsZVwiLCBcInRpdGxlXCIsIFwibG9hZGluZ1wiLCBcImJvcmRlcmVkXCIsIFwic2l6ZVwiLCBcInR5cGVcIiwgXCJjb3ZlclwiLCBcImFjdGlvbnNcIiwgXCJ0YWJMaXN0XCIsIFwiY2hpbGRyZW5cIiwgXCJhY3RpdmVUYWJLZXlcIiwgXCJkZWZhdWx0QWN0aXZlVGFiS2V5XCIsIFwidGFiQmFyRXh0cmFDb250ZW50XCJdKTtcblxuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnY2FyZCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgY2xhc3NTdHJpbmcgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIGNsYXNzTmFtZSwgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sb2FkaW5nXCIpLCBsb2FkaW5nKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWJvcmRlcmVkXCIpLCBib3JkZXJlZCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ob3ZlcmFibGVcIiksIF90aGlzLmdldENvbXBhdGlibGVIb3ZlcmFibGUoKSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jb250YWluLWdyaWRcIiksIF90aGlzLmlzQ29udGFpbkdyaWQoKSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jb250YWluLXRhYnNcIiksIHRhYkxpc3QgJiYgdGFiTGlzdC5sZW5ndGgpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplKSwgc2l6ZSAhPT0gJ2RlZmF1bHQnKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXR5cGUtXCIpLmNvbmNhdCh0eXBlKSwgISF0eXBlKSwgX2NsYXNzTmFtZXMpKTtcbiAgICAgIHZhciBsb2FkaW5nQmxvY2tTdHlsZSA9IGJvZHlTdHlsZS5wYWRkaW5nID09PSAwIHx8IGJvZHlTdHlsZS5wYWRkaW5nID09PSAnMHB4JyA/IHtcbiAgICAgICAgcGFkZGluZzogMjRcbiAgICAgIH0gOiB1bmRlZmluZWQ7XG4gICAgICB2YXIgbG9hZGluZ0Jsb2NrID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbG9hZGluZy1jb250ZW50XCIpLFxuICAgICAgICBzdHlsZTogbG9hZGluZ0Jsb2NrU3R5bGVcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yb3dbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGd1dHRlcjogOFxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbFtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgc3BhbjogMjJcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWxvYWRpbmctYmxvY2tcIilcbiAgICAgIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yb3dbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGd1dHRlcjogOFxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbFtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgc3BhbjogOFxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbG9hZGluZy1ibG9ja1wiKVxuICAgICAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29sW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBzcGFuOiAxNVxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbG9hZGluZy1ibG9ja1wiKVxuICAgICAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3Jvd1tcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgZ3V0dGVyOiA4XG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29sW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBzcGFuOiA2XG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sb2FkaW5nLWJsb2NrXCIpXG4gICAgICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb2xbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHNwYW46IDE4XG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sb2FkaW5nLWJsb2NrXCIpXG4gICAgICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcm93W1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBndXR0ZXI6IDhcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb2xbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHNwYW46IDEzXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sb2FkaW5nLWJsb2NrXCIpXG4gICAgICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb2xbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHNwYW46IDlcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWxvYWRpbmctYmxvY2tcIilcbiAgICAgIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yb3dbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGd1dHRlcjogOFxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbFtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgc3BhbjogNFxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbG9hZGluZy1ibG9ja1wiKVxuICAgICAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29sW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBzcGFuOiAzXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sb2FkaW5nLWJsb2NrXCIpXG4gICAgICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb2xbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHNwYW46IDE2XG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sb2FkaW5nLWJsb2NrXCIpXG4gICAgICB9KSkpKTtcbiAgICAgIHZhciBoYXNBY3RpdmVUYWJLZXkgPSBhY3RpdmVUYWJLZXkgIT09IHVuZGVmaW5lZDtcbiAgICAgIHZhciBleHRyYVByb3BzID0gKF9leHRyYVByb3BzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfZXh0cmFQcm9wcywgaGFzQWN0aXZlVGFiS2V5ID8gJ2FjdGl2ZUtleScgOiAnZGVmYXVsdEFjdGl2ZUtleScsIGhhc0FjdGl2ZVRhYktleSA/IGFjdGl2ZVRhYktleSA6IGRlZmF1bHRBY3RpdmVUYWJLZXkpLCBfZGVmaW5lUHJvcGVydHkoX2V4dHJhUHJvcHMsIFwidGFiQmFyRXh0cmFDb250ZW50XCIsIHRhYkJhckV4dHJhQ29udGVudCksIF9leHRyYVByb3BzKTtcbiAgICAgIHZhciBoZWFkO1xuICAgICAgdmFyIHRhYnMgPSB0YWJMaXN0ICYmIHRhYkxpc3QubGVuZ3RoID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3RhYnNbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgZXh0cmFQcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaGVhZC10YWJzXCIpLFxuICAgICAgICBzaXplOiBcImxhcmdlXCIsXG4gICAgICAgIG9uQ2hhbmdlOiBfdGhpcy5vblRhYkNoYW5nZVxuICAgICAgfSksIHRhYkxpc3QubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfdGFic1tcImRlZmF1bHRcIl0uVGFiUGFuZSwge1xuICAgICAgICAgIHRhYjogaXRlbS50YWIsXG4gICAgICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICAgICAga2V5OiBpdGVtLmtleVxuICAgICAgICB9KTtcbiAgICAgIH0pKSA6IG51bGw7XG5cbiAgICAgIGlmICh0aXRsZSB8fCBleHRyYSB8fCB0YWJzKSB7XG4gICAgICAgIGhlYWQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWhlYWRcIiksXG4gICAgICAgICAgc3R5bGU6IGhlYWRTdHlsZVxuICAgICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWhlYWQtd3JhcHBlclwiKVxuICAgICAgICB9LCB0aXRsZSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWhlYWQtdGl0bGVcIilcbiAgICAgICAgfSwgdGl0bGUpLCBleHRyYSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWV4dHJhXCIpXG4gICAgICAgIH0sIGV4dHJhKSksIHRhYnMpO1xuICAgICAgfVxuXG4gICAgICB2YXIgY292ZXJEb20gPSBjb3ZlciA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNvdmVyXCIpXG4gICAgICB9LCBjb3ZlcikgOiBudWxsO1xuICAgICAgdmFyIGJvZHkgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ib2R5XCIpLFxuICAgICAgICBzdHlsZTogYm9keVN0eWxlXG4gICAgICB9LCBsb2FkaW5nID8gbG9hZGluZ0Jsb2NrIDogY2hpbGRyZW4pO1xuICAgICAgdmFyIGFjdGlvbkRvbSA9IGFjdGlvbnMgJiYgYWN0aW9ucy5sZW5ndGggPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWFjdGlvbnNcIilcbiAgICAgIH0sIGdldEFjdGlvbihhY3Rpb25zKSkgOiBudWxsO1xuICAgICAgdmFyIGRpdlByb3BzID0gKDAsIF9vbWl0W1wiZGVmYXVsdFwiXSkob3RoZXJzLCBbJ29uVGFiQ2hhbmdlJywgJ25vSG92ZXJpbmcnLCAnaG92ZXJhYmxlJ10pO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBkaXZQcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzU3RyaW5nXG4gICAgICB9KSwgaGVhZCwgY292ZXJEb20sIGJvZHksIGFjdGlvbkRvbSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDYXJkLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmICgnbm9Ib3ZlcmluZycgaW4gdGhpcy5wcm9wcykge1xuICAgICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKSghdGhpcy5wcm9wcy5ub0hvdmVyaW5nLCAnQ2FyZCcsICdgbm9Ib3ZlcmluZ2AgaXMgZGVwcmVjYXRlZCwgeW91IGNhbiByZW1vdmUgaXQgc2FmZWx5IG9yIHVzZSBgaG92ZXJhYmxlYCBpbnN0ZWFkLicpO1xuICAgICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKSghIXRoaXMucHJvcHMubm9Ib3ZlcmluZywgJ0NhcmQnLCAnYG5vSG92ZXJpbmc9e2ZhbHNlfWAgaXMgZGVwcmVjYXRlZCwgdXNlIGBob3ZlcmFibGVgIGluc3RlYWQuJyk7XG4gICAgICB9XG4gICAgfSAvLyBGb3IgMi54IGNvbXBhdGlibGVcblxuICB9LCB7XG4gICAga2V5OiBcImdldENvbXBhdGlibGVIb3ZlcmFibGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q29tcGF0aWJsZUhvdmVyYWJsZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgbm9Ib3ZlcmluZyA9IF90aGlzJHByb3BzLm5vSG92ZXJpbmcsXG4gICAgICAgICAgaG92ZXJhYmxlID0gX3RoaXMkcHJvcHMuaG92ZXJhYmxlO1xuXG4gICAgICBpZiAoJ25vSG92ZXJpbmcnIGluIHRoaXMucHJvcHMpIHtcbiAgICAgICAgcmV0dXJuICFub0hvdmVyaW5nIHx8IGhvdmVyYWJsZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICEhaG92ZXJhYmxlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc0NvbnRhaW5HcmlkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzQ29udGFpbkdyaWQoKSB7XG4gICAgICB2YXIgY29udGFpbkdyaWQ7XG4gICAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKHRoaXMucHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQudHlwZSAmJiBlbGVtZW50LnR5cGUgPT09IF9HcmlkW1wiZGVmYXVsdFwiXSkge1xuICAgICAgICAgIGNvbnRhaW5HcmlkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gY29udGFpbkdyaWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlckNhcmQpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDYXJkO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IENhcmQ7XG5DYXJkLkdyaWQgPSBfR3JpZFtcImRlZmF1bHRcIl07XG5DYXJkLk1ldGEgPSBfTWV0YVtcImRlZmF1bHRcIl07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX3JjQ2hlY2tib3ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1jaGVja2JveFwiKSk7XG5cbnZhciBfc2hhbGxvd2VxdWFsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwic2hhbGxvd2VxdWFsXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIENoZWNrYm94ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhDaGVja2JveCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDaGVja2JveCk7XG5cbiAgZnVuY3Rpb24gQ2hlY2tib3goKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENoZWNrYm94KTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5zYXZlQ2hlY2tib3ggPSBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgX3RoaXMucmNDaGVja2JveCA9IG5vZGU7XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckNoZWNrYm94ID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUucHJvcHMsXG4gICAgICAgICAgY29udGV4dCA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZS5jb250ZXh0O1xuXG4gICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIGluZGV0ZXJtaW5hdGUgPSBwcm9wcy5pbmRldGVybWluYXRlLFxuICAgICAgICAgIHN0eWxlID0gcHJvcHMuc3R5bGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyID0gcHJvcHMub25Nb3VzZUVudGVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSA9IHByb3BzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcInByZWZpeENsc1wiLCBcImNsYXNzTmFtZVwiLCBcImNoaWxkcmVuXCIsIFwiaW5kZXRlcm1pbmF0ZVwiLCBcInN0eWxlXCIsIFwib25Nb3VzZUVudGVyXCIsIFwib25Nb3VzZUxlYXZlXCJdKTtcblxuICAgICAgdmFyIGNoZWNrYm94R3JvdXAgPSBjb250ZXh0LmNoZWNrYm94R3JvdXA7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdjaGVja2JveCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG5cbiAgICAgIHZhciBjaGVja2JveFByb3BzID0gX2V4dGVuZHMoe30sIHJlc3RQcm9wcyk7XG5cbiAgICAgIGlmIChjaGVja2JveEdyb3VwKSB7XG4gICAgICAgIGNoZWNrYm94UHJvcHMub25DaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKHJlc3RQcm9wcy5vbkNoYW5nZSkge1xuICAgICAgICAgICAgcmVzdFByb3BzLm9uQ2hhbmdlLmFwcGx5KHJlc3RQcm9wcywgYXJndW1lbnRzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjaGVja2JveEdyb3VwLnRvZ2dsZU9wdGlvbih7XG4gICAgICAgICAgICBsYWJlbDogY2hpbGRyZW4sXG4gICAgICAgICAgICB2YWx1ZTogcHJvcHMudmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBjaGVja2JveFByb3BzLm5hbWUgPSBjaGVja2JveEdyb3VwLm5hbWU7XG4gICAgICAgIGNoZWNrYm94UHJvcHMuY2hlY2tlZCA9IGNoZWNrYm94R3JvdXAudmFsdWUuaW5kZXhPZihwcm9wcy52YWx1ZSkgIT09IC0xO1xuICAgICAgICBjaGVja2JveFByb3BzLmRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQgfHwgY2hlY2tib3hHcm91cC5kaXNhYmxlZDtcbiAgICAgIH1cblxuICAgICAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoY2xhc3NOYW1lLCAoX2NsYXNzTmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXdyYXBwZXJcIiksIHRydWUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItd3JhcHBlci1jaGVja2VkXCIpLCBjaGVja2JveFByb3BzLmNoZWNrZWQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItd3JhcHBlci1kaXNhYmxlZFwiKSwgY2hlY2tib3hQcm9wcy5kaXNhYmxlZCksIF9jbGFzc05hbWVzKSk7XG4gICAgICB2YXIgY2hlY2tib3hDbGFzcyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pbmRldGVybWluYXRlXCIpLCBpbmRldGVybWluYXRlKSk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAvKiNfX1BVUkVfXyovXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc3gtYTExeS9sYWJlbC1oYXMtYXNzb2NpYXRlZC1jb250cm9sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZyxcbiAgICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiBvbk1vdXNlTGVhdmVcbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3JjQ2hlY2tib3hbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgY2hlY2tib3hQcm9wcywge1xuICAgICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2hlY2tib3hDbGFzcyxcbiAgICAgICAgICByZWY6IF90aGlzLnNhdmVDaGVja2JveFxuICAgICAgICB9KSksIGNoaWxkcmVuICE9PSB1bmRlZmluZWQgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIGNoaWxkcmVuKSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDaGVja2JveCwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgdmFsdWUgPSB0aGlzLnByb3BzLnZhbHVlO1xuXG4gICAgICB2YXIgX3JlZjIgPSB0aGlzLmNvbnRleHQgfHwge30sXG4gICAgICAgICAgX3JlZjIkY2hlY2tib3hHcm91cCA9IF9yZWYyLmNoZWNrYm94R3JvdXAsXG4gICAgICAgICAgY2hlY2tib3hHcm91cCA9IF9yZWYyJGNoZWNrYm94R3JvdXAgPT09IHZvaWQgMCA/IHt9IDogX3JlZjIkY2hlY2tib3hHcm91cDtcblxuICAgICAgaWYgKGNoZWNrYm94R3JvdXAucmVnaXN0ZXJWYWx1ZSkge1xuICAgICAgICBjaGVja2JveEdyb3VwLnJlZ2lzdGVyVmFsdWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKSgnY2hlY2tlZCcgaW4gdGhpcy5wcm9wcyB8fCAodGhpcy5jb250ZXh0IHx8IHt9KS5jaGVja2JveEdyb3VwIHx8ICEoJ3ZhbHVlJyBpbiB0aGlzLnByb3BzKSwgJ0NoZWNrYm94JywgJ2B2YWx1ZWAgaXMgbm90IHZhbGlkYXRlIHByb3AsIGRvIHlvdSBtZWFuIGBjaGVja2VkYD8nKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2hvdWxkQ29tcG9uZW50VXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSwgbmV4dENvbnRleHQpIHtcbiAgICAgIHJldHVybiAhKDAsIF9zaGFsbG93ZXF1YWxbXCJkZWZhdWx0XCJdKSh0aGlzLnByb3BzLCBuZXh0UHJvcHMpIHx8ICEoMCwgX3NoYWxsb3dlcXVhbFtcImRlZmF1bHRcIl0pKHRoaXMuc3RhdGUsIG5leHRTdGF0ZSkgfHwgISgwLCBfc2hhbGxvd2VxdWFsW1wiZGVmYXVsdFwiXSkodGhpcy5jb250ZXh0LmNoZWNrYm94R3JvdXAsIG5leHRDb250ZXh0LmNoZWNrYm94R3JvdXApO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKF9yZWYzKSB7XG4gICAgICB2YXIgcHJldlZhbHVlID0gX3JlZjMudmFsdWU7XG4gICAgICB2YXIgdmFsdWUgPSB0aGlzLnByb3BzLnZhbHVlO1xuXG4gICAgICB2YXIgX3JlZjQgPSB0aGlzLmNvbnRleHQgfHwge30sXG4gICAgICAgICAgX3JlZjQkY2hlY2tib3hHcm91cCA9IF9yZWY0LmNoZWNrYm94R3JvdXAsXG4gICAgICAgICAgY2hlY2tib3hHcm91cCA9IF9yZWY0JGNoZWNrYm94R3JvdXAgPT09IHZvaWQgMCA/IHt9IDogX3JlZjQkY2hlY2tib3hHcm91cDtcblxuICAgICAgaWYgKHZhbHVlICE9PSBwcmV2VmFsdWUgJiYgY2hlY2tib3hHcm91cC5yZWdpc3RlclZhbHVlICYmIGNoZWNrYm94R3JvdXAuY2FuY2VsVmFsdWUpIHtcbiAgICAgICAgY2hlY2tib3hHcm91cC5jYW5jZWxWYWx1ZShwcmV2VmFsdWUpO1xuICAgICAgICBjaGVja2JveEdyb3VwLnJlZ2lzdGVyVmFsdWUodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHRoaXMucHJvcHMudmFsdWU7XG5cbiAgICAgIHZhciBfcmVmNSA9IHRoaXMuY29udGV4dCB8fCB7fSxcbiAgICAgICAgICBfcmVmNSRjaGVja2JveEdyb3VwID0gX3JlZjUuY2hlY2tib3hHcm91cCxcbiAgICAgICAgICBjaGVja2JveEdyb3VwID0gX3JlZjUkY2hlY2tib3hHcm91cCA9PT0gdm9pZCAwID8ge30gOiBfcmVmNSRjaGVja2JveEdyb3VwO1xuXG4gICAgICBpZiAoY2hlY2tib3hHcm91cC5jYW5jZWxWYWx1ZSkge1xuICAgICAgICBjaGVja2JveEdyb3VwLmNhbmNlbFZhbHVlKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9jdXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXMoKSB7XG4gICAgICB0aGlzLnJjQ2hlY2tib3guZm9jdXMoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYmx1clwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBibHVyKCkge1xuICAgICAgdGhpcy5yY0NoZWNrYm94LmJsdXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyQ2hlY2tib3gpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDaGVja2JveDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuQ2hlY2tib3guX19BTlRfQ0hFQ0tCT1ggPSB0cnVlO1xuQ2hlY2tib3guZGVmYXVsdFByb3BzID0ge1xuICBpbmRldGVybWluYXRlOiBmYWxzZVxufTtcbkNoZWNrYm94LmNvbnRleHRUeXBlcyA9IHtcbiAgY2hlY2tib3hHcm91cDogUHJvcFR5cGVzLmFueVxufTtcbigwLCBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0LnBvbHlmaWxsKShDaGVja2JveCk7XG52YXIgX2RlZmF1bHQgPSBDaGVja2JveDtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuICBhRnVuY3Rpb24oZm4pO1xuICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZm47XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyICRpdGVyQ3JlYXRlID0gcmVxdWlyZSgnLi9faXRlci1jcmVhdGUnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBCVUdHWSA9ICEoW10ua2V5cyAmJiAnbmV4dCcgaW4gW10ua2V5cygpKTsgLy8gU2FmYXJpIGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxudmFyIEZGX0lURVJBVE9SID0gJ0BAaXRlcmF0b3InO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQmFzZSwgTkFNRSwgQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gICRpdGVyQ3JlYXRlKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcbiAgdmFyIGdldE1ldGhvZCA9IGZ1bmN0aW9uIChraW5kKSB7XG4gICAgaWYgKCFCVUdHWSAmJiBraW5kIGluIHByb3RvKSByZXR1cm4gcHJvdG9ba2luZF07XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgfSByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgfTtcbiAgdmFyIFRBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIERFRl9WQUxVRVMgPSBERUZBVUxUID09IFZBTFVFUztcbiAgdmFyIFZBTFVFU19CVUcgPSBmYWxzZTtcbiAgdmFyIHByb3RvID0gQmFzZS5wcm90b3R5cGU7XG4gIHZhciAkbmF0aXZlID0gcHJvdG9bSVRFUkFUT1JdIHx8IHByb3RvW0ZGX0lURVJBVE9SXSB8fCBERUZBVUxUICYmIHByb3RvW0RFRkFVTFRdO1xuICB2YXIgJGRlZmF1bHQgPSAkbmF0aXZlIHx8IGdldE1ldGhvZChERUZBVUxUKTtcbiAgdmFyICRlbnRyaWVzID0gREVGQVVMVCA/ICFERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoJ2VudHJpZXMnKSA6IHVuZGVmaW5lZDtcbiAgdmFyICRhbnlOYXRpdmUgPSBOQU1FID09ICdBcnJheScgPyBwcm90by5lbnRyaWVzIHx8ICRuYXRpdmUgOiAkbmF0aXZlO1xuICB2YXIgbWV0aG9kcywga2V5LCBJdGVyYXRvclByb3RvdHlwZTtcbiAgLy8gRml4IG5hdGl2ZVxuICBpZiAoJGFueU5hdGl2ZSkge1xuICAgIEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoJGFueU5hdGl2ZS5jYWxsKG5ldyBCYXNlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgSXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoSXRlcmF0b3JQcm90b3R5cGUsIFRBRywgdHJ1ZSk7XG4gICAgICAvLyBmaXggZm9yIHNvbWUgb2xkIGVuZ2luZXNcbiAgICAgIGlmICghTElCUkFSWSAmJiB0eXBlb2YgSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIGhpZGUoSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICB9XG4gIH1cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGX1ZBTFVFUyAmJiAkbmF0aXZlICYmICRuYXRpdmUubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgVkFMVUVTX0JVRyA9IHRydWU7XG4gICAgJGRlZmF1bHQgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiAkbmF0aXZlLmNhbGwodGhpcyk7IH07XG4gIH1cbiAgLy8gRGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUxJQlJBUlkgfHwgRk9SQ0VEKSAmJiAoQlVHR1kgfHwgVkFMVUVTX0JVRyB8fCAhcHJvdG9bSVRFUkFUT1JdKSkge1xuICAgIGhpZGUocHJvdG8sIElURVJBVE9SLCAkZGVmYXVsdCk7XG4gIH1cbiAgLy8gUGx1ZyBmb3IgbGlicmFyeVxuICBJdGVyYXRvcnNbTkFNRV0gPSAkZGVmYXVsdDtcbiAgSXRlcmF0b3JzW1RBR10gPSByZXR1cm5UaGlzO1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiAkZW50cmllc1xuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChrZXkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKCEoa2V5IGluIHByb3RvKSkgcmVkZWZpbmUocHJvdG8sIGtleSwgbWV0aG9kc1trZXldKTtcbiAgICB9IGVsc2UgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoQlVHR1kgfHwgVkFMVUVTX0JVRyksIE5BTUUsIG1ldGhvZHMpO1xuICB9XG4gIHJldHVybiBtZXRob2RzO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9faGlkZScpO1xuIiwiLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpLmNvbmNhdCgnbGVuZ3RoJywgJ3Byb3RvdHlwZScpO1xuXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGhpZGRlbktleXMpO1xufTtcbiIsInZhciBwSUUgPSByZXF1aXJlKCcuL19vYmplY3QtcGllJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgZ09QRCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBnT1BEIDogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgTyA9IHRvSU9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGdPUEQoTywgUCk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoaGFzKE8sIFApKSByZXR1cm4gY3JlYXRlRGVzYyghcElFLmYuY2FsbChPLCBQKSwgT1tQXSk7XG59O1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFmcmlrYWFucyBbYWZdXG4vLyEgYXV0aG9yIDogV2VybmVyIE1vbGxlbnR6ZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS93ZXJuZXJtXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYWYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhZicsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyaWVfRmVicnVhcmllX01hYXJ0X0FwcmlsX01laV9KdW5pZV9KdWxpZV9BdWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01ydF9BcHJfTWVpX0p1bl9KdWxfQXVnX1NlcF9Pa3RfTm92X0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTb25kYWdfTWFhbmRhZ19EaW5zZGFnX1dvZW5zZGFnX0RvbmRlcmRhZ19WcnlkYWdfU2F0ZXJkYWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTb25fTWFhX0Rpbl9Xb2VfRG9uX1ZyeV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTWFfRGlfV29fRG9fVnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC92bXxubS9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXm5tJC9pLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3ZtJyA6ICdWTSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ25tJyA6ICdOTSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVmFuZGFnIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW03DtHJlIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0dpc3RlciBvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFhc10gZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb29yICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBnZWxlZGUnLFxuICAgICAgICAgICAgczogXCInbiBwYWFyIHNla29uZGVzXCIsXG4gICAgICAgICAgICBzczogJyVkIHNla29uZGVzJyxcbiAgICAgICAgICAgIG06IFwiJ24gbWludXV0XCIsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZScsXG4gICAgICAgICAgICBoOiBcIiduIHV1clwiLFxuICAgICAgICAgICAgaGg6ICclZCB1cmUnLFxuICAgICAgICAgICAgZDogXCInbiBkYWdcIixcbiAgICAgICAgICAgIGRkOiAnJWQgZGFlJyxcbiAgICAgICAgICAgIE06IFwiJ24gbWFhbmRcIixcbiAgICAgICAgICAgIE1NOiAnJWQgbWFhbmRlJyxcbiAgICAgICAgICAgIHk6IFwiJ24gamFhclwiLFxuICAgICAgICAgICAgeXk6ICclZCBqYWFyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwID8gJ3N0ZScgOiAnZGUnKVxuICAgICAgICAgICAgKTsgLy8gVGhhbmtzIHRvIEpvcmlzIFLDtmxpbmcgOiBodHRwczovL2dpdGh1Yi5jb20vamp1cGl0ZXJcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNYWFuZGFnIGlzIGRpZSBlZXJzdGUgZGFnIHZhbiBkaWUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gRGllIHdlZWsgd2F0IGRpZSA0ZGUgSmFudWFyaWUgYmV2YXQgaXMgZGllIGVlcnN0ZSB3ZWVrIHZhbiBkaWUgamFhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhZjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgW2FyXVxuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmRlbHNhaWRcbi8vISBhdXRob3IgOiBBaG1lZCBFbGtoYXRpYlxuLy8hIGF1dGhvciA6IGZvcmFiaSBodHRwczovL2dpdGh1Yi5jb20vZm9yYWJpXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn2aEnLFxuICAgICAgICAgICAgJzInOiAn2aInLFxuICAgICAgICAgICAgJzMnOiAn2aMnLFxuICAgICAgICAgICAgJzQnOiAn2aQnLFxuICAgICAgICAgICAgJzUnOiAn2aUnLFxuICAgICAgICAgICAgJzYnOiAn2aYnLFxuICAgICAgICAgICAgJzcnOiAn2acnLFxuICAgICAgICAgICAgJzgnOiAn2agnLFxuICAgICAgICAgICAgJzknOiAn2aknLFxuICAgICAgICAgICAgJzAnOiAn2aAnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn2aEnOiAnMScsXG4gICAgICAgICAgICAn2aInOiAnMicsXG4gICAgICAgICAgICAn2aMnOiAnMycsXG4gICAgICAgICAgICAn2aQnOiAnNCcsXG4gICAgICAgICAgICAn2aUnOiAnNScsXG4gICAgICAgICAgICAn2aYnOiAnNicsXG4gICAgICAgICAgICAn2acnOiAnNycsXG4gICAgICAgICAgICAn2agnOiAnOCcsXG4gICAgICAgICAgICAn2aknOiAnOScsXG4gICAgICAgICAgICAn2aAnOiAnMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbEZvcm0gPSBmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgcmV0dXJuIG4gPT09IDBcbiAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICA6IG4gPT09IDFcbiAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICA6IG4gPT09IDJcbiAgICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMyAmJiBuICUgMTAwIDw9IDEwXG4gICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDExXG4gICAgICAgICAgICAgICAgPyA0XG4gICAgICAgICAgICAgICAgOiA1O1xuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxzID0ge1xuICAgICAgICAgICAgczogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAn2KvYp9mG2YrYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9ir2KfZhtmK2KrYp9mGJywgJ9ir2KfZhtmK2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINir2YjYp9mGJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJ9iv2YLZitmC2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYr9mC2YrZgtiq2KfZhicsICfYr9mC2YrZgtiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGg6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICfYs9in2LnYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iz2KfYudiq2KfZhicsICfYs9in2LnYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGQ6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2YrZiNmFJyxcbiAgICAgICAgICAgICAgICAn2YrZiNmFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9mK2YjZhdin2YYnLCAn2YrZiNmF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIE06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAn2LTZh9ixINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i02YfYsdin2YYnLCAn2LTZh9ix2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsdinJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ixJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB5OiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi52KfZhScsXG4gICAgICAgICAgICAgICAgJ9i52KfZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYudin2YXYp9mGJywgJ9i52KfZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYudmI2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFsaXplID0gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGYgPSBwbHVyYWxGb3JtKG51bWJlciksXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHBsdXJhbHNbdV1bcGx1cmFsRm9ybShudW1iZXIpXTtcbiAgICAgICAgICAgICAgICBpZiAoZiA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHJbd2l0aG91dFN1ZmZpeCA/IDAgOiAxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9mK2YbYp9mK2LEnLFxuICAgICAgICAgICAgJ9mB2KjYsdin2YrYsScsXG4gICAgICAgICAgICAn2YXYp9ix2LMnLFxuICAgICAgICAgICAgJ9ij2KjYsdmK2YQnLFxuICAgICAgICAgICAgJ9mF2KfZitmIJyxcbiAgICAgICAgICAgICfZitmI2YbZitmIJyxcbiAgICAgICAgICAgICfZitmI2YTZitmIJyxcbiAgICAgICAgICAgICfYo9i62LPYt9izJyxcbiAgICAgICAgICAgICfYs9io2KrZhdio2LEnLFxuICAgICAgICAgICAgJ9ij2YPYqtmI2KjYsScsXG4gICAgICAgICAgICAn2YbZiNmB2YXYqNixJyxcbiAgICAgICAgICAgICfYr9mK2LPZhdio2LEnLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGFyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXInLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdEL1xcdTIwMEZNL1xcdTIwMEZZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LV82YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9i1JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZhSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2YvYpyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfYqNi52K8gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIHNzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIG06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgbW06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBoaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIGRkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIE06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgTU06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgeTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgICAgICB5eTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1vZodmi2aPZpNml2abZp9mo2anZoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyAoQWxnZXJpYSkgW2FyLWR6XVxuLy8hIGF1dGhvciA6IEFtaW5lIFJvdWtoOiBodHRwczovL2dpdGh1Yi5jb20vQW1pbmUyN1xuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmRlbHNhaWRcbi8vISBhdXRob3IgOiBBaG1lZCBFbGtoYXRpYlxuLy8hIGF1dGhvciA6IGZvcmFiaSBodHRwczovL2dpdGh1Yi5jb20vZm9yYWJpXG4vLyEgYXV0aG9yIDogTm91cmVkZGluZSBMT1VBSEVESiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub3VyZWRkaW5lbVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHBsdXJhbEZvcm0gPSBmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgcmV0dXJuIG4gPT09IDBcbiAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICA6IG4gPT09IDFcbiAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICA6IG4gPT09IDJcbiAgICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMyAmJiBuICUgMTAwIDw9IDEwXG4gICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDExXG4gICAgICAgICAgICAgICAgPyA0XG4gICAgICAgICAgICAgICAgOiA1O1xuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxzID0ge1xuICAgICAgICAgICAgczogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAn2KvYp9mG2YrYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9ir2KfZhtmK2KrYp9mGJywgJ9ir2KfZhtmK2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINir2YjYp9mGJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJ9iv2YLZitmC2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYr9mC2YrZgtiq2KfZhicsICfYr9mC2YrZgtiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGg6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICfYs9in2LnYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iz2KfYudiq2KfZhicsICfYs9in2LnYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGQ6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2YrZiNmFJyxcbiAgICAgICAgICAgICAgICAn2YrZiNmFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9mK2YjZhdin2YYnLCAn2YrZiNmF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIE06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAn2LTZh9ixINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i02YfYsdin2YYnLCAn2LTZh9ix2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsdinJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ixJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB5OiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi52KfZhScsXG4gICAgICAgICAgICAgICAgJ9i52KfZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYudin2YXYp9mGJywgJ9i52KfZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYudmI2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFsaXplID0gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGYgPSBwbHVyYWxGb3JtKG51bWJlciksXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHBsdXJhbHNbdV1bcGx1cmFsRm9ybShudW1iZXIpXTtcbiAgICAgICAgICAgICAgICBpZiAoZiA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHJbd2l0aG91dFN1ZmZpeCA/IDAgOiAxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9is2KfZhtmB2YonLFxuICAgICAgICAgICAgJ9mB2YrZgdix2YonLFxuICAgICAgICAgICAgJ9mF2KfYsdizJyxcbiAgICAgICAgICAgICfYo9mB2LHZitmEJyxcbiAgICAgICAgICAgICfZhdin2YonLFxuICAgICAgICAgICAgJ9is2YjYp9mGJyxcbiAgICAgICAgICAgICfYrNmI2YrZhNmK2KknLFxuICAgICAgICAgICAgJ9ij2YjYqicsXG4gICAgICAgICAgICAn2LPYqNiq2YXYqNixJyxcbiAgICAgICAgICAgICfYo9mD2KrZiNio2LEnLFxuICAgICAgICAgICAgJ9mG2YjZgdmF2KjYsScsXG4gICAgICAgICAgICAn2K/Zitiz2YXYqNixJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBhckR6ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItZHonLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdEL1xcdTIwMEZNL1xcdTIwMEZZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LV82YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9i1JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZhSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2YvYpyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfYqNi52K8gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIHNzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIG06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgbW06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBoaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIGRkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIE06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgTU06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgeTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgICAgICB5eTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyRHo7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIChLdXdhaXQpIFthci1rd11cbi8vISBhdXRob3IgOiBOdXNyZXQgUGFybGFrOiBodHRwczovL2dpdGh1Yi5jb20vbnVzcmV0cGFybGFrXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYXJLdyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLWt3Jywge1xuICAgICAgICBtb250aHM6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9mK2YbYp9mK2LFf2YHYqNix2KfZitixX9mF2KfYsdizX9ij2KjYsdmK2YRf2YXYp9mKX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiNiyX9i62LTYql/YtNiq2YbYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YbYqNixX9iv2KzZhtio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYqtmG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KfYrdivX9in2KrZhtmK2YZf2KvZhNin2KvYp9ihX9in2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YHZiiAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgbTogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW06ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGg6ICfYs9in2LnYqScsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZDogJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgIE06ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU06ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5OiAn2LPZhtipJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPZhtmI2KfYqicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyS3c7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIChMeWJpYSkgW2FyLWx5XVxuLy8hIGF1dGhvciA6IEFsaSBIbWVyOiBodHRwczovL2dpdGh1Yi5jb20va2lrb2FuaXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICcxJyxcbiAgICAgICAgICAgICcyJzogJzInLFxuICAgICAgICAgICAgJzMnOiAnMycsXG4gICAgICAgICAgICAnNCc6ICc0JyxcbiAgICAgICAgICAgICc1JzogJzUnLFxuICAgICAgICAgICAgJzYnOiAnNicsXG4gICAgICAgICAgICAnNyc6ICc3JyxcbiAgICAgICAgICAgICc4JzogJzgnLFxuICAgICAgICAgICAgJzknOiAnOScsXG4gICAgICAgICAgICAnMCc6ICcwJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFsRm9ybSA9IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgICByZXR1cm4gbiA9PT0gMFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogbiA9PT0gMVxuICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgIDogbiA9PT0gMlxuICAgICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICAgIDogbiAlIDEwMCA+PSAzICYmIG4gJSAxMDAgPD0gMTBcbiAgICAgICAgICAgICAgICA/IDNcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMTFcbiAgICAgICAgICAgICAgICA/IDRcbiAgICAgICAgICAgICAgICA6IDU7XG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbHMgPSB7XG4gICAgICAgICAgICBzOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINir2KfZhtmK2KknLFxuICAgICAgICAgICAgICAgICfYq9in2YbZitipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2KvYp9mG2YrYqtin2YYnLCAn2KvYp9mG2YrYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KvZiNin2YYnLFxuICAgICAgICAgICAgICAgICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgICAgICAn2K/ZgtmK2YLYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iv2YLZitmC2KrYp9mGJywgJ9iv2YLZitmC2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINiv2YLYp9im2YInLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaDogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYs9in2LnYqScsXG4gICAgICAgICAgICAgICAgJ9iz2KfYudipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2LPYp9i52KrYp9mGJywgJ9iz2KfYudiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZDogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDZitmI2YUnLFxuICAgICAgICAgICAgICAgICfZitmI2YUg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2YrZiNmF2KfZhicsICfZitmI2YXZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgICAgICAnJWQg2YrZiNmF2YvYpycsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgTTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYtNmH2LEnLFxuICAgICAgICAgICAgICAgICfYtNmH2LEg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2LTZh9ix2KfZhicsICfYtNmH2LHZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ix2KcnLFxuICAgICAgICAgICAgICAgICclZCDYtNmH2LEnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHk6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LnYp9mFJyxcbiAgICAgICAgICAgICAgICAn2LnYp9mFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i52KfZhdin2YYnLCAn2LnYp9mF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i52YjYp9mFJyxcbiAgICAgICAgICAgICAgICAnJWQg2LnYp9mF2YvYpycsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhScsXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxpemUgPSBmdW5jdGlvbiAodSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICB2YXIgZiA9IHBsdXJhbEZvcm0obnVtYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gcGx1cmFsc1t1XVtwbHVyYWxGb3JtKG51bWJlcildO1xuICAgICAgICAgICAgICAgIGlmIChmID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0clt3aXRob3V0U3VmZml4ID8gMCA6IDFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBtb250aHMgPSBbXG4gICAgICAgICAgICAn2YrZhtin2YrYsScsXG4gICAgICAgICAgICAn2YHYqNix2KfZitixJyxcbiAgICAgICAgICAgICfZhdin2LHYsycsXG4gICAgICAgICAgICAn2KPYqNix2YrZhCcsXG4gICAgICAgICAgICAn2YXYp9mK2YgnLFxuICAgICAgICAgICAgJ9mK2YjZhtmK2YgnLFxuICAgICAgICAgICAgJ9mK2YjZhNmK2YgnLFxuICAgICAgICAgICAgJ9ij2LrYs9i32LMnLFxuICAgICAgICAgICAgJ9iz2KjYqtmF2KjYsScsXG4gICAgICAgICAgICAn2KPZg9iq2YjYqNixJyxcbiAgICAgICAgICAgICfZhtmI2YHZhdio2LEnLFxuICAgICAgICAgICAgJ9iv2YrYs9mF2KjYsScsXG4gICAgICAgIF07XG5cbiAgICB2YXIgYXJMeSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLWx5Jywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnRC9cXHUyMDBGTS9cXHUyMDBGWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i1fNmFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9mL2Kcg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2KjYudivICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBzczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBtOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIG1tOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgaGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBkZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBNOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIE1NOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIHk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICAgICAgeXk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhckx5O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyAoTW9yb2NjbykgW2FyLW1hXVxuLy8hIGF1dGhvciA6IEVsRmFkaWxpIFlhc3NpbmUgOiBodHRwczovL2dpdGh1Yi5jb20vRWxGYWRpbGlZXG4vLyEgYXV0aG9yIDogQWJkZWwgU2FpZCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmRlbHNhaWRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBhck1hID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItbWEnLCB7XG4gICAgICAgIG1vbnRoczogJ9mK2YbYp9mK2LFf2YHYqNix2KfZitixX9mF2KfYsdizX9ij2KjYsdmK2YRf2YXYp9mKX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiNiyX9i62LTYql/YtNiq2YbYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YbYqNixX9iv2KzZhtio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYp9it2K9f2KfYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KfYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/YpyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfZgdmKICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogJ9ir2YjYp9mGJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBtOiAn2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBtbTogJyVkINiv2YLYp9im2YInLFxuICAgICAgICAgICAgaDogJ9iz2KfYudipJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICBkOiAn2YrZiNmFJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgTTogJ9i02YfYsScsXG4gICAgICAgICAgICBNTTogJyVkINij2LTZh9ixJyxcbiAgICAgICAgICAgIHk6ICfYs9mG2KknLFxuICAgICAgICAgICAgeXk6ICclZCDYs9mG2YjYp9iqJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhck1hO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyAoU2F1ZGkgQXJhYmlhKSBbYXItc2FdXG4vLyEgYXV0aG9yIDogU3VoYWlsIEFsa293YWlsZWV0IDogaHR0cHM6Ly9naXRodWIuY29tL3hzb2hcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfZoScsXG4gICAgICAgICAgICAnMic6ICfZoicsXG4gICAgICAgICAgICAnMyc6ICfZoycsXG4gICAgICAgICAgICAnNCc6ICfZpCcsXG4gICAgICAgICAgICAnNSc6ICfZpScsXG4gICAgICAgICAgICAnNic6ICfZpicsXG4gICAgICAgICAgICAnNyc6ICfZpycsXG4gICAgICAgICAgICAnOCc6ICfZqCcsXG4gICAgICAgICAgICAnOSc6ICfZqScsXG4gICAgICAgICAgICAnMCc6ICfZoCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfZoSc6ICcxJyxcbiAgICAgICAgICAgICfZoic6ICcyJyxcbiAgICAgICAgICAgICfZoyc6ICczJyxcbiAgICAgICAgICAgICfZpCc6ICc0JyxcbiAgICAgICAgICAgICfZpSc6ICc1JyxcbiAgICAgICAgICAgICfZpic6ICc2JyxcbiAgICAgICAgICAgICfZpyc6ICc3JyxcbiAgICAgICAgICAgICfZqCc6ICc4JyxcbiAgICAgICAgICAgICfZqSc6ICc5JyxcbiAgICAgICAgICAgICfZoCc6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBhclNhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItc2EnLCB7XG4gICAgICAgIG1vbnRoczogJ9mK2YbYp9mK2LFf2YHYqNix2KfZitixX9mF2KfYsdizX9ij2KjYsdmK2YRf2YXYp9mK2Yhf2YrZiNmG2YrZiF/ZitmI2YTZitmIX9ij2LrYs9i32LNf2LPYqNiq2YXYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YHZhdio2LFf2K/Zitiz2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9mK2YbYp9mK2LFf2YHYqNix2KfZitixX9mF2KfYsdizX9ij2KjYsdmK2YRf2YXYp9mK2Yhf2YrZiNmG2YrZiF/ZitmI2YTZitmIX9ij2LrYs9i32LNf2LPYqNiq2YXYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YHZhdio2LFf2K/Zitiz2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LV82YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9i1JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZhSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YHZiiAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgbTogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW06ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGg6ICfYs9in2LnYqScsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZDogJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgIE06ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU06ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5OiAn2LPZhtipJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPZhtmI2KfYqicsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1vZodmi2aPZpNml2abZp9mo2anZoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJTYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgIDogIEFyYWJpYyAoVHVuaXNpYSkgW2FyLXRuXVxuLy8hIGF1dGhvciA6IE5hZGVyIFRvdWthYnJpIDogaHR0cHM6Ly9naXRodWIuY29tL25hZGVyaW9cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBhclRuID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItdG4nLCB7XG4gICAgICAgIG1vbnRoczogJ9is2KfZhtmB2Ypf2YHZitmB2LHZil/Zhdin2LHYs1/Yo9mB2LHZitmEX9mF2KfZil/YrNmI2KfZhl/YrNmI2YrZhNmK2Klf2KPZiNiqX9iz2KjYqtmF2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmB2YXYqNixX9iv2YrYs9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfYrNin2YbZgdmKX9mB2YrZgdix2Ypf2YXYp9ix2LNf2KPZgdix2YrZhF/Zhdin2Ypf2KzZiNin2YZf2KzZiNmK2YTZitipX9ij2YjYql/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KPYrdivX9il2KvZhtmK2YZf2KvZhNin2KvYp9ihX9ij2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YHZiiAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgbTogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW06ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGg6ICfYs9in2LnYqScsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZDogJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgIE06ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU06ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5OiAn2LPZhtipJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPZhtmI2KfYqicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhclRuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEF6ZXJiYWlqYW5pIFthel1cbi8vISBhdXRob3IgOiB0b3BjaGl5ZXYgOiBodHRwczovL2dpdGh1Yi5jb20vdG9wY2hpeWV2XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDE6ICctaW5jaScsXG4gICAgICAgIDU6ICctaW5jaScsXG4gICAgICAgIDg6ICctaW5jaScsXG4gICAgICAgIDcwOiAnLWluY2knLFxuICAgICAgICA4MDogJy1pbmNpJyxcbiAgICAgICAgMjogJy1uY2knLFxuICAgICAgICA3OiAnLW5jaScsXG4gICAgICAgIDIwOiAnLW5jaScsXG4gICAgICAgIDUwOiAnLW5jaScsXG4gICAgICAgIDM6ICctw7xuY8O8JyxcbiAgICAgICAgNDogJy3DvG5jw7wnLFxuICAgICAgICAxMDA6ICctw7xuY8O8JyxcbiAgICAgICAgNjogJy1uY8SxJyxcbiAgICAgICAgOTogJy11bmN1JyxcbiAgICAgICAgMTA6ICctdW5jdScsXG4gICAgICAgIDMwOiAnLXVuY3UnLFxuICAgICAgICA2MDogJy3EsW5jxLEnLFxuICAgICAgICA5MDogJy3EsW5jxLEnLFxuICAgIH07XG5cbiAgICB2YXIgYXogPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdheicsIHtcbiAgICAgICAgbW9udGhzOiAneWFudmFyX2ZldnJhbF9tYXJ0X2FwcmVsX21heV9peXVuX2l5dWxfYXZxdXN0X3NlbnR5YWJyX29rdHlhYnJfbm95YWJyX2Rla2Ficicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICd5YW5fZmV2X21hcl9hcHJfbWF5X2l5bl9peWxfYXZxX3Nlbl9va3Rfbm95X2Rlaycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdCYXphcl9CYXphciBlcnTJmXNpX8OHyZlyxZ/JmW5iyZkgYXjFn2FtxLFfw4fJmXLFn8mZbmLJmV9Dw7xtyZkgYXjFn2FtxLFfQ8O8bcmZX8WeyZluYsmZJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQmF6X0J6RV/Dh0F4X8OHyZlyX0NBeF9Dw7xtX8WeyZluJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0J6X0JFX8OHQV/Dh8mZX0NBX0PDvF/FnsmZJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYnVnw7xuIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc2FiYWggc2FhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbZ8mZbMmZbiBoyZlmdMmZXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2TDvG7JmW5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2tlw6fJmW4gaMmZZnTJmV0gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBzb25yYScsXG4gICAgICAgICAgICBwYXN0OiAnJXMgyZl2dsmZbCcsXG4gICAgICAgICAgICBzOiAnYmlybmXDp8mZIHNhbml5yZknLFxuICAgICAgICAgICAgc3M6ICclZCBzYW5pecmZJyxcbiAgICAgICAgICAgIG06ICdiaXIgZMmZcWlxyZknLFxuICAgICAgICAgICAgbW06ICclZCBkyZlxaXHJmScsXG4gICAgICAgICAgICBoOiAnYmlyIHNhYXQnLFxuICAgICAgICAgICAgaGg6ICclZCBzYWF0JyxcbiAgICAgICAgICAgIGQ6ICdiaXIgZ8O8bicsXG4gICAgICAgICAgICBkZDogJyVkIGfDvG4nLFxuICAgICAgICAgICAgTTogJ2JpciBheScsXG4gICAgICAgICAgICBNTTogJyVkIGF5JyxcbiAgICAgICAgICAgIHk6ICdiaXIgaWwnLFxuICAgICAgICAgICAgeXk6ICclZCBpbCcsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9nZWPJmXxzyZloyZlyfGfDvG5kw7x6fGF4xZ9hbS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKGfDvG5kw7x6fGF4xZ9hbSkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZ2VjyZknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3PJmWjJmXInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2fDvG5kw7x6JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdheMWfYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKMSxbmPEsXxpbmNpfG5jaXzDvG5jw7x8bmPEsXx1bmN1KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yIHplcm9cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3EsW5jxLEnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBiID0gKG51bWJlciAlIDEwMCkgLSBhLFxuICAgICAgICAgICAgICAgIGMgPSBudW1iZXIgPj0gMTAwID8gMTAwIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0gfHwgc3VmZml4ZXNbY10pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXo7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQmVsYXJ1c2lhbiBbYmVdXG4vLyEgYXV0aG9yIDogRG1pdHJ5IERlbWlkb3YgOiBodHRwczovL2dpdGh1Yi5jb20vZGVtaWRvdjkxXG4vLyEgYXV0aG9yOiBQcmFsZXNrYTogaHR0cDovL3ByYWxlc2thLnByby9cbi8vISBBdXRob3IgOiBNZW5lbGlvbiBFbGVuc8O6bGUgOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcGx1cmFsKHdvcmQsIG51bSkge1xuICAgICAgICB2YXIgZm9ybXMgPSB3b3JkLnNwbGl0KCdfJyk7XG4gICAgICAgIHJldHVybiBudW0gJSAxMCA9PT0gMSAmJiBudW0gJSAxMDAgIT09IDExXG4gICAgICAgICAgICA/IGZvcm1zWzBdXG4gICAgICAgICAgICA6IG51bSAlIDEwID49IDIgJiYgbnVtICUgMTAgPD0gNCAmJiAobnVtICUgMTAwIDwgMTAgfHwgbnVtICUgMTAwID49IDIwKVxuICAgICAgICAgICAgPyBmb3Jtc1sxXVxuICAgICAgICAgICAgOiBmb3Jtc1syXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFBsdXJhbChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgc3M6IHdpdGhvdXRTdWZmaXggPyAn0YHQtdC60YPQvdC00LBf0YHQtdC60YPQvdC00Ytf0YHQtdC60YPQvdC0JyA6ICfRgdC10LrRg9C90LTRg1/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbW06IHdpdGhvdXRTdWZmaXggPyAn0YXQstGW0LvRltC90LBf0YXQstGW0LvRltC90Ytf0YXQstGW0LvRltC9JyA6ICfRhdCy0ZbQu9GW0L3Rg1/RhdCy0ZbQu9GW0L3Ri1/RhdCy0ZbQu9GW0L0nLFxuICAgICAgICAgICAgaGg6IHdpdGhvdXRTdWZmaXggPyAn0LPQsNC00LfRltC90LBf0LPQsNC00LfRltC90Ytf0LPQsNC00LfRltC9JyA6ICfQs9Cw0LTQt9GW0L3Rg1/Qs9Cw0LTQt9GW0L3Ri1/Qs9Cw0LTQt9GW0L0nLFxuICAgICAgICAgICAgZGQ6ICfQtNC30LXQvdGMX9C00L3Rll/QtNC30ZHQvScsXG4gICAgICAgICAgICBNTTogJ9C80LXRgdGP0YZf0LzQtdGB0Y/RhtGLX9C80LXRgdGP0YbQsNGeJyxcbiAgICAgICAgICAgIHl5OiAn0LPQvtC0X9Cz0LDQtNGLX9Cz0LDQtNC+0Z4nLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoa2V5ID09PSAnbScpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ9GF0LLRltC70ZbQvdCwJyA6ICfRhdCy0ZbQu9GW0L3Rgyc7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaCcpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ9Cz0LDQtNC30ZbQvdCwJyA6ICfQs9Cw0LTQt9GW0L3Rgyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgcGx1cmFsKGZvcm1hdFtrZXldLCArbnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBiZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JlJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9GB0YLRg9C00LfQtdC90Y9f0LvRjtGC0LDQs9CwX9GB0LDQutCw0LLRltC60LBf0LrRgNCw0YHQsNCy0ZbQutCwX9GC0YDQsNGe0L3Rj1/Rh9GN0YDQstC10L3Rj1/Qu9GW0L/QtdC90Y9f0LbQvdGW0Z7QvdGPX9Cy0LXRgNCw0YHQvdGPX9C60LDRgdGC0YDRi9GH0L3RltC60LBf0LvRltGB0YLQsNC/0LDQtNCwX9GB0L3QtdC20L3Rjycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9GB0YLRg9C00LfQtdC90Yxf0LvRjtGC0Ytf0YHQsNC60LDQstGW0Lpf0LrRgNCw0YHQsNCy0ZbQul/RgtGA0LDQstC10L3RjF/Rh9GN0YDQstC10L3RjF/Qu9GW0L/QtdC90Yxf0LbQvdGW0LLQtdC90Yxf0LLQtdGA0LDRgdC10L3RjF/QutCw0YHRgtGA0YvRh9C90ZbQul/Qu9GW0YHRgtCw0L/QsNC0X9GB0L3QtdC20LDQvdGMJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0YHRgtGD0LRf0LvRjtGCX9GB0LDQul/QutGA0LDRgV/RgtGA0LDQsl/Rh9GN0YDQsl/Qu9GW0L9f0LbQvdGW0LJf0LLQtdGAX9C60LDRgdGCX9C70ZbRgdGCX9GB0L3QtdC2Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czoge1xuICAgICAgICAgICAgZm9ybWF0OiAn0L3Rj9C00LfQtdC70Y5f0L/QsNC90Y/QtNC30LXQu9Cw0Lpf0LDRntGC0L7RgNCw0Lpf0YHQtdGA0LDQtNGDX9GH0LDRhtCy0LXRgF/Qv9GP0YLQvdGW0YbRg1/RgdGD0LHQvtGC0YMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfQvdGP0LTQt9C10LvRj1/Qv9Cw0L3Rj9C00LfQtdC70LDQul/QsNGe0YLQvtGA0LDQul/RgdC10YDQsNC00LBf0YfQsNGG0LLQtdGAX9C/0Y/RgtC90ZbRhtCwX9GB0YPQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9cXFsgP1vQo9GD0Z5dID8oPzrQvNGW0L3Rg9C70YPRjnzQvdCw0YHRgtGD0L/QvdGD0Y4pPyA/XFxdID9kZGRkLyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C90LRf0L/QvV/QsNGCX9GB0YBf0YfRhl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0L3QtF/Qv9C9X9Cw0YJf0YHRgF/Rh9GGX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWSDQsy4nLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkg0LMuLCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkg0LMuLCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Ch0ZHQvdC90Y8g0Z5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0JfQsNGe0YLRgNCwINGeXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Cj0YfQvtGA0LAg0Z5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdb0KNdIGRkZGQgW9GeXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0KMg0LzRltC90YPQu9GD0Y5dIGRkZGQgW9GeXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQoyDQvNGW0L3Rg9C70YtdIGRkZGQgW9GeXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0L/RgNCw0LcgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzINGC0LDQvNGDJyxcbiAgICAgICAgICAgIHM6ICfQvdC10LrQsNC70YzQutGWINGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBkOiAn0LTQt9C10L3RjCcsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06ICfQvNC10YHRj9GGJyxcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeTogJ9Cz0L7QtCcsXG4gICAgICAgICAgICB5eTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9C90L7Rh9GLfNGA0LDQvdGW0YbRi3zQtNC90Y980LLQtdGH0LDRgNCwLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o0LTQvdGPfNCy0LXRh9Cw0YDQsCkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0L3QvtGH0YsnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GA0LDQvdGW0YbRiyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LTQvdGPJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQstC10YfQsNGA0LAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNGWfNGLfNCz0LApLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAobnVtYmVyICUgMTAgPT09IDIgfHwgbnVtYmVyICUgMTAgPT09IDMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgJSAxMDAgIT09IDEyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgJSAxMDAgIT09IDEzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG51bWJlciArICct0ZYnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bWJlciArICct0YsnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Qs9CwJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQnVsZ2FyaWFuIFtiZ11cbi8vISBhdXRob3IgOiBLcmFzZW4gQm9yaXNvdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rcmF6XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYmcgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdiZycsIHtcbiAgICAgICAgbW9udGhzOiAn0Y/QvdGD0LDRgNC4X9GE0LXQstGA0YPQsNGA0Lhf0LzQsNGA0YJf0LDQv9GA0LjQu1/QvNCw0Llf0Y7QvdC4X9GO0LvQuF/QsNCy0LPRg9GB0YJf0YHQtdC/0YLQtdC80LLRgNC4X9C+0LrRgtC+0LzQstGA0Lhf0L3QvtC10LzQstGA0Lhf0LTQtdC60LXQvNCy0YDQuCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRj9C90YNf0YTQtdCyX9C80LDRgF/QsNC/0YBf0LzQsNC5X9GO0L3QuF/RjtC70Lhf0LDQstCzX9GB0LXQv1/QvtC60YJf0L3QvtC1X9C00LXQuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfQvdC10LTQtdC70Y9f0L/QvtC90LXQtNC10LvQvdC40Lpf0LLRgtC+0YDQvdC40Lpf0YHRgNGP0LTQsF/Rh9C10YLQstGK0YDRgtGK0Lpf0L/QtdGC0YrQul/RgdGK0LHQvtGC0LAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC10LRf0L/QvtC9X9Cy0YLQvl/RgdGA0Y9f0YfQtdGCX9C/0LXRgl/RgdGK0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0L3QtF/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0JTQvdC10YEg0LJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0KPRgtGA0LUg0LJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb0LJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JLRh9C10YDQsCDQsl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9Cc0LjQvdCw0LvQsNGC0LBdIGRkZGQgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9Cc0LjQvdCw0LvQuNGPXSBkZGRkIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9GB0LvQtdC0ICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfQv9GA0LXQtNC4ICVzJyxcbiAgICAgICAgICAgIHM6ICfQvdGP0LrQvtC70LrQviDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgICAgICBzczogJyVkINGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIG06ICfQvNC40L3Rg9GC0LAnLFxuICAgICAgICAgICAgbW06ICclZCDQvNC40L3Rg9GC0LgnLFxuICAgICAgICAgICAgaDogJ9GH0LDRgScsXG4gICAgICAgICAgICBoaDogJyVkINGH0LDRgdCwJyxcbiAgICAgICAgICAgIGQ6ICfQtNC10L0nLFxuICAgICAgICAgICAgZGQ6ICclZCDQtNC10L3QsCcsXG4gICAgICAgICAgICBNOiAn0LzQtdGB0LXRhicsXG4gICAgICAgICAgICBNTTogJyVkINC80LXRgdC10YbQsCcsXG4gICAgICAgICAgICB5OiAn0LPQvtC00LjQvdCwJyxcbiAgICAgICAgICAgIHl5OiAnJWQg0LPQvtC00LjQvdC4JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQtdCyfNC10L180YLQuHzQstC4fNGA0Lh80LzQuCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgbGFzdERpZ2l0ID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgbGFzdDJEaWdpdHMgPSBudW1iZXIgJSAxMDA7XG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LXQsic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QyRGlnaXRzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LXQvSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QyRGlnaXRzID4gMTAgJiYgbGFzdDJEaWdpdHMgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGC0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QstC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0YDQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gNyB8fCBsYXN0RGlnaXQgPT09IDgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QvNC4JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0YLQuCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBiZztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCYW1iYXJhIFtibV1cbi8vISBhdXRob3IgOiBFc3RlbGxlIENvbW1lbnQgOiBodHRwczovL2dpdGh1Yi5jb20vZXN0ZWxsZWNvbW1lbnRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBibSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JtJywge1xuICAgICAgICBtb250aHM6ICdaYW53dXlla2Fsb19GZXd1cnV5ZWthbG9fTWFyaXNpa2Fsb19Bd2lyaWxpa2Fsb19NyZtrYWxvX1p1d8mbbmthbG9fWnVsdXlla2Fsb19VdGlrYWxvX1PJm3RhbmJ1cnVrYWxvX8mUa3V0yZRidXJ1a2Fsb19Ob3dhbmJ1cnVrYWxvX0Rlc2FuYnVydWthbG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnWmFuX0Zld19NYXJfQXdpX03Jm19adXdfWnVsX1V0aV9TyZt0X8mUa3VfTm93X0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdLYXJpX050yZtuyZtuX1RhcmF0YV9BcmFiYV9BbGFtaXNhX0p1bWFfU2liaXJpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnS2FyX050yZtfVGFyX0FyYV9BbGFfSnVtX1NpYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdLYV9OdF9UYV9Bcl9BbF9KdV9TaScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZIFtsyZtyyZtdIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIE1NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWSBbbMmbcsmbXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0JpIGzJm3LJm10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tTaW5pIGzJm3LJm10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtkb24gbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0t1bnUgbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3TJm23Jm25lbiBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMga8mUbsmUJyxcbiAgICAgICAgICAgIHBhc3Q6ICdhIGLJmyAlcyBiyZQnLFxuICAgICAgICAgICAgczogJ3NhbmdhIGRhbWEgZGFtYScsXG4gICAgICAgICAgICBzczogJ3Nla29uZGkgJWQnLFxuICAgICAgICAgICAgbTogJ21pbml0aSBrZWxlbicsXG4gICAgICAgICAgICBtbTogJ21pbml0aSAlZCcsXG4gICAgICAgICAgICBoOiAnbMmbcsmbIGtlbGVuJyxcbiAgICAgICAgICAgIGhoOiAnbMmbcsmbICVkJyxcbiAgICAgICAgICAgIGQ6ICd0aWxlIGtlbGVuJyxcbiAgICAgICAgICAgIGRkOiAndGlsZSAlZCcsXG4gICAgICAgICAgICBNOiAna2FsbyBrZWxlbicsXG4gICAgICAgICAgICBNTTogJ2thbG8gJWQnLFxuICAgICAgICAgICAgeTogJ3NhbiBrZWxlbicsXG4gICAgICAgICAgICB5eTogJ3NhbiAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBibTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCZW5nYWxpIFtibl1cbi8vISBhdXRob3IgOiBLYXVzaGlrIEdhbmRoaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rYXVzaGlrZ2FuZGhpXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4KenJyxcbiAgICAgICAgICAgICcyJzogJ+CnqCcsXG4gICAgICAgICAgICAnMyc6ICfgp6knLFxuICAgICAgICAgICAgJzQnOiAn4KeqJyxcbiAgICAgICAgICAgICc1JzogJ+CnqycsXG4gICAgICAgICAgICAnNic6ICfgp6wnLFxuICAgICAgICAgICAgJzcnOiAn4KetJyxcbiAgICAgICAgICAgICc4JzogJ+CnricsXG4gICAgICAgICAgICAnOSc6ICfgp68nLFxuICAgICAgICAgICAgJzAnOiAn4KemJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Cnpyc6ICcxJyxcbiAgICAgICAgICAgICfgp6gnOiAnMicsXG4gICAgICAgICAgICAn4KepJzogJzMnLFxuICAgICAgICAgICAgJ+Cnqic6ICc0JyxcbiAgICAgICAgICAgICfgp6snOiAnNScsXG4gICAgICAgICAgICAn4KesJzogJzYnLFxuICAgICAgICAgICAgJ+CnrSc6ICc3JyxcbiAgICAgICAgICAgICfgp64nOiAnOCcsXG4gICAgICAgICAgICAn4KevJzogJzknLFxuICAgICAgICAgICAgJ+Cnpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBibiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JuJywge1xuICAgICAgICBtb250aHM6ICfgppzgpr7gpqjgp4Hgp5/gpr7gprDgpr9f4Kar4KeH4Kas4KeN4Kaw4KeB4Kef4Ka+4Kaw4Ka/X+CmruCmvuCmsOCnjeCmml/gpo/gpqrgp43gprDgpr/gprJf4Kau4KeHX+CmnOCngeCmqF/gppzgp4HgprLgpr7gpodf4KaG4KaX4Ka44KeN4KafX+CmuOCnh+CmquCnjeCmn+Cnh+CmruCnjeCmrOCmsF/gpoXgppXgp43gpp/gp4vgpqzgprBf4Kao4Kat4KeH4Kau4KeN4Kas4KawX+CmoeCmv+CmuOCnh+CmruCnjeCmrOCmsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgppzgpr7gpqjgp4Ff4Kar4KeH4Kas4KeN4Kaw4KeBX+CmruCmvuCmsOCnjeCmml/gpo/gpqrgp43gprDgpr/gprJf4Kau4KeHX+CmnOCngeCmqF/gppzgp4HgprLgpr7gpodf4KaG4KaX4Ka44KeN4KafX+CmuOCnh+CmquCnjeCmn1/gpoXgppXgp43gpp/gp4tf4Kao4Kat4KeHX+CmoeCmv+CmuOCnhycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfgprDgpqzgpr/gpqzgpr7gprBf4Ka44KeL4Kau4Kas4Ka+4KawX+CmruCmmeCnjeCml+CmsuCmrOCmvuCmsF/gpqzgp4Hgpqfgpqzgpr7gprBf4Kas4KeD4Ka54Ka44KeN4Kaq4Kak4Ka/4Kas4Ka+4KawX+CmtuCngeCmleCnjeCmsOCmrOCmvuCmsF/gprbgpqjgpr/gpqzgpr7gprAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgprDgpqzgpr9f4Ka44KeL4KauX+CmruCmmeCnjeCml+Cmsl/gpqzgp4Hgpqdf4Kas4KeD4Ka54Ka44KeN4Kaq4Kak4Ka/X+CmtuCngeCmleCnjeCmsF/gprbgpqjgpr8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4Kaw4Kas4Ka/X+CmuOCni+Cmrl/gpq7gppngp43gppfgprJf4Kas4KeB4KanX+CmrOCng+CmuV/gprbgp4HgppXgp43gprBf4Ka24Kao4Ka/Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0g4Ka44Kau4KefJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyDgprjgpq7gp58nLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCmuOCmruCnnycsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSDgprjgpq7gp58nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgpobgppxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KaG4KaX4Ka+4Kau4KeA4KaV4Ka+4KayXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4KaX4Kak4KaV4Ka+4KayXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgppfgpqRdIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4Kaq4Kaw4KeHJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgpobgppfgp4cnLFxuICAgICAgICAgICAgczogJ+CmleCnn+Cnh+CmlSDgprjgp4fgppXgp4fgpqjgp43gpqEnLFxuICAgICAgICAgICAgc3M6ICclZCDgprjgp4fgppXgp4fgpqjgp43gpqEnLFxuICAgICAgICAgICAgbTogJ+Cmj+CmlSDgpq7gpr/gpqjgpr/gpp8nLFxuICAgICAgICAgICAgbW06ICclZCDgpq7gpr/gpqjgpr/gpp8nLFxuICAgICAgICAgICAgaDogJ+Cmj+CmlSDgppjgpqjgp43gpp/gpr4nLFxuICAgICAgICAgICAgaGg6ICclZCDgppjgpqjgp43gpp/gpr4nLFxuICAgICAgICAgICAgZDogJ+Cmj+CmlSDgpqbgpr/gpqgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgpqbgpr/gpqgnLFxuICAgICAgICAgICAgTTogJ+Cmj+CmlSDgpq7gpr7gprgnLFxuICAgICAgICAgICAgTU06ICclZCDgpq7gpr7gprgnLFxuICAgICAgICAgICAgeTogJ+Cmj+CmlSDgpqzgppvgprAnLFxuICAgICAgICAgICAgeXk6ICclZCDgpqzgppvgprAnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4Ken4Keo4Kep4Keq4Ker4Kes4Ket4Keu4Kev4KemXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4Kaw4Ka+4KakfOCmuOCmleCmvuCmsnzgpqbgp4Hgpqrgp4HgprB84Kas4Ka/4KaV4Ka+4KayfOCmsOCmvuCmpC8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAobWVyaWRpZW0gPT09ICfgprDgpr7gpqQnICYmIGhvdXIgPj0gNCkgfHxcbiAgICAgICAgICAgICAgICAobWVyaWRpZW0gPT09ICfgpqbgp4Hgpqrgp4HgprAnICYmIGhvdXIgPCA1KSB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4Kas4Ka/4KaV4Ka+4KayJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmsOCmvuCmpCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Ka44KaV4Ka+4KayJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpqbgp4Hgpqrgp4HgprAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmrOCmv+CmleCmvuCmsic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kaw4Ka+4KakJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRpYmV0YW4gW2JvXVxuLy8hIGF1dGhvciA6IFRodXB0ZW4gTi4gQ2hha3Jpc2hhciA6IGh0dHBzOi8vZ2l0aHViLmNvbS92YWpyYWRvZ1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+C8oScsXG4gICAgICAgICAgICAnMic6ICfgvKInLFxuICAgICAgICAgICAgJzMnOiAn4LyjJyxcbiAgICAgICAgICAgICc0JzogJ+C8pCcsXG4gICAgICAgICAgICAnNSc6ICfgvKUnLFxuICAgICAgICAgICAgJzYnOiAn4LymJyxcbiAgICAgICAgICAgICc3JzogJ+C8pycsXG4gICAgICAgICAgICAnOCc6ICfgvKgnLFxuICAgICAgICAgICAgJzknOiAn4LypJyxcbiAgICAgICAgICAgICcwJzogJ+C8oCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgvKEnOiAnMScsXG4gICAgICAgICAgICAn4LyiJzogJzInLFxuICAgICAgICAgICAgJ+C8oyc6ICczJyxcbiAgICAgICAgICAgICfgvKQnOiAnNCcsXG4gICAgICAgICAgICAn4LylJzogJzUnLFxuICAgICAgICAgICAgJ+C8pic6ICc2JyxcbiAgICAgICAgICAgICfgvKcnOiAnNycsXG4gICAgICAgICAgICAn4LyoJzogJzgnLFxuICAgICAgICAgICAgJ+C8qSc6ICc5JyxcbiAgICAgICAgICAgICfgvKAnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgYm8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdibycsIHtcbiAgICAgICAgbW9udGhzOiAn4L2f4L6z4LyL4L2W4LyL4L2R4L2E4LyL4L2U4L28X+C9n+C+s+C8i+C9luC8i+C9guC9ieC9suC9puC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvYLgvabgvbTgvZjgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2e4L2y4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9o+C+lOC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZHgvrLgvbTgvYLgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2R4L204L2T4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9ouC+kuC+seC9keC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZHgvYLgvbTgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2F4L204LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9heC9tOC8i+C9guC9heC9suC9guC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvYXgvbTgvIvgvYLgvYngvbLgvabgvIvgvZQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4L2f4L6z4LyLMV/gvZ/gvrPgvIsyX+C9n+C+s+C8izNf4L2f4L6z4LyLNF/gvZ/gvrPgvIs1X+C9n+C+s+C8izZf4L2f4L6z4LyLN1/gvZ/gvrPgvIs4X+C9n+C+s+C8izlf4L2f4L6z4LyLMTBf4L2f4L6z4LyLMTFf4L2f4L6z4LyLMTInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IC9eKOC9n+C+s+C8i1xcZHsxLDJ9KS8sXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4L2C4L2f4L2g4LyL4L2J4L2y4LyL4L2Y4LyLX+C9guC9n+C9oOC8i+C9n+C+s+C8i+C9luC8i1/gvYLgvZ/gvaDgvIvgvZjgvbLgvYLgvIvgvZHgvZjgvaLgvItf4L2C4L2f4L2g4LyL4L2j4L634L2C4LyL4L2U4LyLX+C9guC9n+C9oOC8i+C9leC9tOC9ouC8i+C9luC9tF/gvYLgvZ/gvaDgvIvgvZTgvIvgvabgvYTgvabgvItf4L2C4L2f4L2g4LyL4L2m4L6k4L264L2T4LyL4L2U4LyLJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4L2J4L2y4LyL4L2Y4LyLX+C9n+C+s+C8i+C9luC8i1/gvZjgvbLgvYLgvIvgvZHgvZjgvaLgvItf4L2j4L634L2C4LyL4L2U4LyLX+C9leC9tOC9ouC8i+C9luC9tF/gvZTgvIvgvabgvYTgvabgvItf4L2m4L6k4L264L2T4LyL4L2U4LyLJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+C9ieC9sl/gvZ/gvrNf4L2Y4L2y4L2CX+C9o+C+t+C9gl/gvZXgvbTgvaJf4L2m4L2E4L2mX+C9puC+pOC9uuC9kycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgvZHgvbLgvIvgvaLgvbLgvYRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4L2m4L2E4LyL4L2J4L2y4L2TXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vgvZbgvZHgvbTgvZPgvIvgvZXgvrLgvYLgvIvgvaLgvpfgvbrgvabgvIvgvZhdLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C9geC8i+C9puC9hF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4L2W4L2R4L204L2T4LyL4L2V4L6y4L2C4LyL4L2Y4L2Q4L2g4LyL4L2YXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOC9o+C8iycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4L2m4L6U4L2T4LyL4L2jJyxcbiAgICAgICAgICAgIHM6ICfgvaPgvZjgvIvgvabgvYQnLFxuICAgICAgICAgICAgc3M6ICclZCDgvabgvpDgvaLgvIvgvYbgvI0nLFxuICAgICAgICAgICAgbTogJ+C9puC+kOC9ouC8i+C9mOC8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICBtbTogJyVkIOC9puC+kOC9ouC8i+C9mCcsXG4gICAgICAgICAgICBoOiAn4L2G4L204LyL4L2a4L284L2R4LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4L2G4L204LyL4L2a4L284L2RJyxcbiAgICAgICAgICAgIGQ6ICfgvYngvbLgvZPgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgZGQ6ICclZCDgvYngvbLgvZPgvIsnLFxuICAgICAgICAgICAgTTogJ+C9n+C+s+C8i+C9luC8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICBNTTogJyVkIOC9n+C+s+C8i+C9licsXG4gICAgICAgICAgICB5OiAn4L2j4L284LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4L2j4L28JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+C8oeC8ouC8o+C8pOC8peC8puC8p+C8qOC8qeC8oF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C9mOC9muC9k+C8i+C9mOC9vHzgvZ7gvbzgvYLgvabgvIvgvYDgvaZ84L2J4L2y4L2T4LyL4L2C4L204L2EfOC9keC9guC9vOC9hOC8i+C9keC9gnzgvZjgvZrgvZPgvIvgvZjgvbwvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKG1lcmlkaWVtID09PSAn4L2Y4L2a4L2T4LyL4L2Y4L28JyAmJiBob3VyID49IDQpIHx8XG4gICAgICAgICAgICAgICAgKG1lcmlkaWVtID09PSAn4L2J4L2y4L2T4LyL4L2C4L204L2EJyAmJiBob3VyIDwgNSkgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+C9keC9guC9vOC9hOC8i+C9keC9gidcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvZjgvZrgvZPgvIvgvZjgvbwnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9nuC9vOC9guC9puC8i+C9gOC9pic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2J4L2y4L2T4LyL4L2C4L204L2EJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvZHgvYLgvbzgvYTgvIvgvZHgvYInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9mOC9muC9k+C8i+C9mOC9vCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBibztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCcmV0b24gW2JyXVxuLy8hIGF1dGhvciA6IEplYW4tQmFwdGlzdGUgTGUgRHVpZ291IDogaHR0cHM6Ly9naXRodWIuY29tL2pibGVkdWlnb3VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgbW06ICdtdW51dGVubicsXG4gICAgICAgICAgICBNTTogJ21peicsXG4gICAgICAgICAgICBkZDogJ2RldmV6aCcsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBtdXRhdGlvbihmb3JtYXRba2V5XSwgbnVtYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lhbE11dGF0aW9uRm9yWWVhcnMobnVtYmVyKSB7XG4gICAgICAgIHN3aXRjaCAobGFzdE51bWJlcihudW1iZXIpKSB7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgYmxvYXonO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyB2bG9heic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbGFzdE51bWJlcihudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA+IDkpIHtcbiAgICAgICAgICAgIHJldHVybiBsYXN0TnVtYmVyKG51bWJlciAlIDEwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtdXRhdGlvbih0ZXh0LCBudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgcmV0dXJuIHNvZnRNdXRhdGlvbih0ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc29mdE11dGF0aW9uKHRleHQpIHtcbiAgICAgICAgdmFyIG11dGF0aW9uVGFibGUgPSB7XG4gICAgICAgICAgICBtOiAndicsXG4gICAgICAgICAgICBiOiAndicsXG4gICAgICAgICAgICBkOiAneicsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChtdXRhdGlvblRhYmxlW3RleHQuY2hhckF0KDApXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbXV0YXRpb25UYWJsZVt0ZXh0LmNoYXJBdCgwKV0gKyB0ZXh0LnN1YnN0cmluZygxKTtcbiAgICB9XG5cbiAgICB2YXIgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmdlbi9pLFxuICAgICAgICAgICAgL15jW8q8XFwnXWh3ZS9pLFxuICAgICAgICAgICAgL15tZXUvaSxcbiAgICAgICAgICAgIC9eZWJyL2ksXG4gICAgICAgICAgICAvXm1hZS9pLFxuICAgICAgICAgICAgL14obWV6fGV2ZSkvaSxcbiAgICAgICAgICAgIC9eZ291L2ksXG4gICAgICAgICAgICAvXmVvcy9pLFxuICAgICAgICAgICAgL15nd2UvaSxcbiAgICAgICAgICAgIC9eaGVyL2ksXG4gICAgICAgICAgICAvXmR1L2ksXG4gICAgICAgICAgICAvXmtlci9pLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNSZWdleCA9IC9eKGdlbnZlcnxjW8q8XFwnXWh3ZXZyZXJ8bWV1cnpofGVicmVsfG1hZXxtZXpoZXZlbnxnb3VlcmV8ZW9zdHxnd2VuZ29sb3xoZXJlfGR1fGtlcnp1fGdlbnxjW8q8XFwnXWh3ZXxtZXV8ZWJyfG1hZXxldmV8Z291fGVvc3xnd2V8aGVyfGR1fGtlcikvaSxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXggPSAvXihnZW52ZXJ8Y1vKvFxcJ11od2V2cmVyfG1ldXJ6aHxlYnJlbHxtYWV8bWV6aGV2ZW58Z291ZXJlfGVvc3R8Z3dlbmdvbG98aGVyZXxkdXxrZXJ6dSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleCA9IC9eKGdlbnxjW8q8XFwnXWh3ZXxtZXV8ZWJyfG1hZXxldmV8Z291fGVvc3xnd2V8aGVyfGR1fGtlcikvaSxcbiAgICAgICAgZnVsbFdlZWtkYXlzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXnN1bC9pLFxuICAgICAgICAgICAgL15sdW4vaSxcbiAgICAgICAgICAgIC9ebWV1cnpoL2ksXG4gICAgICAgICAgICAvXm1lcmNbyrxcXCddaGVyL2ksXG4gICAgICAgICAgICAvXnlhb3UvaSxcbiAgICAgICAgICAgIC9eZ3dlbmVyL2ksXG4gICAgICAgICAgICAvXnNhZG9ybi9pLFxuICAgICAgICBdLFxuICAgICAgICBzaG9ydFdlZWtkYXlzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXlN1bC9pLFxuICAgICAgICAgICAgL15MdW4vaSxcbiAgICAgICAgICAgIC9eTWV1L2ksXG4gICAgICAgICAgICAvXk1lci9pLFxuICAgICAgICAgICAgL15ZYW8vaSxcbiAgICAgICAgICAgIC9eR3dlL2ksXG4gICAgICAgICAgICAvXlNhZC9pLFxuICAgICAgICBdLFxuICAgICAgICBtaW5XZWVrZGF5c1BhcnNlID0gW1xuICAgICAgICAgICAgL15TdS9pLFxuICAgICAgICAgICAgL15MdS9pLFxuICAgICAgICAgICAgL15NZShbXnJdfCQpL2ksXG4gICAgICAgICAgICAvXk1lci9pLFxuICAgICAgICAgICAgL15ZYS9pLFxuICAgICAgICAgICAgL15Hdy9pLFxuICAgICAgICAgICAgL15TYS9pLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGJyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYnInLCB7XG4gICAgICAgIG1vbnRoczogJ0dlbnZlcl9Dyrxod2V2cmVyX01ldXJ6aF9FYnJlbF9NYWVfTWV6aGV2ZW5fR291ZXJlX0Vvc3RfR3dlbmdvbG9fSGVyZV9EdV9LZXJ6dScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdHZW5fQ8q8aHdlX01ldV9FYnJfTWFlX0V2ZV9Hb3VfRW9zX0d3ZV9IZXJfRHVfS2VyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bF9MdW5fTWV1cnpoX01lcmPKvGhlcl9ZYW91X0d3ZW5lcl9TYWRvcm4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdWxfTHVuX01ldV9NZXJfWWFvX0d3ZV9TYWQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTHVfTWVfTWVyX1lhX0d3X1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlOiBtaW5XZWVrZGF5c1BhcnNlLFxuICAgICAgICBmdWxsV2Vla2RheXNQYXJzZTogZnVsbFdlZWtkYXlzUGFyc2UsXG4gICAgICAgIHNob3J0V2Vla2RheXNQYXJzZTogc2hvcnRXZWVrZGF5c1BhcnNlLFxuICAgICAgICBtaW5XZWVrZGF5c1BhcnNlOiBtaW5XZWVrZGF5c1BhcnNlLFxuXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiBtb250aHNTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogbW9udGhzU2hvcnRTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcblxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2Egdml6XSBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbYSB2aXpdIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbYSB2aXpdIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hpeml2IGRhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1dhcmPKvGhvYXpoIGRhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2RhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0RlY8q8aCBkYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtwYXNldCBkYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdhLWJlbm4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMq8em8nLFxuICAgICAgICAgICAgczogJ3VuIG5lYmV1ZCBzZWdvbmRlbm5vw7knLFxuICAgICAgICAgICAgc3M6ICclZCBlaWxlbm4nLFxuICAgICAgICAgICAgbTogJ3VyIHZ1bnV0ZW5uJyxcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24sXG4gICAgICAgICAgICBoOiAndW4gZXVyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgZXVyJyxcbiAgICAgICAgICAgIGQ6ICd1biBkZXZlemgnLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbixcbiAgICAgICAgICAgIE06ICd1ciBtaXonLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbixcbiAgICAgICAgICAgIHk6ICd1ciBibG9heicsXG4gICAgICAgICAgICB5eTogc3BlY2lhbE11dGF0aW9uRm9yWWVhcnMsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShhw7F8dmV0KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSBudW1iZXIgPT09IDEgPyAnYcOxJyA6ICd2ZXQnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvYS5tLnxnLm0uLywgLy8gZ291ZGUgbWVyZW5uIHwgYS1yYW9rIG1lcmVublxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbiA9PT0gJ2cubS4nO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCAxMiA/ICdhLm0uJyA6ICdnLm0uJztcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBicjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCb3NuaWFuIFtic11cbi8vISBhdXRob3IgOiBOZWRpbSBDaG9saWNoIDogaHR0cHM6Ly9naXRodWIuY29tL2Zyb250eWFyZFxuLy8hIGJhc2VkIG9uIChocikgdHJhbnNsYXRpb24gYnkgQm9qYW4gTWFya292acSHXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdqZWRuYSBtaW51dGEnIDogJ2plZG5lIG1pbnV0ZSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0YSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0ZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnamVkYW4gc2F0JyA6ICdqZWRub2cgc2F0YSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2Rhbic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdkYW5hJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWNpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5lJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluYSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYnMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdicycsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW4uX2ZlYi5fbWFyLl9hcHIuX21hai5fanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV/EjWV0dnJ0YWtfcGV0YWtfc3Vib3RhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVkLl9wb24uX3V0by5fc3JpLl/EjWV0Ll9wZXQuX3N1Yi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdXRfc3JfxI1lX3BlX3N1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3N1dHJhIHVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRqZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3NyaWplZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdcSNZXIgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWx1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGldIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJpamUgJXMnLFxuICAgICAgICAgICAgczogJ3BhciBzZWt1bmRpJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICdkYW4nLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICdtamVzZWMnLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBicztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDYXRhbGFuIFtjYV1cbi8vISBhdXRob3IgOiBKdWFuIEcuIEh1cnRhZG8gOiBodHRwczovL2dpdGh1Yi5jb20vanVhbmdodXJ0YWRvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgY2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdjYScsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOiAnZ2VuZXJfZmVicmVyX21hcsOnX2FicmlsX21haWdfanVueV9qdWxpb2xfYWdvc3Rfc2V0ZW1icmVfb2N0dWJyZV9ub3ZlbWJyZV9kZXNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiBcImRlIGdlbmVyX2RlIGZlYnJlcl9kZSBtYXLDp19kJ2FicmlsX2RlIG1haWdfZGUganVueV9kZSBqdWxpb2xfZCdhZ29zdF9kZSBzZXRlbWJyZV9kJ29jdHVicmVfZGUgbm92ZW1icmVfZGUgZGVzZW1icmVcIi5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL0Rbb0RdPyhcXHMpK01NTU0vLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ2dlbi5fZmVici5fbWFyw6dfYWJyLl9tYWlnX2p1bnlfanVsLl9hZy5fc2V0Ll9vY3QuX25vdi5fZGVzLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdkaXVtZW5nZV9kaWxsdW5zX2RpbWFydHNfZGltZWNyZXNfZGlqb3VzX2RpdmVuZHJlc19kaXNzYWJ0ZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RnLl9kbC5fZHQuX2RjLl9kai5fZHYuX2RzLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkZ19kbF9kdF9kY19kal9kdl9kcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRCBNTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZLCBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBbZGVdIFlZWVkgW2EgbGVzXSBIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQgRCBNTU0gWVlZWSwgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYXZ1aSBhICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbZGVtw6AgYSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdsZXMnIDogJ2xhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW2EgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnbGVzJyA6ICdsYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1thaGlyIGEgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnbGVzJyA6ICdsYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tlbF0gZGRkZCBbcGFzc2F0IGEgJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnbGVzJyA6ICdsYScpICtcbiAgICAgICAgICAgICAgICAgICAgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogXCJkJ2FxdcOtICVzXCIsXG4gICAgICAgICAgICBwYXN0OiAnZmEgJXMnLFxuICAgICAgICAgICAgczogJ3VucyBzZWdvbnMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWdvbnMnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRzJyxcbiAgICAgICAgICAgIGg6ICd1bmEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmVzJyxcbiAgICAgICAgICAgIGQ6ICd1biBkaWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkaWVzJyxcbiAgICAgICAgICAgIE06ICd1biBtZXMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNvcycsXG4gICAgICAgICAgICB5OiAndW4gYW55JyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW55cycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShyfG58dHzDqHxhKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgbnVtYmVyID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3InXG4gICAgICAgICAgICAgICAgICAgIDogbnVtYmVyID09PSAyXG4gICAgICAgICAgICAgICAgICAgID8gJ24nXG4gICAgICAgICAgICAgICAgICAgIDogbnVtYmVyID09PSAzXG4gICAgICAgICAgICAgICAgICAgID8gJ3InXG4gICAgICAgICAgICAgICAgICAgIDogbnVtYmVyID09PSA0XG4gICAgICAgICAgICAgICAgICAgID8gJ3QnXG4gICAgICAgICAgICAgICAgICAgIDogJ8OoJztcbiAgICAgICAgICAgIGlmIChwZXJpb2QgPT09ICd3JyB8fCBwZXJpb2QgPT09ICdXJykge1xuICAgICAgICAgICAgICAgIG91dHB1dCA9ICdhJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBjYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDemVjaCBbY3NdXG4vLyEgYXV0aG9yIDogcGV0cmJlbGEgOiBodHRwczovL2dpdGh1Yi5jb20vcGV0cmJlbGFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSAnbGVkZW5fw7pub3JfYsWZZXplbl9kdWJlbl9rdsSbdGVuX8SNZXJ2ZW5fxI1lcnZlbmVjX3NycGVuX3rDocWZw61fxZnDrWplbl9saXN0b3BhZF9wcm9zaW5lYycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnbGVkX8O6bm9fYsWZZV9kdWJfa3bEm1/EjXZuX8SNdmNfc3JwX3rDocWZX8WZw61qX2xpc19wcm8nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15sZWQvaSxcbiAgICAgICAgICAgIC9ew7puby9pLFxuICAgICAgICAgICAgL15ixZllL2ksXG4gICAgICAgICAgICAvXmR1Yi9pLFxuICAgICAgICAgICAgL15rdsSbL2ksXG4gICAgICAgICAgICAvXijEjXZufMSNZXJ2ZW4kfMSNZXJ2bmEpL2ksXG4gICAgICAgICAgICAvXijEjXZjfMSNZXJ2ZW5lY3zEjWVydmVuY2UpL2ksXG4gICAgICAgICAgICAvXnNycC9pLFxuICAgICAgICAgICAgL156w6HFmS9pLFxuICAgICAgICAgICAgL17FmcOtai9pLFxuICAgICAgICAgICAgL15saXMvaSxcbiAgICAgICAgICAgIC9ecHJvL2ksXG4gICAgICAgIF0sXG4gICAgICAgIC8vIE5PVEU6ICfEjWVydmVuJyBpcyBzdWJzdHJpbmcgb2YgJ8SNZXJ2ZW5lYyc7IHRoZXJlZm9yZSAnxI1lcnZlbmVjJyBtdXN0IHByZWNlZGUgJ8SNZXJ2ZW4nIGluIHRoZSByZWdleCB0byBiZSBmdWxseSBtYXRjaGVkLlxuICAgICAgICAvLyBPdGhlcndpc2UgcGFyc2VyIG1hdGNoZXMgJzEuIMSNZXJ2ZW5lYycgYXMgJzEuIMSNZXJ2ZW4nICsgJ2VjJy5cbiAgICAgICAgbW9udGhzUmVnZXggPSAvXihsZWRlbnzDum5vcnxixZllemVufGR1YmVufGt2xJt0ZW58xI1lcnZlbmVjfMSNZXJ2ZW5jZXzEjWVydmVufMSNZXJ2bmF8c3JwZW58esOhxZnDrXzFmcOtamVufGxpc3RvcGFkfHByb3NpbmVjfGxlZHzDum5vfGLFmWV8ZHVifGt2xJt8xI12bnzEjXZjfHNycHx6w6HFmXzFmcOtanxsaXN8cHJvKS9pO1xuXG4gICAgZnVuY3Rpb24gcGx1cmFsKG4pIHtcbiAgICAgICAgcmV0dXJuIG4gPiAxICYmIG4gPCA1ICYmIH5+KG4gLyAxMCkgIT09IDE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOiAvLyBhIGZldyBzZWNvbmRzIC8gaW4gYSBmZXcgc2Vjb25kcyAvIGEgZmV3IHNlY29uZHMgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAncMOhciBzZWt1bmQnIDogJ3DDoXIgc2VrdW5kYW1pJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzogLy8gOSBzZWNvbmRzIC8gaW4gOSBzZWNvbmRzIC8gOSBzZWNvbmRzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnc2VrdW5keScgOiAnc2VrdW5kJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdzZWt1bmRhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ20nOiAvLyBhIG1pbnV0ZSAvIGluIGEgbWludXRlIC8gYSBtaW51dGUgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnbWludXRhJyA6IGlzRnV0dXJlID8gJ21pbnV0dScgOiAnbWludXRvdSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6IC8vIDkgbWludXRlcyAvIGluIDkgbWludXRlcyAvIDkgbWludXRlcyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21pbnV0eScgOiAnbWludXQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ21pbnV0YW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoJzogLy8gYW4gaG91ciAvIGluIGFuIGhvdXIgLyBhbiBob3VyIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2hvZGluYScgOiBpc0Z1dHVyZSA/ICdob2RpbnUnIDogJ2hvZGlub3UnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOiAvLyA5IGhvdXJzIC8gaW4gOSBob3VycyAvIDkgaG91cnMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdob2RpbnknIDogJ2hvZGluJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdob2RpbmFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZCc6IC8vIGEgZGF5IC8gaW4gYSBkYXkgLyBhIGRheSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkZW4nIDogJ2RuZW0nO1xuICAgICAgICAgICAgY2FzZSAnZGQnOiAvLyA5IGRheXMgLyBpbiA5IGRheXMgLyA5IGRheXMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdkbnknIDogJ2Ruw60nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2RueSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnTSc6IC8vIGEgbW9udGggLyBpbiBhIG1vbnRoIC8gYSBtb250aCBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtxJtzw61jJyA6ICdtxJtzw61jZW0nO1xuICAgICAgICAgICAgY2FzZSAnTU0nOiAvLyA5IG1vbnRocyAvIGluIDkgbW9udGhzIC8gOSBtb250aHMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtxJtzw61jZScgOiAnbcSbc8OtY8WvJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtxJtzw61jaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAneSc6IC8vIGEgeWVhciAvIGluIGEgeWVhciAvIGEgeWVhciBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdyb2snIDogJ3Jva2VtJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzogLy8gOSB5ZWFycyAvIGluIDkgeWVhcnMgLyA5IHllYXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAncm9reScgOiAnbGV0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdsZXR5JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY3MgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdjcycsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHNTaG9ydCxcbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgLy8gTk9URTogJ8SNZXJ2ZW4nIGlzIHN1YnN0cmluZyBvZiAnxI1lcnZlbmVjJzsgdGhlcmVmb3JlICfEjWVydmVuZWMnIG11c3QgcHJlY2VkZSAnxI1lcnZlbicgaW4gdGhlIHJlZ2V4IHRvIGJlIGZ1bGx5IG1hdGNoZWQuXG4gICAgICAgIC8vIE90aGVyd2lzZSBwYXJzZXIgbWF0Y2hlcyAnMS4gxI1lcnZlbmVjJyBhcyAnMS4gxI1lcnZlbicgKyAnZWMnLlxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14obGVkZW58bGVkbmF8w7pub3JhfMO6bm9yfGLFmWV6ZW58YsWZZXpuYXxkdWJlbnxkdWJuYXxrdsSbdGVufGt2xJt0bmF8xI1lcnZlbmVjfMSNZXJ2ZW5jZXzEjWVydmVufMSNZXJ2bmF8c3JwZW58c3JwbmF8esOhxZnDrXzFmcOtamVufMWZw61qbmF8bGlzdG9wYWR1fGxpc3RvcGFkfHByb3NpbmVjfHByb3NpbmNlKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvXihsZWR8w7pub3xixZllfGR1YnxrdsSbfMSNdm58xI12Y3xzcnB8esOhxZl8xZnDrWp8bGlzfHBybykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWTEm2xlX3BvbmTEm2zDrV/DunRlcsO9X3N0xZllZGFfxI10dnJ0ZWtfcMOhdGVrX3NvYm90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lX3BvX8O6dF9zdF/EjXRfcMOhX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX8O6dF9zdF/EjXRfcMOhX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgbDogJ0QuIE0uIFlZWVknLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkbmVzIHZdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbesOtdHJhIHZdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgbmVkxJtsaSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gZGRkZCBbdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2ZSBzdMWZZWR1IHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdmUgxI10dnJ0ZWsgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHDDoXRlayB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Ygc29ib3R1IHZdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1t2xI1lcmEgdl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWxvdSBuZWTEm2xpIHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMOpXSBkZGRkIFt2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsb3Ugc3TFmWVkdSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDvV0gZGRkZCBbdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bG91IHNvYm90dSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3DFmWVkICVzJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBjcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDaHV2YXNoIFtjdl1cbi8vISBhdXRob3IgOiBBbmF0b2x5IE1pcm9ub3YgOiBodHRwczovL2dpdGh1Yi5jb20vbWlyb250b2xpXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgY3YgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdjdicsIHtcbiAgICAgICAgbW9udGhzOiAn0LrTkdGA0LvQsNGHX9C90LDRgNOR0YFf0L/Rg9GIX9Cw0LrQsF/QvNCw0Llf0qvTl9GA0YLQvNC1X9GD0YLTkV/Sq9GD0YDQu9CwX9Cw0LLTkdC9X9GO0L/QsF/Rh9Oz0Lpf0YDQsNGI0YLQsNCyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9C605HRgF/QvdCw0YBf0L/Rg9GIX9Cw0LrQsF/QvNCw0Llf0qvTl9GAX9GD0YLTkV/Sq9GD0YBf0LDQstC9X9GO0L/QsF/Rh9Oz0Lpf0YDQsNGIJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9Cy0YvRgNGB0LDRgNC90LjQutGD0L1f0YLRg9C90YLQuNC60YPQvV/Ri9GC0LvQsNGA0LjQutGD0L1f0Y7QvdC60YPQvV/QutOX0qvQvdC10YDQvdC40LrRg9C9X9GN0YDQvdC10LrRg9C9X9GI05HQvNCw0YLQutGD0L0nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQstGL0YBf0YLRg9C9X9GL0YLQu1/RjtC9X9C605fSq1/RjdGA0L1f0YjTkdC8Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Cy0YBf0YLQvV/Ri9GCX9GO0L1f0LrSq1/RjdGAX9GI0LwnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnWVlZWSBb0qvRg9C70YXQuF0gTU1NTSBb0YPQudOR0YXTl9C9XSBEWy3QvNOX0YjTl10nLFxuICAgICAgICAgICAgTExMOiAnWVlZWSBb0qvRg9C70YXQuF0gTU1NTSBb0YPQudOR0YXTl9C9XSBEWy3QvNOX0YjTl10sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBZWVlZIFvSq9GD0LvRhdC4XSBNTU1NIFvRg9C505HRhdOX0L1dIERbLdC805fRiNOXXSwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQn9Cw0Y/QvV0gTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Cr0YDQsNC9XSBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb05bQvdC10YBdIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb0qrQuNGC0LXRgV0gZGRkZCBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9CY0YDRgtC905ddIGRkZGQgTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogZnVuY3Rpb24gKG91dHB1dCkge1xuICAgICAgICAgICAgICAgIHZhciBhZmZpeCA9IC/RgdC10YXQtdGCJC9pLmV4ZWMob3V0cHV0KVxuICAgICAgICAgICAgICAgICAgICA/ICfRgNC10L0nXG4gICAgICAgICAgICAgICAgICAgIDogL9Kr0YPQuyQvaS5leGVjKG91dHB1dClcbiAgICAgICAgICAgICAgICAgICAgPyAn0YLQsNC9J1xuICAgICAgICAgICAgICAgICAgICA6ICfRgNCw0L0nO1xuICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQgKyBhZmZpeDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXN0OiAnJXMg0LrQsNGP0LvQu9CwJyxcbiAgICAgICAgICAgIHM6ICfQv9OX0YAt0LjQuiDSq9C10LrQutGD0L3RgicsXG4gICAgICAgICAgICBzczogJyVkINKr0LXQutC60YPQvdGCJyxcbiAgICAgICAgICAgIG06ICfQv9OX0YAg0LzQuNC90YPRgicsXG4gICAgICAgICAgICBtbTogJyVkINC80LjQvdGD0YInLFxuICAgICAgICAgICAgaDogJ9C/05fRgCDRgdC10YXQtdGCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YHQtdGF0LXRgicsXG4gICAgICAgICAgICBkOiAn0L/Tl9GAINC60YPQvScsXG4gICAgICAgICAgICBkZDogJyVkINC60YPQvScsXG4gICAgICAgICAgICBNOiAn0L/Tl9GAINGD0LnTkdGFJyxcbiAgICAgICAgICAgIE1NOiAnJWQg0YPQudOR0YUnLFxuICAgICAgICAgICAgeTogJ9C/05fRgCDSq9GD0LsnLFxuICAgICAgICAgICAgeXk6ICclZCDSq9GD0LsnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0t0LzTl9GILyxcbiAgICAgICAgb3JkaW5hbDogJyVkLdC805fRiCcsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBjdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBXZWxzaCBbY3ldXG4vLyEgYXV0aG9yIDogUm9iZXJ0IEFsbGVuIDogaHR0cHM6Ly9naXRodWIuY29tL3JvYmdhbGxlblxuLy8hIGF1dGhvciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yeWFuZ3JlYXZlc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGN5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY3knLCB7XG4gICAgICAgIG1vbnRoczogJ0lvbmF3cl9DaHdlZnJvcl9NYXdydGhfRWJyaWxsX01haV9NZWhlZmluX0dvcmZmZW5uYWZfQXdzdF9NZWRpX0h5ZHJlZl9UYWNod2VkZF9SaGFnZnlyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0lvbl9DaHdlX01hd19FYnJfTWFpX01laF9Hb3JfQXdzX01lZF9IeWRfVGFjaF9SaGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ0R5ZGQgU3VsX0R5ZGQgTGx1bl9EeWRkIE1hd3J0aF9EeWRkIE1lcmNoZXJfRHlkZCBJYXVfRHlkZCBHd2VuZXJfRHlkZCBTYWR3cm4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdWxfTGx1bl9NYXdfTWVyX0lhdV9Hd2VfU2FkJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X0xsX01hX01lX0lhX0d3X1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIC8vIHRpbWUgZm9ybWF0cyBhcmUgdGhlIHNhbWUgYXMgZW4tZ2JcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIZWRkaXcgYW1dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbWWZvcnkgYW1dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYW1dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbRGRvZSBhbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtkaXdldGhhZiBhbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdtZXduICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5biDDtGwnLFxuICAgICAgICAgICAgczogJ3ljaHlkaWcgZWlsaWFkYXUnLFxuICAgICAgICAgICAgc3M6ICclZCBlaWxpYWQnLFxuICAgICAgICAgICAgbTogJ211bnVkJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbXVudWQnLFxuICAgICAgICAgICAgaDogJ2F3cicsXG4gICAgICAgICAgICBoaDogJyVkIGF3cicsXG4gICAgICAgICAgICBkOiAnZGl3cm5vZCcsXG4gICAgICAgICAgICBkZDogJyVkIGRpd3Jub2QnLFxuICAgICAgICAgICAgTTogJ21pcycsXG4gICAgICAgICAgICBNTTogJyVkIG1pcycsXG4gICAgICAgICAgICB5OiAnYmx3eWRkeW4nLFxuICAgICAgICAgICAgeXk6ICclZCBmbHluZWRkJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGZlZHxhaW58YWZ8aWx8eWRkfGVkfGVnKS8sXG4gICAgICAgIC8vIHRyYWRpdGlvbmFsIG9yZGluYWwgbnVtYmVycyBhYm92ZSAzMSBhcmUgbm90IGNvbW1vbmx5IHVzZWQgaW4gY29sbG9xdWlhbCBXZWxzaFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlcixcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJyxcbiAgICAgICAgICAgICAgICBsb29rdXAgPSBbXG4gICAgICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgICAgICAnYWYnLFxuICAgICAgICAgICAgICAgICAgICAnaWwnLFxuICAgICAgICAgICAgICAgICAgICAneWRkJyxcbiAgICAgICAgICAgICAgICAgICAgJ3lkZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZCcsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsIC8vIDFhZiB0byAxMGZlZFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJywgLy8gMTFlZyB0byAyMGZlZFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBpZiAoYiA+IDIwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGIgPT09IDQwIHx8IGIgPT09IDUwIHx8IGIgPT09IDYwIHx8IGIgPT09IDgwIHx8IGIgPT09IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnZmVkJzsgLy8gbm90IDMwYWluLCA3MGFpbiBvciA5MGFpblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICdhaW4nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA+IDApIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSBsb29rdXBbYl07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRGFuaXNoIFtkYV1cbi8vISBhdXRob3IgOiBVbHJpayBOaWVsc2VuIDogaHR0cHM6Ly9naXRodWIuY29tL21yYmFzZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGRhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGEnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnRzX2FwcmlsX21hal9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ3PDuG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2zDuHJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzw7huX21hbl90aXJfb25zX3Rvcl9mcmVfbMO4cicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzw7hfbWFfdGlfb25fdG9fZnJfbMO4Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgW2QuXSBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tpIGRhZyBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaSBtb3JnZW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ3DDpSBkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaSBnw6VyIGtsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbaV0gZGRkZFtzIGtsLl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc2lkZW4nLFxuICAgICAgICAgICAgczogJ2bDpSBzZWt1bmRlcicsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZGVyJyxcbiAgICAgICAgICAgIG06ICdldCBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0dGVyJyxcbiAgICAgICAgICAgIGg6ICdlbiB0aW1lJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGltZXInLFxuICAgICAgICAgICAgZDogJ2VuIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2UnLFxuICAgICAgICAgICAgTTogJ2VuIG3DpW5lZCcsXG4gICAgICAgICAgICBNTTogJyVkIG3DpW5lZGVyJyxcbiAgICAgICAgICAgIHk6ICdldCDDpXInLFxuICAgICAgICAgICAgeXk6ICclZCDDpXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlcm1hbiBbZGVdXG4vLyEgYXV0aG9yIDogbGx1Y2hzIDogaHR0cHM6Ly9naXRodWIuY29tL2xsdWNoc1xuLy8hIGF1dGhvcjogTWVuZWxpb24gRWxlbnPDumxlOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuLy8hIGF1dGhvciA6IE1pa29sYWogRGFkZWxhIDogaHR0cHM6Ly9naXRodWIuY29tL21pazAxYWpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VpbmUgTWludXRlJywgJ2VpbmVyIE1pbnV0ZSddLFxuICAgICAgICAgICAgaDogWydlaW5lIFN0dW5kZScsICdlaW5lciBTdHVuZGUnXSxcbiAgICAgICAgICAgIGQ6IFsnZWluIFRhZycsICdlaW5lbSBUYWcnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyBUYWdlJywgbnVtYmVyICsgJyBUYWdlbiddLFxuICAgICAgICAgICAgdzogWydlaW5lIFdvY2hlJywgJ2VpbmVyIFdvY2hlJ10sXG4gICAgICAgICAgICBNOiBbJ2VpbiBNb25hdCcsICdlaW5lbSBNb25hdCddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIE1vbmF0ZScsIG51bWJlciArICcgTW9uYXRlbiddLFxuICAgICAgICAgICAgeTogWydlaW4gSmFocicsICdlaW5lbSBKYWhyJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgSmFocmUnLCBudW1iZXIgKyAnIEphaHJlbiddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGRlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGUnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcl9GZWJydWFyX03DpHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbi5fRmViLl9Nw6Ryel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ1Nvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU28uX01vLl9EaS5fTWkuX0RvLl9Gci5fU2EuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NvX01vX0RpX01pX0RvX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaGV1dGUgdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnZXN0ZXJuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICd2b3IgJXMnLFxuICAgICAgICAgICAgczogJ2VpbiBwYWFyIFNla3VuZGVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgU2VrdW5kZW4nLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiAnJWQgTWludXRlbicsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6ICclZCBTdHVuZGVuJyxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHc6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB3dzogJyVkIFdvY2hlbicsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR2VybWFuIChBdXN0cmlhKSBbZGUtYXRdXG4vLyEgYXV0aG9yIDogbGx1Y2hzIDogaHR0cHM6Ly9naXRodWIuY29tL2xsdWNoc1xuLy8hIGF1dGhvcjogTWVuZWxpb24gRWxlbnPDumxlOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuLy8hIGF1dGhvciA6IE1hcnRpbiBHcm9sbGVyIDogaHR0cHM6Ly9naXRodWIuY29tL01hZE1HXG4vLyEgYXV0aG9yIDogTWlrb2xhaiBEYWRlbGEgOiBodHRwczovL2dpdGh1Yi5jb20vbWlrMDFhalxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIG06IFsnZWluZSBNaW51dGUnLCAnZWluZXIgTWludXRlJ10sXG4gICAgICAgICAgICBoOiBbJ2VpbmUgU3R1bmRlJywgJ2VpbmVyIFN0dW5kZSddLFxuICAgICAgICAgICAgZDogWydlaW4gVGFnJywgJ2VpbmVtIFRhZyddLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIFRhZ2UnLCBudW1iZXIgKyAnIFRhZ2VuJ10sXG4gICAgICAgICAgICB3OiBbJ2VpbmUgV29jaGUnLCAnZWluZXIgV29jaGUnXSxcbiAgICAgICAgICAgIE06IFsnZWluIE1vbmF0JywgJ2VpbmVtIE1vbmF0J10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcgTW9uYXRlJywgbnVtYmVyICsgJyBNb25hdGVuJ10sXG4gICAgICAgICAgICB5OiBbJ2VpbiBKYWhyJywgJ2VpbmVtIEphaHInXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyBKYWhyZScsIG51bWJlciArICcgSmFocmVuJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZGVBdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2RlLWF0Jywge1xuICAgICAgICBtb250aHM6ICdKw6RubmVyX0ZlYnJ1YXJfTcOkcnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSsOkbi5fRmViLl9Nw6Ryel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ1Nvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU28uX01vLl9EaS5fTWkuX0RvLl9Gci5fU2EuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NvX01vX0RpX01pX0RvX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaGV1dGUgdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnZXN0ZXJuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICd2b3IgJXMnLFxuICAgICAgICAgICAgczogJ2VpbiBwYWFyIFNla3VuZGVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgU2VrdW5kZW4nLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiAnJWQgTWludXRlbicsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6ICclZCBTdHVuZGVuJyxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHc6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB3dzogJyVkIFdvY2hlbicsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVBdDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHZXJtYW4gKFN3aXR6ZXJsYW5kKSBbZGUtY2hdXG4vLyEgYXV0aG9yIDogc3NjaHVlbGxlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zc2NodWVsbGVyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgbTogWydlaW5lIE1pbnV0ZScsICdlaW5lciBNaW51dGUnXSxcbiAgICAgICAgICAgIGg6IFsnZWluZSBTdHVuZGUnLCAnZWluZXIgU3R1bmRlJ10sXG4gICAgICAgICAgICBkOiBbJ2VpbiBUYWcnLCAnZWluZW0gVGFnJ10sXG4gICAgICAgICAgICBkZDogW251bWJlciArICcgVGFnZScsIG51bWJlciArICcgVGFnZW4nXSxcbiAgICAgICAgICAgIHc6IFsnZWluZSBXb2NoZScsICdlaW5lciBXb2NoZSddLFxuICAgICAgICAgICAgTTogWydlaW4gTW9uYXQnLCAnZWluZW0gTW9uYXQnXSxcbiAgICAgICAgICAgIE1NOiBbbnVtYmVyICsgJyBNb25hdGUnLCBudW1iZXIgKyAnIE1vbmF0ZW4nXSxcbiAgICAgICAgICAgIHk6IFsnZWluIEphaHInLCAnZWluZW0gSmFociddLFxuICAgICAgICAgICAgeXk6IFtudW1iZXIgKyAnIEphaHJlJywgbnVtYmVyICsgJyBKYWhyZW4nXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBkZUNoID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGUtY2gnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcl9GZWJydWFyX03DpHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbi5fRmViLl9Nw6Ryel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ1Nvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toZXV0ZSB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dlc3Rlcm4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ZvciAlcycsXG4gICAgICAgICAgICBzOiAnZWluIHBhYXIgU2VrdW5kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBTZWt1bmRlbicsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06ICclZCBNaW51dGVuJyxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogJyVkIFN0dW5kZW4nLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgdzogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHd3OiAnJWQgV29jaGVuJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkZUNoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hbGRpdmlhbiBbZHZdXG4vLyEgYXV0aG9yIDogSmF3aXNoIEhhbWVlZCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXdpc2hcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICAgICAn3pberN6C3qreh96m3oPeqScsXG4gICAgICAgICAgICAn3orerN6E3rDeg96q3ofept6D3qknLFxuICAgICAgICAgICAgJ96J3qfeg96o3pfeqicsXG4gICAgICAgICAgICAn3oferd6V3rDeg96p3o3eqicsXG4gICAgICAgICAgICAn3onerScsXG4gICAgICAgICAgICAn3pbeq96C3rAnLFxuICAgICAgICAgICAgJ96W3qrejd6m3ofeqCcsXG4gICAgICAgICAgICAn3ofer96O3qbekN6w3pPeqicsXG4gICAgICAgICAgICAn3pDerN6V3rDek96s3onesN6E3qbeg96qJyxcbiAgICAgICAgICAgICfeh96u3obesN6T3q/ehN6m3oPeqicsXG4gICAgICAgICAgICAn3oLert6I3qzeid6w3oTept6D3qonLFxuICAgICAgICAgICAgJ96R3qjekN6s3onesN6E3qbeg96qJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXMgPSBbXG4gICAgICAgICAgICAn3ofep96L3qjeh96w3ozepicsXG4gICAgICAgICAgICAn3oDer96J3qYnLFxuICAgICAgICAgICAgJ96H3qbegt6w3o7ep96D3qYnLFxuICAgICAgICAgICAgJ96E3qrei96mJyxcbiAgICAgICAgICAgICfehN6q3oPep96Q3rDeit6m3ozeqCcsXG4gICAgICAgICAgICAn3oDeqt6G3qreg96qJyxcbiAgICAgICAgICAgICfegN6u3oLeqN6A3qjeg96qJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBkdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2R2Jywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6IHdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiB3ZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46ICfeh96n3oveqF/egN6v3onepl/eh96m3oLesF/ehN6q3ovepl/ehN6q3oPep1/egN6q3obeql/egN6u3oLeqCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QvTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv3onehnzeid6KLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ96J3oonID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ96J3oYnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ96J3oonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1veid6o3ofept6L3qpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb3onep96L3qbeid6nXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1veh96o3ofesN6U3qxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW96K3qfeh96o3ozeqt6I3qhdIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfejN6s3oPerd6O3qbeh96oICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfeht6q3oPeqN6C3rAgJXMnLFxuICAgICAgICAgICAgczogJ96Q3qjeht6q3oLesN6M3qreht6u3oXerN6H3rAnLFxuICAgICAgICAgICAgc3M6ICdkJSDekN6o3obeqt6C3rDejN6qJyxcbiAgICAgICAgICAgIG06ICfeid6o3oLeqN6T3qzeh96wJyxcbiAgICAgICAgICAgIG1tOiAn3oneqN6C3qjek96qICVkJyxcbiAgICAgICAgICAgIGg6ICfejt6m3pHeqN6H3qjeg96s3ofesCcsXG4gICAgICAgICAgICBoaDogJ96O3qbekd6o3ofeqN6D3qogJWQnLFxuICAgICAgICAgICAgZDogJ96L3qreiN6m3oDerN6H3rAnLFxuICAgICAgICAgICAgZGQ6ICfei96q3ojept6Q3rAgJWQnLFxuICAgICAgICAgICAgTTogJ96J3qbegN6s3ofesCcsXG4gICAgICAgICAgICBNTTogJ96J3qbekN6wICVkJyxcbiAgICAgICAgICAgIHk6ICfeh96m3oDept6D3qzeh96wJyxcbiAgICAgICAgICAgIHl5OiAn3ofept6A3qbeg96qICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDcsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHcmVlayBbZWxdXG4vLyEgYXV0aG9yIDogQWdnZWxvcyBLYXJhbGlhcyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWhpZWxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0eXBlb2YgRnVuY3Rpb24gIT09ICd1bmRlZmluZWQnICYmIGlucHV0IGluc3RhbmNlb2YgRnVuY3Rpb24pIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGVsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZWwnLCB7XG4gICAgICAgIG1vbnRoc05vbWluYXRpdmVFbDogJ86ZzrHOvc6/z4XOrM+BzrnOv8+CX86mzrXOss+Bzr/Phc6sz4HOuc6/z4JfzpzOrM+Bz4TOuc6/z4JfzpHPgM+Bzq/Ou865zr/Pgl/OnM6szrnOv8+CX86Zzr/Pjc69zrnOv8+CX86Zzr/Pjc67zrnOv8+CX86Rz43Os86/z4XPg8+Ezr/Pgl/Oo861z4DPhM6tzrzOss+BzrnOv8+CX86fzrrPhM+OzrLPgc65zr/Pgl/Onc6/zq3OvM6yz4HOuc6/z4JfzpTOtc66zq3OvM6yz4HOuc6/z4InLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc0dlbml0aXZlRWw6ICfOmc6xzr3Ov8+FzrHPgc6vzr/PhV/Ops61zrLPgc6/z4XOsc+Bzq/Ov8+FX86czrHPgc+Ezq/Ov8+FX86Rz4DPgc65zrvOr86/z4VfzpzOsc6Qzr/PhV/Omc6/z4XOvc6vzr/PhV/Omc6/z4XOu86vzr/PhV/Okc+FzrPOv8+Nz4PPhM6/z4VfzqPOtc+Az4TOtc68zrLPgc6vzr/PhV/On866z4TPic6yz4HOr86/z4Vfzp3Ov861zrzOss+Bzq/Ov8+FX86UzrXOus61zrzOss+Bzq/Ov8+FJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHM6IGZ1bmN0aW9uIChtb21lbnRUb0Zvcm1hdCwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW1vbWVudFRvRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc05vbWluYXRpdmVFbDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdHlwZW9mIGZvcm1hdCA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgICAgICAvRC8udGVzdChmb3JtYXQuc3Vic3RyaW5nKDAsIGZvcm1hdC5pbmRleE9mKCdNTU1NJykpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBkYXkgbnVtYmVyIGJlZm9yZSAnTU1NTSdcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzR2VuaXRpdmVFbFttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc05vbWluYXRpdmVFbFttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfOmc6xzr1fzqbOtc6yX86czrHPgV/Okc+Az4FfzpzOsc+KX86Zzr/Phc69X86Zzr/Phc67X86Rz4XOs1/Oo861z4Bfzp/Ous+EX86dzr/OtV/OlM61zronLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnzprPhc+BzrnOsc66zq5fzpTOtc+Fz4TOrc+BzrFfzqTPgc6vz4TOt1/OpM61z4TOrM+Bz4TOt1/OoM6tzrzPgM+EzrdfzqDOsc+BzrHPg866zrXPhc6uX86jzqzOss6yzrHPhM6/Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnzprPhc+BX86UzrXPhV/OpM+BzrlfzqTOtc+EX86gzrXOvF/OoM6xz4FfzqPOsc6yJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ86az4VfzpTOtV/OpM+BX86kzrVfzqDOtV/OoM6xX86jzrEnLnNwbGl0KCdfJyksXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnzrzOvCcgOiAnzpzOnCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ8+AzrwnIDogJ86gzpwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAoaW5wdXQgKyAnJykudG9Mb3dlckNhc2UoKVswXSA9PT0gJ868JztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL1vOoM6cXVxcLj/OnD9cXC4/L2ksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyRWw6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbzqPOrs68zrXPgc6xIHt9XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW86Rz43Pgc65zr8ge31dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbe31dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbzqfOuM61z4Ige31dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW8+Ezr8gz4DPgc6/zrfOs86/z43OvM61zr3Ov10gZGRkZCBbe31dIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW8+EzrfOvSDPgM+Bzr/Ot86zzr/Pjc68zrXOvc63XSBkZGRkIFt7fV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjogZnVuY3Rpb24gKGtleSwgbW9tKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fY2FsZW5kYXJFbFtrZXldLFxuICAgICAgICAgICAgICAgIGhvdXJzID0gbW9tICYmIG1vbS5ob3VycygpO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ob3V0cHV0KSkge1xuICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5hcHBseShtb20pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG91dHB1dC5yZXBsYWNlKCd7fScsIGhvdXJzICUgMTIgPT09IDEgPyAnz4PPhM63JyA6ICfPg8+EzrnPgicpO1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ8+DzrUgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIM+Az4HOuc69JyxcbiAgICAgICAgICAgIHM6ICfOu86vzrPOsSDOtM61z4XPhM61z4HPjM67zrXPgM+EzrEnLFxuICAgICAgICAgICAgc3M6ICclZCDOtM61z4XPhM61z4HPjM67zrXPgM+EzrEnLFxuICAgICAgICAgICAgbTogJ86tzr3OsSDOu861z4DPhM+MJyxcbiAgICAgICAgICAgIG1tOiAnJWQgzrvOtc+Az4TOrCcsXG4gICAgICAgICAgICBoOiAnzrzOr86xIM+Oz4HOsScsXG4gICAgICAgICAgICBoaDogJyVkIM+Oz4HOtc+CJyxcbiAgICAgICAgICAgIGQ6ICfOvM6vzrEgzrzOrc+BzrEnLFxuICAgICAgICAgICAgZGQ6ICclZCDOvM6tz4HOtc+CJyxcbiAgICAgICAgICAgIE06ICfOrc69zrHPgiDOvM6uzr3Osc+CJyxcbiAgICAgICAgICAgIE1NOiAnJWQgzrzOrs69zrXPgicsXG4gICAgICAgICAgICB5OiAnzq3Ovc6xz4Igz4fPgc+Mzr3Ov8+CJyxcbiAgICAgICAgICAgIHl5OiAnJWQgz4fPgc+Mzr3Ouc6xJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9zrcvLFxuICAgICAgICBvcmRpbmFsOiAnJWTOtycsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDRzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChBdXN0cmFsaWEpIFtlbi1hdV1cbi8vISBhdXRob3IgOiBKYXJlZCBNb3JzZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXJjb2FsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5BdSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWF1Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbkF1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKENhbmFkYSkgW2VuLWNhXVxuLy8hIGF1dGhvciA6IEpvbmF0aGFuIEFib3VyYmloIDogaHR0cHM6Ly9naXRodWIuY29tL2pvbmJjYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuQ2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1jYScsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuQ2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoVW5pdGVkIEtpbmdkb20pIFtlbi1nYl1cbi8vISBhdXRob3IgOiBDaHJpcyBHZWRyaW0gOiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNnZWRyaW1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbkdiID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4tZ2InLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5HYjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChJcmVsYW5kKSBbZW4taWVdXG4vLyEgYXV0aG9yIDogQ2hyaXMgQ2FydGxpZGdlIDogaHR0cHM6Ly9naXRodWIuY29tL2NocmlzY2FydGxpZGdlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5JZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWllJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5JZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChJc3JhZWwpIFtlbi1pbF1cbi8vISBhdXRob3IgOiBDaHJpcyBHZWRyaW0gOiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNnZWRyaW1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbklsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4taWwnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuSWw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoSW5kaWEpIFtlbi1pbl1cbi8vISBhdXRob3IgOiBKYXRpbiBBZ3Jhd2FsIDogaHR0cHM6Ly9naXRodWIuY29tL2phdGluYWcyMlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuSW4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1pbicsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5JbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChOZXcgWmVhbGFuZCkgW2VuLW56XVxuLy8hIGF1dGhvciA6IEx1a2UgTWNHcmVnb3IgOiBodHRwczovL2dpdGh1Yi5jb20vbHVrZW1jZ3JlZ29yXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5OeiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLW56Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbk56O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKFNpbmdhcG9yZSkgW2VuLXNnXVxuLy8hIGF1dGhvciA6IE1hdHRoZXcgQ2FzdHJpbGxvbi1NYWRyaWdhbCA6IGh0dHBzOi8vZ2l0aHViLmNvbS90ZWNoZGltZW5zaW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5TZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLXNnJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuU2c7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRXNwZXJhbnRvIFtlb11cbi8vISBhdXRob3IgOiBDb2xpbiBEZWFuIDogaHR0cHM6Ly9naXRodWIuY29tL2NvbGluZGVhblxuLy8hIGF1dGhvciA6IE1pYSBOb3JkZW50b2Z0IEltcGVyYXRvcmkgOiBodHRwczovL2dpdGh1Yi5jb20vbWllc3Rhc21pYVxuLy8hIGNvbW1lbnQgOiBtaWVzdGFzbWlhIGNvcnJlY3RlZCB0aGUgdHJhbnNsYXRpb24gYnkgY29saW5kZWFuXG4vLyEgY29tbWVudCA6IFZpdmFrdm8gY29ycmVjdGVkIHRoZSB0cmFuc2xhdGlvbiBieSBjb2xpbmRlYW4gYW5kIG1pZXN0YXNtaWFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VvJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJvX2ZlYnJ1YXJvX21hcnRvX2Fwcmlsb19tYWpvX2p1bmlvX2p1bGlvX2HFrWd1c3RvX3NlcHRlbWJyb19va3RvYnJvX25vdmVtYnJvX2RlY2VtYnJvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFydF9hcHJfbWFqX2p1bl9qdWxfYcWtZ19zZXB0X29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWFuxIlvX2x1bmRvX21hcmRvX21lcmtyZWRvX8S1YcWtZG9fdmVuZHJlZG9fc2FiYXRvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGltX2x1bl9tYXJkX21lcmtfxLVhxa1fdmVuX3NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkaV9sdV9tYV9tZV/EtWFfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkW25dLCBbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIFtsYV0gRFstYW4gZGVdIE1NTSwgWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9bYXBdXFwudFxcLm0vaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgPT09ICdwJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwLnQubS4nIDogJ1AuVC5NLic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2EudC5tLicgOiAnQS5ULk0uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSG9kaWHFrSBqZV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tNb3JnYcWtIGplXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGRbbiBqZV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIaWVyYcWtIGplXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1twYXNpbnRhbl0gZGRkZFtuIGplXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3Bvc3QgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2FudGHFrSAlcycsXG4gICAgICAgICAgICBzOiAna2Vsa2FqIHNla3VuZG9qJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kb2onLFxuICAgICAgICAgICAgbTogJ3VudSBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9qJyxcbiAgICAgICAgICAgIGg6ICd1bnUgaG9ybycsXG4gICAgICAgICAgICBoaDogJyVkIGhvcm9qJyxcbiAgICAgICAgICAgIGQ6ICd1bnUgdGFnbycsIC8vbmUgJ2RpdXJubycsIMSJYXIgZXN0YXMgdXppdGEgcG9yIHByb2tzaW11bW9cbiAgICAgICAgICAgIGRkOiAnJWQgdGFnb2onLFxuICAgICAgICAgICAgTTogJ3VudSBtb25hdG8nLFxuICAgICAgICAgICAgTU06ICclZCBtb25hdG9qJyxcbiAgICAgICAgICAgIHk6ICd1bnUgamFybycsXG4gICAgICAgICAgICB5eTogJyVkIGphcm9qJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9YS8sXG4gICAgICAgIG9yZGluYWw6ICclZGEnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3BhbmlzaCBbZXNdXG4vLyEgYXV0aG9yIDogSnVsaW8gTmFwdXLDrSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qdWxpb25jXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPSAnZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZW5lL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYXIvaSxcbiAgICAgICAgICAgIC9eYWJyL2ksXG4gICAgICAgICAgICAvXm1heS9pLFxuICAgICAgICAgICAgL15qdW4vaSxcbiAgICAgICAgICAgIC9eanVsL2ksXG4gICAgICAgICAgICAvXmFnby9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kaWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPSAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pO1xuXG4gICAgdmFyIGVzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXMnLCB7XG4gICAgICAgIG1vbnRoczogJ2VuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14oZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzOiAnZG9taW5nb19sdW5lc19tYXJ0ZXNfbWnDqXJjb2xlc19qdWV2ZXNfdmllcm5lc19zw6FiYWRvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tLl9sdW4uX21hci5fbWnDqS5fanVlLl92aWUuX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX21pX2p1X3ZpX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tob3kgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1ttYcOxYW5hIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1theWVyIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgICAnXSBMVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2hhY2UgJXMnLFxuICAgICAgICAgICAgczogJ3Vub3Mgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW5hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW4gZMOtYScsXG4gICAgICAgICAgICBkZDogJyVkIGTDrWFzJyxcbiAgICAgICAgICAgIE06ICd1biBtZXMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW4gYcOxbycsXG4gICAgICAgICAgICB5eTogJyVkIGHDsW9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICAgICAgaW52YWxpZERhdGU6ICdGZWNoYSBpbnZhbGlkYScsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3BhbmlzaCAoRG9taW5pY2FuIFJlcHVibGljKSBbZXMtZG9dXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPSAnZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZW5lL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYXIvaSxcbiAgICAgICAgICAgIC9eYWJyL2ksXG4gICAgICAgICAgICAvXm1heS9pLFxuICAgICAgICAgICAgL15qdW4vaSxcbiAgICAgICAgICAgIC9eanVsL2ksXG4gICAgICAgICAgICAvXmFnby9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kaWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPSAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pO1xuXG4gICAgdmFyIGVzRG8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlcy1kbycsIHtcbiAgICAgICAgbW9udGhzOiAnZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90W20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvXihlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tacOpLl9qdWUuX3ZpZS5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWlfanVfdmlfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbaG95IGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDsWFuYSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW2EgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYXllciBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW2VsXSBkZGRkIFtwYXNhZG8gYSBsYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VuICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdoYWNlICVzJyxcbiAgICAgICAgICAgIHM6ICd1bm9zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkw61hcycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VuIGHDsW8nLFxuICAgICAgICAgICAgeXk6ICclZCBhw7FvcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXNEbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTcGFuaXNoIChVbml0ZWQgU3RhdGVzKSBbZXMtdXNdXG4vLyEgYXV0aG9yIDogYnVzdHRhIDogaHR0cHM6Ly9naXRodWIuY29tL2J1c3R0YVxuLy8hIGF1dGhvciA6IGNocmlzcm9keiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3JvZHpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTaG9ydERvdCA9ICdlbmUuX2ZlYi5fbWFyLl9hYnIuX21heS5fanVuLl9qdWwuX2Fnby5fc2VwLl9vY3QuX25vdi5fZGljLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15lbmUvaSxcbiAgICAgICAgICAgIC9eZmViL2ksXG4gICAgICAgICAgICAvXm1hci9pLFxuICAgICAgICAgICAgL15hYnIvaSxcbiAgICAgICAgICAgIC9ebWF5L2ksXG4gICAgICAgICAgICAvXmp1bi9pLFxuICAgICAgICAgICAgL15qdWwvaSxcbiAgICAgICAgICAgIC9eYWdvL2ksXG4gICAgICAgICAgICAvXnNlcC9pLFxuICAgICAgICAgICAgL15vY3QvaSxcbiAgICAgICAgICAgIC9ebm92L2ksXG4gICAgICAgICAgICAvXmRpYy9pLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNSZWdleCA9IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2k7XG5cbiAgICB2YXIgZXNVcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VzLXVzJywge1xuICAgICAgICBtb250aHM6ICdlbmVyb19mZWJyZXJvX21hcnpvX2FicmlsX21heW9fanVuaW9fanVsaW9fYWdvc3RvX3NlcHRpZW1icmVfb2N0dWJyZV9ub3ZpZW1icmVfZGljaWVtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90O1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3RbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pLFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICB3ZWVrZGF5czogJ2RvbWluZ29fbHVuZXNfbWFydGVzX21pw6lyY29sZXNfanVldmVzX3ZpZXJuZXNfc8OhYmFkbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbS5fbHVuLl9tYXIuX21pw6kuX2p1ZS5fdmllLl9zw6FiLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb19sdV9tYV9taV9qdV92aV9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnTU0vREQvWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tob3kgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1ttYcOxYW5hIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1theWVyIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgICAnXSBMVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2hhY2UgJXMnLFxuICAgICAgICAgICAgczogJ3Vub3Mgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW5hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW4gZMOtYScsXG4gICAgICAgICAgICBkZDogJyVkIGTDrWFzJyxcbiAgICAgICAgICAgIE06ICd1biBtZXMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW4gYcOxbycsXG4gICAgICAgICAgICB5eTogJyVkIGHDsW9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlc1VzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVzdG9uaWFuIFtldF1cbi8vISBhdXRob3IgOiBIZW5yeSBLZWhsbWFubiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYWRoZW5yeVxuLy8hIGltcHJvdmVtZW50cyA6IElsbGltYXIgVGFtYmVrIDogaHR0cHM6Ly9naXRodWIuY29tL3JhZ3Vsa2FcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzOiBbJ23DtW5lIHNla3VuZGknLCAnbcO1bmkgc2VrdW5kJywgJ3BhYXIgc2VrdW5kaXQnXSxcbiAgICAgICAgICAgIHNzOiBbbnVtYmVyICsgJ3Nla3VuZGknLCBudW1iZXIgKyAnc2VrdW5kaXQnXSxcbiAgICAgICAgICAgIG06IFsnw7xoZSBtaW51dGknLCAnw7xrcyBtaW51dCddLFxuICAgICAgICAgICAgbW06IFtudW1iZXIgKyAnIG1pbnV0aScsIG51bWJlciArICcgbWludXRpdCddLFxuICAgICAgICAgICAgaDogWyfDvGhlIHR1bm5pJywgJ3R1bmQgYWVnYScsICfDvGtzIHR1bmQnXSxcbiAgICAgICAgICAgIGhoOiBbbnVtYmVyICsgJyB0dW5uaScsIG51bWJlciArICcgdHVuZGknXSxcbiAgICAgICAgICAgIGQ6IFsnw7xoZSBww6RldmEnLCAnw7xrcyBww6RldiddLFxuICAgICAgICAgICAgTTogWydrdXUgYWphJywgJ2t1dSBhZWdhJywgJ8O8a3Mga3V1J10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcga3V1JywgbnVtYmVyICsgJyBrdXVkJ10sXG4gICAgICAgICAgICB5OiBbJ8O8aGUgYWFzdGEnLCAnYWFzdGEnLCAnw7xrcyBhYXN0YSddLFxuICAgICAgICAgICAgeXk6IFtudW1iZXIgKyAnIGFhc3RhJywgbnVtYmVyICsgJyBhYXN0YXQnXSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRba2V5XVsyXSA/IGZvcm1hdFtrZXldWzJdIDogZm9ybWF0W2tleV1bMV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdldCcsIHtcbiAgICAgICAgbW9udGhzOiAnamFhbnVhcl92ZWVicnVhcl9tw6RydHNfYXByaWxsX21haV9qdXVuaV9qdXVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9vYmVyX25vdmVtYmVyX2RldHNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYWFuX3ZlZWJyX23DpHJ0c19hcHJfbWFpX2p1dW5pX2p1dWxpX2F1Z19zZXB0X29rdF9ub3ZfZGV0cycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICdww7xoYXDDpGV2X2VzbWFzcMOkZXZfdGVpc2lww6Rldl9rb2xtYXDDpGV2X25lbGphcMOkZXZfcmVlZGVfbGF1cMOkZXYnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdQX0VfVF9LX05fUl9MJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1BfRV9UX0tfTl9SX0wnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUw6RuYSxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbSG9tbWUsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1tKw6RyZ21pbmVdIGRkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tFaWxlLF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbRWVsbWluZV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHDDpHJhc3QnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHRhZ2FzaScsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6ICclZCBww6RldmEnLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGV0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJhc3F1ZSBbZXVdXG4vLyEgYXV0aG9yIDogRW5la28gSWxsYXJyYW1lbmRpIDogaHR0cHM6Ly9naXRodWIuY29tL2VpbGxhcnJhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZXUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdldScsIHtcbiAgICAgICAgbW9udGhzOiAndXJ0YXJyaWxhX290c2FpbGFfbWFydHhvYV9hcGlyaWxhX21haWF0emFfZWthaW5hX3V6dGFpbGFfYWJ1enR1YV9pcmFpbGFfdXJyaWFfYXphcm9hX2FiZW5kdWEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAndXJ0Ll9vdHMuX21hci5fYXBpLl9tYWkuX2VrYS5fdXp0Ll9hYnUuX2lyYS5fdXJyLl9hemEuX2FiZS4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnaWdhbmRlYV9hc3RlbGVoZW5hX2FzdGVhcnRlYV9hc3RlYXprZW5hX29zdGVndW5hX29zdGlyYWxhX2xhcnVuYmF0YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2lnLl9hbC5fYXIuX2F6Ll9vZy5fb2wuX2xyLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdpZ19hbF9hcl9hel9vZ19vbF9scicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVlba29dIE1NTU1bcmVuXSBEW2FdJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVlba29dIE1NTU1bcmVuXSBEW2FdIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXSBISDptbScsXG4gICAgICAgICAgICBsOiAnWVlZWS1NLUQnLFxuICAgICAgICAgICAgbGw6ICdZWVlZW2tvXSBNTU0gRFthXScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZW2tvXSBNTU0gRFthXSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBZWVlZW2tvXSBNTU0gRFthXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2dhdXJdIExUW2V0YW5dJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbYmloYXJdIExUW2V0YW5dJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBMVFtldGFuXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2F0em9dIExUW2V0YW5dJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2F1cnJla29dIGRkZGQgTFRbZXRhbl0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBiYXJydScsXG4gICAgICAgICAgICBwYXN0OiAnZHVlbGEgJXMnLFxuICAgICAgICAgICAgczogJ3NlZ3VuZG8gYmF0enVrJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kbycsXG4gICAgICAgICAgICBtOiAnbWludXR1IGJhdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0dScsXG4gICAgICAgICAgICBoOiAnb3JkdSBiYXQnLFxuICAgICAgICAgICAgaGg6ICclZCBvcmR1JyxcbiAgICAgICAgICAgIGQ6ICdlZ3VuIGJhdCcsXG4gICAgICAgICAgICBkZDogJyVkIGVndW4nLFxuICAgICAgICAgICAgTTogJ2hpbGFiZXRlIGJhdCcsXG4gICAgICAgICAgICBNTTogJyVkIGhpbGFiZXRlJyxcbiAgICAgICAgICAgIHk6ICd1cnRlIGJhdCcsXG4gICAgICAgICAgICB5eTogJyVkIHVydGUnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGV1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFBlcnNpYW4gW2ZhXVxuLy8hIGF1dGhvciA6IEVicmFoaW0gQnlhZ293aSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9lYnJhbWluaW9cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfbsScsXG4gICAgICAgICAgICAnMic6ICfbsicsXG4gICAgICAgICAgICAnMyc6ICfbsycsXG4gICAgICAgICAgICAnNCc6ICfbtCcsXG4gICAgICAgICAgICAnNSc6ICfbtScsXG4gICAgICAgICAgICAnNic6ICfbticsXG4gICAgICAgICAgICAnNyc6ICfbtycsXG4gICAgICAgICAgICAnOCc6ICfbuCcsXG4gICAgICAgICAgICAnOSc6ICfbuScsXG4gICAgICAgICAgICAnMCc6ICfbsCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfbsSc6ICcxJyxcbiAgICAgICAgICAgICfbsic6ICcyJyxcbiAgICAgICAgICAgICfbsyc6ICczJyxcbiAgICAgICAgICAgICfbtCc6ICc0JyxcbiAgICAgICAgICAgICfbtSc6ICc1JyxcbiAgICAgICAgICAgICfbtic6ICc2JyxcbiAgICAgICAgICAgICfbtyc6ICc3JyxcbiAgICAgICAgICAgICfbuCc6ICc4JyxcbiAgICAgICAgICAgICfbuSc6ICc5JyxcbiAgICAgICAgICAgICfbsCc6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBmYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZhJywge1xuICAgICAgICBtb250aHM6ICfamNin2YbZiNuM2Ydf2YHZiNix24zZh1/Zhdin2LHYs1/YotmI2LHbjNmEX9mF2Ydf2pjZiNim2YZf2pjZiNim24zZh1/Yp9mI2Kpf2LPZvtiq2KfZhdio2LFf2Kfaqdiq2KjYsV/ZhtmI2KfZhdio2LFf2K/Ys9in2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9qY2KfZhtmI24zZh1/ZgdmI2LHbjNmHX9mF2KfYsdizX9ii2YjYsduM2YRf2YXZh1/amNmI2KbZhl/amNmI2KbbjNmHX9in2YjYql/Ys9m+2KrYp9mF2KjYsV/Yp9qp2KrYqNixX9mG2YjYp9mF2KjYsV/Yr9iz2KfZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn24zaqVxcdTIwMGPYtNmG2KjZh1/Yr9mI2LTZhtio2Ydf2LPZh1xcdTIwMGPYtNmG2KjZh1/ahtmH2KfYsdi02YbYqNmHX9m+2YbYrFxcdTIwMGPYtNmG2KjZh1/YrNmF2LnZh1/YtNmG2KjZhycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9uM2qlcXHUyMDBj2LTZhtio2Ydf2K/ZiNi02YbYqNmHX9iz2YdcXHUyMDBj2LTZhtio2Ydf2obZh9in2LHYtNmG2KjZh1/ZvtmG2KxcXHUyMDBj2LTZhtio2Ydf2KzZhdi52Ydf2LTZhtio2YcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn24xf2K9f2LNf2oZf2b5f2Kxf2LQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2YLYqNmEINin2LIg2LjZh9ixfNio2LnYryDYp9iyINi42YfYsS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC/YqNi52K8g2KfYsiDYuNmH2LEvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YLYqNmEINin2LIg2LjZh9ixJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYqNi52K8g2KfYsiDYuNmH2LEnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mF2LHZiNiyINiz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9mB2LHYr9inINiz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9iz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9iv24zYsdmI2LIg2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2b7bjNi0XSBb2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2K/YsSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg2b7bjNi0JyxcbiAgICAgICAgICAgIHM6ICfahtmG2K8g2KvYp9mG24zZhycsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtuM2YcnLFxuICAgICAgICAgICAgbTogJ9uM2qkg2K/ZgtuM2YLZhycsXG4gICAgICAgICAgICBtbTogJyVkINiv2YLbjNmC2YcnLFxuICAgICAgICAgICAgaDogJ9uM2qkg2LPYp9i52KonLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYqicsXG4gICAgICAgICAgICBkOiAn24zaqSDYsdmI2LInLFxuICAgICAgICAgICAgZGQ6ICclZCDYsdmI2LInLFxuICAgICAgICAgICAgTTogJ9uM2qkg2YXYp9mHJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2YXYp9mHJyxcbiAgICAgICAgICAgIHk6ICfbjNqpINiz2KfZhCcsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfZhCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1vbsC3buV0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3ZhS8sXG4gICAgICAgIG9yZGluYWw6ICclZNmFJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGaW5uaXNoIFtmaV1cbi8vISBhdXRob3IgOiBUYXJtbyBBaWRhbnRhdXN0YSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGVhZG9mXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbnVtYmVyc1Bhc3QgPSAnbm9sbGEgeWtzaSBrYWtzaSBrb2xtZSBuZWxqw6Qgdmlpc2kga3V1c2kgc2VpdHNlbcOkbiBrYWhkZWtzYW4geWhkZWtzw6RuJy5zcGxpdChcbiAgICAgICAgICAgICcgJ1xuICAgICAgICApLFxuICAgICAgICBudW1iZXJzRnV0dXJlID0gW1xuICAgICAgICAgICAgJ25vbGxhJyxcbiAgICAgICAgICAgICd5aGRlbicsXG4gICAgICAgICAgICAna2FoZGVuJyxcbiAgICAgICAgICAgICdrb2xtZW4nLFxuICAgICAgICAgICAgJ25lbGrDpG4nLFxuICAgICAgICAgICAgJ3ZpaWRlbicsXG4gICAgICAgICAgICAna3V1ZGVuJyxcbiAgICAgICAgICAgIG51bWJlcnNQYXN0WzddLFxuICAgICAgICAgICAgbnVtYmVyc1Bhc3RbOF0sXG4gICAgICAgICAgICBudW1iZXJzUGFzdFs5XSxcbiAgICAgICAgXTtcbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdtdXV0YW1hbiBzZWt1bm5pbicgOiAnbXV1dGFtYSBzZWt1bnRpJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICdzZWt1bm5pbicgOiAnc2VrdW50aWEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ21pbnV1dGluJyA6ICdtaW51dXR0aSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAnbWludXV0aW4nIDogJ21pbnV1dHRpYSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAndHVubmluJyA6ICd0dW50aSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAndHVubmluJyA6ICd0dW50aWEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ3DDpGl2w6RuJyA6ICdww6RpdsOkJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICdww6RpdsOkbicgOiAncMOkaXbDpMOkJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdrdXVrYXVkZW4nIDogJ2t1dWthdXNpJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICdrdXVrYXVkZW4nIDogJ2t1dWthdXR0YSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAndnVvZGVuJyA6ICd2dW9zaSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAndnVvZGVuJyA6ICd2dW90dGEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IHZlcmJhbE51bWJlcihudW1iZXIsIGlzRnV0dXJlKSArICcgJyArIHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmVyYmFsTnVtYmVyKG51bWJlciwgaXNGdXR1cmUpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlciA8IDEwXG4gICAgICAgICAgICA/IGlzRnV0dXJlXG4gICAgICAgICAgICAgICAgPyBudW1iZXJzRnV0dXJlW251bWJlcl1cbiAgICAgICAgICAgICAgICA6IG51bWJlcnNQYXN0W251bWJlcl1cbiAgICAgICAgICAgIDogbnVtYmVyO1xuICAgIH1cblxuICAgIHZhciBmaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZpJywge1xuICAgICAgICBtb250aHM6ICd0YW1taWt1dV9oZWxtaWt1dV9tYWFsaXNrdXVfaHVodGlrdXVfdG91a29rdXVfa2Vzw6RrdXVfaGVpbsOka3V1X2Vsb2t1dV9zeXlza3V1X2xva2FrdXVfbWFycmFza3V1X2pvdWx1a3V1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ3RhbW1pX2hlbG1pX21hYWxpc19odWh0aV90b3Vrb19rZXPDpF9oZWluw6RfZWxvX3N5eXNfbG9rYV9tYXJyYXNfam91bHUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAnc3VubnVudGFpX21hYW5hbnRhaV90aWlzdGFpX2tlc2tpdmlpa2tvX3RvcnN0YWlfcGVyamFudGFpX2xhdWFudGFpJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc3VfbWFfdGlfa2VfdG9fcGVfbGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc3VfbWFfdGlfa2VfdG9fcGVfbGEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRG8gTU1NTVt0YV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEbyBNTU1NW3RhXSBZWVlZLCBba2xvXSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0nLFxuICAgICAgICAgICAgbDogJ0QuTS5ZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRG8gTU1NIFlZWVknLFxuICAgICAgICAgICAgbGxsOiAnRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIERvIE1NTSBZWVlZLCBba2xvXSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW3TDpG7DpMOkbl0gW2tsb10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1todW9tZW5uYV0gW2tsb10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrbG9dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZWlsZW5dIFtrbG9dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3ZpaW1lXSBkZGRkW25hXSBba2xvXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHDDpMOkc3TDpCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc2l0dGVuJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmaTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGaWxpcGlubyBbZmlsXVxuLy8hIGF1dGhvciA6IERhbiBIYWdtYW4gOiBodHRwczovL2dpdGh1Yi5jb20vaGFnbWFuZGFuXG4vLyEgYXV0aG9yIDogTWF0dGhldyBDbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGV3ZGVlY29cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBmaWwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmaWwnLCB7XG4gICAgICAgIG1vbnRoczogJ0VuZXJvX1BlYnJlcm9fTWFyc29fQWJyaWxfTWF5b19IdW55b19IdWx5b19BZ29zdG9fU2V0eWVtYnJlX09rdHVicmVfTm9ieWVtYnJlX0Rpc3llbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0Rpcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdMaW5nZ29fTHVuZXNfTWFydGVzX01peWVya3VsZXNfSHV3ZWJlc19CaXllcm5lc19TYWJhZG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdMaW5fTHVuX01hcl9NaXlfSHV3X0JpeV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTGlfTHVfTWFfTWlfSHVfQmlfU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnTU0vRC9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnTU1NTSBELCBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ01NTU0gRCwgWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBERCwgWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnTFQgW25nYXlvbmcgYXJhd10nLFxuICAgICAgICAgICAgbmV4dERheTogJ1tCdWthcyBuZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnTFQgW2thaGFwb25dJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3NhIGxvb2IgbmcgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFuZyBuYWthbGlwYXMnLFxuICAgICAgICAgICAgczogJ2lsYW5nIHNlZ3VuZG8nLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvJyxcbiAgICAgICAgICAgIG06ICdpc2FuZyBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG8nLFxuICAgICAgICAgICAgaDogJ2lzYW5nIG9yYXMnLFxuICAgICAgICAgICAgaGg6ICclZCBvcmFzJyxcbiAgICAgICAgICAgIGQ6ICdpc2FuZyBhcmF3JyxcbiAgICAgICAgICAgIGRkOiAnJWQgYXJhdycsXG4gICAgICAgICAgICBNOiAnaXNhbmcgYnV3YW4nLFxuICAgICAgICAgICAgTU06ICclZCBidXdhbicsXG4gICAgICAgICAgICB5OiAnaXNhbmcgdGFvbicsXG4gICAgICAgICAgICB5eTogJyVkIHRhb24nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZhcm9lc2UgW2ZvXVxuLy8hIGF1dGhvciA6IFJhZ25hciBKb2hhbm5lc2VuIDogaHR0cHM6Ly9naXRodWIuY29tL3JhZ25hcjEyM1xuLy8hIGF1dGhvciA6IEtyaXN0aWFuIFNha2FyaXNzb24gOiBodHRwczovL2dpdGh1Yi5jb20vc2FrYXJpc3NvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGZvID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZm8nLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnNfYXByw61sX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ3N1bm51ZGFndXJfbcOhbmFkYWd1cl90w71zZGFndXJfbWlrdWRhZ3VyX2jDs3NkYWd1cl9mcsOtZ2dqYWRhZ3VyX2xleWdhcmRhZ3VyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc3VuX23DoW5fdMO9c19taWtfaMOzc19mcsOtX2xleScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzdV9tw6FfdMO9X21pX2jDs19mcl9sZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBELiBNTU1NLCBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbw40gZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vDjSBtb3JnaW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vDjSBnasOhciBrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3PDrcOwc3R1XSBkZGRkIFtrbF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd1bSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc8Otw7BhbmknLFxuICAgICAgICAgICAgczogJ2bDoSBzZWt1bmQnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRpcicsXG4gICAgICAgICAgICBtOiAnZWluIG1pbnV0dHVyJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR0aXInLFxuICAgICAgICAgICAgaDogJ2VpbiB0w61taScsXG4gICAgICAgICAgICBoaDogJyVkIHTDrW1hcicsXG4gICAgICAgICAgICBkOiAnZWluIGRhZ3VyJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnYXInLFxuICAgICAgICAgICAgTTogJ2VpbiBtw6FuYcOwdXInLFxuICAgICAgICAgICAgTU06ICclZCBtw6FuYcOwaXInLFxuICAgICAgICAgICAgeTogJ2VpdHQgw6FyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw6FyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGcmVuY2ggW2ZyXVxuLy8hIGF1dGhvciA6IEpvaG4gRmlzY2hlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qZnJvZmZpY2VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTdHJpY3RSZWdleCA9IC9eKGphbnZpZXJ8ZsOpdnJpZXJ8bWFyc3xhdnJpbHxtYWl8anVpbnxqdWlsbGV0fGFvw7t0fHNlcHRlbWJyZXxvY3RvYnJlfG5vdmVtYnJlfGTDqWNlbWJyZSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleCA9IC8oamFudlxcLj98ZsOpdnJcXC4/fG1hcnN8YXZyXFwuP3xtYWl8anVpbnxqdWlsXFwuP3xhb8O7dHxzZXB0XFwuP3xvY3RcXC4/fG5vdlxcLj98ZMOpY1xcLj8pL2ksXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gLyhqYW52XFwuP3xmw6l2clxcLj98bWFyc3xhdnJcXC4/fG1haXxqdWlufGp1aWxcXC4/fGFvw7t0fHNlcHRcXC4/fG9jdFxcLj98bm92XFwuP3xkw6ljXFwuP3xqYW52aWVyfGbDqXZyaWVyfG1hcnN8YXZyaWx8bWFpfGp1aW58anVpbGxldHxhb8O7dHxzZXB0ZW1icmV8b2N0b2JyZXxub3ZlbWJyZXxkw6ljZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15qYW52L2ksXG4gICAgICAgICAgICAvXmbDqXZyL2ksXG4gICAgICAgICAgICAvXm1hcnMvaSxcbiAgICAgICAgICAgIC9eYXZyL2ksXG4gICAgICAgICAgICAvXm1haS9pLFxuICAgICAgICAgICAgL15qdWluL2ksXG4gICAgICAgICAgICAvXmp1aWwvaSxcbiAgICAgICAgICAgIC9eYW/Du3QvaSxcbiAgICAgICAgICAgIC9ec2VwdC9pLFxuICAgICAgICAgICAgL15vY3QvaSxcbiAgICAgICAgICAgIC9ebm92L2ksXG4gICAgICAgICAgICAvXmTDqWMvaSxcbiAgICAgICAgXTtcblxuICAgIHZhciBmciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZyJywge1xuICAgICAgICBtb250aHM6ICdqYW52aWVyX2bDqXZyaWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb8O7dF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kw6ljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFudi5fZsOpdnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb8O7dF9zZXB0Ll9vY3QuX25vdi5fZMOpYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiBtb250aHNTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogbW9udGhzU2hvcnRTdHJpY3RSZWdleCxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RpX2x1X21hX21lX2plX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tBdWpvdXJk4oCZaHVpIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0RlbWFpbiDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2Rlcm5pZXIgw6BdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFucyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaWwgeSBhICVzJyxcbiAgICAgICAgICAgIHM6ICdxdWVscXVlcyBzZWNvbmRlcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGVzJyxcbiAgICAgICAgICAgIG06ICd1bmUgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAndW5lIGhldXJlJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaGV1cmVzJyxcbiAgICAgICAgICAgIGQ6ICd1biBqb3VyJyxcbiAgICAgICAgICAgIGRkOiAnJWQgam91cnMnLFxuICAgICAgICAgICAgTTogJ3VuIG1vaXMnLFxuICAgICAgICAgICAgTU06ICclZCBtb2lzJyxcbiAgICAgICAgICAgIHk6ICd1biBhbicsXG4gICAgICAgICAgICB5eTogJyVkIGFucycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShlcnwpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IFJldHVybiAnZScgd2hlbiBkYXkgb2YgbW9udGggPiAxLiBNb3ZlIHRoaXMgY2FzZSBpbnNpZGVcbiAgICAgICAgICAgICAgICAvLyBibG9jayBmb3IgbWFzY3VsaW5lIHdvcmRzIGJlbG93LlxuICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMzM3NVxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdlcicgOiAnJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIG1hc2N1bGluZSBncmFtbWF0aWNhbCBnZW5kZXI6IG1vaXMsIHRyaW1lc3RyZSwgam91clxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAnZXInIDogJ2UnKTtcblxuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggZmVtaW5pbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBzZW1haW5lXG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ3JlJyA6ICdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGcmVuY2ggKENhbmFkYSkgW2ZyLWNhXVxuLy8hIGF1dGhvciA6IEpvbmF0aGFuIEFib3VyYmloIDogaHR0cHM6Ly9naXRodWIuY29tL2pvbmJjYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGZyQ2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmci1jYScsIHtcbiAgICAgICAgbW9udGhzOiAnamFudmllcl9mw6l2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW/Du3Rfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZMOpY2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbnYuX2bDqXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW/Du3Rfc2VwdC5fb2N0Ll9ub3YuX2TDqWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGlfbHVfbWFfbWVfamVfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0F1am91cmTigJlodWkgw6BdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRGVtYWluIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8OgXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0hpZXIgw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZGVybmllciDDoF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYW5zICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdpbCB5IGEgJXMnLFxuICAgICAgICAgICAgczogJ3F1ZWxxdWVzIHNlY29uZGVzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kZXMnLFxuICAgICAgICAgICAgbTogJ3VuZSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICd1bmUgaGV1cmUnLFxuICAgICAgICAgICAgaGg6ICclZCBoZXVyZXMnLFxuICAgICAgICAgICAgZDogJ3VuIGpvdXInLFxuICAgICAgICAgICAgZGQ6ICclZCBqb3VycycsXG4gICAgICAgICAgICBNOiAndW4gbW9pcycsXG4gICAgICAgICAgICBNTTogJyVkIG1vaXMnLFxuICAgICAgICAgICAgeTogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGVyfGUpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggbWFzY3VsaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogbW9pcywgdHJpbWVzdHJlLCBqb3VyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdlcicgOiAnZScpO1xuXG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBmZW1pbmluZSBncmFtbWF0aWNhbCBnZW5kZXI6IHNlbWFpbmVcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAncmUnIDogJ2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmckNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZyZW5jaCAoU3dpdHplcmxhbmQpIFtmci1jaF1cbi8vISBhdXRob3IgOiBHYXNwYXJkIEJ1Y2hlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9nYXNwYXJkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZnJDaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZyLWNoJywge1xuICAgICAgICBtb250aHM6ICdqYW52aWVyX2bDqXZyaWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb8O7dF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kw6ljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFudi5fZsOpdnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb8O7dF9zZXB0Ll9vY3QuX25vdi5fZMOpYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2FtLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkaV9sdV9tYV9tZV9qZV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQXVqb3VyZOKAmWh1aSDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tEZW1haW4gw6BdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSGllciDDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtkZXJuaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbnMgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2lsIHkgYSAlcycsXG4gICAgICAgICAgICBzOiAncXVlbHF1ZXMgc2Vjb25kZXMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRlcycsXG4gICAgICAgICAgICBtOiAndW5lIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ3VuZSBoZXVyZScsXG4gICAgICAgICAgICBoaDogJyVkIGhldXJlcycsXG4gICAgICAgICAgICBkOiAndW4gam91cicsXG4gICAgICAgICAgICBkZDogJyVkIGpvdXJzJyxcbiAgICAgICAgICAgIE06ICd1biBtb2lzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9pcycsXG4gICAgICAgICAgICB5OiAndW4gYW4nLFxuICAgICAgICAgICAgeXk6ICclZCBhbnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZXJ8ZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBtYXNjdWxpbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBtb2lzLCB0cmltZXN0cmUsIGpvdXJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ2VyJyA6ICdlJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIGZlbWluaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogc2VtYWluZVxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdyZScgOiAnZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnJDaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGcmlzaWFuIFtmeV1cbi8vISBhdXRob3IgOiBSb2JpbiB2YW4gZGVyIFZsaWV0IDogaHR0cHM6Ly9naXRodWIuY29tL3JvYmluMHZhbjBkZXIwdlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPSAnamFuLl9mZWIuX21ydC5fYXByLl9tYWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnRXaXRob3V0RG90cyA9ICdqYW5fZmViX21ydF9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2Rlcycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKTtcblxuICAgIHZhciBmeSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2Z5Jywge1xuICAgICAgICBtb250aHM6ICdqYW5uZXdhcmlzX2ZlYnJld2FyaXNfbWFhcnRfYXByaWxfbWFhaWVfanVueV9qdWx5X2F1Z3VzdHVzX3NlcHRpbWJlcl9va3RvYmVyX25vdmltYmVyX2Rlc2ltYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHM7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aG91dERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdzbmVpbl9tb2FuZGVpX3RpaXNkZWlfd29hbnNkZWlfdG9uZ2Vyc2RlaV9mcmVlZF9zbmVvbicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3NpLl9tby5fdGkuX3dvLl90by5fZnIuX3NvLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTaV9Nb19UaV9Xb19Ub19Gcl9Tbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaGpvZWQgb21dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9hcm4gb21dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbanVzdGVyIG9tXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vDtGZyw7tuZV0gZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb2VyICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBseW4nLFxuICAgICAgICAgICAgczogJ2luIHBlYXIgc2Vrb25kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBzZWtvbmRlbicsXG4gICAgICAgICAgICBtOiAnaWVuIG1pbsO6dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZW4nLFxuICAgICAgICAgICAgaDogJ2llbiBvZXJlJyxcbiAgICAgICAgICAgIGhoOiAnJWQgb2VyZW4nLFxuICAgICAgICAgICAgZDogJ2llbiBkZWknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdlbicsXG4gICAgICAgICAgICBNOiAnaWVuIG1vYW5uZScsXG4gICAgICAgICAgICBNTTogJyVkIG1vYW5uZW4nLFxuICAgICAgICAgICAgeTogJ2llbiBqaWVyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgamllcnJlbicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdGV8ZGUpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgIChudW1iZXIgPT09IDEgfHwgbnVtYmVyID09PSA4IHx8IG51bWJlciA+PSAyMCA/ICdzdGUnIDogJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmeTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBJcmlzaCBvciBJcmlzaCBHYWVsaWMgW2dhXVxuLy8hIGF1dGhvciA6IEFuZHLDqSBTaWx2YSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc2twdFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9IFtcbiAgICAgICAgICAgICdFYW7DoWlyJyxcbiAgICAgICAgICAgICdGZWFiaHJhJyxcbiAgICAgICAgICAgICdNw6FydGEnLFxuICAgICAgICAgICAgJ0FpYnJlw6FuJyxcbiAgICAgICAgICAgICdCZWFsdGFpbmUnLFxuICAgICAgICAgICAgJ01laXRoZWFtaCcsXG4gICAgICAgICAgICAnScO6aWwnLFxuICAgICAgICAgICAgJ0zDum5hc2EnLFxuICAgICAgICAgICAgJ01lw6FuIEbDs21oYWlyJyxcbiAgICAgICAgICAgICdEZWlyZWFkaCBGw7NtaGFpcicsXG4gICAgICAgICAgICAnU2FtaGFpbicsXG4gICAgICAgICAgICAnTm9sbGFpZycsXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gW1xuICAgICAgICAgICAgJ0VhbicsXG4gICAgICAgICAgICAnRmVhYmgnLFxuICAgICAgICAgICAgJ03DoXJ0JyxcbiAgICAgICAgICAgICdBaWInLFxuICAgICAgICAgICAgJ0JlYWwnLFxuICAgICAgICAgICAgJ01laXRoJyxcbiAgICAgICAgICAgICdJw7ppbCcsXG4gICAgICAgICAgICAnTMO6bicsXG4gICAgICAgICAgICAnTS5GLicsXG4gICAgICAgICAgICAnRC5GLicsXG4gICAgICAgICAgICAnU2FtaCcsXG4gICAgICAgICAgICAnTm9sbCcsXG4gICAgICAgIF0sXG4gICAgICAgIHdlZWtkYXlzID0gW1xuICAgICAgICAgICAgJ0TDqSBEb21obmFpZ2gnLFxuICAgICAgICAgICAgJ0TDqSBMdWFpbicsXG4gICAgICAgICAgICAnRMOpIE3DoWlydCcsXG4gICAgICAgICAgICAnRMOpIEPDqWFkYW9pbicsXG4gICAgICAgICAgICAnRMOpYXJkYW9pbicsXG4gICAgICAgICAgICAnRMOpIGhBb2luZScsXG4gICAgICAgICAgICAnRMOpIFNhdGhhaXJuJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA9IFsnRG9taCcsICdMdWFuJywgJ03DoWlydCcsICdDw6lhZCcsICdEw6lhcicsICdBb2luZScsICdTYXRoJ10sXG4gICAgICAgIHdlZWtkYXlzTWluID0gWydEbycsICdMdScsICdNw6EnLCAnQ8OpJywgJ0TDqScsICdBJywgJ1NhJ107XG5cbiAgICB2YXIgZ2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnYScsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHNTaG9ydCxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6IHdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiB3ZWVrZGF5c1Nob3J0LFxuICAgICAgICB3ZWVrZGF5c01pbjogd2Vla2RheXNNaW4sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSW5uaXUgYWddIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQW3DoXJhY2ggYWddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYWddIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSW5uw6kgYWddIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbc2VvIGNhaXRlXSBbYWddIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgw7Mgc2hpbicsXG4gICAgICAgICAgICBzOiAnY8O6cGxhIHNvaWNpbmQnLFxuICAgICAgICAgICAgc3M6ICclZCBzb2ljaW5kJyxcbiAgICAgICAgICAgIG06ICduw7NpbcOpYWQnLFxuICAgICAgICAgICAgbW06ICclZCBuw7NpbcOpYWQnLFxuICAgICAgICAgICAgaDogJ3VhaXIgYW4gY2hsb2lnJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdWFpciBhbiBjaGxvaWcnLFxuICAgICAgICAgICAgZDogJ2zDoScsXG4gICAgICAgICAgICBkZDogJyVkIGzDoScsXG4gICAgICAgICAgICBNOiAnbcOtJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOtb25uYScsXG4gICAgICAgICAgICB5OiAnYmxpYWluJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYmxpYWluJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGR8bmF8bWgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IG51bWJlciA9PT0gMSA/ICdkJyA6IG51bWJlciAlIDEwID09PSAyID8gJ25hJyA6ICdtaCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2NvdHRpc2ggR2FlbGljIFtnZF1cbi8vISBhdXRob3IgOiBKb24gQXNoZG93biA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb25hc2hkb3duXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAgICAgJ0FtIEZhb2lsbGVhY2gnLFxuICAgICAgICAgICAgJ0FuIEdlYXJyYW4nLFxuICAgICAgICAgICAgJ0FtIE3DoHJ0JyxcbiAgICAgICAgICAgICdBbiBHaWJsZWFuJyxcbiAgICAgICAgICAgICdBbiBDw6hpdGVhbicsXG4gICAgICAgICAgICAnQW4gdC3DkmdtaGlvcycsXG4gICAgICAgICAgICAnQW4gdC1JdWNoYXInLFxuICAgICAgICAgICAgJ0FuIEzDuW5hc3RhbCcsXG4gICAgICAgICAgICAnQW4gdC1TdWx0YWluJyxcbiAgICAgICAgICAgICdBbiBEw6BtaGFpcicsXG4gICAgICAgICAgICAnQW4gdC1TYW1oYWluJyxcbiAgICAgICAgICAgICdBbiBEw7liaGxhY2hkJyxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSBbXG4gICAgICAgICAgICAnRmFvaScsXG4gICAgICAgICAgICAnR2VhcicsXG4gICAgICAgICAgICAnTcOgcnQnLFxuICAgICAgICAgICAgJ0dpYmwnLFxuICAgICAgICAgICAgJ0PDqGl0JyxcbiAgICAgICAgICAgICfDkmdtaCcsXG4gICAgICAgICAgICAnSXVjaCcsXG4gICAgICAgICAgICAnTMO5bicsXG4gICAgICAgICAgICAnU3VsdCcsXG4gICAgICAgICAgICAnRMOgbWgnLFxuICAgICAgICAgICAgJ1NhbWgnLFxuICAgICAgICAgICAgJ0TDuWJoJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXMgPSBbXG4gICAgICAgICAgICAnRGlkw7JtaG5haWNoJyxcbiAgICAgICAgICAgICdEaWx1YWluJyxcbiAgICAgICAgICAgICdEaW3DoGlydCcsXG4gICAgICAgICAgICAnRGljaWFkYWluJyxcbiAgICAgICAgICAgICdEaWFyZGFvaW4nLFxuICAgICAgICAgICAgJ0RpaGFvaW5lJyxcbiAgICAgICAgICAgICdEaXNhdGhhaXJuZScsXG4gICAgICAgIF0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgPSBbJ0RpZCcsICdEaWwnLCAnRGltJywgJ0RpYycsICdEaWEnLCAnRGloJywgJ0RpcyddLFxuICAgICAgICB3ZWVrZGF5c01pbiA9IFsnRMOyJywgJ0x1JywgJ03DoCcsICdDaScsICdBcicsICdIYScsICdTYSddO1xuXG4gICAgdmFyIGdkID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ2QnLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzU2hvcnQsXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiB3ZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogd2Vla2RheXNTaG9ydCxcbiAgICAgICAgd2Vla2RheXNNaW46IHdlZWtkYXlzTWluLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0FuLWRpdWdoIGFpZ10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBLW3DoGlyZWFjaCBhaWddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYWlnXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0FuLWTDqCBhaWddIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbc2VvIGNoYWlkaF0gW2FpZ10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdhbm4gYW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2JobyBjaGlvbm4gJXMnLFxuICAgICAgICAgICAgczogJ2JlYWdhbiBkaW9nYW4nLFxuICAgICAgICAgICAgc3M6ICclZCBkaW9nYW4nLFxuICAgICAgICAgICAgbTogJ21pb25haWQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW9uYWlkZWFuJyxcbiAgICAgICAgICAgIGg6ICd1YWlyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdWFpcmVhbicsXG4gICAgICAgICAgICBkOiAnbGF0aGEnLFxuICAgICAgICAgICAgZGQ6ICclZCBsYXRoYScsXG4gICAgICAgICAgICBNOiAnbcOsb3MnLFxuICAgICAgICAgICAgTU06ICclZCBtw6xvc2FuJyxcbiAgICAgICAgICAgIHk6ICdibGlhZGhuYScsXG4gICAgICAgICAgICB5eTogJyVkIGJsaWFkaG5hJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGR8bmF8bWgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IG51bWJlciA9PT0gMSA/ICdkJyA6IG51bWJlciAlIDEwID09PSAyID8gJ25hJyA6ICdtaCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ2Q7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR2FsaWNpYW4gW2dsXVxuLy8hIGF1dGhvciA6IEp1YW4gRy4gSHVydGFkbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qdWFuZ2h1cnRhZG9cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBnbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dsJywge1xuICAgICAgICBtb250aHM6ICd4YW5laXJvX2ZlYnJlaXJvX21hcnpvX2FicmlsX21haW9feHXDsW9feHVsbG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGVjZW1icm8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAneGFuLl9mZWIuX21hci5fYWJyLl9tYWkuX3h1w7EuX3h1bC5fYWdvLl9zZXQuX291dC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2RvbWluZ29fbHVuc19tYXJ0ZXNfbcOpcmNvcmVzX3hvdmVzX3ZlbnJlc19zw6FiYWRvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tLl9sdW4uX21hci5fbcOpci5feG92Ll92ZW4uX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX23DqV94b192ZV9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbaG94ZSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICfDoXMnIDogJ8OhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW21hw7HDoSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICfDoXMnIDogJ8OhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgWycgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhcycgOiAnYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tvbnRlICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhJyA6ICdhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW29dIGRkZGQgW3Bhc2FkbyAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICfDoXMnIDogJ2EnKSArICddIExUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RyLmluZGV4T2YoJ3VuJykgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICduJyArIHN0cjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlbiAnICsgc3RyO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhc3Q6ICdoYWkgJXMnLFxuICAgICAgICAgICAgczogJ3VucyBzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bmhhIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW4gZMOtYScsXG4gICAgICAgICAgICBkZDogJyVkIGTDrWFzJyxcbiAgICAgICAgICAgIE06ICd1biBtZXMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW4gYW5vJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5vcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ2w7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS29ua2FuaSBEZXZhbmFnYXJpIHNjcmlwdCBbZ29tLWRldmFdXG4vLyEgYXV0aG9yIDogVGhlIERpc2NvdmVyZXIgOiBodHRwczovL2dpdGh1Yi5jb20vV2lraURpc2NvdmVyZXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzOiBbJ+CkpeCli+CkoeCkr+CkviDgpLjgpYXgpJXgpILgpKHgpL7gpILgpKjgpYAnLCAn4KSl4KWL4KSh4KWHIOCkuOClheCkleCkguCkoSddLFxuICAgICAgICAgICAgc3M6IFtudW1iZXIgKyAnIOCkuOClheCkleCkguCkoeCkvuCkguCkqOClgCcsIG51bWJlciArICcg4KS44KWF4KSV4KSC4KShJ10sXG4gICAgICAgICAgICBtOiBbJ+Ckj+CkleCkviDgpK7gpL/gpKPgpJ/gpL7gpKgnLCAn4KSP4KSVIOCkruCkv+CkqOClguCknyddLFxuICAgICAgICAgICAgbW06IFtudW1iZXIgKyAnIOCkruCkv+Cko+Ckn+CkvuCkguCkqOClgCcsIG51bWJlciArICcg4KSu4KS/4KSj4KSf4KS+4KSCJ10sXG4gICAgICAgICAgICBoOiBbJ+Ckj+CkleCkviDgpLXgpLDgpL7gpKgnLCAn4KSP4KSVIOCkteCksCddLFxuICAgICAgICAgICAgaGg6IFtudW1iZXIgKyAnIOCkteCksOCkvuCkguCkqOClgCcsIG51bWJlciArICcg4KS14KSw4KS+4KSCJ10sXG4gICAgICAgICAgICBkOiBbJ+Ckj+CkleCkviDgpKbgpL/gpLjgpL7gpKgnLCAn4KSP4KSVIOCkpuClgOCkuCddLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIOCkpuCkv+CkuOCkvuCkguCkqOClgCcsIG51bWJlciArICcg4KSm4KWA4KS4J10sXG4gICAgICAgICAgICBNOiBbJ+Ckj+CkleCkviDgpK7gpY3gpLngpK/gpKjgpY3gpK/gpL7gpKgnLCAn4KSP4KSVIOCkruCljeCkueCkr+CkqOCliyddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIOCkruCljeCkueCkr+CkqOCljeCkr+CkvuCkqOClgCcsIG51bWJlciArICcg4KSu4KWN4KS54KSv4KSo4KWHJ10sXG4gICAgICAgICAgICB5OiBbJ+Ckj+CkleCkviDgpLXgpLDgpY3gpLjgpL7gpKgnLCAn4KSP4KSVIOCkteCksOCljeCkuCddLFxuICAgICAgICAgICAgeXk6IFtudW1iZXIgKyAnIOCkteCksOCljeCkuOCkvuCkguCkqOClgCcsIG51bWJlciArICcg4KS14KSw4KWN4KS44KS+4KSCJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpc0Z1dHVyZSA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGdvbURldmEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnb20tZGV2YScsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn4KSc4KS+4KSo4KWH4KS14KS+4KSw4KWAX+Ckq+Clh+CkrOCljeCksOClgeCkteCkvuCksOClgF/gpK7gpL7gpLDgpY3gpJpf4KSP4KSq4KWN4KSw4KWA4KSyX+CkruClh1/gpJzgpYLgpKhf4KSc4KWB4KSy4KSvX+CkkeCkl+CkuOCljeCkn1/gpLjgpKrgpY3gpJ/gpYfgpILgpKzgpLBf4KSR4KSV4KWN4KSf4KWL4KSs4KSwX+CkqOCli+CkteCljeCkueClh+CkguCkrOCksF/gpKHgpL/gpLjgpYfgpILgpKzgpLAnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ+CknOCkvuCkqOClh+CkteCkvuCksOClgOCkmuCljeCkr+Ckvl/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpL7gpLDgpYDgpJrgpY3gpK/gpL5f4KSu4KS+4KSw4KWN4KSa4KS+4KSa4KWN4KSv4KS+X+Ckj+CkquCljeCksOClgOCksuCkvuCkmuCljeCkr+Ckvl/gpK7gpYfgpK/gpL7gpJrgpY3gpK/gpL5f4KSc4KWC4KSo4KS+4KSa4KWN4KSv4KS+X+CknOClgeCksuCkr+CkvuCkmuCljeCkr+Ckvl/gpJHgpJfgpLjgpY3gpJ/gpL7gpJrgpY3gpK/gpL5f4KS44KSq4KWN4KSf4KWH4KSC4KSs4KSw4KS+4KSa4KWN4KSv4KS+X+CkkeCkleCljeCkn+Cli+CkrOCksOCkvuCkmuCljeCkr+Ckvl/gpKjgpYvgpLXgpY3gpLngpYfgpILgpKzgpLDgpL7gpJrgpY3gpK/gpL5f4KSh4KS/4KS44KWH4KSC4KSs4KSw4KS+4KSa4KWN4KSv4KS+Jy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL01NTU0oXFxzKStEW29EXT8vLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ+CknOCkvuCkqOClhy5f4KSr4KWH4KSs4KWN4KSw4KWBLl/gpK7gpL7gpLDgpY3gpJpf4KSP4KSq4KWN4KSw4KWALl/gpK7gpYdf4KSc4KWC4KSoX+CknOClgeCksi5f4KSR4KSXLl/gpLjgpKrgpY3gpJ/gpYfgpIIuX+CkkeCkleCljeCkn+Cliy5f4KSo4KWL4KS14KWN4KS54KWH4KSCLl/gpKHgpL/gpLjgpYfgpIIuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CkhuCkr+CkpOCkvuCksF/gpLjgpYvgpK7gpL7gpLBf4KSu4KSC4KSX4KSz4KS+4KSwX+CkrOClgeCkp+CkteCkvuCksF/gpKzgpL/gpLDgpYfgpLjgpY3gpKTgpL7gpLBf4KS44KWB4KSV4KWN4KSw4KS+4KSwX+CktuClh+CkqOCkteCkvuCksCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CkhuCkr+CkpC5f4KS44KWL4KSuLl/gpK7gpILgpJfgpLMuX+CkrOClgeCkpy5f4KSs4KWN4KSw4KWH4KS44KWN4KSkLl/gpLjgpYHgpJXgpY3gpLAuX+CktuClh+CkqC4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4KSGX+CkuOCli1/gpK7gpIJf4KSs4KWBX+CkrOCljeCksOClh1/gpLjgpYFf4KS24KWHJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSBb4KS14KS+4KSc4KSk4KS+4KSCXScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MgW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICAgICAgTDogJ0RELU1NLVlZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBBIGg6bW0gW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBb4KS14KS+4KSc4KSk4KS+4KSCXScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBEIE1NTSBZWVlZLCBBIGg6bW0gW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgpIbgpK/gpJxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KSr4KS+4KSy4KWN4KSv4KS+4KSCXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vgpKvgpYHgpKHgpLLgpYtdIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgpJXgpL7gpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+Ckq+CkvuCkn+CksuCli10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgpIbgpKbgpYDgpIInLFxuICAgICAgICAgICAgczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o4KS14KWH4KSwKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGUgb3JkaW5hbCAn4KS14KWH4KSwJyBvbmx5IGFwcGxpZXMgdG8gZGF5IG9mIHRoZSBtb250aFxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+CkteClh+CksCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gpLDgpL7gpKTgpYB84KS44KSV4KS+4KSz4KWA4KSCfOCkpuCkqOCkquCkvuCksOCkvuCkgnzgpLjgpL7gpILgpJzgpYcvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgpLDgpL7gpKTgpYAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLjgpJXgpL7gpLPgpYDgpIInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KSm4KSo4KSq4KS+4KSw4KS+4KSCJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID4gMTIgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOCkvuCkguCknOClhycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpYAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOCkleCkvuCks+ClgOCkgic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSm4KSo4KSq4KS+4KSw4KS+4KSCJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpL7gpILgpJzgpYcnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpOClgCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ29tRGV2YTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLb25rYW5pIExhdGluIHNjcmlwdCBbZ29tLWxhdG5dXG4vLyEgYXV0aG9yIDogVGhlIERpc2NvdmVyZXIgOiBodHRwczovL2dpdGh1Yi5jb20vV2lraURpc2NvdmVyZXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzOiBbJ3Rob2RkZWEgc2Vrb25kYW1uaScsICd0aG9kZGUgc2Vrb25kJ10sXG4gICAgICAgICAgICBzczogW251bWJlciArICcgc2Vrb25kYW1uaScsIG51bWJlciArICcgc2Vrb25kJ10sXG4gICAgICAgICAgICBtOiBbJ2VrYSBtaW50YW4nLCAnZWsgbWludXQnXSxcbiAgICAgICAgICAgIG1tOiBbbnVtYmVyICsgJyBtaW50YW1uaScsIG51bWJlciArICcgbWludGFtJ10sXG4gICAgICAgICAgICBoOiBbJ2VrYSB2b3JhbicsICdlayB2b3InXSxcbiAgICAgICAgICAgIGhoOiBbbnVtYmVyICsgJyB2b3JhbW5pJywgbnVtYmVyICsgJyB2b3JhbSddLFxuICAgICAgICAgICAgZDogWydla2EgZGlzYW4nLCAnZWsgZGlzJ10sXG4gICAgICAgICAgICBkZDogW251bWJlciArICcgZGlzYW1uaScsIG51bWJlciArICcgZGlzJ10sXG4gICAgICAgICAgICBNOiBbJ2VrYSBtaG9pbmVhbicsICdlayBtaG9pbm8nXSxcbiAgICAgICAgICAgIE1NOiBbbnVtYmVyICsgJyBtaG9pbmVhbW5pJywgbnVtYmVyICsgJyBtaG9pbmUnXSxcbiAgICAgICAgICAgIHk6IFsnZWthIHZvcnNhbicsICdlayB2b3JvcyddLFxuICAgICAgICAgICAgeXk6IFtudW1iZXIgKyAnIHZvcnNhbW5pJywgbnVtYmVyICsgJyB2b3JzYW0nXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZ29tTGF0biA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dvbS1sYXRuJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICdKYW5lcl9GZWJyZXJfTWFyc19BYnJpbF9NYWlfSnVuX0p1bGFpX0Fnb3N0X1NldGVtYnJfT3R1YnJfTm92ZW1icl9EZXplbWJyJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmb3JtYXQ6ICdKYW5lcmFjaGVhX0ZlYnJlcmFjaGVhX01hcnNhY2hlYV9BYnJpbGFjaGVhX01haWFjaGVhX0p1bmFjaGVhX0p1bGFpYWNoZWFfQWdvc3RhY2hlYV9TZXRlbWJyYWNoZWFfT3R1YnJhY2hlYV9Ob3ZlbWJyYWNoZWFfRGV6ZW1icmFjaGVhJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL01NTU0oXFxzKStEW29EXT8vLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbi5fRmViLl9NYXJzX0Fici5fTWFpX0p1bl9KdWwuX0Fnby5fU2V0Ll9PdHUuX05vdi5fRGV6Licuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6IFwiQWl0YXJfU29tYXJfTW9uZ2xsYXJfQnVkaHZhcl9CaXJlc3Rhcl9TdWtyYXJfU29uJ3ZhclwiLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdBaXQuX1NvbS5fTW9uLl9CdWQuX0JyZS5fU3VrLl9Tb24uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0FpX1NtX01vX0J1X0JyX1N1X1NuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSBbdmF6dGFdJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyBbdmF6dGFdJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBbdmF6dGFdJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIEQgTU1NIFlZWVksIEEgaDptbSBbdmF6dGFdJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQWl6XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0ZhbGVhbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbRnVkZGxvXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2FsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tGYXR0bG9dIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWRpbScsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShlcikvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIG9yZGluYWwgJ2VyJyBvbmx5IGFwcGxpZXMgdG8gZGF5IG9mIHRoZSBtb250aFxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ2VyJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3JhdGl8c29rYWxsaW18ZG9ucGFyYW18c2FuamUvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdyYXRpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc29rYWxsaW0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnZG9ucGFyYW0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPiAxMiA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc2FuamUnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncmF0aSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc29rYWxsaW0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RvbnBhcmFtJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzYW5qZSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAncmF0aSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ29tTGF0bjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHdWphcmF0aSBbZ3VdXG4vLyEgYXV0aG9yIDogS2F1c2hpayBUaGFua2kgOiBodHRwczovL2dpdGh1Yi5jb20vS2F1c2hpazE5ODdcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgq6cnLFxuICAgICAgICAgICAgJzInOiAn4KuoJyxcbiAgICAgICAgICAgICczJzogJ+CrqScsXG4gICAgICAgICAgICAnNCc6ICfgq6onLFxuICAgICAgICAgICAgJzUnOiAn4KurJyxcbiAgICAgICAgICAgICc2JzogJ+CrrCcsXG4gICAgICAgICAgICAnNyc6ICfgq60nLFxuICAgICAgICAgICAgJzgnOiAn4KuuJyxcbiAgICAgICAgICAgICc5JzogJ+CrrycsXG4gICAgICAgICAgICAnMCc6ICfgq6YnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4KunJzogJzEnLFxuICAgICAgICAgICAgJ+CrqCc6ICcyJyxcbiAgICAgICAgICAgICfgq6knOiAnMycsXG4gICAgICAgICAgICAn4KuqJzogJzQnLFxuICAgICAgICAgICAgJ+Crqyc6ICc1JyxcbiAgICAgICAgICAgICfgq6wnOiAnNicsXG4gICAgICAgICAgICAn4KutJzogJzcnLFxuICAgICAgICAgICAgJ+Crric6ICc4JyxcbiAgICAgICAgICAgICfgq68nOiAnOScsXG4gICAgICAgICAgICAn4KumJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGd1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ3UnLCB7XG4gICAgICAgIG1vbnRoczogJ+CqnOCqvuCqqOCrjeCqr+CrgeCqhuCqsOCrgF/gqqvgq4fgqqzgq43gqrDgq4HgqobgqrDgq4Bf4Kqu4Kq+4Kqw4KuN4KqaX+Cqj+CqquCrjeCqsOCqv+Cqsl/gqq7gq4df4Kqc4KuC4KqoX+CqnOCrgeCqsuCqvuCqiF/gqpHgqpfgqrjgq43gqp9f4Kq44Kqq4KuN4Kqf4KuH4Kqu4KuN4Kqs4KqwX+CqkeCqleCrjeCqn+CrjeCqrOCqsF/gqqjgqrXgq4fgqq7gq43gqqzgqrBf4Kqh4Kq/4Kq44KuH4Kqu4KuN4Kqs4KqwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CqnOCqvuCqqOCrjeCqr+CrgS5f4Kqr4KuH4Kqs4KuN4Kqw4KuBLl/gqq7gqr7gqrDgq43gqppf4KqP4Kqq4KuN4Kqw4Kq/Ll/gqq7gq4df4Kqc4KuC4KqoX+CqnOCrgeCqsuCqvi5f4KqR4KqXLl/gqrjgqqrgq43gqp/gq4cuX+CqkeCqleCrjeCqn+CrjS5f4Kqo4Kq14KuHLl/gqqHgqr/gqrjgq4cuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CqsOCqteCqv+CqteCqvuCqsF/gqrjgq4vgqq7gqrXgqr7gqrBf4Kqu4KqC4KqX4Kqz4Kq14Kq+4KqwX+CqrOCrgeCqp+CrjeCqteCqvuCqsF/gqpfgq4HgqrDgq4HgqrXgqr7gqrBf4Kq24KuB4KqV4KuN4Kqw4Kq14Kq+4KqwX+CqtuCqqOCqv+CqteCqvuCqsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CqsOCqteCqv1/gqrjgq4vgqq5f4Kqu4KqC4KqX4KqzX+CqrOCrgeCqp+CrjV/gqpfgq4HgqrDgq4Ff4Kq24KuB4KqV4KuN4KqwX+CqtuCqqOCqvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgqrBf4Kq44KuLX+CqruCqgl/gqqzgq4Ff4KqX4KuBX+CqtuCrgV/gqrYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgqrXgqr7gqpfgq43gqq/gq4cnLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCqteCqvuCql+CrjeCqr+CrhycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4Kq14Kq+4KqX4KuN4Kqv4KuHJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCqteCqvuCql+CrjeCqr+CrhycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CqhuCqnF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgqpXgqr7gqrLgq4ddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgqpfgqofgqpXgqr7gqrLgq4ddIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CqquCqvuCqm+CqsuCqvl0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgqq7gqr4nLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCqquCqueCrh+CqsuCqvicsXG4gICAgICAgICAgICBzOiAn4KqF4Kqu4KuB4KqVIOCqquCqs+CriycsXG4gICAgICAgICAgICBzczogJyVkIOCquOCrh+CqleCqguCqoScsXG4gICAgICAgICAgICBtOiAn4KqP4KqVIOCqruCqv+CqqOCqv+CqnycsXG4gICAgICAgICAgICBtbTogJyVkIOCqruCqv+CqqOCqv+CqnycsXG4gICAgICAgICAgICBoOiAn4KqP4KqVIOCqleCqsuCqvuCqlScsXG4gICAgICAgICAgICBoaDogJyVkIOCqleCqsuCqvuCqlScsXG4gICAgICAgICAgICBkOiAn4KqP4KqVIOCqpuCqv+CqteCquCcsXG4gICAgICAgICAgICBkZDogJyVkIOCqpuCqv+CqteCquCcsXG4gICAgICAgICAgICBNOiAn4KqP4KqVIOCqruCqueCqv+CqqOCriycsXG4gICAgICAgICAgICBNTTogJyVkIOCqruCqueCqv+CqqOCriycsXG4gICAgICAgICAgICB5OiAn4KqP4KqVIOCqteCqsOCrjeCqtycsXG4gICAgICAgICAgICB5eTogJyVkIOCqteCqsOCrjeCqtycsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgq6fgq6jgq6ngq6rgq6vgq6zgq63gq67gq6/gq6ZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIEd1amFyYXRpIG5vdGF0aW9uIGZvciBtZXJpZGllbXMgYXJlIHF1aXRlIGZ1enp5IGluIHByYWN0aWNlLiBXaGlsZSB0aGVyZSBleGlzdHNcbiAgICAgICAgLy8gYSByaWdpZCBub3Rpb24gb2YgYSAnUGFoYXInIGl0IGlzIG5vdCB1c2VkIGFzIHJpZ2lkbHkgaW4gbW9kZXJuIEd1amFyYXRpLlxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4Kqw4Kq+4KqkfOCqrOCqquCri+CqsHzgqrjgqrXgqr7gqrB84Kq44Kq+4KqC4KqcLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4Kqw4Kq+4KqkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kq44Kq14Kq+4KqwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CqrOCqquCri+CqsCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kq44Kq+4KqC4KqcJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CqsOCqvuCqpCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kq44Kq14Kq+4KqwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqqzgqqrgq4vgqrAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CquOCqvuCqguCqnCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kqw4Kq+4KqkJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGd1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEhlYnJldyBbaGVdXG4vLyEgYXV0aG9yIDogVG9tZXIgQ29oZW4gOiBodHRwczovL2dpdGh1Yi5jb20vdG9tZXJcbi8vISBhdXRob3IgOiBNb3NoZSBTaW1hbnRvdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9EZXZlbG9wbWVudElMXG4vLyEgYXV0aG9yIDogVGFsIEF0ZXIgOiBodHRwczovL2dpdGh1Yi5jb20vVGFsQXRlclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGhlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaGUnLCB7XG4gICAgICAgIG1vbnRoczogJ9eZ16DXldeQ16hf16TXkdeo15XXkNeoX9ee16jXpV/XkNek16jXmdecX9ee15DXmV/XmdeV16DXmV/XmdeV15zXmV/XkNeV15LXldeh15hf16HXpNeY157XkdeoX9eQ15XXp9eY15XXkdeoX9eg15XXkdee15HXqF/Xk9em157XkdeoJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9eZ16DXldezX9ek15HXqNezX9ee16jXpV/XkNek16jXs1/XnteQ15lf15nXldeg15lf15nXldec15lf15DXldeS17Nf16HXpNeY17Nf15DXlden17Nf16DXldeR17Nf15PXptee17MnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn16jXkNep15XXn1/Xqdeg15lf16nXnNeZ16nXmV/XqNeR15nXoteZX9eX157Xmdep15lf16nXmdep15lf16nXkdeqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn15DXs1/XkdezX9eS17Nf15PXs1/XlNezX9eV17Nf16nXsycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfXkF/XkV/Xkl/Xk1/XlF/XlV/XqScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFvXkV1NTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBb15FdTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFvXkV1NTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ0QvTS9ZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRCBNTU0gWVlZWScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIEQgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vXlNeZ15XXnSDXkda+XUxUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb157Xl9eoINeR1r5dTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvXkdep16LXlF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vXkNeq157XldecINeR1r5dTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb15HXmdeV151dIGRkZGQgW9eU15DXl9eo15XXnyDXkdep16LXlF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfXkdei15XXkyAlcycsXG4gICAgICAgICAgICBwYXN0OiAn15zXpNeg15kgJXMnLFxuICAgICAgICAgICAgczogJ9ee16HXpNeoINep16DXmdeV16onLFxuICAgICAgICAgICAgc3M6ICclZCDXqdeg15nXldeqJyxcbiAgICAgICAgICAgIG06ICfXk9en15QnLFxuICAgICAgICAgICAgbW06ICclZCDXk9en15XXqicsXG4gICAgICAgICAgICBoOiAn16nXoteUJyxcbiAgICAgICAgICAgIGhoOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9ep16LXqteZ15nXnSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINep16LXldeqJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkOiAn15nXldedJyxcbiAgICAgICAgICAgIGRkOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9eZ15XXnteZ15nXnSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINeZ157XmdedJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBNOiAn15fXldeT16knLFxuICAgICAgICAgICAgTU06IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn15fXldeT16nXmdeZ150nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDXl9eV15PXqdeZ150nO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHk6ICfXqdeg15QnLFxuICAgICAgICAgICAgeXk6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn16nXoNeq15nXmdedJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciAlIDEwID09PSAwICYmIG51bWJlciAhPT0gMTApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg16nXoNeUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg16nXoNeZ150nO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9eQ15fXlFwi16Z815zXpNeg15RcItemfNeQ15fXqNeZINeU16bXlNeo15nXmdedfNec16TXoNeZINeU16bXlNeo15nXmdedfNec16TXoNeV16og15HXlden16h815HXkdeV16fXqHzXkdei16jXkS9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijXkNeX15RcItemfNeQ15fXqNeZINeU16bXlNeo15nXmdedfNeR16LXqNeRKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfXnNek16DXldeqINeR15XXp9eoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfXkdeR15XXp9eoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAn15zXpNeg15RcItemJyA6ICfXnNek16DXmSDXlNem15TXqNeZ15nXnSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxOCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ9eQ15fXlFwi16YnIDogJ9eQ15fXqNeZINeU16bXlNeo15nXmdedJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfXkdei16jXkSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaGU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSGluZGkgW2hpXVxuLy8hIGF1dGhvciA6IE1heWFuayBTaW5naGFsIDogaHR0cHM6Ly9naXRodWIuY29tL21heWFua3NpbmdoYWxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgpacnLFxuICAgICAgICAgICAgJzInOiAn4KWoJyxcbiAgICAgICAgICAgICczJzogJ+ClqScsXG4gICAgICAgICAgICAnNCc6ICfgpaonLFxuICAgICAgICAgICAgJzUnOiAn4KWrJyxcbiAgICAgICAgICAgICc2JzogJ+ClrCcsXG4gICAgICAgICAgICAnNyc6ICfgpa0nLFxuICAgICAgICAgICAgJzgnOiAn4KWuJyxcbiAgICAgICAgICAgICc5JzogJ+ClrycsXG4gICAgICAgICAgICAnMCc6ICfgpaYnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4KWnJzogJzEnLFxuICAgICAgICAgICAgJ+ClqCc6ICcyJyxcbiAgICAgICAgICAgICfgpaknOiAnMycsXG4gICAgICAgICAgICAn4KWqJzogJzQnLFxuICAgICAgICAgICAgJ+Clqyc6ICc1JyxcbiAgICAgICAgICAgICfgpawnOiAnNicsXG4gICAgICAgICAgICAn4KWtJzogJzcnLFxuICAgICAgICAgICAgJ+Clric6ICc4JyxcbiAgICAgICAgICAgICfgpa8nOiAnOScsXG4gICAgICAgICAgICAn4KWmJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGhpID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaGknLCB7XG4gICAgICAgIG1vbnRoczogJ+CknOCkqOCkteCksOClgF/gpKvgpLzgpLDgpLXgpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCliOCksl/gpK7gpIhf4KSc4KWC4KSoX+CknOClgeCksuCkvuCkiF/gpIXgpJfgpLjgpY3gpKRf4KS44KS/4KSk4KSu4KWN4KSs4KSwX+CkheCkleCljeCkn+ClguCkrOCksF/gpKjgpLXgpK7gpY3gpKzgpLBf4KSm4KS/4KS44KSu4KWN4KSs4KSwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CknOCkqC5f4KSr4KS84KSwLl/gpK7gpL7gpLDgpY3gpJpf4KSF4KSq4KWN4KSw4KWILl/gpK7gpIhf4KSc4KWC4KSoX+CknOClgeCksi5f4KSF4KSXLl/gpLjgpL/gpKQuX+CkheCkleCljeCkn+Clgi5f4KSo4KS1Ll/gpKbgpL/gpLguJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CksOCkteCkv+CkteCkvuCksF/gpLjgpYvgpK7gpLXgpL7gpLBf4KSu4KSC4KSX4KSy4KS14KS+4KSwX+CkrOClgeCkp+CkteCkvuCksF/gpJfgpYHgpLDgpYLgpLXgpL7gpLBf4KS24KWB4KSV4KWN4KSw4KS14KS+4KSwX+CktuCkqOCkv+CkteCkvuCksCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CksOCkteCkv1/gpLjgpYvgpK5f4KSu4KSC4KSX4KSyX+CkrOClgeCkp1/gpJfgpYHgpLDgpYJf4KS24KWB4KSV4KWN4KSwX+CktuCkqOCkvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgpLBf4KS44KWLX+CkruCkgl/gpKzgpYFf4KSX4KWBX+CktuClgV/gpLYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCkrOCknOClhycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCkrOCknOClhycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpJXgpLJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgpJXgpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CkquCkv+Ckm+CksuClh10gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgpK7gpYfgpIInLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCkquCkueCksuClhycsXG4gICAgICAgICAgICBzOiAn4KSV4KWB4KSbIOCkueClgCDgpJXgpY3gpLfgpKMnLFxuICAgICAgICAgICAgc3M6ICclZCDgpLjgpYfgpJXgpILgpKEnLFxuICAgICAgICAgICAgbTogJ+Ckj+CklSDgpK7gpL/gpKjgpJ8nLFxuICAgICAgICAgICAgbW06ICclZCDgpK7gpL/gpKjgpJ8nLFxuICAgICAgICAgICAgaDogJ+Ckj+CklSDgpJjgpILgpJ/gpL4nLFxuICAgICAgICAgICAgaGg6ICclZCDgpJjgpILgpJ/gpYcnLFxuICAgICAgICAgICAgZDogJ+Ckj+CklSDgpKbgpL/gpKgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgpKbgpL/gpKgnLFxuICAgICAgICAgICAgTTogJ+Ckj+CklSDgpK7gpLngpYDgpKjgpYcnLFxuICAgICAgICAgICAgTU06ICclZCDgpK7gpLngpYDgpKjgpYcnLFxuICAgICAgICAgICAgeTogJ+Ckj+CklSDgpLXgpLDgpY3gpLcnLFxuICAgICAgICAgICAgeXk6ICclZCDgpLXgpLDgpY3gpLcnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyBIaW5kaSBub3RhdGlvbiBmb3IgbWVyaWRpZW1zIGFyZSBxdWl0ZSBmdXp6eSBpbiBwcmFjdGljZS4gV2hpbGUgdGhlcmUgZXhpc3RzXG4gICAgICAgIC8vIGEgcmlnaWQgbm90aW9uIG9mIGEgJ1BhaGFyJyBpdCBpcyBub3QgdXNlZCBhcyByaWdpZGx5IGluIG1vZGVybiBIaW5kaS5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CksOCkvuCkpHzgpLjgpYHgpKzgpLl84KSm4KWL4KSq4KS54KSwfOCktuCkvuCkri8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CksOCkvuCkpCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOClgeCkrOCkuScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKbgpYvgpKrgpLngpLAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CktuCkvuCkricpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOClgeCkrOCkuSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSm4KWL4KSq4KS54KSwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLbgpL7gpK4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBoaTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDcm9hdGlhbiBbaHJdXG4vLyEgYXV0aG9yIDogQm9qYW4gTWFya292acSHIDogaHR0cHM6Ly9naXRodWIuY29tL2JtYXJrb3ZpY1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnamVkbmEgbWludXRhJyA6ICdqZWRuZSBtaW51dGUnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRhJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2plZGFuIHNhdCcgOiAnamVkbm9nIHNhdGEnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdGknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdkYW4nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZGFuYSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlYyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlY2EnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGhyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaHInLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAnc2lqZcSNbmphX3ZlbGphxI1lX2/FvnVqa2FfdHJhdm5qYV9zdmlibmphX2xpcG5qYV9zcnBuamFfa29sb3ZvemFfcnVqbmFfbGlzdG9wYWRhX3N0dWRlbm9nYV9wcm9zaW5jYScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ3NpamXEjWFual92ZWxqYcSNYV9vxb51amFrX3RyYXZhbmpfc3ZpYmFual9saXBhbmpfc3JwYW5qX2tvbG92b3pfcnVqYW5fbGlzdG9wYWRfc3R1ZGVuaV9wcm9zaW5hYycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ3Npai5fdmVsai5fb8W+dS5fdHJhLl9zdmkuX2xpcC5fc3JwLl9rb2wuX3J1ai5fbGlzLl9zdHUuX3Byby4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkamVsamFfcG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfxI1ldHZydGFrX3BldGFrX3N1Ym90YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl91dG8uX3NyaS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3NyX8SNZV9wZV9zdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEbyBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRG8gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIERvIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZGFuYXMgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tzdXRyYSB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbbmVkamVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzcmlqZWR1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3Vib3R1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbanXEjWVyIHVdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbHVdIFtuZWRqZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJvxaFsdV0gW3NyaWplZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGldIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJpamUgJXMnLFxuICAgICAgICAgICAgczogJ3BhciBzZWt1bmRpJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICdkYW4nLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICdtamVzZWMnLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBocjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBIdW5nYXJpYW4gW2h1XVxuLy8hIGF1dGhvciA6IEFkYW0gQnJ1bm5lciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hZGFtYnJ1bm5lclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHdlZWtFbmRpbmdzID0gJ3Zhc8Ohcm5hcCBow6l0ZsWRbiBrZWRkZW4gc3plcmTDoW4gY3PDvHTDtnJ0w7Zrw7ZuIHDDqW50ZWtlbiBzem9tYmF0b24nLnNwbGl0KFxuICAgICAgICAnICdcbiAgICApO1xuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIG51bSA9IG51bWJlcjtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgID8gJ27DqWjDoW55IG3DoXNvZHBlcmMnXG4gICAgICAgICAgICAgICAgICAgIDogJ27DqWjDoW55IG3DoXNvZHBlcmNlJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXgpXG4gICAgICAgICAgICAgICAgICAgID8gJyBtw6Fzb2RwZXJjJ1xuICAgICAgICAgICAgICAgICAgICA6ICcgbcOhc29kcGVyY2UnO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlZ3knICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIHBlcmMnIDogJyBwZXJjZScpO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgcGVyYycgOiAnIHBlcmNlJyk7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw7NyYScgOiAnIMOzcsOhamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIMOzcmEnIDogJyDDs3LDoWphJyk7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgbmFwJyA6ICcgbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIG5hcCcgOiAnIG5hcGphJyk7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgaMOzbmFwJyA6ICcgaMOzbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIGjDs25hcCcgOiAnIGjDs25hcGphJyk7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw6l2JyA6ICcgw6l2ZScpO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw6l2JyA6ICcgw6l2ZScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Vlayhpc0Z1dHVyZSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGlzRnV0dXJlID8gJycgOiAnW23Dumx0XSAnKSArXG4gICAgICAgICAgICAnWycgK1xuICAgICAgICAgICAgd2Vla0VuZGluZ3NbdGhpcy5kYXkoKV0gK1xuICAgICAgICAgICAgJ10gTFRbLWtvcl0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGh1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaHUnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnXDoXJfZmVicnXDoXJfbcOhcmNpdXNfw6FwcmlsaXNfbcOhanVzX2rDum5pdXNfasO6bGl1c19hdWd1c3p0dXNfc3plcHRlbWJlcl9va3TDs2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmViX23DoXJjX8OhcHJfbcOhal9qw7puX2rDumxfYXVnX3N6ZXB0X29rdF9ub3ZfZGVjJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ3Zhc8Ohcm5hcF9ow6l0ZsWRX2tlZGRfc3plcmRhX2Nzw7x0w7ZydMO2a19ww6ludGVrX3N6b21iYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICd2YXNfaMOpdF9rZWRkX3N6ZV9jc8O8dF9ww6luX3N6bycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICd2X2hfa19zemVfY3NfcF9zem8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS5NTS5ERC4nLFxuICAgICAgICAgICAgTEw6ICdZWVlZLiBNTU1NIEQuJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkuIE1NTU0gRC4gSDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWS4gTU1NTSBELiwgZGRkZCBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2RlfGR1L2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0LmNoYXJBdCgxKS50b0xvd2VyQ2FzZSgpID09PSAndSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPT09IHRydWUgPyAnZGUnIDogJ0RFJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPT09IHRydWUgPyAnZHUnIDogJ0RVJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbbWFdIExUWy1rb3JdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaG9sbmFwXSBMVFsta29yXScsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3ZWVrLmNhbGwodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1t0ZWduYXBdIExUWy1rb3JdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdlZWsuY2FsbCh0aGlzLCBmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBtw7psdmEnLFxuICAgICAgICAgICAgcGFzdDogJyVzJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBodTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcm1lbmlhbiBbaHktYW1dXG4vLyEgYXV0aG9yIDogQXJtZW5kYXJhYnlhbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcm1lbmRhcmFieWFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgaHlBbSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2h5LWFtJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9Ww1bjWgtW21b7VodaA1atf1oPVpdW/1oDVvtWh1oDVq1/VtNWh1oDVv9WrX9Wh1brWgNWr1azVq1/VtNWh1bXVq9W91atf1bDVuNaC1bbVq9W91atf1bDVuNaC1azVq9W91atf1oXVo9W41b3Vv9W41b3Vq1/VvdWl1brVv9Wl1bTVotWl1oDVq1/VsNW41a/Vv9Wl1bTVotWl1oDVq1/VttW41bXVpdW01aLVpdaA1atf1aTVpdWv1b/VpdW01aLVpdaA1asnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfVsNW41oLVttW+1aHWgF/Wg9Wl1b/WgNW+1aHWgF/VtNWh1oDVv1/VodW61oDVq9WsX9W01aHVtdWr1b1f1bDVuNaC1bbVq9W9X9Ww1bjWgtWs1avVvV/WhdWj1bjVvdW/1bjVvV/VvdWl1brVv9Wl1bTVotWl1oBf1bDVuNWv1b/VpdW01aLVpdaAX9W21bjVtdWl1bTVotWl1oBf1aTVpdWv1b/VpdW01aLVpdaAJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn1bDVttW+X9aD1b/WgF/VtNaA1b9f1aHVutaAX9W01bXVvV/VsNW21b1f1bDVrNW9X9aF1aPVvV/VvdW61b9f1bDVr9W/X9W21bTVol/VpNWv1b8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn1a/Vq9aA1aHVr9WrX9Wl1oDVr9W41oLVt9Wh1aLVqdWrX9Wl1oDVpdaE1bfVodWi1anVq1/VudW41oDVpdaE1bfVodWi1anVq1/VsNWr1bbVo9W31aHVotWp1atf1bjWgtaA1aLVodWpX9W31aHVotWh1aknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfVr9aA1a9f1aXWgNWvX9Wl1oDWhF/VudaA1oRf1bDVttWjX9W41oLWgNWiX9W31aLVqScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfVr9aA1a9f1aXWgNWvX9Wl1oDWhF/VudaA1oRf1bDVttWjX9W41oLWgNWiX9W31aLVqScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWSDVqS4nLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkg1akuLCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkg1akuLCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Wh1bXVvdaF1oBdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb1b7VodWy1ahdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb1aXWgNWl1a9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFvWhdaA1agg1arVodW01ahdIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW9Wh1bbWgdWh1a5dIGRkZGQgW9aF1oDVqCDVqtWh1bTVqF0gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg1bDVpdW/1bgnLFxuICAgICAgICAgICAgcGFzdDogJyVzINWh1bzVodW7JyxcbiAgICAgICAgICAgIHM6ICfVtNWrINaE1aHVttWrINW+1aHVtdaA1a/VtdWh1bYnLFxuICAgICAgICAgICAgc3M6ICclZCDVvtWh1bXWgNWv1bXVodW2JyxcbiAgICAgICAgICAgIG06ICfWgNW41brVpScsXG4gICAgICAgICAgICBtbTogJyVkINaA1bjVutWlJyxcbiAgICAgICAgICAgIGg6ICfVqtWh1bQnLFxuICAgICAgICAgICAgaGg6ICclZCDVqtWh1bQnLFxuICAgICAgICAgICAgZDogJ9aF1oAnLFxuICAgICAgICAgICAgZGQ6ICclZCDWhdaAJyxcbiAgICAgICAgICAgIE06ICfVodW01avVvScsXG4gICAgICAgICAgICBNTTogJyVkINWh1bTVq9W9JyxcbiAgICAgICAgICAgIHk6ICfVv9Wh1oDVqycsXG4gICAgICAgICAgICB5eTogJyVkINW/1aHWgNWrJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9Wj1avVt9Wl1oDVvtWhfNWh1bzVodW+1bjVv9W+1aF81oHVpdaA1aXVr9W+1aF81aXWgNWl1a/VuNW11aHVti8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKNaB1aXWgNWl1a/VvtWhfNWl1oDVpdWv1bjVtdWh1bYpJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfVo9Wr1bfVpdaA1b7VoSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn1aHVvNWh1b7VuNW/1b7VoSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn1oHVpdaA1aXVr9W+1aEnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Wl1oDVpdWv1bjVtdWh1bYnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn18XFxkezEsMn0tKNWr1bZ81oDVpCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICBjYXNlICdERERvJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct1avVtic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct1oDVpCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGh5QW07XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSW5kb25lc2lhbiBbaWRdXG4vLyEgYXV0aG9yIDogTW9oYW1tYWQgU2F0cmlvIFV0b21vIDogaHR0cHM6Ly9naXRodWIuY29tL3R5b2tcbi8vISByZWZlcmVuY2U6IGh0dHA6Ly9pZC53aWtpc291cmNlLm9yZy93aWtpL1BlZG9tYW5fVW11bV9FamFhbl9CYWhhc2FfSW5kb25lc2lhX3lhbmdfRGlzZW1wdXJuYWthblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGlkID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaWQnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcmlfRmVicnVhcmlfTWFyZXRfQXByaWxfTWVpX0p1bmlfSnVsaV9BZ3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NZWlfSnVuX0p1bF9BZ3RfU2VwX09rdF9Ob3ZfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ01pbmdndV9TZW5pbl9TZWxhc2FfUmFidV9LYW1pc19KdW1hdF9TYWJ0dScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ01pbl9TZW5fU2VsX1JhYl9LYW1fSnVtX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdNZ19Tbl9TbF9SYl9LbV9KbV9TYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3BhZ2l8c2lhbmd8c29yZXxtYWxhbS8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ3BhZ2knKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc2lhbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NvcmUnIHx8IG1lcmlkaWVtID09PSAnbWFsYW0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BhZ2knO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzaWFuZyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NvcmUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21hbGFtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSGFyaSBpbmkgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQmVzb2sgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2VtYXJpbiBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtsYWx1IHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbGFtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5YW5nIGxhbHUnLFxuICAgICAgICAgICAgczogJ2JlYmVyYXBhIGRldGlrJyxcbiAgICAgICAgICAgIHNzOiAnJWQgZGV0aWsnLFxuICAgICAgICAgICAgbTogJ3NlbWVuaXQnLFxuICAgICAgICAgICAgbW06ICclZCBtZW5pdCcsXG4gICAgICAgICAgICBoOiAnc2VqYW0nLFxuICAgICAgICAgICAgaGg6ICclZCBqYW0nLFxuICAgICAgICAgICAgZDogJ3NlaGFyaScsXG4gICAgICAgICAgICBkZDogJyVkIGhhcmknLFxuICAgICAgICAgICAgTTogJ3NlYnVsYW4nLFxuICAgICAgICAgICAgTU06ICclZCBidWxhbicsXG4gICAgICAgICAgICB5OiAnc2V0YWh1bicsXG4gICAgICAgICAgICB5eTogJyVkIHRhaHVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGlkO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEljZWxhbmRpYyBbaXNdXG4vLyEgYXV0aG9yIDogSGlucmlrIMOWcm4gU2lndXLDsHNzb24gOiBodHRwczovL2dpdGh1Yi5jb20vaGlucmlrXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwbHVyYWwobikge1xuICAgICAgICBpZiAobiAlIDEwMCA9PT0gMTEpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKG4gJSAxMCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZVxuICAgICAgICAgICAgICAgICAgICA/ICdub2trcmFyIHNla8O6bmR1cidcbiAgICAgICAgICAgICAgICAgICAgOiAnbm9ra3J1bSBzZWvDum5kdW0nO1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3Nla8O6bmR1cicgOiAnc2Vrw7puZHVtJylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdzZWvDum5kYSc7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdtw61uw7p0YScgOiAnbcOtbsO6dHUnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbcOtbsO6dHVyJyA6ICdtw61uw7p0dW0nKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ23DrW7DunRhJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtw61uw7p0dSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdrbHVra3VzdHVuZGlyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2tsdWtrdXN0dW5kdW0nKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2tsdWtrdXN0dW5kJztcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGFndXInO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAnZGFnJyA6ICdkZWdpJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnZGFnYXInO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaXNGdXR1cmUgPyAnZGFnYScgOiAnZMO2Z3VtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnZGFndXInO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKGlzRnV0dXJlID8gJ2RhZycgOiAnZGVnaScpO1xuICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdtw6FudcOwdXInO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAnbcOhbnXDsCcgOiAnbcOhbnXDsGknO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtw6FudcOwaXInO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaXNGdXR1cmUgPyAnbcOhbnXDsGknIDogJ23DoW51w7B1bScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ23DoW51w7B1cic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaXNGdXR1cmUgPyAnbcOhbnXDsCcgOiAnbcOhbnXDsGknKTtcbiAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ8OhcicgOiAnw6FyaSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICfDoXInIDogJ8OhcnVtJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICfDoXInIDogJ8OhcmknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBpcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2lzJywge1xuICAgICAgICBtb250aHM6ICdqYW7DumFyX2ZlYnLDumFyX21hcnNfYXByw61sX21hw61fasO6bsOtX2rDumzDrV/DoWfDunN0X3NlcHRlbWJlcl9va3TDs2Jlcl9uw7N2ZW1iZXJfZGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2ZlYl9tYXJfYXByX21hw61fasO6bl9qw7psX8OhZ8O6X3NlcF9va3RfbsOzdl9kZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnc3VubnVkYWd1cl9tw6FudWRhZ3VyX8O+cmnDsGp1ZGFndXJfbWnDsHZpa3VkYWd1cl9maW1tdHVkYWd1cl9mw7ZzdHVkYWd1cl9sYXVnYXJkYWd1cicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3N1bl9tw6FuX8O+cmlfbWnDsF9maW1fZsO2c19sYXUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTcOhX8Oecl9NaV9GaV9Gw7ZfTGEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgW2tsLl0gSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vDrSBkYWcga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW8OhIG1vcmd1biBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW8OtIGfDpnIga2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tzw63DsGFzdGFdIGRkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlZnRpciAlcycsXG4gICAgICAgICAgICBwYXN0OiAnZnlyaXIgJXMgc8Otw7BhbicsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6ICdrbHVra3VzdHVuZCcsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGlzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEl0YWxpYW4gW2l0XVxuLy8hIGF1dGhvciA6IExvcmVuem8gOiBodHRwczovL2dpdGh1Yi5jb20vYWxpZW1cbi8vISBhdXRob3I6IE1hdHRpYSBMYXJlbnRpczogaHR0cHM6Ly9naXRodWIuY29tL25vc3RhbGdpYXpcbi8vISBhdXRob3I6IE1hcmNvIDogaHR0cHM6Ly9naXRodWIuY29tL01hbmZyZTk4XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgaXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdpdCcsIHtcbiAgICAgICAgbW9udGhzOiAnZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19sdWdsaW9fYWdvc3RvX3NldHRlbWJyZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2dlbl9mZWJfbWFyX2Fwcl9tYWdfZ2l1X2x1Z19hZ29fc2V0X290dF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ2RvbWVuaWNhX2x1bmVkw6xfbWFydGVkw6xfbWVyY29sZWTDrF9naW92ZWTDrF92ZW5lcmTDrF9zYWJhdG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb21fbHVuX21hcl9tZXJfZ2lvX3Zlbl9zYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWVfZ2lfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbT2dnaSBhJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgPiAxID8gJ2xsZSAnIDogdGhpcy5ob3VycygpID09PSAwID8gJyAnIDogXCJsbCdcIikgK1xuICAgICAgICAgICAgICAgICAgICAnXUxUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbRG9tYW5pIGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDEgPyAnbGxlICcgOiB0aGlzLmhvdXJzKCkgPT09IDAgPyAnICcgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdkZGRkIFthJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgPiAxID8gJ2xsZSAnIDogdGhpcy5ob3VycygpID09PSAwID8gJyAnIDogXCJsbCdcIikgK1xuICAgICAgICAgICAgICAgICAgICAnXUxUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbSWVyaSBhJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgPiAxID8gJ2xsZSAnIDogdGhpcy5ob3VycygpID09PSAwID8gJyAnIDogXCJsbCdcIikgK1xuICAgICAgICAgICAgICAgICAgICAnXUxUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnW0xhIHNjb3JzYV0gZGRkZCBbYScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgPiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2xsZSAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5ob3VycygpID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJyAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJsbCdcIikgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnW0xvIHNjb3Jzb10gZGRkZCBbYScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgPiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2xsZSAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5ob3VycygpID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJyAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJsbCdcIikgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3RyYSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgZmEnLFxuICAgICAgICAgICAgczogJ2FsY3VuaSBzZWNvbmRpJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kaScsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRpJyxcbiAgICAgICAgICAgIGg6IFwidW4nb3JhXCIsXG4gICAgICAgICAgICBoaDogJyVkIG9yZScsXG4gICAgICAgICAgICBkOiAndW4gZ2lvcm5vJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZ2lvcm5pJyxcbiAgICAgICAgICAgIE06ICd1biBtZXNlJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzaScsXG4gICAgICAgICAgICB5OiAndW4gYW5ubycsXG4gICAgICAgICAgICB5eTogJyVkIGFubmknLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEl0YWxpYW4gKFN3aXR6ZXJsYW5kKSBbaXQtY2hdXG4vLyEgYXV0aG9yIDogeGZoIDogaHR0cHM6Ly9naXRodWIuY29tL3hmaFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGl0Q2ggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdpdC1jaCcsIHtcbiAgICAgICAgbW9udGhzOiAnZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19sdWdsaW9fYWdvc3RvX3NldHRlbWJyZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2dlbl9mZWJfbWFyX2Fwcl9tYWdfZ2l1X2x1Z19hZ29fc2V0X290dF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ2RvbWVuaWNhX2x1bmVkw6xfbWFydGVkw6xfbWVyY29sZWTDrF9naW92ZWTDrF92ZW5lcmTDrF9zYWJhdG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb21fbHVuX21hcl9tZXJfZ2lvX3Zlbl9zYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWVfZ2lfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tPZ2dpIGFsbGVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRG9tYW5pIGFsbGVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYWxsZV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJZXJpIGFsbGVdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW2xhIHNjb3JzYV0gZGRkZCBbYWxsZV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbG8gc2NvcnNvXSBkZGRkIFthbGxlXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgICAgIHJldHVybiAoL15bMC05XS4rJC8udGVzdChzKSA/ICd0cmEnIDogJ2luJykgKyAnICcgKyBzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBmYScsXG4gICAgICAgICAgICBzOiAnYWxjdW5pIHNlY29uZGknLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRpJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGknLFxuICAgICAgICAgICAgaDogXCJ1bidvcmFcIixcbiAgICAgICAgICAgIGhoOiAnJWQgb3JlJyxcbiAgICAgICAgICAgIGQ6ICd1biBnaW9ybm8nLFxuICAgICAgICAgICAgZGQ6ICclZCBnaW9ybmknLFxuICAgICAgICAgICAgTTogJ3VuIG1lc2UnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNpJyxcbiAgICAgICAgICAgIHk6ICd1biBhbm5vJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5uaScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXRDaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBKYXBhbmVzZSBbamFdXG4vLyEgYXV0aG9yIDogTEkgTG9uZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYXJ5b25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBqYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2phJywge1xuICAgICAgICBlcmFzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcyMDE5LTA1LTAxJyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ+S7pOWSjCcsXG4gICAgICAgICAgICAgICAgbmFycm93OiAn44u/JyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnUicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMTk4OS0wMS0wOCcsXG4gICAgICAgICAgICAgICAgdW50aWw6ICcyMDE5LTA0LTMwJyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ+W5s+aIkCcsXG4gICAgICAgICAgICAgICAgbmFycm93OiAn4427JyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnSCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMTkyNi0xMi0yNScsXG4gICAgICAgICAgICAgICAgdW50aWw6ICcxOTg5LTAxLTA3JyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ+aYreWSjCcsXG4gICAgICAgICAgICAgICAgbmFycm93OiAn4428JyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnUycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMTkxMi0wNy0zMCcsXG4gICAgICAgICAgICAgICAgdW50aWw6ICcxOTI2LTEyLTI0JyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ+Wkp+atoycsXG4gICAgICAgICAgICAgICAgbmFycm93OiAn4429JyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnVCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMTg3My0wMS0wMScsXG4gICAgICAgICAgICAgICAgdW50aWw6ICcxOTEyLTA3LTI5JyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDYsXG4gICAgICAgICAgICAgICAgbmFtZTogJ+aYjuayuycsXG4gICAgICAgICAgICAgICAgbmFycm93OiAn442+JyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnTScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMDAwMS0wMS0wMScsXG4gICAgICAgICAgICAgICAgdW50aWw6ICcxODczLTEyLTMxJyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ+ilv+aapicsXG4gICAgICAgICAgICAgICAgbmFycm93OiAnQUQnLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdBRCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMDAwMC0xMi0zMScsXG4gICAgICAgICAgICAgICAgdW50aWw6IC1JbmZpbml0eSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ+e0gOWFg+WJjScsXG4gICAgICAgICAgICAgICAgbmFycm93OiAnQkMnLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdCQycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBlcmFZZWFyT3JkaW5hbFJlZ2V4OiAvKOWFg3xcXGQrKeW5tC8sXG4gICAgICAgIGVyYVllYXJPcmRpbmFsUGFyc2U6IGZ1bmN0aW9uIChpbnB1dCwgbWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaFsxXSA9PT0gJ+WFgycgPyAxIDogcGFyc2VJbnQobWF0Y2hbMV0gfHwgaW5wdXQsIDEwKTtcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzOiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pel5puc5pelX+aciOabnOaXpV/ngavmm5zml6Vf5rC05puc5pelX+acqOabnOaXpV/ph5Hmm5zml6Vf5Zyf5puc5pelJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn5pelX+aciF/ngatf5rC0X+acqF/ph5Ff5ZyfJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/mnIhf54GrX+awtF/mnKhf6YeRX+Wcnycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6UgZGRkZCBISDptbScsXG4gICAgICAgICAgICBsOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpShkZGQpIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+WNiOWJjXzljYjlvowvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfljYjlvownO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Y2I5YmNJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfljYjlvownO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vku4rml6VdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb5piO5pelXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vmnaXpgLFdZGRkZCBMVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1vmmKjml6VdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMud2VlaygpICE9PSBub3cud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+WFiOmAsV1kZGRkIExUJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3ml6UvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgPT09IDEgPyAn5YWD5bm0JyA6IG51bWJlciArICflubQnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz5b6MJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+WJjScsXG4gICAgICAgICAgICBzOiAn5pWw56eSJyxcbiAgICAgICAgICAgIHNzOiAnJWTnp5InLFxuICAgICAgICAgICAgbTogJzHliIYnLFxuICAgICAgICAgICAgbW06ICclZOWIhicsXG4gICAgICAgICAgICBoOiAnMeaZgumWkycsXG4gICAgICAgICAgICBoaDogJyVk5pmC6ZaTJyxcbiAgICAgICAgICAgIGQ6ICcx5pelJyxcbiAgICAgICAgICAgIGRkOiAnJWTml6UnLFxuICAgICAgICAgICAgTTogJzHjg7bmnIgnLFxuICAgICAgICAgICAgTU06ICclZOODtuaciCcsXG4gICAgICAgICAgICB5OiAnMeW5tCcsXG4gICAgICAgICAgICB5eTogJyVk5bm0JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBqYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBKYXZhbmVzZSBbanZdXG4vLyEgYXV0aG9yIDogUm9ueSBMYW50aXAgOiBodHRwczovL2dpdGh1Yi5jb20vbGFudGlwXG4vLyEgcmVmZXJlbmNlOiBodHRwOi8vanYud2lraXBlZGlhLm9yZy93aWtpL0Jhc2FfSmF3YVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGp2ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnanYnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcmlfRmVicnVhcmlfTWFyZXRfQXByaWxfTWVpX0p1bmlfSnVsaV9BZ3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vcGVtYmVyX0Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NZWlfSnVuX0p1bF9BZ3NfU2VwX09rdF9Ob3BfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ01pbmdndV9TZW5lbl9TZWxvc29fUmVidV9LZW1pc19KZW11d2FoX1NlcHR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnTWluX1Nlbl9TZWxfUmViX0tlbV9KZW1fU2VwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ01nX1NuX1NsX1JiX0ttX0ptX1NwJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvZW5qaW5nfHNpeWFuZ3xzb250ZW58bmRhbHUvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdlbmppbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc2l5YW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzb250ZW4nIHx8IG1lcmlkaWVtID09PSAnbmRhbHUnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VuamluZyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NpeWFuZyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NvbnRlbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbmRhbHUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tEaW50ZW4gcHVuaWtvIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW01iZW5qYW5nIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0thbGEgd2luZ2kgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBba2VwZW5na2VyIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3dvbnRlbiBpbmcgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGluZ2thbmcga2VwZW5na2VyJyxcbiAgICAgICAgICAgIHM6ICdzYXdldGF3aXMgZGV0aWsnLFxuICAgICAgICAgICAgc3M6ICclZCBkZXRpaycsXG4gICAgICAgICAgICBtOiAnc2V0dW5nZ2FsIG1lbml0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWVuaXQnLFxuICAgICAgICAgICAgaDogJ3NldHVuZ2dhbCBqYW0nLFxuICAgICAgICAgICAgaGg6ICclZCBqYW0nLFxuICAgICAgICAgICAgZDogJ3NlZGludGVuJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGludGVuJyxcbiAgICAgICAgICAgIE06ICdzZXd1bGFuJyxcbiAgICAgICAgICAgIE1NOiAnJWQgd3VsYW4nLFxuICAgICAgICAgICAgeTogJ3NldGF1bicsXG4gICAgICAgICAgICB5eTogJyVkIHRhdW4nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ganY7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR2VvcmdpYW4gW2thXVxuLy8hIGF1dGhvciA6IElyYWtsaSBKYW5pYXNodmlsaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9JcmFrbGlKYW5pXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIga2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrYScsIHtcbiAgICAgICAgbW9udGhzOiAn4YOY4YOQ4YOc4YOV4YOQ4YOg4YOYX+GDl+GDlOGDkeGDlOGDoOGDleGDkOGDmuGDmF/hg5vhg5Dhg6Dhg6Lhg5hf4YOQ4YOe4YOg4YOY4YOa4YOYX+GDm+GDkOGDmOGDoeGDmF/hg5jhg5Xhg5zhg5jhg6Hhg5hf4YOY4YOV4YOa4YOY4YOh4YOYX+GDkOGDkuGDleGDmOGDoeGDouGDnV/hg6Hhg5Thg6Xhg6Lhg5Thg5vhg5Hhg5Thg6Dhg5hf4YOd4YOl4YOi4YOd4YOb4YOR4YOU4YOg4YOYX+GDnOGDneGDlOGDm+GDkeGDlOGDoOGDmF/hg5Phg5Thg5nhg5Thg5vhg5Hhg5Thg6Dhg5gnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4YOY4YOQ4YOcX+GDl+GDlOGDkV/hg5vhg5Dhg6Bf4YOQ4YOe4YOgX+GDm+GDkOGDmF/hg5jhg5Xhg5xf4YOY4YOV4YOaX+GDkOGDkuGDlV/hg6Hhg5Thg6Vf4YOd4YOl4YOiX+GDnOGDneGDlF/hg5Phg5Thg5knLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn4YOZ4YOV4YOY4YOg4YOQX+GDneGDoOGDqOGDkOGDkeGDkOGDl+GDmF/hg6Hhg5Dhg5vhg6jhg5Dhg5Hhg5Dhg5fhg5hf4YOd4YOX4YOu4YOo4YOQ4YOR4YOQ4YOX4YOYX+GDruGDo+GDl+GDqOGDkOGDkeGDkOGDl+GDmF/hg57hg5Dhg6Dhg5Dhg6Hhg5nhg5Thg5Xhg5hf4YOo4YOQ4YOR4YOQ4YOX4YOYJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmb3JtYXQ6ICfhg5nhg5Xhg5jhg6Dhg5Dhg6Ff4YOd4YOg4YOo4YOQ4YOR4YOQ4YOX4YOhX+GDoeGDkOGDm+GDqOGDkOGDkeGDkOGDl+GDoV/hg53hg5fhg67hg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOu4YOj4YOX4YOo4YOQ4YOR4YOQ4YOX4YOhX+GDnuGDkOGDoOGDkOGDoeGDmeGDlOGDleGDoV/hg6jhg5Dhg5Hhg5Dhg5fhg6EnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvKOGDrOGDmOGDnOGDkHzhg6jhg5Thg5vhg5Phg5Thg5IpLyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+GDmeGDleGDmF/hg53hg6Dhg6hf4YOh4YOQ4YObX+GDneGDl+GDrl/hg67hg6Phg5df4YOe4YOQ4YOgX+GDqOGDkOGDkScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfhg5nhg5Vf4YOd4YOgX+GDoeGDkF/hg53hg5df4YOu4YOjX+GDnuGDkF/hg6jhg5AnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4YOT4YOm4YOU4YOhXSBMVFst4YOW4YOUXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+GDruGDleGDkOGDml0gTFRbLeGDluGDlF0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vhg5Lhg6Phg6jhg5jhg5xdIExUWy3hg5bhg5RdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+GDqOGDlOGDm+GDk+GDlOGDkl0gZGRkZCBMVFst4YOW4YOUXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vhg6zhg5jhg5zhg5BdIGRkZGQgTFQt4YOW4YOUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzLnJlcGxhY2UoLyjhg6zhg5Dhg5t84YOs4YOj4YOXfOGDoeGDkOGDkOGDl3zhg6zhg5Thg5p84YOT4YOmfOGDl+GDlSko4YOYfOGDlCkvLCBmdW5jdGlvbiAoXG4gICAgICAgICAgICAgICAgICAgICQwLFxuICAgICAgICAgICAgICAgICAgICAkMSxcbiAgICAgICAgICAgICAgICAgICAgJDJcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQyID09PSAn4YOYJyA/ICQxICsgJ+GDqOGDmCcgOiAkMSArICQyICsgJ+GDqOGDmCc7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdDogZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoLyjhg6zhg5Dhg5vhg5h84YOs4YOj4YOX4YOYfOGDoeGDkOGDkOGDl+GDmHzhg5Phg6bhg5R84YOX4YOV4YOUKS8udGVzdChzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC8o4YOYfOGDlCkkLywgJ+GDmOGDoSDhg6zhg5jhg5wnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKC/hg6zhg5Thg5rhg5gvLnRlc3QocykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgv4YOs4YOU4YOa4YOYJC8sICfhg6zhg5rhg5jhg6Eg4YOs4YOY4YOcJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHM6ICfhg6Dhg5Dhg5vhg5Phg5Thg5zhg5jhg5vhg5Qg4YOs4YOQ4YOb4YOYJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4YOs4YOQ4YOb4YOYJyxcbiAgICAgICAgICAgIG06ICfhg6zhg6Phg5fhg5gnLFxuICAgICAgICAgICAgbW06ICclZCDhg6zhg6Phg5fhg5gnLFxuICAgICAgICAgICAgaDogJ+GDoeGDkOGDkOGDl+GDmCcsXG4gICAgICAgICAgICBoaDogJyVkIOGDoeGDkOGDkOGDl+GDmCcsXG4gICAgICAgICAgICBkOiAn4YOT4YOm4YOUJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4YOT4YOm4YOUJyxcbiAgICAgICAgICAgIE06ICfhg5fhg5Xhg5QnLFxuICAgICAgICAgICAgTU06ICclZCDhg5fhg5Xhg5QnLFxuICAgICAgICAgICAgeTogJ+GDrOGDlOGDmuGDmCcsXG4gICAgICAgICAgICB5eTogJyVkIOGDrOGDlOGDmuGDmCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC8wfDEt4YOa4YOYfOGDm+GDlC1cXGR7MSwyfXxcXGR7MSwyfS3hg5QvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3hg5rhg5gnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG51bWJlciA8IDIwIHx8XG4gICAgICAgICAgICAgICAgKG51bWJlciA8PSAxMDAgJiYgbnVtYmVyICUgMjAgPT09IDApIHx8XG4gICAgICAgICAgICAgICAgbnVtYmVyICUgMTAwID09PSAwXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+GDm+GDlC0nICsgbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct4YOUJztcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLFxuICAgICAgICAgICAgZG95OiA3LFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGthO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEthemFraCBba2tdXG4vLyEgYXV0aG9ycyA6IE51cmxhbiBSYWtoaW16aGFub3YgOiBodHRwczovL2dpdGh1Yi5jb20vbnVybGFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDA6ICct0YjRlicsXG4gICAgICAgIDE6ICct0YjRlicsXG4gICAgICAgIDI6ICct0YjRlicsXG4gICAgICAgIDM6ICct0YjRlicsXG4gICAgICAgIDQ6ICct0YjRlicsXG4gICAgICAgIDU6ICct0YjRlicsXG4gICAgICAgIDY6ICct0YjRiycsXG4gICAgICAgIDc6ICct0YjRlicsXG4gICAgICAgIDg6ICct0YjRlicsXG4gICAgICAgIDk6ICct0YjRiycsXG4gICAgICAgIDEwOiAnLdGI0YsnLFxuICAgICAgICAyMDogJy3RiNGLJyxcbiAgICAgICAgMzA6ICct0YjRiycsXG4gICAgICAgIDQwOiAnLdGI0YsnLFxuICAgICAgICA1MDogJy3RiNGWJyxcbiAgICAgICAgNjA6ICct0YjRiycsXG4gICAgICAgIDcwOiAnLdGI0ZYnLFxuICAgICAgICA4MDogJy3RiNGWJyxcbiAgICAgICAgOTA6ICct0YjRiycsXG4gICAgICAgIDEwMDogJy3RiNGWJyxcbiAgICB9O1xuXG4gICAgdmFyIGtrID0gbW9tZW50LmRlZmluZUxvY2FsZSgna2snLCB7XG4gICAgICAgIG1vbnRoczogJ9Kb0LDSo9GC0LDRgF/QsNKb0L/QsNC9X9C90LDRg9GA0YvQt1/RgdOZ0YPRltGAX9C80LDQvNGL0YBf0LzQsNGD0YHRi9C8X9GI0ZbQu9C00LVf0YLQsNC80YvQt1/Sm9GL0YDQutKv0LnQtdC6X9Kb0LDQt9Cw0L1f0pvQsNGA0LDRiNCwX9C20LXQu9GC0L7Sm9GB0LDQvScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfSm9Cw0qNf0LDSm9C/X9C90LDRg1/RgdOZ0YNf0LzQsNC8X9C80LDRg1/RiNGW0Ltf0YLQsNC8X9Kb0YvRgF/Sm9Cw0Ldf0pvQsNGAX9C20LXQuycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfQttC10LrRgdC10L3QsdGWX9C00q/QudGB0LXQvdCx0ZZf0YHQtdC50YHQtdC90LHRll/RgdOZ0YDRgdC10L3QsdGWX9Cx0LXQudGB0LXQvdCx0ZZf0LbSsdC80LBf0YHQtdC90LHRlicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C20LXQul/QtNKv0Llf0YHQtdC5X9GB05nRgF/QsdC10Llf0LbSsdC8X9GB0LXQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQttC6X9C00Llf0YHQuV/RgdGAX9Cx0Llf0LbQvF/RgdC9Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CR0q/Qs9GW0L0g0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQldGA0YLQtdKjINGB0LDSk9Cw0YJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQmtC10YjQtSDRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vTqNGC0LrQtdC9INCw0L/RgtCw0L3Ri9KjXSBkZGRkIFvRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINGW0YjRltC90LTQtScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0LHSsdGA0YvQvScsXG4gICAgICAgICAgICBzOiAn0LHRltGA0L3QtdGI0LUg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIHNzOiAnJWQg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG06ICfQsdGW0YAg0LzQuNC90YPRgicsXG4gICAgICAgICAgICBtbTogJyVkINC80LjQvdGD0YInLFxuICAgICAgICAgICAgaDogJ9Cx0ZbRgCDRgdCw0pPQsNGCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YHQsNKT0LDRgicsXG4gICAgICAgICAgICBkOiAn0LHRltGAINC60q/QvScsXG4gICAgICAgICAgICBkZDogJyVkINC60q/QvScsXG4gICAgICAgICAgICBNOiAn0LHRltGAINCw0LknLFxuICAgICAgICAgICAgTU06ICclZCDQsNC5JyxcbiAgICAgICAgICAgIHk6ICfQsdGW0YAg0LbRi9C7JyxcbiAgICAgICAgICAgIHl5OiAnJWQg0LbRi9C7JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjRiNGWfNGI0YspLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBiID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW251bWJlcl0gfHwgc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga2s7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2FtYm9kaWFuIFtrbV1cbi8vISBhdXRob3IgOiBLcnV5IFZhbm5hIDogaHR0cHM6Ly9naXRodWIuY29tL2tydXl2YW5uYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+GfoScsXG4gICAgICAgICAgICAnMic6ICfhn6InLFxuICAgICAgICAgICAgJzMnOiAn4Z+jJyxcbiAgICAgICAgICAgICc0JzogJ+GfpCcsXG4gICAgICAgICAgICAnNSc6ICfhn6UnLFxuICAgICAgICAgICAgJzYnOiAn4Z+mJyxcbiAgICAgICAgICAgICc3JzogJ+GfpycsXG4gICAgICAgICAgICAnOCc6ICfhn6gnLFxuICAgICAgICAgICAgJzknOiAn4Z+pJyxcbiAgICAgICAgICAgICcwJzogJ+GfoCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfhn6EnOiAnMScsXG4gICAgICAgICAgICAn4Z+iJzogJzInLFxuICAgICAgICAgICAgJ+Gfoyc6ICczJyxcbiAgICAgICAgICAgICfhn6QnOiAnNCcsXG4gICAgICAgICAgICAn4Z+lJzogJzUnLFxuICAgICAgICAgICAgJ+Gfpic6ICc2JyxcbiAgICAgICAgICAgICfhn6cnOiAnNycsXG4gICAgICAgICAgICAn4Z+oJzogJzgnLFxuICAgICAgICAgICAgJ+GfqSc6ICc5JyxcbiAgICAgICAgICAgICfhn6AnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIga20gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrbScsIHtcbiAgICAgICAgbW9udGhzOiAn4Z6Y4Z6A4Z6a4Z62X+GegOGeu+GemOGfkuGel+GfiF/hnpjhnrjhnpPhnrZf4Z6Y4Z+B4Z6f4Z62X+Gep+Gen+Gel+Getl/hnpjhnrfhnpDhnrvhnpPhnrZf4Z6A4Z6A4Z+S4Z6A4Z6K4Z62X+Gen+GeuOGeoOGetl/hnoDhnonhn5LhnonhnrZf4Z6P4Z674Z6b4Z62X+GenOGet+GeheGfkuGehuGet+GegOGetl/hnpLhn5LhnpPhnrwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4Z6Y4Z6A4Z6a4Z62X+GegOGeu+GemOGfkuGel+GfiF/hnpjhnrjhnpPhnrZf4Z6Y4Z+B4Z6f4Z62X+Gep+Gen+Gel+Getl/hnpjhnrfhnpDhnrvhnpPhnrZf4Z6A4Z6A4Z+S4Z6A4Z6K4Z62X+Gen+GeuOGeoOGetl/hnoDhnonhn5LhnonhnrZf4Z6P4Z674Z6b4Z62X+GenOGet+GeheGfkuGehuGet+GegOGetl/hnpLhn5LhnpPhnrwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4Z6i4Z624Z6R4Z634Z6P4Z+S4Z6ZX+GeheGfkOGek+GfkuGekV/hnqLhnoThn5LhnoLhnrbhnppf4Z6W4Z674Z6SX+GeluGfkuGemuGeoOGen+GfkuGelOGej+Get+GfjV/hnp/hnrvhnoDhn5Lhnppf4Z6f4Z+F4Z6a4Z+NJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4Z6i4Z62X+GehV/hnqJf4Z6WX+GeluGfkuGeml/hnp/hnrtf4Z6fJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+GeouGetl/hnoVf4Z6iX+Gell/hnpbhn5Lhnppf4Z6f4Z67X+Genycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/hnpbhn5LhnprhnrnhnoB84Z6b4Z+S4Z6E4Z624Z6FLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfhnpvhn5LhnoThnrbhnoUnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Z6W4Z+S4Z6a4Z654Z6AJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfhnpvhn5LhnoThnrbhnoUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vhnpDhn5LhnoThn4PhnpPhn4Hhn4cg4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+Gen+GfkuGeouGfguGegCDhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+GemOGfkuGen+Get+Gem+GemOGet+GeiSDhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb4Z6f4Z6U4Z+S4Z6P4Z624Z6g4Z+N4Z6Y4Z674Z6TXSBb4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz4Z6R4Z+A4Z6PJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+GemOGeu+GekycsXG4gICAgICAgICAgICBzOiAn4Z6U4Z+J4Z674Z6T4Z+S4Z6Y4Z624Z6T4Z6c4Z634Z6T4Z624Z6R4Z64JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Z6c4Z634Z6T4Z624Z6R4Z64JyxcbiAgICAgICAgICAgIG06ICfhnpjhnr3hnpnhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgbW06ICclZCDhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgaDogJ+GemOGeveGemeGemOGfieGfhOGehCcsXG4gICAgICAgICAgICBoaDogJyVkIOGemOGfieGfhOGehCcsXG4gICAgICAgICAgICBkOiAn4Z6Y4Z694Z6Z4Z6Q4Z+S4Z6E4Z+DJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Z6Q4Z+S4Z6E4Z+DJyxcbiAgICAgICAgICAgIE06ICfhnpjhnr3hnpnhnoHhn4InLFxuICAgICAgICAgICAgTU06ICclZCDhnoHhn4InLFxuICAgICAgICAgICAgeTogJ+GemOGeveGemeGehuGfkuGek+GetuGfhicsXG4gICAgICAgICAgICB5eTogJyVkIOGehuGfkuGek+GetuGfhicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC/hnpHhnrhcXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6ICfhnpHhnrglZCcsXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vhn6Hhn6Lhn6Phn6Thn6Xhn6bhn6fhn6jhn6nhn6BdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBrbTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLYW5uYWRhIFtrbl1cbi8vISBhdXRob3IgOiBSYWplZXYgTmFpayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWplZXZuYWlrdGVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgs6cnLFxuICAgICAgICAgICAgJzInOiAn4LOoJyxcbiAgICAgICAgICAgICczJzogJ+CzqScsXG4gICAgICAgICAgICAnNCc6ICfgs6onLFxuICAgICAgICAgICAgJzUnOiAn4LOrJyxcbiAgICAgICAgICAgICc2JzogJ+CzrCcsXG4gICAgICAgICAgICAnNyc6ICfgs60nLFxuICAgICAgICAgICAgJzgnOiAn4LOuJyxcbiAgICAgICAgICAgICc5JzogJ+CzrycsXG4gICAgICAgICAgICAnMCc6ICfgs6YnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4LOnJzogJzEnLFxuICAgICAgICAgICAgJ+CzqCc6ICcyJyxcbiAgICAgICAgICAgICfgs6knOiAnMycsXG4gICAgICAgICAgICAn4LOqJzogJzQnLFxuICAgICAgICAgICAgJ+Czqyc6ICc1JyxcbiAgICAgICAgICAgICfgs6wnOiAnNicsXG4gICAgICAgICAgICAn4LOtJzogJzcnLFxuICAgICAgICAgICAgJ+Czric6ICc4JyxcbiAgICAgICAgICAgICfgs68nOiAnOScsXG4gICAgICAgICAgICAn4LOmJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGtuID0gbW9tZW50LmRlZmluZUxvY2FsZSgna24nLCB7XG4gICAgICAgIG1vbnRoczogJ+CynOCyqOCyteCysOCyv1/gsqvgs4bgsqzgs43gsrDgsrXgsrDgsr9f4LKu4LK+4LKw4LON4LKa4LONX+Cyj+CyquCzjeCysOCyv+CysuCzjV/gsq7gs4bgs5Vf4LKc4LOC4LKo4LONX+CynOCzgeCysuCzhuCzll/gsobgspfgsrjgs43gsp/gs41f4LK44LOG4LKq4LON4LKf4LOG4LKC4LKs4LKw4LONX+CyheCyleCzjeCyn+CzhuCzguCzleCyrOCysOCzjV/gsqjgsrXgs4bgsoLgsqzgsrDgs41f4LKh4LK/4LK44LOG4LKC4LKs4LKw4LONJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CynOCyqF/gsqvgs4bgsqzgs43gsrBf4LKu4LK+4LKw4LON4LKa4LONX+Cyj+CyquCzjeCysOCyv+CysuCzjV/gsq7gs4bgs5Vf4LKc4LOC4LKo4LONX+CynOCzgeCysuCzhuCzll/gsobgspfgsrjgs43gsp/gs41f4LK44LOG4LKq4LON4LKf4LOG4LKCX+CyheCyleCzjeCyn+CzhuCzguCzlV/gsqjgsrXgs4bgsoJf4LKh4LK/4LK44LOG4LKCJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CyreCyvuCyqOCzgeCyteCyvuCysF/gsrjgs4bgs4Lgs5Xgsq7gsrXgsr7gsrBf4LKu4LKC4LKX4LKz4LK14LK+4LKwX+CyrOCzgeCyp+CyteCyvuCysF/gspfgs4HgsrDgs4HgsrXgsr7gsrBf4LK24LOB4LKV4LON4LKw4LK14LK+4LKwX+CytuCyqOCyv+CyteCyvuCysCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CyreCyvuCyqOCzgV/gsrjgs4bgs4Lgs5Xgsq5f4LKu4LKC4LKX4LKzX+CyrOCzgeCyp1/gspfgs4HgsrDgs4Ff4LK24LOB4LKV4LON4LKwX+CytuCyqOCyvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgsq3gsr5f4LK44LOG4LOC4LOVX+CyruCygl/gsqzgs4Ff4LKX4LOBX+CytuCzgV/gsrYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4LKH4LKC4LKm4LOBXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CyqOCyvuCys+Czhl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CyqOCyv+CyqOCzjeCyqOCzhl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4LKV4LOG4LOC4LKo4LOG4LKvXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCyqOCyguCypOCysCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4LK54LK/4LKC4LKm4LOGJyxcbiAgICAgICAgICAgIHM6ICfgspXgs4bgsrLgsrXgs4Eg4LKV4LON4LK34LKj4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4LK44LOG4LKV4LOG4LKC4LKh4LOB4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIG06ICfgspLgsoLgsqbgs4Eg4LKo4LK/4LKu4LK/4LK3JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LKo4LK/4LKu4LK/4LK3JyxcbiAgICAgICAgICAgIGg6ICfgspLgsoLgsqbgs4Eg4LKX4LKC4LKf4LOGJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LKX4LKC4LKf4LOGJyxcbiAgICAgICAgICAgIGQ6ICfgspLgsoLgsqbgs4Eg4LKm4LK/4LKoJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4LKm4LK/4LKoJyxcbiAgICAgICAgICAgIE06ICfgspLgsoLgsqbgs4Eg4LKk4LK/4LKC4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LKk4LK/4LKC4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIHk6ICfgspLgsoLgsqbgs4Eg4LK14LKw4LON4LK3JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4LK14LKw4LON4LK3JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Czp+CzqOCzqeCzquCzq+CzrOCzreCzruCzr+Czpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CysOCyvuCypOCzjeCysOCyv3zgsqzgs4bgsrPgsr/gspfgs43gspfgs4Z84LKu4LKn4LON4LKv4LK+4LK54LON4LKofOCyuOCyguCynOCzhi8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CysOCyvuCypOCzjeCysOCyvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CyrOCzhuCys+Cyv+Cyl+CzjeCyl+CzhicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsq7gsqfgs43gsq/gsr7gsrngs43gsqgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CyuOCyguCynOCzhicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsrDgsr7gsqTgs43gsrDgsr8nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CyrOCzhuCys+Cyv+Cyl+CzjeCyl+Czhic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LKu4LKn4LON4LKv4LK+4LK54LON4LKoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsrjgsoLgspzgs4YnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CysOCyvuCypOCzjeCysOCyvyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjgsqjgs4bgs5UpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfgsqjgs4bgs5UnO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga247XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS29yZWFuIFtrb11cbi8vISBhdXRob3IgOiBLeXVuZ3dvb2ssIFBhcmsgOiBodHRwczovL2dpdGh1Yi5jb20va3l1bmd3MDBrXG4vLyEgYXV0aG9yIDogSmVlZXl1bCBMZWUgPGplZWV5dWxAZ21haWwuY29tPlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGtvID0gbW9tZW50LmRlZmluZUxvY2FsZSgna28nLCB7XG4gICAgICAgIG1vbnRoczogJzHsm5RfMuyblF8z7JuUXzTsm5RfNeyblF827JuUXzfsm5RfOOyblF857JuUXzEw7JuUXzEx7JuUXzEy7JuUJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJzHsm5RfMuyblF8z7JuUXzTsm5RfNeyblF827JuUXzfsm5RfOOyblF857JuUXzEw7JuUXzEx7JuUXzEy7JuUJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+ydvOyalOydvF/sm5TsmpTsnbxf7ZmU7JqU7J28X+yImOyalOydvF/rqqnsmpTsnbxf6riI7JqU7J28X+2GoOyalOydvCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+ydvF/sm5Rf7ZmUX+yImF/rqqlf6riIX+2GoCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfsnbxf7JuUX+2ZlF/siJhf66qpX+q4iF/thqAnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkuTU0uREQuJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeuFhCBNTU1NIETsnbwnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeuFhCBNTU1NIETsnbwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ64WEIE1NTU0gROydvCBkZGRkIEEgaDptbScsXG4gICAgICAgICAgICBsOiAnWVlZWS5NTS5ERC4nLFxuICAgICAgICAgICAgbGw6ICdZWVlZ64WEIE1NTU0gROydvCcsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ64WEIE1NTU0gROydvCBBIGg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnrhYQgTU1NTSBE7J28IGRkZGQgQSBoOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICfsmKTripggTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ+uCtOydvCBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ+yWtOygnCBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ+yngOuCnOyjvCBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg7ZuEJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDsoIQnLFxuICAgICAgICAgICAgczogJ+uqhyDstIgnLFxuICAgICAgICAgICAgc3M6ICclZOy0iCcsXG4gICAgICAgICAgICBtOiAnMeu2hCcsXG4gICAgICAgICAgICBtbTogJyVk67aEJyxcbiAgICAgICAgICAgIGg6ICftlZwg7Iuc6rCEJyxcbiAgICAgICAgICAgIGhoOiAnJWTsi5zqsIQnLFxuICAgICAgICAgICAgZDogJ+2VmOujqCcsXG4gICAgICAgICAgICBkZDogJyVk7J28JyxcbiAgICAgICAgICAgIE06ICftlZwg64usJyxcbiAgICAgICAgICAgIE1NOiAnJWTri6wnLFxuICAgICAgICAgICAgeTogJ+ydvCDrhYQnLFxuICAgICAgICAgICAgeXk6ICclZOuFhCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjsnbx87JuUfOyjvCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfsnbwnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+yblCc7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn7KO8JztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv7Jik7KCEfOyYpO2bhC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuID09PSAn7Jik7ZuEJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzVXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBob3VyIDwgMTIgPyAn7Jik7KCEJyA6ICfsmKTtm4QnO1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGtvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEt1cmRpc2ggW2t1XVxuLy8hIGF1dGhvciA6IFNoYWhyYW0gTWViYXNoYXIgOiBodHRwczovL2dpdGh1Yi5jb20vU2hhaHJhbU1lYmFzaGFyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn2aEnLFxuICAgICAgICAgICAgJzInOiAn2aInLFxuICAgICAgICAgICAgJzMnOiAn2aMnLFxuICAgICAgICAgICAgJzQnOiAn2aQnLFxuICAgICAgICAgICAgJzUnOiAn2aUnLFxuICAgICAgICAgICAgJzYnOiAn2aYnLFxuICAgICAgICAgICAgJzcnOiAn2acnLFxuICAgICAgICAgICAgJzgnOiAn2agnLFxuICAgICAgICAgICAgJzknOiAn2aknLFxuICAgICAgICAgICAgJzAnOiAn2aAnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn2aEnOiAnMScsXG4gICAgICAgICAgICAn2aInOiAnMicsXG4gICAgICAgICAgICAn2aMnOiAnMycsXG4gICAgICAgICAgICAn2aQnOiAnNCcsXG4gICAgICAgICAgICAn2aUnOiAnNScsXG4gICAgICAgICAgICAn2aYnOiAnNicsXG4gICAgICAgICAgICAn2acnOiAnNycsXG4gICAgICAgICAgICAn2agnOiAnOCcsXG4gICAgICAgICAgICAn2aknOiAnOScsXG4gICAgICAgICAgICAn2aAnOiAnMCcsXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfaqdin2YbZiNmG24wg2K/ZiNmI25XZhScsXG4gICAgICAgICAgICAn2LTZiNio2KfYqicsXG4gICAgICAgICAgICAn2KbYp9iy2KfYsScsXG4gICAgICAgICAgICAn2YbbjNiz2KfZhicsXG4gICAgICAgICAgICAn2KbYp9uM2KfYsScsXG4gICAgICAgICAgICAn2K3ZiNiy25XbjNix2KfZhicsXG4gICAgICAgICAgICAn2KrbldmF2YXZiNiyJyxcbiAgICAgICAgICAgICfYptin2KgnLFxuICAgICAgICAgICAgJ9im25XbjNmE2YjZiNmEJyxcbiAgICAgICAgICAgICfYqti02LHbjNmG24wg24zbldmD25XZhScsXG4gICAgICAgICAgICAn2KrYtNix24zZhtuMINiv2YjZiNuV2YUnLFxuICAgICAgICAgICAgJ9mD2KfZhtmI2YbbjCDbjNuV2qnbldmFJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBrdSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2t1Jywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6ICfbjNmH4oCM2YPYtNmH4oCM2YXZhdmH4oCMX9iv2YjZiNi02YfigIzZhdmF2YfigIxf2LPbjti02YfigIzZhdmF2YfigIxf2obZiNin2LHYtNmH4oCM2YXZhdmH4oCMX9m+247Zhtis2LTZh+KAjNmF2YXZh+KAjF/Zh9mH4oCM24zZhtuMX9i02YfigIzZhdmF2YfigIwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfbjNmH4oCM2YPYtNmH4oCM2YVf2K/ZiNmI2LTZh+KAjNmFX9iz247YtNmH4oCM2YVf2obZiNin2LHYtNmH4oCM2YVf2b7bjtmG2KzYtNmH4oCM2YVf2YfZh+KAjNuM2YbbjF/YtNmH4oCM2YXZhdmH4oCMJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9uMX9ivX9izX9qGX9m+X9mHX9i0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9im247ZiNin2LHZh+KAjHzYqNmH4oCM24zYp9mG24wvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAv2KbbjtmI2KfYsdmH4oCMLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9io2YfigIzbjNin2YbbjCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2KbbjtmI2KfYsdmH4oCMJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KbZh+KAjNmF2LHbhiDZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYqNmH4oCM24zYp9mG24wg2YPYp9iq2pjZhduO2LFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2YPYp9iq2pjZhduO2LFdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2K/ZiNuO2YbbjiDZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfZhNmH4oCMICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcycsXG4gICAgICAgICAgICBzOiAn2obZh+KAjNmG2K8g2obYsdmD2YfigIzbjNmH4oCM2YMnLFxuICAgICAgICAgICAgc3M6ICfahtix2YPZh+KAjCAlZCcsXG4gICAgICAgICAgICBtOiAn24zZh+KAjNmDINiu2YjZhNmH4oCM2YMnLFxuICAgICAgICAgICAgbW06ICclZCDYrtmI2YTZh+KAjNmDJyxcbiAgICAgICAgICAgIGg6ICfbjNmH4oCM2YMg2YPYp9iq2pjZhduO2LEnLFxuICAgICAgICAgICAgaGg6ICclZCDZg9in2KramNmF247YsScsXG4gICAgICAgICAgICBkOiAn24zZh+KAjNmDINqV24bamCcsXG4gICAgICAgICAgICBkZDogJyVkINqV24bamCcsXG4gICAgICAgICAgICBNOiAn24zZh+KAjNmDINmF2KfZhtqvJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2YXYp9mG2q8nLFxuICAgICAgICAgICAgeTogJ9uM2YfigIzZgyDYs9in2rUnLFxuICAgICAgICAgICAgeXk6ICclZCDYs9in2rUnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9b2aHZotmj2aTZpdmm2afZqNmp2aBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBrdTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLeXJneXogW2t5XVxuLy8hIGF1dGhvciA6IENoeW5neXogQXJ5c3RhbiB1dWx1IDogaHR0cHM6Ly9naXRodWIuY29tL2NoeW5neXpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMDogJy3Rh9KvJyxcbiAgICAgICAgMTogJy3Rh9C4JyxcbiAgICAgICAgMjogJy3Rh9C4JyxcbiAgICAgICAgMzogJy3Rh9KvJyxcbiAgICAgICAgNDogJy3Rh9KvJyxcbiAgICAgICAgNTogJy3Rh9C4JyxcbiAgICAgICAgNjogJy3Rh9GLJyxcbiAgICAgICAgNzogJy3Rh9C4JyxcbiAgICAgICAgODogJy3Rh9C4JyxcbiAgICAgICAgOTogJy3Rh9GDJyxcbiAgICAgICAgMTA6ICct0YfRgycsXG4gICAgICAgIDIwOiAnLdGH0YsnLFxuICAgICAgICAzMDogJy3Rh9GDJyxcbiAgICAgICAgNDA6ICct0YfRiycsXG4gICAgICAgIDUwOiAnLdGH0q8nLFxuICAgICAgICA2MDogJy3Rh9GLJyxcbiAgICAgICAgNzA6ICct0YfQuCcsXG4gICAgICAgIDgwOiAnLdGH0LgnLFxuICAgICAgICA5MDogJy3Rh9GDJyxcbiAgICAgICAgMTAwOiAnLdGH0q8nLFxuICAgIH07XG5cbiAgICB2YXIga3kgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdreScsIHtcbiAgICAgICAgbW9udGhzOiAn0Y/QvdCy0LDRgNGMX9GE0LXQstGA0LDQu9GMX9C80LDRgNGCX9Cw0L/RgNC10LvRjF/QvNCw0Llf0LjRjtC90Yxf0LjRjtC70Yxf0LDQstCz0YPRgdGCX9GB0LXQvdGC0Y/QsdGA0Yxf0L7QutGC0Y/QsdGA0Yxf0L3QvtGP0LHRgNGMX9C00LXQutCw0LHRgNGMJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GP0L3Qsl/RhNC10LJf0LzQsNGA0YJf0LDQv9GAX9C80LDQuV/QuNGO0L3RjF/QuNGO0LvRjF/QsNCy0LNf0YHQtdC9X9C+0LrRgl/QvdC+0Y9f0LTQtdC6Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9CW0LXQutGI0LXQvNCx0Lhf0JTSr9C50YjTqdC80LHSr1/QqNC10LnRiNC10LzQsdC4X9Co0LDRgNGI0LXQvNCx0Lhf0JHQtdC50YjQtdC80LHQuF/QltGD0LzQsF/QmNGI0LXQvNCx0LgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQltC10Lpf0JTSr9C5X9Co0LXQuV/QqNCw0YBf0JHQtdC5X9CW0YPQvF/QmNGI0LUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0JbQul/QlNC5X9Co0Llf0KjRgF/QkdC5X9CW0Lxf0JjRiCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQkdKv0LPSr9C9INGB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Ct0YDRgtC10qMg0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JrQtdGH0Y3RjSDRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb06jRgtC606nQvSDQsNC/0YLQsNC90YvQvV0gZGRkZCBb0LrSr9C90q9dIFvRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDQuNGH0LjQvdC00LUnLFxuICAgICAgICAgICAgcGFzdDogJyVzINC80YPRgNGD0L0nLFxuICAgICAgICAgICAgczogJ9Cx0LjRgNC90LXRh9C1INGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBzczogJyVkINGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtOiAn0LHQuNGAINC80q/QvdOp0YInLFxuICAgICAgICAgICAgbW06ICclZCDQvNKv0L3TqdGCJyxcbiAgICAgICAgICAgIGg6ICfQsdC40YAg0YHQsNCw0YInLFxuICAgICAgICAgICAgaGg6ICclZCDRgdCw0LDRgicsXG4gICAgICAgICAgICBkOiAn0LHQuNGAINC60q/QvScsXG4gICAgICAgICAgICBkZDogJyVkINC60q/QvScsXG4gICAgICAgICAgICBNOiAn0LHQuNGAINCw0LknLFxuICAgICAgICAgICAgTU06ICclZCDQsNC5JyxcbiAgICAgICAgICAgIHk6ICfQsdC40YAg0LbRi9C7JyxcbiAgICAgICAgICAgIHl5OiAnJWQg0LbRi9C7JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjRh9C4fNGH0Yt80YfSr3zRh9GDKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgYiA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1tudW1iZXJdIHx8IHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGt5O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEx1eGVtYm91cmdpc2ggW2xiXVxuLy8hIGF1dGhvciA6IG13ZWltZXJza2lyY2ggOiBodHRwczovL2dpdGh1Yi5jb20vbXdlaW1lcnNraXJjaFxuLy8hIGF1dGhvciA6IERhdmlkIFJhaXNvbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rd2lzYXR6XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgbTogWydlbmcgTWludXR0JywgJ2VuZ2VyIE1pbnV0dCddLFxuICAgICAgICAgICAgaDogWydlbmcgU3Rvbm4nLCAnZW5nZXIgU3Rvbm4nXSxcbiAgICAgICAgICAgIGQ6IFsnZWVuIERhZycsICdlbmdlbSBEYWcnXSxcbiAgICAgICAgICAgIE06IFsnZWUgTW91bnQnLCAnZW5nZW0gTW91bnQnXSxcbiAgICAgICAgICAgIHk6IFsnZWUgSm9lcicsICdlbmdlbSBKb2VyJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc0Z1dHVyZVRpbWUoc3RyaW5nKSB7XG4gICAgICAgIHZhciBudW1iZXIgPSBzdHJpbmcuc3Vic3RyKDAsIHN0cmluZy5pbmRleE9mKCcgJykpO1xuICAgICAgICBpZiAoZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcikpIHtcbiAgICAgICAgICAgIHJldHVybiAnYSAnICsgc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnYW4gJyArIHN0cmluZztcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc1Bhc3RUaW1lKHN0cmluZykge1xuICAgICAgICB2YXIgbnVtYmVyID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZignICcpKTtcbiAgICAgICAgaWYgKGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihudW1iZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3ZpcnUgJyArIHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ3ZpcnVuICcgKyBzdHJpbmc7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgd29yZCBiZWZvcmUgdGhlIGdpdmVuIG51bWJlciBsb3NlcyB0aGUgJy1uJyBlbmRpbmcuXG4gICAgICogZS5nLiAnYW4gMTAgRGVlZycgYnV0ICdhIDUgRGVlZydcbiAgICAgKlxuICAgICAqIEBwYXJhbSBudW1iZXIge2ludGVnZXJ9XG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgZnVuY3Rpb24gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcikge1xuICAgICAgICBudW1iZXIgPSBwYXJzZUludChudW1iZXIsIDEwKTtcbiAgICAgICAgaWYgKGlzTmFOKG51bWJlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgLy8gTmVnYXRpdmUgTnVtYmVyIC0tPiBhbHdheXMgdHJ1ZVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgMTApIHtcbiAgICAgICAgICAgIC8vIE9ubHkgMSBkaWdpdFxuICAgICAgICAgICAgaWYgKDQgPD0gbnVtYmVyICYmIG51bWJlciA8PSA3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgMTAwKSB7XG4gICAgICAgICAgICAvLyAyIGRpZ2l0c1xuICAgICAgICAgICAgdmFyIGxhc3REaWdpdCA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGZpcnN0RGlnaXQgPSBudW1iZXIgLyAxMDtcbiAgICAgICAgICAgIGlmIChsYXN0RGlnaXQgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKGZpcnN0RGlnaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihsYXN0RGlnaXQpO1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDEwMDAwKSB7XG4gICAgICAgICAgICAvLyAzIG9yIDQgZGlnaXRzIC0tPiByZWN1cnNpdmVseSBjaGVjayBmaXJzdCBkaWdpdFxuICAgICAgICAgICAgd2hpbGUgKG51bWJlciA+PSAxMCkge1xuICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlciAvIDEwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihudW1iZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQW55dGhpbmcgbGFyZ2VyIHRoYW4gNCBkaWdpdHM6IHJlY3Vyc2l2ZWx5IGNoZWNrIGZpcnN0IG4tMyBkaWdpdHNcbiAgICAgICAgICAgIG51bWJlciA9IG51bWJlciAvIDEwMDA7XG4gICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbGIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdsYicsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyX0ZlYnJ1YXJfTcOkZXJ6X0FicsOrbGxfTWVlX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuLl9GZWJyLl9NcnouX0Fici5fTWVlX0p1bi5fSnVsLl9BdWcuX1NlcHQuX09rdC5fTm92Ll9EZXouJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ1Nvbm5kZWdfTcOpaW5kZWdfRMOrbnNjaGRlZ19Nw6t0dHdvY2hfRG9ubmVzY2hkZWdfRnJlaWRlZ19TYW1zY2hkZWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTby5fTcOpLl9Ew6suX03Dqy5fRG8uX0ZyLl9TYS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTcOpX0TDq19Nw6tfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbSBbQXVlcl0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcyBbQXVlcl0nLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0gW0F1ZXJdJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbSBbQXVlcl0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIYXV0IHVtXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tNdWVyIHVtXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0fDq3NjaHRlciB1bV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAvLyBEaWZmZXJlbnQgZGF0ZSBzdHJpbmcgZm9yICdEw6tuc2NoZGVnJyAoVHVlc2RheSkgYW5kICdEb25uZXNjaGRlZycgKFRodXJzZGF5KSBkdWUgdG8gcGhvbm9sb2dpY2FsIHJ1bGVcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tMZXNjaHRlbl0gZGRkZCBbdW1dIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW0xlc2NodGVdIGRkZGQgW3VtXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IHByb2Nlc3NGdXR1cmVUaW1lLFxuICAgICAgICAgICAgcGFzdDogcHJvY2Vzc1Bhc3RUaW1lLFxuICAgICAgICAgICAgczogJ2UgcHVlciBTZWtvbm5lbicsXG4gICAgICAgICAgICBzczogJyVkIFNla29ubmVuJyxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogJyVkIE1pbnV0dGVuJyxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogJyVkIFN0b25uZW4nLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiAnJWQgRGVlZycsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06ICclZCBNw6lpbnQnLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiAnJWQgSm9lcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbGI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTGFvIFtsb11cbi8vISBhdXRob3IgOiBSeWFuIEhhcnQgOiBodHRwczovL2dpdGh1Yi5jb20vcnlhbmhhcnQyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbG8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdsbycsIHtcbiAgICAgICAgbW9udGhzOiAn4Lqh4Lqx4LqH4LqB4Lqt4LqZX+C6geC6uOC6oeC6nuC6sl/guqHgurXgupngurJf4LuA4Lqh4Lqq4LqyX+C6nuC6tuC6lOC6quC6sOC6nuC6sl/guqHgurTgupbgurjgupngurJf4LqB4LuN4Lql4Lqw4LqB4Lq74LqUX+C6quC6tOC6h+C6q+C6sl/guoHgurHgupnguo3gurJf4LqV4Lq44Lql4LqyX+C6nuC6sOC6iOC6tOC6gV/gupfgurHgupnguqfgurInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4Lqh4Lqx4LqH4LqB4Lqt4LqZX+C6geC6uOC6oeC6nuC6sl/guqHgurXgupngurJf4LuA4Lqh4Lqq4LqyX+C6nuC6tuC6lOC6quC6sOC6nuC6sl/guqHgurTgupbgurjgupngurJf4LqB4LuN4Lql4Lqw4LqB4Lq74LqUX+C6quC6tOC6h+C6q+C6sl/guoHgurHgupnguo3gurJf4LqV4Lq44Lql4LqyX+C6nuC6sOC6iOC6tOC6gV/gupfgurHgupnguqfgurInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4Lqt4Lqy4LqX4Lq04LqUX+C6iOC6seC6mV/guq3gurHguofguoTgurLguplf4Lqe4Lq44LqUX+C6nuC6sOC6q+C6seC6lF/guqrgurjguoFf4LuA4Lqq4Lq74LqyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4LqX4Lq04LqUX+C6iOC6seC6mV/guq3gurHguofguoTgurLguplf4Lqe4Lq44LqUX+C6nuC6sOC6q+C6seC6lF/guqrgurjguoFf4LuA4Lqq4Lq74LqyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+C6l1/guohf4Lqt4LqEX+C6nl/gup7guqtf4Lqq4LqBX+C6qicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICfguqfgurHguplkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C6leC6reC6meC7gOC6iuC6u+C7ieC6snzgupXguq3gupngu4HguqXguocvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+C6leC6reC6meC7geC6peC6hyc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgupXguq3gupngu4Dguorgurvgu4ngurInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C6leC6reC6meC7geC6peC6hyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+C6oeC6t+C7ieC6meC6teC7ieC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vguqHgurfgu4nguq3gurfgu4jgupngu4DguqfguqXgurJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+C6p+C6seC6mV1kZGRkW+C7nOC7ieC6suC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vguqHgurfgu4nguqfgurLgupngupngurXgu4ngu4DguqfguqXgurJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+C6p+C6seC6mV1kZGRkW+C7geC6peC7ieC6p+C6meC6teC7ieC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfguq3gurXguoEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVz4Lqc4LuI4Lqy4LqZ4Lqh4LqyJyxcbiAgICAgICAgICAgIHM6ICfguprgu43gu4jgu4Dgupfgurvgu4jgurLgu4PgupTguqfgurTgupngurLgupfgurUnLFxuICAgICAgICAgICAgc3M6ICclZCDguqfgurTgupngurLgupfgurUnLFxuICAgICAgICAgICAgbTogJzEg4LqZ4Lqy4LqX4Lq1JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LqZ4Lqy4LqX4Lq1JyxcbiAgICAgICAgICAgIGg6ICcxIOC6iuC6u+C7iOC6p+C7guC6oeC6hycsXG4gICAgICAgICAgICBoaDogJyVkIOC6iuC6u+C7iOC6p+C7guC6oeC6hycsXG4gICAgICAgICAgICBkOiAnMSDguqHgurfgu4knLFxuICAgICAgICAgICAgZGQ6ICclZCDguqHgurfgu4knLFxuICAgICAgICAgICAgTTogJzEg4LuA4LqU4Lq34Lqt4LqZJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LuA4LqU4Lq34Lqt4LqZJyxcbiAgICAgICAgICAgIHk6ICcxIOC6m+C6tScsXG4gICAgICAgICAgICB5eTogJyVkIOC6m+C6tScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC8o4LqX4Lq14LuIKVxcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuICfgupfgurXgu4gnICsgbnVtYmVyO1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IExpdGh1YW5pYW4gW2x0XVxuLy8hIGF1dGhvciA6IE1pbmRhdWdhcyBNb3rFq3JhcyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tbW96dXJhc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHVuaXRzID0ge1xuICAgICAgICBzczogJ3Nla3VuZMSXX3Nla3VuZMW+acWzX3Nla3VuZGVzJyxcbiAgICAgICAgbTogJ21pbnV0xJdfbWludXTEl3NfbWludXTEmScsXG4gICAgICAgIG1tOiAnbWludXTEl3NfbWludcSNacWzX21pbnV0ZXMnLFxuICAgICAgICBoOiAndmFsYW5kYV92YWxhbmRvc192YWxhbmTEhScsXG4gICAgICAgIGhoOiAndmFsYW5kb3NfdmFsYW5kxbNfdmFsYW5kYXMnLFxuICAgICAgICBkOiAnZGllbmFfZGllbm9zX2RpZW7EhScsXG4gICAgICAgIGRkOiAnZGllbm9zX2RpZW7Fs19kaWVuYXMnLFxuICAgICAgICBNOiAnbcSXbnVvX23El25lc2lvX23El25lc8SvJyxcbiAgICAgICAgTU06ICdtxJduZXNpYWlfbcSXbmVzacWzX23El25lc2l1cycsXG4gICAgICAgIHk6ICdtZXRhaV9tZXTFs19tZXR1cycsXG4gICAgICAgIHl5OiAnbWV0YWlfbWV0xbNfbWV0dXMnLFxuICAgIH07XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlU2Vjb25kcyhudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIHJldHVybiAna2VsaW9zIHNla3VuZMSXcyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAna2VsacWzIHNla3VuZMW+acWzJyA6ICdrZWxpYXMgc2VrdW5kZXMnO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZVNpbmd1bGFyKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeFxuICAgICAgICAgICAgPyBmb3JtcyhrZXkpWzBdXG4gICAgICAgICAgICA6IGlzRnV0dXJlXG4gICAgICAgICAgICA/IGZvcm1zKGtleSlbMV1cbiAgICAgICAgICAgIDogZm9ybXMoa2V5KVsyXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lhbChudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlciAlIDEwID09PSAwIHx8IChudW1iZXIgPiAxMCAmJiBudW1iZXIgPCAyMCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1zKGtleSkge1xuICAgICAgICByZXR1cm4gdW5pdHNba2V5XS5zcGxpdCgnXycpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgcmVzdWx0ICsgdHJhbnNsYXRlU2luZ3VsYXIobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXlbMF0sIGlzRnV0dXJlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHNwZWNpYWwobnVtYmVyKSA/IGZvcm1zKGtleSlbMV0gOiBmb3JtcyhrZXkpWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyBmb3JtcyhrZXkpWzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHNwZWNpYWwobnVtYmVyKSA/IGZvcm1zKGtleSlbMV0gOiBmb3JtcyhrZXkpWzJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgbHQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdsdCcsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICdzYXVzaW9fdmFzYXJpb19rb3ZvX2JhbGFuZMW+aW9fZ2VndcW+xJdzX2JpcsW+ZWxpb19saWVwb3NfcnVncGrFq8SNaW9fcnVnc8SXam9fc3BhbGlvX2xhcGtyacSNaW9fZ3J1b2TFvmlvJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAnc2F1c2lzX3Zhc2FyaXNfa292YXNfYmFsYW5kaXNfZ2VndcW+xJdfYmlyxb5lbGlzX2xpZXBhX3J1Z3Bqxat0aXNfcnVnc8SXamlzX3NwYWxpc19sYXBrcml0aXNfZ3J1b2Rpcycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9EW29EXT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK01NTU0/fE1NTU0/KFxcW1teXFxbXFxdXSpcXF18XFxzKStEW29EXT8vLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ3NhdV92YXNfa292X2JhbF9nZWdfYmlyX2xpZV9yZ3BfcmdzX3NwYV9sYXBfZ3JkJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czoge1xuICAgICAgICAgICAgZm9ybWF0OiAnc2VrbWFkaWVuxK9fcGlybWFkaWVuxK9fYW50cmFkaWVuxK9fdHJlxI1pYWRpZW7Er19rZXR2aXJ0YWRpZW7Er19wZW5rdGFkaWVuxK9fxaFlxaF0YWRpZW7Erycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ3Nla21hZGllbmlzX3Bpcm1hZGllbmlzX2FudHJhZGllbmlzX3RyZcSNaWFkaWVuaXNfa2V0dmlydGFkaWVuaXNfcGVua3RhZGllbmlzX8WhZcWhdGFkaWVuaXMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvZGRkZCBISDptbS8sXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTZWtfUGlyX0FudF9UcmVfS2V0X1Blbl/FoGXFoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTX1BfQV9UX0tfUG5fxaAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0nLFxuICAgICAgICAgICAgTExMOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBISDptbSBbdmFsLl0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXSwgZGRkZCwgSEg6bW0gW3ZhbC5dJyxcbiAgICAgICAgICAgIGw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXSwgSEg6bW0gW3ZhbC5dJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZCwgSEg6bW0gW3ZhbC5dJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbxaBpYW5kaWVuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1J5dG9qXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tWYWthcl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbUHJhxJdqdXPEr10gZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3BvICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwcmllxaEgJXMnLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlU2Vjb25kcyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGVTaW5ndWxhcixcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGVTaW5ndWxhcixcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGVTaW5ndWxhcixcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGVTaW5ndWxhcixcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGVTaW5ndWxhcixcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS1vamkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy1vamknO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbHQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTGF0dmlhbiBbbHZdXG4vLyEgYXV0aG9yIDogS3Jpc3RhcHMgS2FybHNvbnMgOiBodHRwczovL2dpdGh1Yi5jb20vc2tha3JpXG4vLyEgYXV0aG9yIDogSsSBbmlzIEVsbWVyaXMgOiBodHRwczovL2dpdGh1Yi5jb20vSmFuaXNFXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdW5pdHMgPSB7XG4gICAgICAgIHNzOiAnc2VrdW5kZXNfc2VrdW5kxJNtX3Nla3VuZGVfc2VrdW5kZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIG06ICdtaW7Fq3Rlc19taW7Fq3TEk21fbWluxat0ZV9taW7Fq3Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgbW06ICdtaW7Fq3Rlc19taW7Fq3TEk21fbWluxat0ZV9taW7Fq3Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgaDogJ3N0dW5kYXNfc3R1bmTEgW1fc3R1bmRhX3N0dW5kYXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGhoOiAnc3R1bmRhc19zdHVuZMSBbV9zdHVuZGFfc3R1bmRhcycuc3BsaXQoJ18nKSxcbiAgICAgICAgZDogJ2RpZW5hc19kaWVuxIFtX2RpZW5hX2RpZW5hcycuc3BsaXQoJ18nKSxcbiAgICAgICAgZGQ6ICdkaWVuYXNfZGllbsSBbV9kaWVuYV9kaWVuYXMnLnNwbGl0KCdfJyksXG4gICAgICAgIE06ICdtxJNuZcWhYV9txJNuZcWhaWVtX23Ek25lc2lzX23Ek25lxaFpJy5zcGxpdCgnXycpLFxuICAgICAgICBNTTogJ23Ek25lxaFhX23Ek25lxaFpZW1fbcSTbmVzaXNfbcSTbmXFoWknLnNwbGl0KCdfJyksXG4gICAgICAgIHk6ICdnYWRhX2dhZGllbV9nYWRzX2dhZGknLnNwbGl0KCdfJyksXG4gICAgICAgIHl5OiAnZ2FkYV9nYWRpZW1fZ2Fkc19nYWRpJy5zcGxpdCgnXycpLFxuICAgIH07XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHdpdGhvdXRTdWZmaXggYm9vbGVhbiB0cnVlID0gYSBsZW5ndGggb2YgdGltZTsgZmFsc2UgPSBiZWZvcmUvYWZ0ZXIgYSBwZXJpb2Qgb2YgdGltZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JtYXQoZm9ybXMsIG51bWJlciwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgLy8gRS5nLiBcIjIxIG1pbsWrdGVcIiwgXCIzIG1pbsWrdGVzXCIuXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICUgMTAgPT09IDEgJiYgbnVtYmVyICUgMTAwICE9PSAxMSA/IGZvcm1zWzJdIDogZm9ybXNbM107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBFLmcuIFwiMjEgbWluxat0ZXNcIiBhcyBpbiBcInDEk2MgMjEgbWluxat0ZXNcIi5cbiAgICAgICAgICAgIC8vIEUuZy4gXCIzIG1pbsWrdMSTbVwiIGFzIGluIFwicMSTYyAzIG1pbsWrdMSTbVwiLlxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciAlIDEwID09PSAxICYmIG51bWJlciAlIDEwMCAhPT0gMTEgPyBmb3Jtc1swXSA6IGZvcm1zWzFdO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIGZvcm1hdCh1bml0c1trZXldLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdCh1bml0c1trZXldLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVNlY29uZHMobnVtYmVyLCB3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2Rhxb5hcyBzZWt1bmRlcycgOiAnZGHFvsSBbSBzZWt1bmTEk20nO1xuICAgIH1cblxuICAgIHZhciBsdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2x2Jywge1xuICAgICAgICBtb250aHM6ICdqYW52xIFyaXNfZmVicnXEgXJpc19tYXJ0c19hcHLEq2xpc19tYWlqc19qxatuaWpzX2rFq2xpanNfYXVndXN0c19zZXB0ZW1icmlzX29rdG9icmlzX25vdmVtYnJpc19kZWNlbWJyaXMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2ZlYl9tYXJfYXByX21haV9qxatuX2rFq2xfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdzdsSTdGRpZW5hX3Bpcm1kaWVuYV9vdHJkaWVuYV90cmXFoWRpZW5hX2NldHVydGRpZW5hX3BpZWt0ZGllbmFfc2VzdGRpZW5hJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3ZfUF9PX1RfQ19Qa19TJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N2X1BfT19UX0NfUGtfUycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWS4nLFxuICAgICAgICAgICAgTEw6ICdZWVlZLiBbZ2FkYV0gRC4gTU1NTScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVkuIFtnYWRhXSBELiBNTU1NLCBkZGRkLCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW8Wgb2RpZW4gcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbUsSrdCBwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tWYWthciBwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbUGFnxIFqdcWhxIFdIGRkZGQgW3B1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3DEk2MgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3Bpcm1zICVzJyxcbiAgICAgICAgICAgIHM6IHJlbGF0aXZlU2Vjb25kcyxcbiAgICAgICAgICAgIHNzOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbTogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoOiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQ6IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgTTogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIsXG4gICAgICAgICAgICB5eTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBsdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNb250ZW5lZ3JpbiBbbWVdXG4vLyEgYXV0aG9yIDogTWlvZHJhZyBOaWthxI0gPG1pb2RyYWdAcmVzdGFydGl0Lm1lPiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taW9kcmFnbmlrYWNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0cmFuc2xhdG9yID0ge1xuICAgICAgICB3b3Jkczoge1xuICAgICAgICAgICAgLy9EaWZmZXJlbnQgZ3JhbW1hdGljYWwgY2FzZXNcbiAgICAgICAgICAgIHNzOiBbJ3Nla3VuZCcsICdzZWt1bmRhJywgJ3Nla3VuZGknXSxcbiAgICAgICAgICAgIG06IFsnamVkYW4gbWludXQnLCAnamVkbm9nIG1pbnV0YSddLFxuICAgICAgICAgICAgbW06IFsnbWludXQnLCAnbWludXRhJywgJ21pbnV0YSddLFxuICAgICAgICAgICAgaDogWydqZWRhbiBzYXQnLCAnamVkbm9nIHNhdGEnXSxcbiAgICAgICAgICAgIGhoOiBbJ3NhdCcsICdzYXRhJywgJ3NhdGknXSxcbiAgICAgICAgICAgIGRkOiBbJ2RhbicsICdkYW5hJywgJ2RhbmEnXSxcbiAgICAgICAgICAgIE1NOiBbJ21qZXNlYycsICdtamVzZWNhJywgJ21qZXNlY2knXSxcbiAgICAgICAgICAgIHl5OiBbJ2dvZGluYScsICdnb2RpbmUnLCAnZ29kaW5hJ10sXG4gICAgICAgIH0sXG4gICAgICAgIGNvcnJlY3RHcmFtbWF0aWNhbENhc2U6IGZ1bmN0aW9uIChudW1iZXIsIHdvcmRLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgPT09IDFcbiAgICAgICAgICAgICAgICA/IHdvcmRLZXlbMF1cbiAgICAgICAgICAgICAgICA6IG51bWJlciA+PSAyICYmIG51bWJlciA8PSA0XG4gICAgICAgICAgICAgICAgPyB3b3JkS2V5WzFdXG4gICAgICAgICAgICAgICAgOiB3b3JkS2V5WzJdO1xuICAgICAgICB9LFxuICAgICAgICB0cmFuc2xhdGU6IGZ1bmN0aW9uIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICAgICAgdmFyIHdvcmRLZXkgPSB0cmFuc2xhdG9yLndvcmRzW2tleV07XG4gICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gd29yZEtleVswXSA6IHdvcmRLZXlbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0b3IuY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShudW1iZXIsIHdvcmRLZXkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgdmFyIG1lID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbWUnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX8SNZXR2cnRha19wZXRha19zdWJvdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdXRvLl9zcmkuX8SNZXQuX3BldC5fc3ViLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmFzIHVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc2p1dHJhIHVdIExUJyxcblxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW25lZGplbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3JpamVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3N1Ym90dV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2p1xI1lIHVdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxhc3RXZWVrRGF5cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbbmVkamVsamVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFtwb25lZGplbGprYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3V0b3JrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbc3JpamVkZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW8SNZXR2cnRrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BldGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdFdlZWtEYXlzW3RoaXMuZGF5KCldO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByaWplICVzJyxcbiAgICAgICAgICAgIHM6ICduZWtvbGlrbyBzZWt1bmRpJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAnZGFuJyxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICdtamVzZWMnLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ2dvZGludScsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFvcmkgW21pXVxuLy8hIGF1dGhvciA6IEpvaG4gQ29ycmlnYW4gPHJvYmJpZWNsb3NldEBnbWFpbC5jb20+IDogaHR0cHM6Ly9naXRodWIuY29tL2pvaG5pZGVhbFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1pID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbWknLCB7XG4gICAgICAgIG1vbnRoczogJ0tvaGktdMSBdGVfSHVpLXRhbmd1cnVfUG91dMWrLXRlLXJhbmdpX1BhZW5nYS13aMSBd2jEgV9IYXJhdHVhX1BpcGlyaV9IxY1uZ29pbmdvaV9IZXJlLXR1cmkta8WNa8SBX01haHVydV9XaGlyaW5nYS3EgS1udWt1X1doaXJpbmdhLcSBLXJhbmdpX0hha2loZWEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnS29oaV9IdWlfUG91X1BhZV9IYXJhX1BpcGlfSMWNbmdvaV9IZXJlX01haHVfV2hpLW51X1doaS1yYV9IYWtpJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNSZWdleDogLyg/OlsnYS16XFx1MDEwMVxcdTAxNERcXHUwMTZCXStcXC0/KXsxLDN9L2ksXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvKD86WydhLXpcXHUwMTAxXFx1MDE0RFxcdTAxNkJdK1xcLT8pezEsM30vaSxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogLyg/OlsnYS16XFx1MDEwMVxcdTAxNERcXHUwMTZCXStcXC0/KXsxLDN9L2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC8oPzpbJ2EtelxcdTAxMDFcXHUwMTREXFx1MDE2Ql0rXFwtPyl7MSwyfS9pLFxuICAgICAgICB3ZWVrZGF5czogJ1LEgXRhcHVfTWFuZV9UxatyZWlfV2VuZXJlaV9UxIFpdGVfUGFyYWlyZV9IxIF0YXJlaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1RhX01hX1TFq19XZV9UxIFpX1BhX0jEgScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdUYV9NYV9UxatfV2VfVMSBaV9QYV9IxIEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW2ldIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBbaV0gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tpIHRlaWUgbWFoYW5hLCBpXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2Fwb3BvIGldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbaV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpbmFuYWhpIGldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbd2hha2FtdXR1bmdhIGldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaSByb3RvIGkgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGkgbXVhJyxcbiAgICAgICAgICAgIHM6ICd0ZSBoxJNrb25hIHJ1YXJ1YScsXG4gICAgICAgICAgICBzczogJyVkIGjEk2tvbmEnLFxuICAgICAgICAgICAgbTogJ2hlIG1lbmV0aScsXG4gICAgICAgICAgICBtbTogJyVkIG1lbmV0aScsXG4gICAgICAgICAgICBoOiAndGUgaGFvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBoYW9yYScsXG4gICAgICAgICAgICBkOiAnaGUgcmEnLFxuICAgICAgICAgICAgZGQ6ICclZCByYScsXG4gICAgICAgICAgICBNOiAnaGUgbWFyYW1hJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWFyYW1hJyxcbiAgICAgICAgICAgIHk6ICdoZSB0YXUnLFxuICAgICAgICAgICAgeXk6ICclZCB0YXUnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1pO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hY2Vkb25pYW4gW21rXVxuLy8hIGF1dGhvciA6IEJvcmlzbGF2IE1pY2tvdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9CMGswXG4vLyEgYXV0aG9yIDogU2FzaGtvIFRvZG9yb3YgOiBodHRwczovL2dpdGh1Yi5jb20vYmt5Y2VoXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbWsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtaycsIHtcbiAgICAgICAgbW9udGhzOiAn0ZjQsNC90YPQsNGA0Lhf0YTQtdCy0YDRg9Cw0YDQuF/QvNCw0YDRgl/QsNC/0YDQuNC7X9C80LDRmF/RmNGD0L3QuF/RmNGD0LvQuF/QsNCy0LPRg9GB0YJf0YHQtdC/0YLQtdC80LLRgNC4X9C+0LrRgtC+0LzQstGA0Lhf0L3QvtC10LzQstGA0Lhf0LTQtdC60LXQvNCy0YDQuCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRmNCw0L1f0YTQtdCyX9C80LDRgF/QsNC/0YBf0LzQsNGYX9GY0YPQvV/RmNGD0Ltf0LDQstCzX9GB0LXQv1/QvtC60YJf0L3QvtC1X9C00LXQuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfQvdC10LTQtdC70LBf0L/QvtC90LXQtNC10LvQvdC40Lpf0LLRgtC+0YDQvdC40Lpf0YHRgNC10LTQsF/Rh9C10YLQstGA0YLQvtC6X9C/0LXRgtC+0Lpf0YHQsNCx0L7RgtCwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0L3QtdC0X9C/0L7QvV/QstGC0L5f0YHRgNC1X9GH0LXRgl/Qv9C10YJf0YHQsNCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C9ZV/Qv29f0LLRgl/RgdGAX9GH0LVf0L/QtV/RgWEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnRC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CU0LXQvdC10YEg0LLQvl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQo9GC0YDQtSDQstC+XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vQktC+XSBkZGRkIFvQstC+XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9CS0YfQtdGA0LAg0LLQvl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CY0LfQvNC40L3QsNGC0LDRgtCwXSBkZGRkIFvQstC+XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CY0LfQvNC40L3QsNGC0LjQvtGCXSBkZGRkIFvQstC+XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0LfQsCAlcycsXG4gICAgICAgICAgICBwYXN0OiAn0L/RgNC10LQgJXMnLFxuICAgICAgICAgICAgczogJ9C90LXQutC+0LvQutGDINGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIHNzOiAnJWQg0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgbTogJ9C10LTQvdCwINC80LjQvdGD0YLQsCcsXG4gICAgICAgICAgICBtbTogJyVkINC80LjQvdGD0YLQuCcsXG4gICAgICAgICAgICBoOiAn0LXQtNC10L0g0YfQsNGBJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YfQsNGB0LAnLFxuICAgICAgICAgICAgZDogJ9C10LTQtdC9INC00LXQvScsXG4gICAgICAgICAgICBkZDogJyVkINC00LXQvdCwJyxcbiAgICAgICAgICAgIE06ICfQtdC00LXQvSDQvNC10YHQtdGGJyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LzQtdGB0LXRhtC4JyxcbiAgICAgICAgICAgIHk6ICfQtdC00L3QsCDQs9C+0LTQuNC90LAnLFxuICAgICAgICAgICAgeXk6ICclZCDQs9C+0LTQuNC90LgnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNC10LJ80LXQvXzRgtC4fNCy0Lh80YDQuHzQvNC4KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBsYXN0RGlnaXQgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBsYXN0MkRpZ2l0cyA9IG51bWJlciAlIDEwMDtcbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QtdCyJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdDJEaWdpdHMgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QtdC9JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdDJEaWdpdHMgPiAxMCAmJiBsYXN0MkRpZ2l0cyA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0YLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCy0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgNC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSA3IHx8IGxhc3REaWdpdCA9PT0gOCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC80LgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1rO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hbGF5YWxhbSBbbWxdXG4vLyEgYXV0aG9yIDogRmxveWQgUGluayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9mbG95ZHBpbmtcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21sJywge1xuICAgICAgICBtb250aHM6ICfgtJzgtKjgtYHgtLXgtLDgtL9f4LSr4LWG4LSs4LWN4LSw4LWB4LS14LSw4LS/X+C0ruC0vuC1vOC0muC1jeC0muC1jV/gtI/gtKrgtY3gtLDgtL/gtb1f4LSu4LWH4LSv4LWNX+C0nOC1guC1ul/gtJzgtYLgtLLgtYhf4LST4LSX4LS44LWN4LSx4LWN4LSx4LWNX+C0uOC1huC0quC1jeC0seC1jeC0seC0guC0rOC1vF/gtJLgtJXgtY3gtJ/gtYvgtKzgtbxf4LSo4LS14LSC4LSs4LW8X+C0oeC0v+C0uOC0guC0rOC1vCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgtJzgtKjgtYEuX+C0q+C1huC0rOC1jeC0sOC1gS5f4LSu4LS+4LW8Ll/gtI/gtKrgtY3gtLDgtL8uX+C0ruC1h+C0r+C1jV/gtJzgtYLgtbpf4LSc4LWC4LSy4LWILl/gtJPgtJcuX+C0uOC1huC0quC1jeC0seC1jeC0sS5f4LSS4LSV4LWN4LSf4LWLLl/gtKjgtLXgtIIuX+C0oeC0v+C0uOC0gi4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4LSe4LS+4LSv4LSx4LS+4LS04LWN4LSaX+C0pOC0v+C0meC1jeC0leC0s+C0vuC0tOC1jeC0ml/gtJrgtYrgtLXgtY3gtLXgtL7gtLTgtY3gtJpf4LSs4LWB4LSn4LSo4LS+4LS04LWN4LSaX+C0teC1jeC0r+C0vuC0tOC0vuC0tOC1jeC0ml/gtLXgtYbgtLPgtY3gtLPgtL/gtK/gtL7gtLTgtY3gtJpf4LS24LSo4LS/4LSv4LS+4LS04LWN4LSaJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4LSe4LS+4LSv4LW8X+C0pOC0v+C0meC1jeC0leC1vl/gtJrgtYrgtLXgtY3gtLVf4LSs4LWB4LSn4LW7X+C0teC1jeC0r+C0vuC0tOC0gl/gtLXgtYbgtLPgtY3gtLPgtL9f4LS24LSo4LS/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+C0nuC0vl/gtKTgtL9f4LSa4LWKX+C0rOC1gV/gtLXgtY3gtK/gtL5f4LS14LWGX+C0ticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIC3gtKjgtYEnLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIC3gtKjgtYEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIC3gtKjgtYEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gLeC0qOC1gScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+C0h+C0qOC1jeC0qOC1jV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgtKjgtL7gtLPgtYZdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgtIfgtKjgtY3gtKjgtLLgtYZdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+C0leC0tOC0v+C0nuC1jeC0nl0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgtJXgtLTgtL/gtJ7gtY3gtJ7gtY0nLFxuICAgICAgICAgICAgcGFzdDogJyVzIOC0ruC1geC1u+C0quC1jScsXG4gICAgICAgICAgICBzOiAn4LSF4LW94LSqIOC0qOC0v+C0ruC0v+C0t+C0meC1jeC0meC1vicsXG4gICAgICAgICAgICBzczogJyVkIOC0uOC1huC0leC1jeC0leC1u+C0oeC1jScsXG4gICAgICAgICAgICBtOiAn4LSS4LSw4LWBIOC0ruC0v+C0qOC0v+C0seC1jeC0seC1jScsXG4gICAgICAgICAgICBtbTogJyVkIOC0ruC0v+C0qOC0v+C0seC1jeC0seC1jScsXG4gICAgICAgICAgICBoOiAn4LSS4LSw4LWBIOC0ruC0o+C0v+C0leC1jeC0leC1guC1vCcsXG4gICAgICAgICAgICBoaDogJyVkIOC0ruC0o+C0v+C0leC1jeC0leC1guC1vCcsXG4gICAgICAgICAgICBkOiAn4LSS4LSw4LWBIOC0puC0v+C0teC0uOC0gicsXG4gICAgICAgICAgICBkZDogJyVkIOC0puC0v+C0teC0uOC0gicsXG4gICAgICAgICAgICBNOiAn4LSS4LSw4LWBIOC0ruC0vuC0uOC0gicsXG4gICAgICAgICAgICBNTTogJyVkIOC0ruC0vuC0uOC0gicsXG4gICAgICAgICAgICB5OiAn4LSS4LSw4LWBIOC0teC1vOC0t+C0gicsXG4gICAgICAgICAgICB5eTogJyVkIOC0teC1vOC0t+C0gicsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gtLDgtL7gtKTgtY3gtLDgtL984LSw4LS+4LS14LS/4LSy4LWGfOC0ieC0muC1jeC0miDgtJXgtLTgtL/gtJ7gtY3gtJ7gtY184LS14LWI4LSV4LWB4LSo4LWN4LSo4LWH4LSw4LSCfOC0sOC0vuC0pOC1jeC0sOC0vy9pLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKG1lcmlkaWVtID09PSAn4LSw4LS+4LSk4LWN4LSw4LS/JyAmJiBob3VyID49IDQpIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgtIngtJrgtY3gtJog4LSV4LS04LS/4LSe4LWN4LSe4LWNJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4LS14LWI4LSV4LWB4LSo4LWN4LSo4LWH4LSw4LSCJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0sOC0vuC0pOC1jeC0sOC0vyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LSw4LS+4LS14LS/4LSy4LWGJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtIngtJrgtY3gtJog4LSV4LS04LS/4LSe4LWN4LSe4LWNJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtLXgtYjgtJXgtYHgtKjgtY3gtKjgtYfgtLDgtIInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0sOC0vuC0pOC1jeC0sOC0vyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTW9uZ29saWFuIFttbl1cbi8vISBhdXRob3IgOiBKYXZraGxhbnR1Z3MgTnlhbWRvcmogOiBodHRwczovL2dpdGh1Yi5jb20vamF2a2hhYW5qN1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0YXRjdC00YXRjdC9INGB0LXQutGD0L3QtCcgOiAn0YXRjdC00YXRjdC9INGB0LXQutGD0L3QtNGL0L0nO1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0YHQtdC60YPQvdC0JyA6ICcg0YHQtdC60YPQvdC00YvQvScpO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDQvNC40L3Rg9GCJyA6ICcg0LzQuNC90YPRgtGL0L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0YbQsNCzJyA6ICcg0YbQsNCz0LjQudC9Jyk7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINOp0LTTqdGAJyA6ICcg06nQtNGA0LjQudC9Jyk7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINGB0LDRgCcgOiAnINGB0LDRgNGL0L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0LbQuNC7JyA6ICcg0LbQuNC70LjQudC9Jyk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbW4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtbicsIHtcbiAgICAgICAgbW9udGhzOiAn0J3RjdCz0LTSr9Cz0Y3RjdGAINGB0LDRgF/QpdC+0ZHRgNC00YPQs9Cw0LDRgCDRgdCw0YBf0JPRg9GA0LDQstC00YPQs9Cw0LDRgCDRgdCw0YBf0JTTqdGA06nQstC00q/Qs9GN0Y3RgCDRgdCw0YBf0KLQsNCy0LTRg9Cz0LDQsNGAINGB0LDRgF/Ql9GD0YDQs9Cw0LTRg9Cz0LDQsNGAINGB0LDRgF/QlNC+0LvQtNGD0LPQsNCw0YAg0YHQsNGAX9Cd0LDQudC80LTRg9Cz0LDQsNGAINGB0LDRgF/QldGB0LTSr9Cz0Y3RjdGAINGB0LDRgF/QkNGA0LDQstC00YPQs9Cw0LDRgCDRgdCw0YBf0JDRgNCy0LDQvSDQvdGN0LPQtNKv0LPRjdGN0YAg0YHQsNGAX9CQ0YDQstCw0L0g0YXQvtGR0YDQtNGD0LPQsNCw0YAg0YHQsNGAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJzEg0YHQsNGAXzIg0YHQsNGAXzMg0YHQsNGAXzQg0YHQsNGAXzUg0YHQsNGAXzYg0YHQsNGAXzcg0YHQsNGAXzgg0YHQsNGAXzkg0YHQsNGAXzEwINGB0LDRgF8xMSDRgdCw0YBfMTIg0YHQsNGAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ9Cd0Y/QvF/QlNCw0LLQsNCwX9Cc0Y/Qs9C80LDRgF/Qm9GF0LDQs9Cy0LBf0J/Sr9GA0Y3Qsl/QkdCw0LDRgdCw0L1f0JHRj9C80LHQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9Cd0Y/QvF/QlNCw0LJf0JzRj9CzX9Cb0YXQsF/Qn9Kv0YBf0JHQsNCwX9CR0Y/QvCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQndGPX9CU0LBf0JzRj1/Qm9GFX9Cf0q9f0JHQsF/QkdGPJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnWVlZWSDQvtC90YsgTU1NTdGL0L0gRCcsXG4gICAgICAgICAgICBMTEw6ICdZWVlZINC+0L3RiyBNTU1N0YvQvSBEIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBZWVlZINC+0L3RiyBNTU1N0YvQvSBEIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9Ku06h80q7QpS9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ9Ku0KUnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0q7TqCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0q7QpSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Oo0L3TqdOp0LTTqdGAXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Cc0LDRgNCz0LDQsNGIXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vQmNGA0Y3RhV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Oo0YfQuNCz0LTTqdGAXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vTqNC90LPTqdGA0YHTqdC9XSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg0LTQsNGA0LDQsCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMg06nQvNC906knLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0g06nQtNOp0YAvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg06nQtNOp0YAnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbW47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFyYXRoaSBbbXJdXG4vLyEgYXV0aG9yIDogSGFyc2hhZCBLYWxlIDogaHR0cHM6Ly9naXRodWIuY29tL2thbGVodlxuLy8hIGF1dGhvciA6IFZpdmVrIEF0aGFseWUgOiBodHRwczovL2dpdGh1Yi5jb20vdm5hdGhhbHllXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4KWnJyxcbiAgICAgICAgICAgICcyJzogJ+ClqCcsXG4gICAgICAgICAgICAnMyc6ICfgpaknLFxuICAgICAgICAgICAgJzQnOiAn4KWqJyxcbiAgICAgICAgICAgICc1JzogJ+ClqycsXG4gICAgICAgICAgICAnNic6ICfgpawnLFxuICAgICAgICAgICAgJzcnOiAn4KWtJyxcbiAgICAgICAgICAgICc4JzogJ+ClricsXG4gICAgICAgICAgICAnOSc6ICfgpa8nLFxuICAgICAgICAgICAgJzAnOiAn4KWmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Clpyc6ICcxJyxcbiAgICAgICAgICAgICfgpagnOiAnMicsXG4gICAgICAgICAgICAn4KWpJzogJzMnLFxuICAgICAgICAgICAgJ+Clqic6ICc0JyxcbiAgICAgICAgICAgICfgpasnOiAnNScsXG4gICAgICAgICAgICAn4KWsJzogJzYnLFxuICAgICAgICAgICAgJ+ClrSc6ICc3JyxcbiAgICAgICAgICAgICfgpa4nOiAnOCcsXG4gICAgICAgICAgICAn4KWvJzogJzknLFxuICAgICAgICAgICAgJ+Clpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZU1yKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0gJyc7XG4gICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHN0cmluZykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSV4KS+4KS54KWAIOCkuOClh+CkleCkguCkpic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkuOClh+CkleCkguCkpic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkruCkv+CkqOCkv+Cknyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkruCkv+CkqOCkv+Ckn+Clhyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkpOCkvuCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkpOCkvuCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkpuCkv+CkteCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkpuCkv+CkteCkuCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkruCkueCkv+CkqOCkvic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkruCkueCkv+CkqOClhyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSVIOCkteCksOCljeCktyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkteCksOCljeCkt+Clhyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoIChzdHJpbmcpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+CkleCkvuCkueClgCDgpLjgpYfgpJXgpILgpKbgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpLjgpYfgpJXgpILgpKbgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpK7gpL/gpKjgpL/gpJ/gpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpK7gpL/gpKjgpL/gpJ/gpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpKTgpL7gpLjgpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpKTgpL7gpLjgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpKbgpL/gpLXgpLjgpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpKbgpL/gpLXgpLjgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpK7gpLngpL/gpKjgpY3gpK/gpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpK7gpLngpL/gpKjgpY3gpK/gpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CkleCkviDgpLXgpLDgpY3gpLfgpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpLXgpLDgpY3gpLfgpL7gpIInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0LnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgfVxuXG4gICAgdmFyIG1yID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXInLCB7XG4gICAgICAgIG1vbnRoczogJ+CknOCkvuCkqOClh+CkteCkvuCksOClgF/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpL7gpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+Ckj+CkquCljeCksOCkv+Cksl/gpK7gpYdf4KSc4KWC4KSoX+CknOClgeCksuCliF/gpJHgpJfgpLjgpY3gpJ9f4KS44KSq4KWN4KSf4KWH4KSC4KSs4KSwX+CkkeCkleCljeCkn+Cli+CkrOCksF/gpKjgpYvgpLXgpY3gpLngpYfgpILgpKzgpLBf4KSh4KS/4KS44KWH4KSC4KSs4KSwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CknOCkvuCkqOClhy5f4KSr4KWH4KSs4KWN4KSw4KWBLl/gpK7gpL7gpLDgpY3gpJouX+Ckj+CkquCljeCksOCkvy5f4KSu4KWHLl/gpJzgpYLgpKguX+CknOClgeCksuCliC5f4KSR4KSXLl/gpLjgpKrgpY3gpJ/gpYfgpIIuX+CkkeCkleCljeCkn+Cliy5f4KSo4KWL4KS14KWN4KS54KWH4KSCLl/gpKHgpL/gpLjgpYfgpIIuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CksOCkteCkv+CkteCkvuCksF/gpLjgpYvgpK7gpLXgpL7gpLBf4KSu4KSC4KSX4KSz4KS14KS+4KSwX+CkrOClgeCkp+CkteCkvuCksF/gpJfgpYHgpLDgpYLgpLXgpL7gpLBf4KS24KWB4KSV4KWN4KSw4KS14KS+4KSwX+CktuCkqOCkv+CkteCkvuCksCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CksOCkteCkv1/gpLjgpYvgpK5f4KSu4KSC4KSX4KSzX+CkrOClgeCkp1/gpJfgpYHgpLDgpYJf4KS24KWB4KSV4KWN4KSwX+CktuCkqOCkvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgpLBf4KS44KWLX+CkruCkgl/gpKzgpYFf4KSX4KWBX+CktuClgV/gpLYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgpLXgpL7gpJzgpKTgpL4nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCkteCkvuCknOCkpOCkvicsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4KS14KS+4KSc4KSk4KS+JyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCkteCkvuCknOCkpOCkvicsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpIngpKbgpY3gpK/gpL5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgpJXgpL7gpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CkruCkvuCkl+ClgOCksl0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+CkruCkp+CljeCkr+ClhycsXG4gICAgICAgICAgICBwYXN0OiAnJXPgpKrgpYLgpLDgpY3gpLXgpYAnLFxuICAgICAgICAgICAgczogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBzczogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBtOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIGg6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgZDogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBNOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIHk6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSq4KS54KS+4KSf4KWHfOCkuOCkleCkvuCks+ClgHzgpKbgpYHgpKrgpL7gpLDgpYB84KS44KS+4KSv4KSC4KSV4KS+4KSz4KWAfOCksOCkvuCkpOCljeCksOClgC8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CkquCkueCkvuCkn+ClhycgfHwgbWVyaWRpZW0gPT09ICfgpLjgpJXgpL7gpLPgpYAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4KSm4KWB4KSq4KS+4KSw4KWAJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4KS44KS+4KSv4KSC4KSV4KS+4KSz4KWAJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4KSw4KS+4KSk4KWN4KSw4KWAJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTIgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPj0gMCAmJiBob3VyIDwgNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSq4KS54KS+4KSf4KWHJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpJXgpL7gpLPgpYAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkpuClgeCkquCkvuCksOClgCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KS+4KSv4KSC4KSV4KS+4KSz4KWAJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpY3gpLDgpYAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsYXkgW21zXVxuLy8hIGF1dGhvciA6IFdlbGRhbiBKYW1pbGkgOiBodHRwczovL2dpdGh1Yi5jb20vd2VsZGFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbXMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtcycsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyaV9GZWJydWFyaV9NYWNfQXByaWxfTWVpX0p1bl9KdWxhaV9PZ29zX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rpc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9PZ3NfU2VwX09rdF9Ob3ZfRGlzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0FoYWRfSXNuaW5fU2VsYXNhX1JhYnVfS2hhbWlzX0p1bWFhdF9TYWJ0dScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0FoZF9Jc25fU2VsX1JhYl9LaGFfSnVtX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdBaF9Jc19TbF9SYl9LbV9KbV9TYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3BhZ2l8dGVuZ2FoYXJpfHBldGFuZ3xtYWxhbS8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ3BhZ2knKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAndGVuZ2FoYXJpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdwZXRhbmcnIHx8IG1lcmlkaWVtID09PSAnbWFsYW0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BhZ2knO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICd0ZW5nYWhhcmknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwZXRhbmcnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21hbGFtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSGFyaSBpbmkgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRXNvayBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLZWxtYXJpbiBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtsZXBhcyBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYWxhbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgeWFuZyBsZXBhcycsXG4gICAgICAgICAgICBzOiAnYmViZXJhcGEgc2FhdCcsXG4gICAgICAgICAgICBzczogJyVkIHNhYXQnLFxuICAgICAgICAgICAgbTogJ3NlbWluaXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW5pdCcsXG4gICAgICAgICAgICBoOiAnc2VqYW0nLFxuICAgICAgICAgICAgaGg6ICclZCBqYW0nLFxuICAgICAgICAgICAgZDogJ3NlaGFyaScsXG4gICAgICAgICAgICBkZDogJyVkIGhhcmknLFxuICAgICAgICAgICAgTTogJ3NlYnVsYW4nLFxuICAgICAgICAgICAgTU06ICclZCBidWxhbicsXG4gICAgICAgICAgICB5OiAnc2V0YWh1bicsXG4gICAgICAgICAgICB5eTogJyVkIHRhaHVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1zO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hbGF5IFttcy1teV1cbi8vISBub3RlIDogREVQUkVDQVRFRCwgdGhlIGNvcnJlY3Qgb25lIGlzIFttc11cbi8vISBhdXRob3IgOiBXZWxkYW4gSmFtaWxpIDogaHR0cHM6Ly9naXRodWIuY29tL3dlbGRhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1zTXkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtcy1teScsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyaV9GZWJydWFyaV9NYWNfQXByaWxfTWVpX0p1bl9KdWxhaV9PZ29zX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rpc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9PZ3NfU2VwX09rdF9Ob3ZfRGlzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0FoYWRfSXNuaW5fU2VsYXNhX1JhYnVfS2hhbWlzX0p1bWFhdF9TYWJ0dScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0FoZF9Jc25fU2VsX1JhYl9LaGFfSnVtX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdBaF9Jc19TbF9SYl9LbV9KbV9TYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3BhZ2l8dGVuZ2FoYXJpfHBldGFuZ3xtYWxhbS8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ3BhZ2knKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAndGVuZ2FoYXJpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdwZXRhbmcnIHx8IG1lcmlkaWVtID09PSAnbWFsYW0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BhZ2knO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICd0ZW5nYWhhcmknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwZXRhbmcnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21hbGFtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSGFyaSBpbmkgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRXNvayBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLZWxtYXJpbiBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtsZXBhcyBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYWxhbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgeWFuZyBsZXBhcycsXG4gICAgICAgICAgICBzOiAnYmViZXJhcGEgc2FhdCcsXG4gICAgICAgICAgICBzczogJyVkIHNhYXQnLFxuICAgICAgICAgICAgbTogJ3NlbWluaXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW5pdCcsXG4gICAgICAgICAgICBoOiAnc2VqYW0nLFxuICAgICAgICAgICAgaGg6ICclZCBqYW0nLFxuICAgICAgICAgICAgZDogJ3NlaGFyaScsXG4gICAgICAgICAgICBkZDogJyVkIGhhcmknLFxuICAgICAgICAgICAgTTogJ3NlYnVsYW4nLFxuICAgICAgICAgICAgTU06ICclZCBidWxhbicsXG4gICAgICAgICAgICB5OiAnc2V0YWh1bicsXG4gICAgICAgICAgICB5eTogJyVkIHRhaHVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1zTXk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsdGVzZSAoTWFsdGEpIFttdF1cbi8vISBhdXRob3IgOiBBbGVzc2FuZHJvIE1hcnVjY2lhIDogaHR0cHM6Ly9naXRodWIuY29tL2FsZXNtYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG10ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXQnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbm5hcl9GcmFyX01hcnp1X0FwcmlsX01lamp1X8SgdW5qdV9MdWxqdV9Bd3dpc3N1X1NldHRlbWJydV9PdHR1YnJ1X05vdmVtYnJ1X0RpxItlbWJydScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRnJhX01hcl9BcHJfTWVqX8SgdW5fTHVsX0F3d19TZXRfT3R0X05vdl9EacSLJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0lsLcSmYWRkX0l0LVRuZWpuX0l0LVRsaWV0YV9MLUVyYmfEp2FfSWwtxKZhbWlzX0lsLcSgaW1nxKdhX0lzLVNpYnQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfEpmFkX1RuZV9UbGlfRXJiX8SmYW1fxKBpbV9TaWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnxKZhX1RuX1RsX0VyX8SmYV/EoGlfU2knLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSWxsdW0gZmlsLV1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0fEp2FkYSBmaWwtXUxUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbZmlsLV1MVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0lsLWJpZXJhxKcgZmlsLV1MVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xpIGfEp2FkZGFdIFtmaWwtXUxUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZuKAmSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgaWx1JyxcbiAgICAgICAgICAgIHM6ICdmdGl0IHNla29uZGknLFxuICAgICAgICAgICAgc3M6ICclZCBzZWtvbmRpJyxcbiAgICAgICAgICAgIG06ICdtaW51dGEnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGknLFxuICAgICAgICAgICAgaDogJ3NpZWfEp2EnLFxuICAgICAgICAgICAgaGg6ICclZCBzaWVnxKdhdCcsXG4gICAgICAgICAgICBkOiAnxKF1cm5hdGEnLFxuICAgICAgICAgICAgZGQ6ICclZCDEoXJhbmV0JyxcbiAgICAgICAgICAgIE06ICd4YWhhcicsXG4gICAgICAgICAgICBNTTogJyVkIHhodXInLFxuICAgICAgICAgICAgeTogJ3NlbmEnLFxuICAgICAgICAgICAgeXk6ICclZCBzbmknLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG10O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJ1cm1lc2UgW215XVxuLy8hIGF1dGhvciA6IFNxdWFyIHRlYW0sIG15c3F1YXIuY29tXG4vLyEgYXV0aG9yIDogRGF2aWQgUm9zc2VsbGF0IDogaHR0cHM6Ly9naXRodWIuY29tL2dob2xhZHJcbi8vISBhdXRob3IgOiBUaW4gQXVuZyBMaW4gOiBodHRwczovL2dpdGh1Yi5jb20vdGhhbnlhd3ppbm1pblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+GBgScsXG4gICAgICAgICAgICAnMic6ICfhgYInLFxuICAgICAgICAgICAgJzMnOiAn4YGDJyxcbiAgICAgICAgICAgICc0JzogJ+GBhCcsXG4gICAgICAgICAgICAnNSc6ICfhgYUnLFxuICAgICAgICAgICAgJzYnOiAn4YGGJyxcbiAgICAgICAgICAgICc3JzogJ+GBhycsXG4gICAgICAgICAgICAnOCc6ICfhgYgnLFxuICAgICAgICAgICAgJzknOiAn4YGJJyxcbiAgICAgICAgICAgICcwJzogJ+GBgCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfhgYEnOiAnMScsXG4gICAgICAgICAgICAn4YGCJzogJzInLFxuICAgICAgICAgICAgJ+GBgyc6ICczJyxcbiAgICAgICAgICAgICfhgYQnOiAnNCcsXG4gICAgICAgICAgICAn4YGFJzogJzUnLFxuICAgICAgICAgICAgJ+GBhic6ICc2JyxcbiAgICAgICAgICAgICfhgYcnOiAnNycsXG4gICAgICAgICAgICAn4YGIJzogJzgnLFxuICAgICAgICAgICAgJ+GBiSc6ICc5JyxcbiAgICAgICAgICAgICfhgYAnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgbXkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdteScsIHtcbiAgICAgICAgbW9udGhzOiAn4YCH4YCU4YC64YCU4YCd4YCr4YCb4YCuX+GAluGAseGAluGAseGArOGAuuGAneGAq+GAm+GArl/hgJnhgJDhgLpf4YCn4YCV4YC84YCuX+GAmeGAsV/hgIfhgL3hgJThgLpf4YCH4YCw4YCc4YCt4YCv4YCE4YC6X+GAnuGAvOGAguGAr+GAkOGAul/hgIXhgIDhgLrhgJDhgIThgLrhgJjhgKxf4YCh4YCx4YCs4YCA4YC64YCQ4YCt4YCv4YCY4YCsX+GAlOGAreGAr+GAneGAhOGAuuGAmOGArF/hgJLhgK7hgIfhgIThgLrhgJjhgKwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4YCH4YCU4YC6X+GAluGAsV/hgJnhgJDhgLpf4YCV4YC84YCuX+GAmeGAsV/hgIfhgL3hgJThgLpf4YCc4YCt4YCv4YCE4YC6X+GAnuGAvF/hgIXhgIDhgLpf4YCh4YCx4YCs4YCA4YC6X+GAlOGAreGAr1/hgJLhgK4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn4YCQ4YCU4YCE4YC64YC54YCC4YCU4YC94YCxX+GAkOGAlOGAhOGAuuGAueGAnOGArF/hgKHhgIThgLrhgLnhgILhgKtf4YCX4YCv4YCS4YC54YCT4YCf4YCw4YC4X+GAgOGAvOGArOGAnuGAleGAkOGAseGAuF/hgJ7hgLHhgKzhgIDhgLzhgKxf4YCF4YCU4YCxJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4YCU4YC94YCxX+GAnOGArF/hgILhgKtf4YCf4YCw4YC4X+GAgOGAvOGArF/hgJ7hgLHhgKxf4YCU4YCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+GAlOGAveGAsV/hgJzhgKxf4YCC4YCrX+GAn+GAsOGAuF/hgIDhgLzhgKxf4YCe4YCx4YCsX+GAlOGAsScuc3BsaXQoJ18nKSxcblxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4YCa4YCU4YCxLl0gTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1vhgJnhgJThgIDhgLrhgJbhgLzhgJThgLpdIExUIFvhgJnhgL7hgKxdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+GAmeGAlOGAsS7hgIBdIExUIFvhgJnhgL7hgKxdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+GAleGAvOGAruGAuOGAgeGAsuGAt+GAnuGAseGArF0gZGRkZCBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ+GAnOGArOGAmeGAiuGAuuGAtyAlcyDhgJnhgL7hgKwnLFxuICAgICAgICAgICAgcGFzdDogJ+GAnOGAveGAlOGAuuGAgeGAsuGAt+GAnuGAseGArCAlcyDhgIAnLFxuICAgICAgICAgICAgczogJ+GAheGAgOGAueGAgOGAlOGAui7hgKHhgJThgIrhgLrhgLjhgIThgJrhgLonLFxuICAgICAgICAgICAgc3M6ICclZCDhgIXhgIDhgLnhgIDhgJThgLfhgLonLFxuICAgICAgICAgICAgbTogJ+GAkOGAheGAuuGAmeGAreGAlOGAheGAuicsXG4gICAgICAgICAgICBtbTogJyVkIOGAmeGAreGAlOGAheGAuicsXG4gICAgICAgICAgICBoOiAn4YCQ4YCF4YC64YCU4YCs4YCb4YCuJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4YCU4YCs4YCb4YCuJyxcbiAgICAgICAgICAgIGQ6ICfhgJDhgIXhgLrhgJvhgIDhgLonLFxuICAgICAgICAgICAgZGQ6ICclZCDhgJvhgIDhgLonLFxuICAgICAgICAgICAgTTogJ+GAkOGAheGAuuGAnCcsXG4gICAgICAgICAgICBNTTogJyVkIOGAnCcsXG4gICAgICAgICAgICB5OiAn4YCQ4YCF4YC64YCU4YC+4YCF4YC6JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4YCU4YC+4YCF4YC6JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+GBgeGBguGBg+GBhOGBheGBhuGBh+GBiOGBieGBgF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG15O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE5vcndlZ2lhbiBCb2ttw6VsIFtuYl1cbi8vISBhdXRob3JzIDogRXNwZW4gSG92bGFuZHNkYWwgOiBodHRwczovL2dpdGh1Yi5jb20vcmV4eGFyc1xuLy8hICAgICAgICAgICBTaWd1cmQgR2FydG1hbm4gOiBodHRwczovL2dpdGh1Yi5jb20vc2lndXJkZ2Fcbi8vISAgICAgICAgICAgU3RlcGhlbiBSYW10aHVuIDogaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoZW5yYW10aHVuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbmIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCduYicsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFyc19hcHJpbF9tYWlfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW4uX2ZlYi5fbWFyc19hcHIuX21haV9qdW5pX2p1bGlfYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ3PDuG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2zDuHJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzw7guX21hLl90aS5fb24uX3RvLl9mci5fbMO4Licuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzw7hfbWFfdGlfb25fdG9fZnJfbMO4Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tpIGRhZyBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaSBtb3JnZW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpIGfDpXIga2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tmb3JyaWdlXSBkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb20gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHNpZGVuJyxcbiAgICAgICAgICAgIHM6ICdub2VuIHNla3VuZGVyJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kZXInLFxuICAgICAgICAgICAgbTogJ2V0dCBtaW51dHQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dHRlcicsXG4gICAgICAgICAgICBoOiAnZW4gdGltZScsXG4gICAgICAgICAgICBoaDogJyVkIHRpbWVyJyxcbiAgICAgICAgICAgIGQ6ICdlbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdlcicsXG4gICAgICAgICAgICBNOiAnZW4gbcOlbmVkJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOlbmVkZXInLFxuICAgICAgICAgICAgeTogJ2V0dCDDpXInLFxuICAgICAgICAgICAgeXk6ICclZCDDpXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5iO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE5lcGFsZXNlIFtuZV1cbi8vISBhdXRob3IgOiBzdXZhc2ggOiBodHRwczovL2dpdGh1Yi5jb20vc3V2YXNoXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4KWnJyxcbiAgICAgICAgICAgICcyJzogJ+ClqCcsXG4gICAgICAgICAgICAnMyc6ICfgpaknLFxuICAgICAgICAgICAgJzQnOiAn4KWqJyxcbiAgICAgICAgICAgICc1JzogJ+ClqycsXG4gICAgICAgICAgICAnNic6ICfgpawnLFxuICAgICAgICAgICAgJzcnOiAn4KWtJyxcbiAgICAgICAgICAgICc4JzogJ+ClricsXG4gICAgICAgICAgICAnOSc6ICfgpa8nLFxuICAgICAgICAgICAgJzAnOiAn4KWmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Clpyc6ICcxJyxcbiAgICAgICAgICAgICfgpagnOiAnMicsXG4gICAgICAgICAgICAn4KWpJzogJzMnLFxuICAgICAgICAgICAgJ+Clqic6ICc0JyxcbiAgICAgICAgICAgICfgpasnOiAnNScsXG4gICAgICAgICAgICAn4KWsJzogJzYnLFxuICAgICAgICAgICAgJ+ClrSc6ICc3JyxcbiAgICAgICAgICAgICfgpa4nOiAnOCcsXG4gICAgICAgICAgICAn4KWvJzogJzknLFxuICAgICAgICAgICAgJ+Clpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBuZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25lJywge1xuICAgICAgICBtb250aHM6ICfgpJzgpKjgpLXgpLDgpYBf4KSr4KWH4KSs4KWN4KSw4KWB4KS14KSw4KWAX+CkruCkvuCksOCljeCkml/gpIXgpKrgpY3gpLDgpL/gpLJf4KSu4KSIX+CknOClgeCkqF/gpJzgpYHgpLLgpL7gpIhf4KSF4KSX4KS34KWN4KSfX+CkuOClh+CkquCljeCkn+Clh+CkruCljeCkrOCksF/gpIXgpJXgpY3gpJ/gpYvgpKzgpLBf4KSo4KWL4KSt4KWH4KSu4KWN4KSs4KSwX+CkoeCkv+CkuOClh+CkruCljeCkrOCksCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgpJzgpKguX+Ckq+Clh+CkrOCljeCksOClgS5f4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCkvy5f4KSu4KSIX+CknOClgeCkqF/gpJzgpYHgpLLgpL7gpIguX+CkheCkly5f4KS44KWH4KSq4KWN4KSfLl/gpIXgpJXgpY3gpJ/gpYsuX+CkqOCli+CkreClhy5f4KSh4KS/4KS44KWHLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgpIbgpIfgpKTgpKzgpL7gpLBf4KS44KWL4KSu4KSs4KS+4KSwX+CkruCkmeCljeCkl+CksuCkrOCkvuCksF/gpKzgpYHgpKfgpKzgpL7gpLBf4KSs4KS/4KS54KS/4KSs4KS+4KSwX+CktuClgeCkleCljeCksOCkrOCkvuCksF/gpLbgpKjgpL/gpKzgpL7gpLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgpIbgpIfgpKQuX+CkuOCli+Ckri5f4KSu4KSZ4KWN4KSX4KSyLl/gpKzgpYHgpKcuX+CkrOCkv+CkueCkvy5f4KS24KWB4KSV4KWN4KSwLl/gpLbgpKjgpL8uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+Ckhi5f4KS44KWLLl/gpK7gpIIuX+CkrOClgS5f4KSs4KS/Ll/gpLbgpYEuX+Ckti4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQeCkleCliyBoOm1tIOCkrOCknOClhycsXG4gICAgICAgICAgICBMVFM6ICdB4KSV4KWLIGg6bW06c3Mg4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEHgpJXgpYsgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBB4KSV4KWLIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Clp+ClqOClqeClquClq+ClrOClreClruClr+Clpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CksOCkvuCkpOCkv3zgpKzgpL/gpLngpL7gpKh84KSm4KS/4KSJ4KSB4KS44KWLfOCkuOCkvuCkgeCknS8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CksOCkvuCkpOCkvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkrOCkv+CkueCkvuCkqCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKbgpL/gpIngpIHgpLjgpYsnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOCkvuCkgeCknScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpL8nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkrOCkv+CkueCkvuCkqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSm4KS/4KSJ4KSB4KS44KWLJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpL7gpIHgpJ0nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpOCkvyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpK3gpYvgpLLgpL9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+CkhuCkieCkgeCkpuCli10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CkueCkv+CknOCli10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4KSX4KSP4KSV4KWLXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPgpK7gpL4nLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCkheCkl+CkvuCkoeCkvycsXG4gICAgICAgICAgICBzOiAn4KSV4KWH4KS54KWAIOCkleCljeCkt+CkoycsXG4gICAgICAgICAgICBzczogJyVkIOCkuOClh+CkleClh+Cko+CljeCkoScsXG4gICAgICAgICAgICBtOiAn4KSP4KSVIOCkruCkv+CkqOClh+CknycsXG4gICAgICAgICAgICBtbTogJyVkIOCkruCkv+CkqOClh+CknycsXG4gICAgICAgICAgICBoOiAn4KSP4KSVIOCkmOCko+CljeCkn+CkvicsXG4gICAgICAgICAgICBoaDogJyVkIOCkmOCko+CljeCkn+CkvicsXG4gICAgICAgICAgICBkOiAn4KSP4KSVIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBNOiAn4KSP4KSVIOCkruCkueCkv+CkqOCkvicsXG4gICAgICAgICAgICBNTTogJyVkIOCkruCkueCkv+CkqOCkvicsXG4gICAgICAgICAgICB5OiAn4KSP4KSVIOCkrOCksOCljeCktycsXG4gICAgICAgICAgICB5eTogJyVkIOCkrOCksOCljeCktycsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBEdXRjaCBbbmxdXG4vLyEgYXV0aG9yIDogSm9yaXMgUsO2bGluZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb3Jpc3JvbGluZ1xuLy8hIGF1dGhvciA6IEphY29iIE1pZGRhZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWRkYWdqXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnRXaXRoRG90cyA9ICdqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21laV9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydFdpdGhvdXREb3RzID0gJ2phbl9mZWJfbXJ0X2Fwcl9tZWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eamFuL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYWFydHxtcnQuPyQvaSxcbiAgICAgICAgICAgIC9eYXByL2ksXG4gICAgICAgICAgICAvXm1laSQvaSxcbiAgICAgICAgICAgIC9eanVuW2kuXT8kL2ksXG4gICAgICAgICAgICAvXmp1bFtpLl0/JC9pLFxuICAgICAgICAgICAgL15hdWcvaSxcbiAgICAgICAgICAgIC9ec2VwL2ksXG4gICAgICAgICAgICAvXm9rdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZGVjL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gL14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcnxqYW5cXC4/fGZlYlxcLj98bXJ0XFwuP3xhcHJcXC4/fGp1W25sXVxcLj98YXVnXFwuP3xzZXBcXC4/fG9rdFxcLj98bm92XFwuP3xkZWNcXC4/KS9pO1xuXG4gICAgdmFyIG5sID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmwnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcmlfZmVicnVhcmlfbWFhcnRfYXByaWxfbWVpX2p1bmlfanVsaV9hdWd1c3R1c19zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhvdXREb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGphblxcLj98ZmViXFwuP3xtcnRcXC4/fGFwclxcLj98bWVpfGp1W25sXVxcLj98YXVnXFwuP3xzZXBcXC4/fG9rdFxcLj98bm92XFwuP3xkZWNcXC4/KS9pLFxuXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG5cbiAgICAgICAgd2Vla2RheXM6ICd6b25kYWdfbWFhbmRhZ19kaW5zZGFnX3dvZW5zZGFnX2RvbmRlcmRhZ192cmlqZGFnX3phdGVyZGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnem8uX21hLl9kaS5fd28uX2RvLl92ci5femEuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3pvX21hX2RpX3dvX2RvX3ZyX3phJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1t2YW5kYWFnIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnaXN0ZXJlbiBvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbYWZnZWxvcGVuXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvdmVyICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBnZWxlZGVuJyxcbiAgICAgICAgICAgIHM6ICdlZW4gcGFhciBzZWNvbmRlbicsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGVuJyxcbiAgICAgICAgICAgIG06ICfDqcOpbiBtaW51dXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVuJyxcbiAgICAgICAgICAgIGg6ICfDqcOpbiB1dXInLFxuICAgICAgICAgICAgaGg6ICclZCB1dXInLFxuICAgICAgICAgICAgZDogJ8Opw6luIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2VuJyxcbiAgICAgICAgICAgIE06ICfDqcOpbiBtYWFuZCcsXG4gICAgICAgICAgICBNTTogJyVkIG1hYW5kZW4nLFxuICAgICAgICAgICAgeTogJ8Opw6luIGphYXInLFxuICAgICAgICAgICAgeXk6ICclZCBqYWFyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwID8gJ3N0ZScgOiAnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5sO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IER1dGNoIChCZWxnaXVtKSBbbmwtYmVdXG4vLyEgYXV0aG9yIDogSm9yaXMgUsO2bGluZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb3Jpc3JvbGluZ1xuLy8hIGF1dGhvciA6IEphY29iIE1pZGRhZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWRkYWdqXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnRXaXRoRG90cyA9ICdqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21laV9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydFdpdGhvdXREb3RzID0gJ2phbl9mZWJfbXJ0X2Fwcl9tZWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eamFuL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYWFydHxtcnQuPyQvaSxcbiAgICAgICAgICAgIC9eYXByL2ksXG4gICAgICAgICAgICAvXm1laSQvaSxcbiAgICAgICAgICAgIC9eanVuW2kuXT8kL2ksXG4gICAgICAgICAgICAvXmp1bFtpLl0/JC9pLFxuICAgICAgICAgICAgL15hdWcvaSxcbiAgICAgICAgICAgIC9ec2VwL2ksXG4gICAgICAgICAgICAvXm9rdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZGVjL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gL14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcnxqYW5cXC4/fGZlYlxcLj98bXJ0XFwuP3xhcHJcXC4/fGp1W25sXVxcLj98YXVnXFwuP3xzZXBcXC4/fG9rdFxcLj98bm92XFwuP3xkZWNcXC4/KS9pO1xuXG4gICAgdmFyIG5sQmUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdubC1iZScsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyaV9mZWJydWFyaV9tYWFydF9hcHJpbF9tZWlfanVuaV9qdWxpX2F1Z3VzdHVzX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHM7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aG91dERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14oamFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xtZWl8anVbbmxdXFwuP3xhdWdcXC4/fHNlcFxcLj98b2t0XFwuP3xub3ZcXC4/fGRlY1xcLj8pL2ksXG5cbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcblxuICAgICAgICB3ZWVrZGF5czogJ3pvbmRhZ19tYWFuZGFnX2RpbnNkYWdfd29lbnNkYWdfZG9uZGVyZGFnX3ZyaWpkYWdfemF0ZXJkYWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICd6by5fbWEuX2RpLl93by5fZG8uX3ZyLl96YS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnem9fbWFfZGlfd29fZG9fdnJfemEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW3ZhbmRhYWcgb21dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dpc3RlcmVuIG9tXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1thZmdlbG9wZW5dIGRkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ292ZXIgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGdlbGVkZW4nLFxuICAgICAgICAgICAgczogJ2VlbiBwYWFyIHNlY29uZGVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kZW4nLFxuICAgICAgICAgICAgbTogJ8Opw6luIG1pbnV1dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZW4nLFxuICAgICAgICAgICAgaDogJ8Opw6luIHV1cicsXG4gICAgICAgICAgICBoaDogJyVkIHV1cicsXG4gICAgICAgICAgICBkOiAnw6nDqW4gZGFnJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnZW4nLFxuICAgICAgICAgICAgTTogJ8Opw6luIG1hYW5kJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWFhbmRlbicsXG4gICAgICAgICAgICB5OiAnw6nDqW4gamFhcicsXG4gICAgICAgICAgICB5eTogJyVkIGphYXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3RlfGRlKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAobnVtYmVyID09PSAxIHx8IG51bWJlciA9PT0gOCB8fCBudW1iZXIgPj0gMjAgPyAnc3RlJyA6ICdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmxCZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBOeW5vcnNrIFtubl1cbi8vISBhdXRob3JzIDogaHR0cHM6Ly9naXRodWIuY29tL21lY2h1d2luZFxuLy8hICAgICAgICAgICBTdGVwaGVuIFJhbXRodW4gOiBodHRwczovL2dpdGh1Yi5jb20vc3RlcGhlbnJhbXRodW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBubiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25uJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbi5fZmViLl9tYXJzX2Fwci5fbWFpX2p1bmlfanVsaV9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnc3VuZGFnX23DpW5kYWdfdHlzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sYXVyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc3UuX23DpS5fdHkuX29uLl90by5fZnIuX2xhdS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc3VfbcOlX3R5X29uX3RvX2ZyX2xhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBba2wuXSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0kgZGFnIGtsb2trYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tJIG1vcmdvbiBrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba2xva2thXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0kgZ8OlciBrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0bDuHJlZ8OlYW5kZV0gZGRkZCBba2xva2thXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29tICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBzaWRhbicsXG4gICAgICAgICAgICBzOiAnbm9rcmUgc2VrdW5kJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kJyxcbiAgICAgICAgICAgIG06ICdlaXQgbWludXR0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR0JyxcbiAgICAgICAgICAgIGg6ICdlaW4gdGltZScsXG4gICAgICAgICAgICBoaDogJyVkIHRpbWFyJyxcbiAgICAgICAgICAgIGQ6ICdlaW4gZGFnJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnYXInLFxuICAgICAgICAgICAgTTogJ2VpbiBtw6VuYWQnLFxuICAgICAgICAgICAgTU06ICclZCBtw6VuYWRlcicsXG4gICAgICAgICAgICB5OiAnZWl0IMOlcicsXG4gICAgICAgICAgICB5eTogJyVkIMOlcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbm47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogT2NjaXRhbiwgbGVuZ2Fkb2NpYW4gZGlhbGVjdGUgW29jLWxuY11cbi8vISBhdXRob3IgOiBRdWVudGluIFBBR8OIUyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9RdWVudHkzMVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG9jTG5jID0gbW9tZW50LmRlZmluZUxvY2FsZSgnb2MtbG5jJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICdnZW5pw6hyX2ZlYnJpw6hyX21hcsOnX2FicmlsX21haV9qdW5oX2p1bGhldF9hZ29zdF9zZXRlbWJyZV9vY3TDsmJyZV9ub3ZlbWJyZV9kZWNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiBcImRlIGdlbmnDqHJfZGUgZmVicmnDqHJfZGUgbWFyw6dfZCdhYnJpbF9kZSBtYWlfZGUganVuaF9kZSBqdWxoZXRfZCdhZ29zdF9kZSBzZXRlbWJyZV9kJ29jdMOyYnJlX2RlIG5vdmVtYnJlX2RlIGRlY2VtYnJlXCIuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9EW29EXT8oXFxzKStNTU1NLyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdnZW4uX2ZlYnIuX21hcsOnX2Fici5fbWFpX2p1bmhfanVsaC5fYWdvLl9zZXQuX29jdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWVuZ2VfZGlsdW5zX2RpbWFyc19kaW3DqGNyZXNfZGlqw7J1c19kaXZlbmRyZXNfZGlzc2FidGUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkZy5fZGwuX2RtLl9kYy5fZGouX2R2Ll9kcy4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGdfZGxfZG1fZGNfZGpfZHZfZHMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBsbDogJ0QgTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFtkZV0gWVlZWSBbYV0gSDptbScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZLCBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBbZGVdIFlZWVkgW2FdIEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCBEIE1NTSBZWVlZLCBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbdcOoaSBhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2RlbWFuIGFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpw6hyIGFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbcGFzc2F0IGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBcImQnYXF1w60gJXNcIixcbiAgICAgICAgICAgIHBhc3Q6ICdmYSAlcycsXG4gICAgICAgICAgICBzOiAndW5hcyBzZWdvbmRhcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ29uZGFzJyxcbiAgICAgICAgICAgIG06ICd1bmEgbWludXRhJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRhcycsXG4gICAgICAgICAgICBoOiAndW5hIG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGpvcm4nLFxuICAgICAgICAgICAgZGQ6ICclZCBqb3JucycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHJ8bnx0fMOofGEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICBudW1iZXIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgPyAnbidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgPyAncidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDRcbiAgICAgICAgICAgICAgICAgICAgPyAndCdcbiAgICAgICAgICAgICAgICAgICAgOiAnw6gnO1xuICAgICAgICAgICAgaWYgKHBlcmlvZCA9PT0gJ3cnIHx8IHBlcmlvZCA9PT0gJ1cnKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2EnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvY0xuYztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQdW5qYWJpIChJbmRpYSkgW3BhLWluXVxuLy8hIGF1dGhvciA6IEhhcnByZWV0IFNpbmdoIDogaHR0cHM6Ly9naXRodWIuY29tL2hhcnByZWV0a2hhbHNhZ3RiaXRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgqacnLFxuICAgICAgICAgICAgJzInOiAn4KmoJyxcbiAgICAgICAgICAgICczJzogJ+CpqScsXG4gICAgICAgICAgICAnNCc6ICfgqaonLFxuICAgICAgICAgICAgJzUnOiAn4KmrJyxcbiAgICAgICAgICAgICc2JzogJ+CprCcsXG4gICAgICAgICAgICAnNyc6ICfgqa0nLFxuICAgICAgICAgICAgJzgnOiAn4KmuJyxcbiAgICAgICAgICAgICc5JzogJ+CprycsXG4gICAgICAgICAgICAnMCc6ICfgqaYnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4KmnJzogJzEnLFxuICAgICAgICAgICAgJ+CpqCc6ICcyJyxcbiAgICAgICAgICAgICfgqaknOiAnMycsXG4gICAgICAgICAgICAn4KmqJzogJzQnLFxuICAgICAgICAgICAgJ+Cpqyc6ICc1JyxcbiAgICAgICAgICAgICfgqawnOiAnNicsXG4gICAgICAgICAgICAn4KmtJzogJzcnLFxuICAgICAgICAgICAgJ+Cpric6ICc4JyxcbiAgICAgICAgICAgICfgqa8nOiAnOScsXG4gICAgICAgICAgICAn4KmmJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIHBhSW4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdwYS1pbicsIHtcbiAgICAgICAgLy8gVGhlcmUgYXJlIG1vbnRocyBuYW1lIGFzIHBlciBOYW5ha3NoYWhpIENhbGVuZGFyIGJ1dCB0aGV5IGFyZSBub3QgdXNlZCBhcyByaWdpZGx5IGluIG1vZGVybiBQdW5qYWJpLlxuICAgICAgICBtb250aHM6ICfgqJzgqKjgqLXgqLDgqYBf4Kir4Ki84Kiw4Ki14Kiw4KmAX+CoruCovuCosOComl/gqIXgqKrgqY3gqLDgqYjgqLJf4Kiu4KiIX+ConOCpguCoqF/gqJzgqYHgqLLgqL7gqIhf4KiF4KiX4Ki44KikX+CouOCopOCpsOCorOCosF/gqIXgqJXgqKTgqYLgqKzgqLBf4Kio4Ki14Kmw4Kis4KiwX+CopuCouOCpsOCorOCosCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgqJzgqKjgqLXgqLDgqYBf4Kir4Ki84Kiw4Ki14Kiw4KmAX+CoruCovuCosOComl/gqIXgqKrgqY3gqLDgqYjgqLJf4Kiu4KiIX+ConOCpguCoqF/gqJzgqYHgqLLgqL7gqIhf4KiF4KiX4Ki44KikX+CouOCopOCpsOCorOCosF/gqIXgqJXgqKTgqYLgqKzgqLBf4Kio4Ki14Kmw4Kis4KiwX+CopuCouOCpsOCorOCosCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfgqJDgqKTgqLXgqL7gqLBf4Ki44KmL4Kiu4Ki14Ki+4KiwX+CoruCpsOCol+CosuCoteCovuCosF/gqKzgqYHgqKfgqLXgqL7gqLBf4Ki14KmA4Kiw4Ki14Ki+4KiwX+CouOCovOCpgeCpseColeCosOCoteCovuCosF/gqLjgqLzgqKjgqYDgqJrgqLDgqLXgqL7gqLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgqJDgqKRf4Ki44KmL4KiuX+CoruCpsOCol+Cosl/gqKzgqYHgqKdf4Ki14KmA4KiwX+CouOCovOCpgeColeCosF/gqLjgqLzgqKjgqYAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4KiQ4KikX+CouOCpi+Corl/gqK7gqbDgqJfgqLJf4Kis4KmB4KinX+CoteCpgOCosF/gqLjgqLzgqYHgqJXgqLBf4Ki44Ki84Kio4KmAJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0g4Ki14Kic4KmHJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyDgqLXgqJzgqYcnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCoteConOCphycsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSDgqLXgqJzgqYcnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgqIXgqJxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KiV4KiyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vgqIXgqJfgqLLgqL5dIGRkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4KiV4KiyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgqKrgqL/gqJvgqLLgqYddIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4Ki14Ki/4Kmx4KiaJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgqKrgqL/gqJvgqLLgqYcnLFxuICAgICAgICAgICAgczogJ+ColeCpgeConSDgqLjgqJXgqL/gqbDgqJ8nLFxuICAgICAgICAgICAgc3M6ICclZCDgqLjgqJXgqL/gqbDgqJ8nLFxuICAgICAgICAgICAgbTogJ+Coh+ColSDgqK7gqL/gqbDgqJ8nLFxuICAgICAgICAgICAgbW06ICclZCDgqK7gqL/gqbDgqJ8nLFxuICAgICAgICAgICAgaDogJ+Coh+CpseColSDgqJjgqbDgqJ/gqL4nLFxuICAgICAgICAgICAgaGg6ICclZCDgqJjgqbDgqJ/gqYcnLFxuICAgICAgICAgICAgZDogJ+Coh+CpseColSDgqKbgqL/gqKgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgqKbgqL/gqKgnLFxuICAgICAgICAgICAgTTogJ+Coh+CpseColSDgqK7gqLngqYDgqKjgqL4nLFxuICAgICAgICAgICAgTU06ICclZCDgqK7gqLngqYDgqKjgqYcnLFxuICAgICAgICAgICAgeTogJ+Coh+CpseColSDgqLjgqL7gqLInLFxuICAgICAgICAgICAgeXk6ICclZCDgqLjgqL7gqLInLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4Kmn4Kmo4Kmp4Kmq4Kmr4Kms4Kmt4Kmu4Kmv4KmmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyBQdW5qYWJpIG5vdGF0aW9uIGZvciBtZXJpZGllbXMgYXJlIHF1aXRlIGZ1enp5IGluIHByYWN0aWNlLiBXaGlsZSB0aGVyZSBleGlzdHNcbiAgICAgICAgLy8gYSByaWdpZCBub3Rpb24gb2YgYSAnUGFoYXInIGl0IGlzIG5vdCB1c2VkIGFzIHJpZ2lkbHkgaW4gbW9kZXJuIFB1bmphYmkuXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gqLDgqL7gqKR84Ki44Ki14KmH4KiwfOCopuCpgeCoquCoueCov+CosHzgqLjgqLzgqL7gqK4vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgqLDgqL7gqKQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqLjgqLXgqYfgqLAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kim4KmB4Kiq4Ki54Ki/4KiwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqLjgqLzgqL7gqK4nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kiw4Ki+4KikJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqLjgqLXgqYfgqLAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CopuCpgeCoquCoueCov+CosCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Ki44Ki84Ki+4KiuJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqLDgqL7gqKQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFJbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQb2xpc2ggW3BsXVxuLy8hIGF1dGhvciA6IFJhZmFsIEhpcnN6IDogaHR0cHM6Ly9naXRodWIuY29tL2V2b0xcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNOb21pbmF0aXZlID0gJ3N0eWN6ZcWEX2x1dHlfbWFyemVjX2t3aWVjaWXFhF9tYWpfY3plcndpZWNfbGlwaWVjX3NpZXJwaWXFhF93cnplc2llxYRfcGHFumR6aWVybmlrX2xpc3RvcGFkX2dydWR6aWXFhCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU3ViamVjdGl2ZSA9ICdzdHljem5pYV9sdXRlZ29fbWFyY2Ffa3dpZXRuaWFfbWFqYV9jemVyd2NhX2xpcGNhX3NpZXJwbmlhX3dyemXFm25pYV9wYcW6ZHppZXJuaWthX2xpc3RvcGFkYV9ncnVkbmlhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApO1xuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIHJldHVybiBuICUgMTAgPCA1ICYmIG4gJSAxMCA+IDEgJiYgfn4obiAvIDEwKSAlIDEwICE9PSAxO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Nla3VuZHknIDogJ3Nla3VuZCcpO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnbWludXRhJyA6ICdtaW51dMSZJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21pbnV0eScgOiAnbWludXQnKTtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2dvZHppbmEnIDogJ2dvZHppbsSZJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2dvZHppbnknIDogJ2dvZHppbicpO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbWllc2nEhWNlJyA6ICdtaWVzacSZY3knKTtcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2xhdGEnIDogJ2xhdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHBsID0gbW9tZW50LmRlZmluZUxvY2FsZSgncGwnLCB7XG4gICAgICAgIG1vbnRoczogZnVuY3Rpb24gKG1vbWVudFRvRm9ybWF0LCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbW9tZW50VG9Gb3JtYXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzTm9taW5hdGl2ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnJykge1xuICAgICAgICAgICAgICAgIC8vIEhhY2s6IGlmIGZvcm1hdCBlbXB0eSB3ZSBrbm93IHRoaXMgaXMgdXNlZCB0byBnZW5lcmF0ZVxuICAgICAgICAgICAgICAgIC8vIFJlZ0V4cCBieSBtb21lbnQuIEdpdmUgdGhlbiBiYWNrIGJvdGggdmFsaWQgZm9ybXMgb2YgbW9udGhzXG4gICAgICAgICAgICAgICAgLy8gaW4gUmVnRXhwIHJlYWR5IGZvcm1hdC5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnKCcgK1xuICAgICAgICAgICAgICAgICAgICBtb250aHNTdWJqZWN0aXZlW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldICtcbiAgICAgICAgICAgICAgICAgICAgJ3wnICtcbiAgICAgICAgICAgICAgICAgICAgbW9udGhzTm9taW5hdGl2ZVttb21lbnRUb0Zvcm1hdC5tb250aCgpXSArXG4gICAgICAgICAgICAgICAgICAgICcpJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC9EIE1NTU0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTdWJqZWN0aXZlW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzTm9taW5hdGl2ZVttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdzdHlfbHV0X21hcl9rd2lfbWFqX2N6ZV9saXBfc2llX3dyel9wYcW6X2xpc19ncnUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnbmllZHppZWxhX3BvbmllZHppYcWCZWtfd3RvcmVrX8Wbcm9kYV9jendhcnRla19wacSFdGVrX3NvYm90YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25kel9wb25fd3RfxZtyX2N6d19wdF9zb2InLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTmRfUG5fV3RfxZpyX0N6X1B0X1NvJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0R6acWbIG9dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbSnV0cm8gb10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyBuaWVkemllbMSZIG9dIExUJztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXZSB3dG9yZWsgb10gTFQnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgxZtyb2TEmSBvXSBMVCc7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyBzb2JvdMSZIG9dIExUJztcblxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbV10gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1djem9yYWogb10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyB6ZXN6xYLEhSBuaWVkemllbMSZIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyB6ZXN6xYLEhSDFm3JvZMSZIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyB6ZXN6xYLEhSBzb2JvdMSZIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCeV0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB0ZW11JyxcbiAgICAgICAgICAgIHM6ICdraWxrYSBzZWt1bmQnLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJzEgZHppZcWEJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZG5pJyxcbiAgICAgICAgICAgIE06ICdtaWVzacSFYycsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ3JvaycsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFBvcnR1Z3Vlc2UgW3B0XVxuLy8hIGF1dGhvciA6IEplZmZlcnNvbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYWxleDc5XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgcHQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdwdCcsIHtcbiAgICAgICAgbW9udGhzOiAnamFuZWlyb19mZXZlcmVpcm9fbWFyw6dvX2FicmlsX21haW9fanVuaG9fanVsaG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGV6ZW1icm8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2Zldl9tYXJfYWJyX21haV9qdW5fanVsX2Fnb19zZXRfb3V0X25vdl9kZXonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnRG9taW5nb19TZWd1bmRhLWZlaXJhX1RlcsOnYS1mZWlyYV9RdWFydGEtZmVpcmFfUXVpbnRhLWZlaXJhX1NleHRhLWZlaXJhX1PDoWJhZG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdEb21fU2VnX1Rlcl9RdWFfUXVpX1NleF9Tw6FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0RvXzLCql8zwqpfNMKqXzXCql82wqpfU8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSG9qZSDDoHNdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQW1hbmjDoyDDoHNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6BzXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW09udGVtIMOgc10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXkoKSA9PT0gMCB8fCB0aGlzLmRheSgpID09PSA2XG4gICAgICAgICAgICAgICAgICAgID8gJ1vDmmx0aW1vXSBkZGRkIFvDoHNdIExUJyAvLyBTYXR1cmRheSArIFN1bmRheVxuICAgICAgICAgICAgICAgICAgICA6ICdbw5psdGltYV0gZGRkZCBbw6BzXSBMVCc7IC8vIE1vbmRheSAtIEZyaWRheVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZW0gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2jDoSAlcycsXG4gICAgICAgICAgICBzOiAnc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW0gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW1hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW0gZGlhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGlhcycsXG4gICAgICAgICAgICBNOiAndW0gbcOqcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1bSBhbm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBwdDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQb3J0dWd1ZXNlIChCcmF6aWwpIFtwdC1icl1cbi8vISBhdXRob3IgOiBDYWlvIFJpYmVpcm8gUGVyZWlyYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jYWlvLXJpYmVpcm8tcGVyZWlyYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHB0QnIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdwdC1icicsIHtcbiAgICAgICAgbW9udGhzOiAnamFuZWlyb19mZXZlcmVpcm9fbWFyw6dvX2FicmlsX21haW9fanVuaG9fanVsaG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGV6ZW1icm8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2Zldl9tYXJfYWJyX21haV9qdW5fanVsX2Fnb19zZXRfb3V0X25vdl9kZXonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnZG9taW5nb19zZWd1bmRhLWZlaXJhX3RlcsOnYS1mZWlyYV9xdWFydGEtZmVpcmFfcXVpbnRhLWZlaXJhX3NleHRhLWZlaXJhX3PDoWJhZG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb21fc2VnX3Rlcl9xdWFfcXVpX3NleF9zw6FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvXzLCql8zwqpfNMKqXzXCql82wqpfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBbw6BzXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIFvDoHNdIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSG9qZSDDoHNdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQW1hbmjDoyDDoHNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6BzXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW09udGVtIMOgc10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXkoKSA9PT0gMCB8fCB0aGlzLmRheSgpID09PSA2XG4gICAgICAgICAgICAgICAgICAgID8gJ1vDmmx0aW1vXSBkZGRkIFvDoHNdIExUJyAvLyBTYXR1cmRheSArIFN1bmRheVxuICAgICAgICAgICAgICAgICAgICA6ICdbw5psdGltYV0gZGRkZCBbw6BzXSBMVCc7IC8vIE1vbmRheSAtIEZyaWRheVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZW0gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2jDoSAlcycsXG4gICAgICAgICAgICBzOiAncG91Y29zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VtIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VtYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VtIGRpYScsXG4gICAgICAgICAgICBkZDogJyVkIGRpYXMnLFxuICAgICAgICAgICAgTTogJ3VtIG3DqnMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW0gYW5vJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5vcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHB0QnI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUm9tYW5pYW4gW3JvXVxuLy8hIGF1dGhvciA6IFZsYWQgR3VyZGlnYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ndXJkaWdhXG4vLyEgYXV0aG9yIDogVmFsZW50aW4gQWdhY2hpIDogaHR0cHM6Ly9naXRodWIuY29tL2F2YWx5XG4vLyEgYXV0aG9yIDogRW1hbnVlbCBDZXBvaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jZXBlbVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFBsdXJhbChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgICAgIHNzOiAnc2VjdW5kZScsXG4gICAgICAgICAgICAgICAgbW06ICdtaW51dGUnLFxuICAgICAgICAgICAgICAgIGhoOiAnb3JlJyxcbiAgICAgICAgICAgICAgICBkZDogJ3ppbGUnLFxuICAgICAgICAgICAgICAgIE1NOiAnbHVuaScsXG4gICAgICAgICAgICAgICAgeXk6ICdhbmknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlcGFyYXRvciA9ICcgJztcbiAgICAgICAgaWYgKG51bWJlciAlIDEwMCA+PSAyMCB8fCAobnVtYmVyID49IDEwMCAmJiBudW1iZXIgJSAxMDAgPT09IDApKSB7XG4gICAgICAgICAgICBzZXBhcmF0b3IgPSAnIGRlICc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bWJlciArIHNlcGFyYXRvciArIGZvcm1hdFtrZXldO1xuICAgIH1cblxuICAgIHZhciBybyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3JvJywge1xuICAgICAgICBtb250aHM6ICdpYW51YXJpZV9mZWJydWFyaWVfbWFydGllX2FwcmlsaWVfbWFpX2l1bmllX2l1bGllX2F1Z3VzdF9zZXB0ZW1icmllX29jdG9tYnJpZV9ub2llbWJyaWVfZGVjZW1icmllJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2lhbi5fZmViLl9tYXJ0Ll9hcHIuX21haV9pdW4uX2l1bC5fYXVnLl9zZXB0Ll9vY3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdkdW1pbmljxINfbHVuaV9tYXLIm2lfbWllcmN1cmlfam9pX3ZpbmVyaV9zw6JtYsSDdMSDJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnRHVtX0x1bl9NYXJfTWllX0pvaV9WaW5fU8OibScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdEdV9MdV9NYV9NaV9Kb19WaV9Tw6InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1themkgbGFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbcOiaW5lIGxhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2xhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2llcmkgbGFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2Zvc3RhXSBkZGRkIFtsYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdwZXN0ZSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgw65uIHVybcSDJyxcbiAgICAgICAgICAgIHM6ICdjw6J0ZXZhIHNlY3VuZGUnLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtOiAndW4gbWludXQnLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoOiAnbyBvcsSDJyxcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZDogJ28gemknLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNOiAnbyBsdW7EgycsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIHk6ICd1biBhbicsXG4gICAgICAgICAgICB5eTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFJ1c3NpYW4gW3J1XVxuLy8hIGF1dGhvciA6IFZpa3Rvcm1pbmF0b3IgOiBodHRwczovL2dpdGh1Yi5jb20vVmlrdG9ybWluYXRvclxuLy8hIGF1dGhvciA6IE1lbmVsaW9uIEVsZW5zw7psZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9PaXJlXG4vLyEgYXV0aG9yIDog0JrQvtGA0LXQvdCx0LXRgNCzINCc0LDRgNC6IDogaHR0cHM6Ly9naXRodWIuY29tL3NvY2tldHBhaXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHBsdXJhbCh3b3JkLCBudW0pIHtcbiAgICAgICAgdmFyIGZvcm1zID0gd29yZC5zcGxpdCgnXycpO1xuICAgICAgICByZXR1cm4gbnVtICUgMTAgPT09IDEgJiYgbnVtICUgMTAwICE9PSAxMVxuICAgICAgICAgICAgPyBmb3Jtc1swXVxuICAgICAgICAgICAgOiBudW0gJSAxMCA+PSAyICYmIG51bSAlIDEwIDw9IDQgJiYgKG51bSAlIDEwMCA8IDEwIHx8IG51bSAlIDEwMCA+PSAyMClcbiAgICAgICAgICAgID8gZm9ybXNbMV1cbiAgICAgICAgICAgIDogZm9ybXNbMl07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHNzOiB3aXRob3V0U3VmZml4ID8gJ9GB0LXQutGD0L3QtNCwX9GB0LXQutGD0L3QtNGLX9GB0LXQutGD0L3QtCcgOiAn0YHQtdC60YPQvdC00YNf0YHQtdC60YPQvdC00Ytf0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG1tOiB3aXRob3V0U3VmZml4ID8gJ9C80LjQvdGD0YLQsF/QvNC40L3Rg9GC0Ytf0LzQuNC90YPRgicgOiAn0LzQuNC90YPRgtGDX9C80LjQvdGD0YLRi1/QvNC40L3Rg9GCJyxcbiAgICAgICAgICAgIGhoOiAn0YfQsNGBX9GH0LDRgdCwX9GH0LDRgdC+0LInLFxuICAgICAgICAgICAgZGQ6ICfQtNC10L3RjF/QtNC90Y9f0LTQvdC10LknLFxuICAgICAgICAgICAgTU06ICfQvNC10YHRj9GGX9C80LXRgdGP0YbQsF/QvNC10YHRj9GG0LXQsicsXG4gICAgICAgICAgICB5eTogJ9Cz0L7QtF/Qs9C+0LTQsF/Qu9C10YInLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoa2V5ID09PSAnbScpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ9C80LjQvdGD0YLQsCcgOiAn0LzQuNC90YPRgtGDJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBwbHVyYWwoZm9ybWF0W2tleV0sICtudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgL17Rj9C90LIvaSxcbiAgICAgICAgL17RhNC10LIvaSxcbiAgICAgICAgL17QvNCw0YAvaSxcbiAgICAgICAgL17QsNC/0YAvaSxcbiAgICAgICAgL17QvNCwW9C50Y9dL2ksXG4gICAgICAgIC9e0LjRjtC9L2ksXG4gICAgICAgIC9e0LjRjtC7L2ksXG4gICAgICAgIC9e0LDQstCzL2ksXG4gICAgICAgIC9e0YHQtdC9L2ksXG4gICAgICAgIC9e0L7QutGCL2ksXG4gICAgICAgIC9e0L3QvtGPL2ksXG4gICAgICAgIC9e0LTQtdC6L2ksXG4gICAgXTtcblxuICAgIC8vIGh0dHA6Ly9uZXcuZ3JhbW90YS5ydS9zcHJhdmthL3J1bGVzLzEzOS1wcm9wIDogwqcgMTAzXG4gICAgLy8g0KHQvtC60YDQsNGJ0LXQvdC40Y8g0LzQtdGB0Y/RhtC10LI6IGh0dHA6Ly9uZXcuZ3JhbW90YS5ydS9zcHJhdmthL2J1cm8vc2VhcmNoLWFuc3dlcj9zPTI0MjYzN1xuICAgIC8vIENMRFIgZGF0YTogICAgICAgICAgaHR0cDovL3d3dy51bmljb2RlLm9yZy9jbGRyL2NoYXJ0cy8yOC9zdW1tYXJ5L3J1Lmh0bWwjMTc1M1xuICAgIHZhciBydSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3J1Jywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9GP0L3QstCw0YDRj1/RhNC10LLRgNCw0LvRj1/QvNCw0YDRgtCwX9Cw0L/RgNC10LvRj1/QvNCw0Y9f0LjRjtC90Y9f0LjRjtC70Y9f0LDQstCz0YPRgdGC0LBf0YHQtdC90YLRj9Cx0YDRj1/QvtC60YLRj9Cx0YDRj1/QvdC+0Y/QsdGA0Y9f0LTQtdC60LDQsdGA0Y8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfRj9C90LLQsNGA0Yxf0YTQtdCy0YDQsNC70Yxf0LzQsNGA0YJf0LDQv9GA0LXQu9GMX9C80LDQuV/QuNGO0L3RjF/QuNGO0LvRjF/QsNCy0LPRg9GB0YJf0YHQtdC90YLRj9Cx0YDRjF/QvtC60YLRj9Cx0YDRjF/QvdC+0Y/QsdGA0Yxf0LTQtdC60LDQsdGA0YwnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IHtcbiAgICAgICAgICAgIC8vINC/0L4gQ0xEUiDQuNC80LXQvdC90L4gXCLQuNGO0LsuXCIg0LggXCLQuNGO0L0uXCIsINC90L4g0LrQsNC60L7QuSDRgdC80YvRgdC7INC80LXQvdGP0YLRjCDQsdGD0LrQstGDINC90LAg0YLQvtGH0LrRgz9cbiAgICAgICAgICAgIGZvcm1hdDogJ9GP0L3Qsi5f0YTQtdCy0YAuX9C80LDRgC5f0LDQv9GALl/QvNCw0Y9f0LjRjtC90Y9f0LjRjtC70Y9f0LDQstCzLl/RgdC10L3Rgi5f0L7QutGCLl/QvdC+0Y/QsS5f0LTQtdC6Licuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9GP0L3Qsi5f0YTQtdCy0YAuX9C80LDRgNGCX9Cw0L/RgC5f0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQsy5f0YHQtdC90YIuX9C+0LrRgi5f0L3QvtGP0LEuX9C00LXQui4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vla2RheXM6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfQstC+0YHQutGA0LXRgdC10L3RjNC1X9C/0L7QvdC10LTQtdC70YzQvdC40Lpf0LLRgtC+0YDQvdC40Lpf0YHRgNC10LTQsF/Rh9C10YLQstC10YDQs1/Qv9GP0YLQvdC40YbQsF/RgdGD0LHQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiAn0LLQvtGB0LrRgNC10YHQtdC90YzQtV/Qv9C+0L3QtdC00LXQu9GM0L3QuNC6X9Cy0YLQvtGA0L3QuNC6X9GB0YDQtdC00YNf0YfQtdGC0LLQtdGA0LNf0L/Rj9GC0L3QuNGG0YNf0YHRg9Cx0LHQvtGC0YMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvXFxbID9b0JLQsl0gPyg/OtC/0YDQvtGI0LvRg9GOfNGB0LvQtdC00YPRjtGJ0YPRjnzRjdGC0YMpPyA/XSA/ZGRkZC8sXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQstGBX9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Cy0YFf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG5cbiAgICAgICAgLy8g0L/QvtC70L3Ri9C1INC90LDQt9Cy0LDQvdC40Y8g0YEg0L/QsNC00LXQttCw0LzQuCwg0L/QviDRgtGA0Lgg0LHRg9C60LLRiywg0LTQu9GPINC90LXQutC+0YLQvtGA0YvRhSwg0L/QviA0INCx0YPQutCy0YssINGB0L7QutGA0LDRidC10L3QuNGPINGBINGC0L7Rh9C60L7QuSDQuCDQsdC10Lcg0YLQvtGH0LrQuFxuICAgICAgICBtb250aHNSZWdleDogL14o0Y/QvdCy0LDRgFvRjNGPXXzRj9C90LJcXC4/fNGE0LXQstGA0LDQu1vRjNGPXXzRhNC10LLRgD9cXC4/fNC80LDRgNGC0LA/fNC80LDRgFxcLj980LDQv9GA0LXQu1vRjNGPXXzQsNC/0YBcXC4/fNC80LBb0LnRj1180LjRjtC9W9GM0Y9dfNC40Y7QvVxcLj980LjRjtC7W9GM0Y9dfNC40Y7Qu1xcLj980LDQstCz0YPRgdGC0LA/fNCw0LLQs1xcLj980YHQtdC90YLRj9Cx0YBb0YzRj1180YHQtdC90YI/XFwuP3zQvtC60YLRj9Cx0YBb0YzRj1180L7QutGCXFwuP3zQvdC+0Y/QsdGAW9GM0Y9dfNC90L7Rj9CxP1xcLj980LTQtdC60LDQsdGAW9GM0Y9dfNC00LXQulxcLj8pL2ksXG5cbiAgICAgICAgLy8g0LrQvtC/0LjRjyDQv9GA0LXQtNGL0LTRg9GJ0LXQs9C+XG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IC9eKNGP0L3QstCw0YBb0YzRj1180Y/QvdCyXFwuP3zRhNC10LLRgNCw0Ltb0YzRj1180YTQtdCy0YA/XFwuP3zQvNCw0YDRgtCwP3zQvNCw0YBcXC4/fNCw0L/RgNC10Ltb0YzRj1180LDQv9GAXFwuP3zQvNCwW9C50Y9dfNC40Y7QvVvRjNGPXXzQuNGO0L1cXC4/fNC40Y7Qu1vRjNGPXXzQuNGO0LtcXC4/fNCw0LLQs9GD0YHRgtCwP3zQsNCy0LNcXC4/fNGB0LXQvdGC0Y/QsdGAW9GM0Y9dfNGB0LXQvdGCP1xcLj980L7QutGC0Y/QsdGAW9GM0Y9dfNC+0LrRglxcLj980L3QvtGP0LHRgFvRjNGPXXzQvdC+0Y/QsT9cXC4/fNC00LXQutCw0LHRgFvRjNGPXXzQtNC10LpcXC4/KS9pLFxuXG4gICAgICAgIC8vINC/0L7Qu9C90YvQtSDQvdCw0LfQstCw0L3QuNGPINGBINC/0LDQtNC10LbQsNC80LhcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKNGP0L3QstCw0YBb0Y/RjF180YTQtdCy0YDQsNC7W9GP0YxdfNC80LDRgNGC0LA/fNCw0L/RgNC10Ltb0Y/RjF180LzQsFvRj9C5XXzQuNGO0L1b0Y/RjF180LjRjtC7W9GP0YxdfNCw0LLQs9GD0YHRgtCwP3zRgdC10L3RgtGP0LHRgFvRj9GMXXzQvtC60YLRj9Cx0YBb0Y/RjF180L3QvtGP0LHRgFvRj9GMXXzQtNC10LrQsNCx0YBb0Y/RjF0pL2ksXG5cbiAgICAgICAgLy8g0JLRi9GA0LDQttC10L3QuNC1LCDQutC+0YLQvtGA0L7QtSDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDRgtC+0LvRjNC60L4g0YHQvtC60YDQsNGJ0ZHQvdC90YvQvCDRhNC+0YDQvNCw0LxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14o0Y/QvdCyXFwufNGE0LXQstGAP1xcLnzQvNCw0YBb0YIuXXzQsNC/0YBcXC580LzQsFvRj9C5XXzQuNGO0L1b0YzRjy5dfNC40Y7Qu1vRjNGPLl180LDQstCzXFwufNGB0LXQvdGCP1xcLnzQvtC60YJcXC580L3QvtGP0LE/XFwufNC00LXQulxcLikvaSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVkg0LMuJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZINCzLiwgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkg0LMuLCBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0KHQtdCz0L7QtNC90Y8sINCyXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9CX0LDQstGC0YDQsCwg0LJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JLRh9C10YDQsCwg0LJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdy53ZWVrKCkgIT09IHRoaXMud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINGB0LvQtdC00YPRjtGJ0LXQtV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0YHQu9C10LTRg9GO0YnQuNC5XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDRgdC70LXQtNGD0Y7RidGD0Y5dIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF5KCkgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CS0L5dIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JJdIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdy53ZWVrKCkgIT09IHRoaXMud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINC/0YDQvtGI0LvQvtC1XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDQv9GA0L7RiNC70YvQuV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0L/RgNC+0YjQu9GD0Y5dIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF5KCkgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CS0L5dIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JJdIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0YfQtdGA0LXQtyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0L3QsNC30LDQtCcsXG4gICAgICAgICAgICBzOiAn0L3QtdGB0LrQvtC70YzQutC+INGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBzczogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGg6ICfRh9Cw0YEnLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBkOiAn0LTQtdC90YwnLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNOiAn0LzQtdGB0Y/RhicsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIHk6ICfQs9C+0LQnLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/QvdC+0YfQuHzRg9GC0YDQsHzQtNC90Y980LLQtdGH0LXRgNCwL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKNC00L3Rj3zQstC10YfQtdGA0LApJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C90L7Rh9C4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRg9GC0YDQsCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LTQvdGPJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQstC10YfQtdGA0LAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNC5fNCz0L580Y8pLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC5JztcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LPQvic7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGPJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcnU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2luZGhpIFtzZF1cbi8vISBhdXRob3IgOiBOYXJhaW4gU2FnYXIgOiBodHRwczovL2dpdGh1Yi5jb20vbmFyYWluc2FnYXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICAgICAn2KzZhtmI2LHZiicsXG4gICAgICAgICAgICAn2YHZitio2LHZiNix2YonLFxuICAgICAgICAgICAgJ9mF2KfYsdqGJyxcbiAgICAgICAgICAgICfYp9m+2LHZitmEJyxcbiAgICAgICAgICAgICfZhdim2YonLFxuICAgICAgICAgICAgJ9is2YjZhicsXG4gICAgICAgICAgICAn2KzZiNmE2KfYodmQJyxcbiAgICAgICAgICAgICfYotqv2LPZvScsXG4gICAgICAgICAgICAn2LPZitm+2b3Zhdio2LEnLFxuICAgICAgICAgICAgJ9ii2qrZvdmI2KjYsScsXG4gICAgICAgICAgICAn2YbZiNmF2KjYsScsXG4gICAgICAgICAgICAn2orYs9mF2KjYsScsXG4gICAgICAgIF0sXG4gICAgICAgIGRheXMgPSBbJ9ii2obYsScsICfYs9mI2YXYsScsICfYp9qx2KfYsdmIJywgJ9in2LHYqNi5JywgJ9iu2YXZitizJywgJ9is2YXYuScsICfah9mG2ofYsSddO1xuXG4gICAgdmFyIHNkID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2QnLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46IGRheXMsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGTYjCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/Ytdio2K182LTYp9mFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9i02KfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LXYqNitJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJztcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfahF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYs9qA2Kfau9mKXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9in2rPZitmGINmH2YHYqtmKINiq2YpdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2qrYp9mE2YfZh10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb2q/Ystix2YrZhCDZh9mB2KrZil0gZGRkZCBb2KrZil0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDZvtmI2KEnLFxuICAgICAgICAgICAgcGFzdDogJyVzINin2rMnLFxuICAgICAgICAgICAgczogJ9qG2YbYryDYs9mK2qrZhtqKJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2LPZitqq2YbaiicsXG4gICAgICAgICAgICBtOiAn2YfaqiDZhdmG2b0nLFxuICAgICAgICAgICAgbW06ICclZCDZhdmG2b0nLFxuICAgICAgICAgICAgaDogJ9mH2qog2qrZhNin2qonLFxuICAgICAgICAgICAgaGg6ICclZCDaqtmE2KfaqicsXG4gICAgICAgICAgICBkOiAn2YfaqiDaj9mK2YbZh9mGJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2o/ZitmG2YfZhicsXG4gICAgICAgICAgICBNOiAn2YfaqiDZhdmH2YrZhtmIJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2YXZh9mK2YbYpycsXG4gICAgICAgICAgICB5OiAn2YfaqiDYs9in2YQnLFxuICAgICAgICAgICAgeXk6ICclZCDYs9in2YQnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzZDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBOb3J0aGVybiBTYW1pIFtzZV1cbi8vISBhdXRob3JzIDogQsOlcmQgUm9sc3RhZCBIZW5yaWtzZW4gOiBodHRwczovL2dpdGh1Yi5jb20va2FyYW1lbGxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NlJywge1xuICAgICAgICBtb250aHM6ICdvxJHEkWFqYWdlbcOhbm51X2d1b3Z2YW3DoW5udV9uanVrxI1hbcOhbm51X2N1b8WLb23DoW5udV9taWVzc2Vtw6FubnVfZ2Vhc3NlbcOhbm51X3N1b2lkbmVtw6FubnVfYm9yZ2Vtw6FubnVfxI1ha8SNYW3DoW5udV9nb2xnZ290bcOhbm51X3Nrw6FibWFtw6FubnVfanVvdmxhbcOhbm51Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2/EkcSRal9ndW92X25qdWtfY3VvX21pZXNfZ2Vhc19zdW9pX2JvcmdfxI1ha8SNX2dvbGdfc2vDoWJfanVvdicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICdzb3RuYWJlYWl2aV92dW9zc8OhcmdhX21hxYvFi2Viw6FyZ2FfZ2Fza2F2YWhra3VfZHVvcmFzdGF0X2JlYXJqYWRhdF9sw6F2dmFyZGF0Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc290bl92dW9zX21hxYtfZ2Fza19kdW9yX2JlYXJfbMOhdicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzX3ZfbV9nX2RfYl9MJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ01NTU0gRC4gW2IuXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ01NTU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIEQuIFtiLl0gWVlZWSBbdGkuXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW290bmUgdGldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaWh0dGluIHRpXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3RpXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2lrdGUgdGldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW292ZGRpdF0gZGRkZCBbdGldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgZ2Vhxb5lcycsXG4gICAgICAgICAgICBwYXN0OiAnbWHFi2l0ICVzJyxcbiAgICAgICAgICAgIHM6ICdtb2FkZGUgc2VrdW5kZGF0JyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kZGF0JyxcbiAgICAgICAgICAgIG06ICdva3RhIG1pbnVodGEnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51aHRhdCcsXG4gICAgICAgICAgICBoOiAnb2t0YSBkaWltbXUnLFxuICAgICAgICAgICAgaGg6ICclZCBkaWltbXV0JyxcbiAgICAgICAgICAgIGQ6ICdva3RhIGJlYWl2aScsXG4gICAgICAgICAgICBkZDogJyVkIGJlYWl2dml0JyxcbiAgICAgICAgICAgIE06ICdva3RhIG3DoW5udScsXG4gICAgICAgICAgICBNTTogJyVkIG3DoW51dCcsXG4gICAgICAgICAgICB5OiAnb2t0YSBqYWhraScsXG4gICAgICAgICAgICB5eTogJyVkIGphZ2l0JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTaW5oYWxlc2UgW3NpXVxuLy8hIGF1dGhvciA6IFNhbXBhdGggU2l0aW5hbWFsdXdhIDogaHR0cHM6Ly9naXRodWIuY29tL3NhbXBhdGhzcmlzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICAvKmpzaGludCAtVzEwMCovXG4gICAgdmFyIHNpID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2knLCB7XG4gICAgICAgIG1vbnRoczogJ+C2ouC2seC3gOC3j+C2u+C3kl/gtrTgt5ngtrbgtrvgt4Dgt4/gtrvgt5Jf4La44LeP4La74LeK4Lat4LeUX+C2heC2tOC3iuKAjeC2u+C3muC2veC3il/gtrjgt5Dgtrrgt5Jf4Lai4LeW4Lax4LeSX+C2ouC3luC2veC3kl/gtoXgtpzgt53gt4Pgt4rgtq3gt5Rf4LeD4LeQ4La04LeK4Lat4LeQ4La44LeK4La24La74LeKX+C2lOC2muC3iuC2reC3neC2tuC2u+C3il/gtrHgt5zgt4Dgt5Dgtrjgt4rgtrbgtrvgt4pf4Lav4LeZ4LeD4LeQ4La44LeK4La24La74LeKJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+C2ouC2sV/gtrTgt5ngtrZf4La44LeP4La74LeKX+C2heC2tOC3il/gtrjgt5Dgtrrgt5Jf4Lai4LeW4Lax4LeSX+C2ouC3luC2veC3kl/gtoXgtpzgt51f4LeD4LeQ4La04LeKX+C2lOC2muC3il/gtrHgt5zgt4Dgt5Bf4Lav4LeZ4LeD4LeQJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+C2ieC2u+C3kuC2r+C3j1/gt4PgtrPgt5Tgtq/gt49f4LaF4Laf4LeE4La74LeU4LeA4LeP4Lav4LePX+C2tuC2r+C3j+C2r+C3j1/gtrbgt4rigI3gtrvgt4Tgt4Pgt4rgtrTgtq3gt5LgtrHgt4rgtq/gt49f4LeD4LeS4Laa4LeU4La74LeP4Lav4LePX+C3g+C3meC2seC3g+C3lOC2u+C3j+C2r+C3jycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+C2ieC2u+C3kl/gt4PgtrPgt5Rf4LaF4LafX+C2tuC2r+C3j1/gtrbgt4rigI3gtrvgt4Rf4LeD4LeS4Laa4LeUX+C3g+C3meC2sScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgtolf4LeDX+C2hV/gtrZf4La24LeK4oCN4La7X+C3g+C3kl/gt4Pgt5knLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnYSBoOm1tJyxcbiAgICAgICAgICAgIExUUzogJ2EgaDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVkgTU1NTSBEJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkgTU1NTSBELCBhIGg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVkgTU1NTSBEIFvgt4Dgt5DgtrHgt5JdIGRkZGQsIGEgaDptbTpzcycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+C2heC2r10gTFRb4LanXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C3hOC3meC2p10gTFRb4LanXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFRb4LanXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C2iuC2uuC3ml0gTFRb4LanXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgtrTgt4Pgt5Tgtpzgt5LgtrpdIGRkZGQgTFRb4LanXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz4Laa4LeS4Lax4LeKJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+C2muC2pyDgtrTgt5ngtrsnLFxuICAgICAgICAgICAgczogJ+C2reC2reC3iuC2tOC2uyDgtprgt5Lgt4Tgt5LgtrTgtronLFxuICAgICAgICAgICAgc3M6ICfgtq3gtq3gt4rgtrTgtrsgJWQnLFxuICAgICAgICAgICAgbTogJ+C2uOC3kuC2seC3kuC2reC3iuC2reC3lOC3gCcsXG4gICAgICAgICAgICBtbTogJ+C2uOC3kuC2seC3kuC2reC3iuC2reC3lCAlZCcsXG4gICAgICAgICAgICBoOiAn4La04LeQ4La6JyxcbiAgICAgICAgICAgIGhoOiAn4La04LeQ4La6ICVkJyxcbiAgICAgICAgICAgIGQ6ICfgtq/gt5LgtrHgtronLFxuICAgICAgICAgICAgZGQ6ICfgtq/gt5LgtrEgJWQnLFxuICAgICAgICAgICAgTTogJ+C2uOC3j+C3g+C2uicsXG4gICAgICAgICAgICBNTTogJ+C2uOC3j+C3gyAlZCcsXG4gICAgICAgICAgICB5OiAn4LeA4LeD4La7JyxcbiAgICAgICAgICAgIHl5OiAn4LeA4LeD4La7ICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9IOC3gOC3kOC2seC3ki8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnIOC3gOC3kOC2seC3kic7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gtrTgt5ngtrsg4LeA4La74LeUfOC2tOC3g+C3iiDgt4Dgtrvgt5R84La04LeZLuC3gHzgtrQu4LeALi8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4La0LuC3gC4nIHx8IGlucHV0ID09PSAn4La04LeD4LeKIOC3gOC2u+C3lCc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAn4La0LuC3gC4nIDogJ+C2tOC3g+C3iiDgt4Dgtrvgt5QnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfgtrTgt5ku4LeALicgOiAn4La04LeZ4La7IOC3gOC2u+C3lCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2xvdmFrIFtza11cbi8vISBhdXRob3IgOiBNYXJ0aW4gTWlua2EgOiBodHRwczovL2dpdGh1Yi5jb20vazJzXG4vLyEgYmFzZWQgb24gd29yayBvZiBwZXRyYmVsYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9wZXRyYmVsYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9ICdqYW51w6FyX2ZlYnJ1w6FyX21hcmVjX2FwcsOtbF9tw6FqX2rDum5fasO6bF9hdWd1c3Rfc2VwdGVtYmVyX29rdMOzYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydCA9ICdqYW5fZmViX21hcl9hcHJfbcOhal9qw7puX2rDumxfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBwbHVyYWwobikge1xuICAgICAgICByZXR1cm4gbiA+IDEgJiYgbiA8IDU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOiAvLyBhIGZldyBzZWNvbmRzIC8gaW4gYSBmZXcgc2Vjb25kcyAvIGEgZmV3IHNlY29uZHMgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAncMOhciBzZWvDum5kJyA6ICdww6FyIHNla3VuZGFtaSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6IC8vIDkgc2Vjb25kcyAvIGluIDkgc2Vjb25kcyAvIDkgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Nla3VuZHknIDogJ3Nla8O6bmQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ3Nla3VuZGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbSc6IC8vIGEgbWludXRlIC8gaW4gYSBtaW51dGUgLyBhIG1pbnV0ZSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdtaW7DunRhJyA6IGlzRnV0dXJlID8gJ21pbsO6dHUnIDogJ21pbsO6dG91JztcbiAgICAgICAgICAgIGNhc2UgJ21tJzogLy8gOSBtaW51dGVzIC8gaW4gOSBtaW51dGVzIC8gOSBtaW51dGVzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbWluw7p0eScgOiAnbWluw7p0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtaW7DunRhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2gnOiAvLyBhbiBob3VyIC8gaW4gYW4gaG91ciAvIGFuIGhvdXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnaG9kaW5hJyA6IGlzRnV0dXJlID8gJ2hvZGludScgOiAnaG9kaW5vdSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6IC8vIDkgaG91cnMgLyBpbiA5IGhvdXJzIC8gOSBob3VycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2hvZGlueScgOiAnaG9kw61uJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdob2RpbmFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZCc6IC8vIGEgZGF5IC8gaW4gYSBkYXkgLyBhIGRheSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkZcWIJyA6ICdkxYhvbSc7XG4gICAgICAgICAgICBjYXNlICdkZCc6IC8vIDkgZGF5cyAvIGluIDkgZGF5cyAvIDkgZGF5cyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2RuaScgOiAnZG7DrScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnZMWIYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdNJzogLy8gYSBtb250aCAvIGluIGEgbW9udGggLyBhIG1vbnRoIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2lhYycgOiAnbWVzaWFjb20nO1xuICAgICAgICAgICAgY2FzZSAnTU0nOiAvLyA5IG1vbnRocyAvIGluIDkgbW9udGhzIC8gOSBtb250aHMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtZXNpYWNlJyA6ICdtZXNpYWNvdicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbWVzaWFjbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3knOiAvLyBhIHllYXIgLyBpbiBhIHllYXIgLyBhIHllYXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAncm9rJyA6ICdyb2tvbSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6IC8vIDkgeWVhcnMgLyBpbiA5IHllYXJzIC8gOSB5ZWFycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Jva3knIDogJ3Jva292Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdyb2ttaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNrID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2snLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzU2hvcnQsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkZcS+YV9wb25kZWxva191dG9yb2tfc3RyZWRhX8WhdHZydG9rX3BpYXRva19zb2JvdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZV9wb191dF9zdF/FoXRfcGlfc28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdXRfc3RfxaF0X3BpX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkbmVzIG9dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbemFqdHJhIG9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgbmVkZcS+dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHN0cmVkdSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZvIMWhdHZydG9rIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBwaWF0b2sgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHNvYm90dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbdsSNZXJhIG9dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw7ogbmVkZcS+dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDvV0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO6IHN0cmVkdSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDvV0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO6IHNvYm90dSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByZWQgJXMnLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNsb3ZlbmlhbiBbc2xdXG4vLyEgYXV0aG9yIDogUm9iZXJ0IFNlZG92xaFlayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zZWRvdnNla1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlXG4gICAgICAgICAgICAgICAgICAgID8gJ25la2FqIHNla3VuZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnbmVrYWogc2VrdW5kYW1pJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4ID8gJ3Nla3VuZG8nIDogJ3Nla3VuZGknO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3Nla3VuZGknIDogJ3Nla3VuZGFoJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnc2VrdW5kZScgOiAnc2VrdW5kYWgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2VuYSBtaW51dGEnIDogJ2VubyBtaW51dG8nO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggPyAnbWludXRhJyA6ICdtaW51dG8nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21pbnV0aScgOiAnbWludXRhbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtaW51dGUnIDogJ21pbnV0YW1pJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtaW51dCcgOiAnbWludXRhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnZW5hIHVyYScgOiAnZW5vIHVybyc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCA/ICd1cmEnIDogJ3Vybyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAndXJpJyA6ICd1cmFtYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3VyZScgOiAndXJhbWknO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3VyJyA6ICd1cmFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdlbiBkYW4nIDogJ2VuaW0gZG5lbSc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkYW4nIDogJ2RuZW0nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2RuaScgOiAnZG5ldm9tYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZG5pJyA6ICdkbmV2aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdlbiBtZXNlYycgOiAnZW5pbSBtZXNlY2VtJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2VjJyA6ICdtZXNlY2VtJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNlY2EnIDogJ21lc2VjZW1hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWVzZWNlJyA6ICdtZXNlY2knO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2VjZXYnIDogJ21lc2VjaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdlbm8gbGV0bycgOiAnZW5pbSBsZXRvbSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdsZXRvJyA6ICdsZXRvbSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0aScgOiAnbGV0b21hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0YScgOiAnbGV0aSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0JyA6ICdsZXRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NsJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJlY19hcHJpbF9tYWpfanVuaWpfanVsaWpfYXZndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbi5fZmViLl9tYXIuX2Fwci5fbWFqLl9qdW4uX2p1bC5fYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGVsamFfcG9uZWRlbGpla190b3Jla19zcmVkYV/EjWV0cnRla19wZXRla19zb2JvdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdG9yLl9zcmUuX8SNZXQuX3BldC5fc29iLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb190b19zcl/EjWVfcGVfc28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC4gTU0uIFlZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZGFuZXMgb2JdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbanV0cmkgb2JdIExUJyxcblxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gW25lZGVsam9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBbc3JlZG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBbc29ib3RvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gZGRkZCBbb2JdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1t2xI1lcmFqIG9iXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuam9dIFtuZWRlbGpvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJlasWhbmpvXSBbc3JlZG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuam9dIFtzb2JvdG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuamldIGRkZGQgW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnxI1leiAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJlZCAlcycsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2w7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQWxiYW5pYW4gW3NxXVxuLy8hIGF1dGhvciA6IEZsYWvDq3JpbSBJc21hbmkgOiBodHRwczovL2dpdGh1Yi5jb20vZmxha2VyaW1pXG4vLyEgYXV0aG9yIDogTWVuZWxpb24gRWxlbnPDumxlIDogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcbi8vISBhdXRob3IgOiBPZXJkIEN1a2FsbGEgOiBodHRwczovL2dpdGh1Yi5jb20vb2VyZFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHNxID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3EnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbmFyX1Noa3VydF9NYXJzX1ByaWxsX01hal9RZXJzaG9yX0tvcnJpa19HdXNodF9TaHRhdG9yX1RldG9yX07Dq250b3JfRGhqZXRvcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fU2hrX01hcl9QcmlfTWFqX1Flcl9Lb3JfR3VzX1NodF9UZXRfTsOrbl9EaGonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnRSBEaWVsX0UgSMOrbsOrX0UgTWFydMOrX0UgTcOrcmt1csOrX0UgRW5qdGVfRSBQcmVtdGVfRSBTaHR1bsOrJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnRGllX0jDq25fTWFyX03Dq3JfRW5qX1ByZV9TaHQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnRF9IX01hX03Dq19FX1BfU2gnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL1BEfE1ELyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApID09PSAnTSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBob3VycyA8IDEyID8gJ1BEJyA6ICdNRCc7XG4gICAgICAgIH0sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbU290IG7Dq10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tOZXPDq3IgbsOrXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW27Dq10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tEamUgbsOrXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2Uga2FsdWFyIG7Dq10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICduw6sgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIG3DqyBwYXLDqycsXG4gICAgICAgICAgICBzOiAnZGlzYSBzZWtvbmRhJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vrb25kYScsXG4gICAgICAgICAgICBtOiAnbmrDqyBtaW51dMOrJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRhJyxcbiAgICAgICAgICAgIGg6ICduasOrIG9yw6snLFxuICAgICAgICAgICAgaGg6ICclZCBvcsOrJyxcbiAgICAgICAgICAgIGQ6ICduasOrIGRpdMOrJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGl0w6snLFxuICAgICAgICAgICAgTTogJ25qw6sgbXVhaicsXG4gICAgICAgICAgICBNTTogJyVkIG11YWonLFxuICAgICAgICAgICAgeTogJ25qw6sgdml0JyxcbiAgICAgICAgICAgIHl5OiAnJWQgdml0ZScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2VyYmlhbiBbc3JdXG4vLyEgYXV0aG9yIDogTWlsYW4gSmFuYcSNa292acSHPG1pbGFuamFuYWNrb3ZpY0BnbWFpbC5jb20+IDogaHR0cHM6Ly9naXRodWIuY29tL21pbGFuLWpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0cmFuc2xhdG9yID0ge1xuICAgICAgICB3b3Jkczoge1xuICAgICAgICAgICAgLy9EaWZmZXJlbnQgZ3JhbW1hdGljYWwgY2FzZXNcbiAgICAgICAgICAgIHNzOiBbJ3Nla3VuZGEnLCAnc2VrdW5kZScsICdzZWt1bmRpJ10sXG4gICAgICAgICAgICBtOiBbJ2plZGFuIG1pbnV0JywgJ2plZG5lIG1pbnV0ZSddLFxuICAgICAgICAgICAgbW06IFsnbWludXQnLCAnbWludXRlJywgJ21pbnV0YSddLFxuICAgICAgICAgICAgaDogWydqZWRhbiBzYXQnLCAnamVkbm9nIHNhdGEnXSxcbiAgICAgICAgICAgIGhoOiBbJ3NhdCcsICdzYXRhJywgJ3NhdGknXSxcbiAgICAgICAgICAgIGRkOiBbJ2RhbicsICdkYW5hJywgJ2RhbmEnXSxcbiAgICAgICAgICAgIE1NOiBbJ21lc2VjJywgJ21lc2VjYScsICdtZXNlY2knXSxcbiAgICAgICAgICAgIHl5OiBbJ2dvZGluYScsICdnb2RpbmUnLCAnZ29kaW5hJ10sXG4gICAgICAgIH0sXG4gICAgICAgIGNvcnJlY3RHcmFtbWF0aWNhbENhc2U6IGZ1bmN0aW9uIChudW1iZXIsIHdvcmRLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgPT09IDFcbiAgICAgICAgICAgICAgICA/IHdvcmRLZXlbMF1cbiAgICAgICAgICAgICAgICA6IG51bWJlciA+PSAyICYmIG51bWJlciA8PSA0XG4gICAgICAgICAgICAgICAgPyB3b3JkS2V5WzFdXG4gICAgICAgICAgICAgICAgOiB3b3JkS2V5WzJdO1xuICAgICAgICB9LFxuICAgICAgICB0cmFuc2xhdGU6IGZ1bmN0aW9uIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICAgICAgdmFyIHdvcmRLZXkgPSB0cmFuc2xhdG9yLndvcmRzW2tleV07XG4gICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gd29yZEtleVswXSA6IHdvcmRLZXlbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0b3IuY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShudW1iZXIsIHdvcmRLZXkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgdmFyIHNyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3InLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGVsamFfcG9uZWRlbGpha191dG9yYWtfc3JlZGFfxI1ldHZydGFrX3BldGFrX3N1Ym90YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl91dG8uX3NyZS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3NyX8SNZV9wZV9zdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZGFuYXMgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tzdXRyYSB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbbmVkZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3NyZWR1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3Vib3R1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbanXEjWUgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFdlZWtEYXlzID0gW1xuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtuZWRlbGplXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbcG9uZWRlbGprYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3V0b3JrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbc3JlZGVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFvEjWV0dnJ0a2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFtwZXRrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbc3Vib3RlXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RXZWVrRGF5c1t0aGlzLmRheSgpXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwcmUgJXMnLFxuICAgICAgICAgICAgczogJ25la29saWtvIHNla3VuZGknLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICdkYW4nLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ21lc2VjJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNlcmJpYW4gQ3lyaWxsaWMgW3NyLWN5cmxdXG4vLyEgYXV0aG9yIDogTWlsYW4gSmFuYcSNa292acSHPG1pbGFuamFuYWNrb3ZpY0BnbWFpbC5jb20+IDogaHR0cHM6Ly9naXRodWIuY29tL21pbGFuLWpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0cmFuc2xhdG9yID0ge1xuICAgICAgICB3b3Jkczoge1xuICAgICAgICAgICAgLy9EaWZmZXJlbnQgZ3JhbW1hdGljYWwgY2FzZXNcbiAgICAgICAgICAgIHNzOiBbJ9GB0LXQutGD0L3QtNCwJywgJ9GB0LXQutGD0L3QtNC1JywgJ9GB0LXQutGD0L3QtNC4J10sXG4gICAgICAgICAgICBtOiBbJ9GY0LXQtNCw0L0g0LzQuNC90YPRgicsICfRmNC10LTQvdC1INC80LjQvdGD0YLQtSddLFxuICAgICAgICAgICAgbW06IFsn0LzQuNC90YPRgicsICfQvNC40L3Rg9GC0LUnLCAn0LzQuNC90YPRgtCwJ10sXG4gICAgICAgICAgICBoOiBbJ9GY0LXQtNCw0L0g0YHQsNGCJywgJ9GY0LXQtNC90L7QsyDRgdCw0YLQsCddLFxuICAgICAgICAgICAgaGg6IFsn0YHQsNGCJywgJ9GB0LDRgtCwJywgJ9GB0LDRgtC4J10sXG4gICAgICAgICAgICBkZDogWyfQtNCw0L0nLCAn0LTQsNC90LAnLCAn0LTQsNC90LAnXSxcbiAgICAgICAgICAgIE1NOiBbJ9C80LXRgdC10YYnLCAn0LzQtdGB0LXRhtCwJywgJ9C80LXRgdC10YbQuCddLFxuICAgICAgICAgICAgeXk6IFsn0LPQvtC00LjQvdCwJywgJ9Cz0L7QtNC40L3QtScsICfQs9C+0LTQuNC90LAnXSxcbiAgICAgICAgfSxcbiAgICAgICAgY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTogZnVuY3Rpb24gKG51bWJlciwgd29yZEtleSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciA9PT0gMVxuICAgICAgICAgICAgICAgID8gd29yZEtleVswXVxuICAgICAgICAgICAgICAgIDogbnVtYmVyID49IDIgJiYgbnVtYmVyIDw9IDRcbiAgICAgICAgICAgICAgICA/IHdvcmRLZXlbMV1cbiAgICAgICAgICAgICAgICA6IHdvcmRLZXlbMl07XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zbGF0ZTogZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgICAgICB2YXIgd29yZEtleSA9IHRyYW5zbGF0b3Iud29yZHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyB3b3JkS2V5WzBdIDogd29yZEtleVsxXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRvci5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKG51bWJlciwgd29yZEtleSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICB2YXIgc3JDeXJsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3ItY3lybCcsIHtcbiAgICAgICAgbW9udGhzOiAn0ZjQsNC90YPQsNGAX9GE0LXQsdGA0YPQsNGAX9C80LDRgNGCX9Cw0L/RgNC40Ltf0LzQsNGYX9GY0YPQvV/RmNGD0Ltf0LDQstCz0YPRgdGCX9GB0LXQv9GC0LXQvNCx0LDRgF/QvtC60YLQvtCx0LDRgF/QvdC+0LLQtdC80LHQsNGAX9C00LXRhtC10LzQsdCw0YAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0ZjQsNC9Ll/RhNC10LEuX9C80LDRgC5f0LDQv9GALl/QvNCw0Zhf0ZjRg9C9X9GY0YPQu1/QsNCy0LMuX9GB0LXQvy5f0L7QutGCLl/QvdC+0LIuX9C00LXRhi4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn0L3QtdC00LXRmdCwX9C/0L7QvdC10LTQtdGZ0LDQul/Rg9GC0L7RgNCw0Lpf0YHRgNC10LTQsF/Rh9C10YLQstGA0YLQsNC6X9C/0LXRgtCw0Lpf0YHRg9Cx0L7RgtCwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0L3QtdC0Ll/Qv9C+0L0uX9GD0YLQvi5f0YHRgNC1Ll/Rh9C10YIuX9C/0LXRgi5f0YHRg9CxLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQvdC1X9C/0L5f0YPRgl/RgdGAX9GH0LVf0L/QtV/RgdGDJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQtNCw0L3QsNGBINGDXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9GB0YPRgtGA0LAg0YNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9GDXSBb0L3QtdC00LXRmdGDXSBb0YNdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0YNdIFvRgdGA0LXQtNGDXSBb0YNdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0YNdIFvRgdGD0LHQvtGC0YNdIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vRg10gZGRkZCBb0YNdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1vRmNGD0YfQtSDRg10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFdlZWtEYXlzID0gW1xuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQtV0gW9C90LXQtNC10ZnQtV0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C+0LNdIFvQv9C+0L3QtdC00LXRmdC60LBdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQvtCzXSBb0YPRgtC+0YDQutCwXSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70LVdIFvRgdGA0LXQtNC1XSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70L7Qs10gW9GH0LXRgtCy0YDRgtC60LBdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQvtCzXSBb0L/QtdGC0LrQsF0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C1XSBb0YHRg9Cx0L7RgtC1XSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXN0V2Vla0RheXNbdGhpcy5kYXkoKV07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQt9CwICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfQv9GA0LUgJXMnLFxuICAgICAgICAgICAgczogJ9C90LXQutC+0LvQuNC60L4g0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICfQtNCw0L0nLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ9C80LXRgdC10YYnLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ9Cz0L7QtNC40L3RgycsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3JDeXJsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IHNpU3dhdGkgW3NzXVxuLy8hIGF1dGhvciA6IE5pY29sYWkgRGF2aWVzPG1haWxAbmljb2xhaS5pbz4gOiBodHRwczovL2dpdGh1Yi5jb20vbmljb2xhaWRhdmllc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHNzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3MnLCB7XG4gICAgICAgIG1vbnRoczogXCJCaGltYmlkdndhbmVfSW5kbG92YW5hX0luZGxvdidsZW5raHVsdV9NYWJhc2FfSW5raHdla2h3ZXRpX0luaGxhYmFfS2hvbHdhbmVfSW5nY2lfSW55b25pX0ltcGhhbGFfTHdldGlfSW5nb25nb25pXCIuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdCaGlfSW5hX0ludV9NYWJfSW5rX0luaF9LaG9fSWdjX0lueV9JbXBfTHdlX0lnbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdMaXNvbnRmb19VbXNvbWJ1bHVrb19MZXNpYmlsaV9MZXNpdHNhdGZ1X0xlc2luZV9MZXNpaGxhbnVfVW1nY2liZWxvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnTGlzX1VtYl9Mc2JfTGVzX0xzaV9Mc2hfVW1nJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0xpX1VzX0xiX0x0X0xzX0xoX1VnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW05hbXVobGEgbmdhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0t1c2FzYSBuZ2FdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbbmdhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0l0b2xvIG5nYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtsZWxpcGhlbGlsZV0gW25nYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICduZ2EgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3dlbnRla2EgbmdhICVzJyxcbiAgICAgICAgICAgIHM6ICdlbWl6dXp3YW5hIGxvbWNhbmUnLFxuICAgICAgICAgICAgc3M6ICclZCBtenV6d2FuYScsXG4gICAgICAgICAgICBtOiAndW16dXp1JyxcbiAgICAgICAgICAgIG1tOiAnJWQgZW1penV6dScsXG4gICAgICAgICAgICBoOiAnbGlob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgZW1haG9yYScsXG4gICAgICAgICAgICBkOiAnbGlsYW5nYScsXG4gICAgICAgICAgICBkZDogJyVkIGVtYWxhbmdhJyxcbiAgICAgICAgICAgIE06ICdpbnlhbmdhJyxcbiAgICAgICAgICAgIE1NOiAnJWQgdGlueWFuZ2EnLFxuICAgICAgICAgICAgeTogJ3Vtbnlha2EnLFxuICAgICAgICAgICAgeXk6ICclZCBpbWlueWFrYScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9la3VzZW5pfGVtaW5pfGVudHNhbWJhbWF8ZWJ1c3VrdS8sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdla3VzZW5pJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZW1pbmknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlbnRzYW1iYW1hJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlYnVzdWt1JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAnZWt1c2VuaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdlbWluaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnZW50c2FtYmFtYScgfHwgbWVyaWRpZW0gPT09ICdlYnVzdWt1Jykge1xuICAgICAgICAgICAgICAgIGlmIChob3VyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiAnJWQnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3M7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3dlZGlzaCBbc3ZdXG4vLyEgYXV0aG9yIDogSmVucyBBbG0gOiBodHRwczovL2dpdGh1Yi5jb20vdWxtdXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3N2Jywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJpX2ZlYnJ1YXJpX21hcnNfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3RpX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ3PDtm5kYWdfbcOlbmRhZ190aXNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2zDtnJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzw7ZuX23DpW5fdGlzX29uc190b3JfZnJlX2zDtnInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc8O2X23DpV90aV9vbl90b19mcl9sw7YnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICAgICAgbGxsOiAnRCBNTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkIEQgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJZGFnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0ltb3Jnb25dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSWfDpXJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW1DDpV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tJXSBkZGRkW3NdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb20gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2bDtnIgJXMgc2VkYW4nLFxuICAgICAgICAgICAgczogJ27DpWdyYSBzZWt1bmRlcicsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZGVyJyxcbiAgICAgICAgICAgIG06ICdlbiBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXInLFxuICAgICAgICAgICAgaDogJ2VuIHRpbW1lJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGltbWFyJyxcbiAgICAgICAgICAgIGQ6ICdlbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdhcicsXG4gICAgICAgICAgICBNOiAnZW4gbcOlbmFkJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOlbmFkZXInLFxuICAgICAgICAgICAgeTogJ2V0dCDDpXInLFxuICAgICAgICAgICAgeXk6ICclZCDDpXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oXFw6ZXxcXDphKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJzplJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICc6YSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnOmEnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJzplJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnOmUnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFN3YWhpbGkgW3N3XVxuLy8hIGF1dGhvciA6IEZhaGFkIEthc3NpbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWRzZWxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3N3Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hY2hpX0FwcmlsaV9NZWlfSnVuaV9KdWxhaV9BZ29zdGlfU2VwdGVtYmFfT2t0b2JhX05vdmVtYmFfRGVzZW1iYScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfQWdvX1NlcF9Pa3RfTm92X0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdKdW1hcGlsaV9KdW1hdGF0dV9KdW1hbm5lX0p1bWF0YW5vX0FsaGFtaXNpX0lqdW1hYV9KdW1hbW9zaScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0pwbF9KdGF0X0pubmVfSnRhbl9BbGhfSWptX0ptb3MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnSjJfSjNfSjRfSjVfQWxfSWpfSjEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaGg6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2xlbyBzYWFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdba2VzaG8gc2FhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1t3aWtpIGlqYXlvXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2phbmFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3dpa2kgaWxpeW9waXRhXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIGJhYWRheWUnLFxuICAgICAgICAgICAgcGFzdDogJ3Rva2VhICVzJyxcbiAgICAgICAgICAgIHM6ICdoaXZpIHB1bmRlJyxcbiAgICAgICAgICAgIHNzOiAnc2VrdW5kZSAlZCcsXG4gICAgICAgICAgICBtOiAnZGFraWthIG1vamEnLFxuICAgICAgICAgICAgbW06ICdkYWtpa2EgJWQnLFxuICAgICAgICAgICAgaDogJ3NhYSBsaW1vamEnLFxuICAgICAgICAgICAgaGg6ICdtYXNhYSAlZCcsXG4gICAgICAgICAgICBkOiAnc2lrdSBtb2phJyxcbiAgICAgICAgICAgIGRkOiAnc2lrdSAlZCcsXG4gICAgICAgICAgICBNOiAnbXdlemkgbW1vamEnLFxuICAgICAgICAgICAgTU06ICdtaWV6aSAlZCcsXG4gICAgICAgICAgICB5OiAnbXdha2EgbW1vamEnLFxuICAgICAgICAgICAgeXk6ICdtaWFrYSAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUYW1pbCBbdGFdXG4vLyEgYXV0aG9yIDogQXJqdW5rdW1hciBLcmlzaG5hbW9vcnRoeSA6IGh0dHBzOi8vZ2l0aHViLmNvbS90azEyMDQwNFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+CvpycsXG4gICAgICAgICAgICAnMic6ICfgr6gnLFxuICAgICAgICAgICAgJzMnOiAn4K+pJyxcbiAgICAgICAgICAgICc0JzogJ+CvqicsXG4gICAgICAgICAgICAnNSc6ICfgr6snLFxuICAgICAgICAgICAgJzYnOiAn4K+sJyxcbiAgICAgICAgICAgICc3JzogJ+CvrScsXG4gICAgICAgICAgICAnOCc6ICfgr64nLFxuICAgICAgICAgICAgJzknOiAn4K+vJyxcbiAgICAgICAgICAgICcwJzogJ+CvpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgr6cnOiAnMScsXG4gICAgICAgICAgICAn4K+oJzogJzInLFxuICAgICAgICAgICAgJ+CvqSc6ICczJyxcbiAgICAgICAgICAgICfgr6onOiAnNCcsXG4gICAgICAgICAgICAn4K+rJzogJzUnLFxuICAgICAgICAgICAgJ+CvrCc6ICc2JyxcbiAgICAgICAgICAgICfgr60nOiAnNycsXG4gICAgICAgICAgICAn4K+uJzogJzgnLFxuICAgICAgICAgICAgJ+Cvryc6ICc5JyxcbiAgICAgICAgICAgICfgr6YnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgdGEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0YScsIHtcbiAgICAgICAgbW9udGhzOiAn4K6c4K6p4K614K6w4K6/X+CuquCuv+CuquCvjeCusOCuteCusOCuv1/grq7grr7grrDgr43grprgr41f4K6P4K6q4K+N4K6w4K6y4K+NX+CuruCvh1/grpzgr4Lgrqngr41f4K6c4K+C4K6y4K+IX+CuhuCuleCuuOCvjeCun+CvjV/grprgr4bgrqrgr43grp/gr4bgrq7gr43grqrgrrDgr41f4K6F4K6V4K+N4K6f4K+H4K6+4K6q4K6w4K+NX+CuqOCuteCuruCvjeCuquCusOCvjV/grp/grr/grprgrq7gr43grqrgrrDgr40nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4K6c4K6p4K614K6w4K6/X+CuquCuv+CuquCvjeCusOCuteCusOCuv1/grq7grr7grrDgr43grprgr41f4K6P4K6q4K+N4K6w4K6y4K+NX+CuruCvh1/grpzgr4Lgrqngr41f4K6c4K+C4K6y4K+IX+CuhuCuleCuuOCvjeCun+CvjV/grprgr4bgrqrgr43grp/gr4bgrq7gr43grqrgrrDgr41f4K6F4K6V4K+N4K6f4K+H4K6+4K6q4K6w4K+NX+CuqOCuteCuruCvjeCuquCusOCvjV/grp/grr/grprgrq7gr43grqrgrrDgr40nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4K6e4K6+4K6v4K6/4K6x4K+N4K6x4K+B4K6V4K+N4K6V4K6/4K604K6u4K+IX+CupOCuv+CumeCvjeCuleCun+CvjeCuleCuv+CutOCuruCviF/grprgr4bgrrXgr43grrXgrr7grq/gr43grpXgrr/grrTgrq7gr4hf4K6q4K+B4K6k4K6p4K+N4K6V4K6/4K604K6u4K+IX+CuteCuv+Cur+CuvuCutOCuleCvjeCuleCuv+CutOCuruCviF/grrXgr4bgrrPgr43grrPgrr/grpXgr43grpXgrr/grrTgrq7gr4hf4K6a4K6p4K6/4K6V4K+N4K6V4K6/4K604K6u4K+IJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4K6e4K6+4K6v4K6/4K6x4K+BX+CupOCuv+CumeCvjeCuleCus+CvjV/grprgr4bgrrXgr43grrXgrr7grq/gr41f4K6q4K+B4K6k4K6p4K+NX+CuteCuv+Cur+CuvuCutOCuqeCvjV/grrXgr4bgrrPgr43grrPgrr9f4K6a4K6p4K6/Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CunuCuvl/grqTgrr9f4K6a4K+GX+CuquCvgV/grrXgrr9f4K614K+GX+Cumicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+Cuh+CuqeCvjeCuseCvgV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgrqjgrr7grrPgr4hdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgrqjgr4fgrrHgr43grrHgr4FdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CuleCun+CuqOCvjeCupCDgrrXgrr7grrDgrq7gr41dIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4K6H4K6y4K+NJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgrq7gr4Hgrqngr40nLFxuICAgICAgICAgICAgczogJ+CukuCusOCvgSDgrprgrr/grrIg4K614K6/4K6o4K6+4K6f4K6/4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4K614K6/4K6o4K6+4K6f4K6/4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIG06ICfgrpLgrrDgr4Eg4K6o4K6/4K6u4K6/4K6f4K6u4K+NJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4K6o4K6/4K6u4K6/4K6f4K6Z4K+N4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIGg6ICfgrpLgrrDgr4Eg4K6u4K6j4K6/IOCuqOCvh+CusOCuruCvjScsXG4gICAgICAgICAgICBoaDogJyVkIOCuruCuo+CuvyDgrqjgr4fgrrDgrq7gr40nLFxuICAgICAgICAgICAgZDogJ+CukuCusOCvgSDgrqjgrr7grrPgr40nLFxuICAgICAgICAgICAgZGQ6ICclZCDgrqjgrr7grp/gr43grpXgrrPgr40nLFxuICAgICAgICAgICAgTTogJ+CukuCusOCvgSDgrq7grr7grqTgrq7gr40nLFxuICAgICAgICAgICAgTU06ICclZCDgrq7grr7grqTgrpngr43grpXgrrPgr40nLFxuICAgICAgICAgICAgeTogJ+CukuCusOCvgSDgrrXgrrDgr4Hgrp/grq7gr40nLFxuICAgICAgICAgICAgeXk6ICclZCDgrobgrqPgr43grp/gr4HgrpXgrrPgr40nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3grrXgrqTgr4EvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+CuteCupOCvgSc7XG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgr6fgr6jgr6ngr6rgr6vgr6zgr63gr67gr6/gr6ZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIHJlZmVyIGh0dHA6Ly90YS53aWtpcGVkaWEub3JnL3MvMWVyMVxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4K6v4K6+4K6u4K6u4K+NfOCuteCviOCuleCuseCviHzgrpXgrr7grrLgr4h84K6o4K6j4K+N4K6q4K6V4K6y4K+NfOCujuCuseCvjeCuquCuvuCun+CvgXzgrq7grr7grrLgr4gvLFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6v4K6+4K6u4K6u4K+NJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrrXgr4jgrpXgrrHgr4gnOyAvLyDgrrXgr4jgrpXgrrHgr4hcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6V4K6+4K6y4K+IJzsgLy8g4K6V4K6+4K6y4K+IXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuqOCuo+CvjeCuquCuleCusuCvjSc7IC8vIOCuqOCuo+CvjeCuquCuleCusuCvjVxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgro7grrHgr43grqrgrr7grp/gr4EnOyAvLyDgro7grrHgr43grqrgrr7grp/gr4FcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6u4K6+4K6y4K+IJzsgLy8g4K6u4K6+4K6y4K+IXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCur+CuvuCuruCuruCvjSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+Cur+CuvuCuruCuruCvjScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDIgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CuteCviOCuleCuseCviCcgfHwgbWVyaWRpZW0gPT09ICfgrpXgrr7grrLgr4gnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4K6o4K6j4K+N4K6q4K6V4K6y4K+NJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRlbHVndSBbdGVdXG4vLyEgYXV0aG9yIDogS3Jpc2huYSBDaGFpdGFueWEgVGhvdGEgOiBodHRwczovL2dpdGh1Yi5jb20va2N0aG90YVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRlID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGUnLCB7XG4gICAgICAgIG1vbnRoczogJ+CwnOCwqOCwteCwsOCwv1/gsKvgsL/gsKzgsY3gsLDgsLXgsLDgsL9f4LCu4LC+4LCw4LGN4LCa4LC/X+Cwj+CwquCxjeCwsOCwv+CwsuCxjV/gsK7gsYdf4LCc4LGC4LCo4LGNX+CwnOCxgeCwsuCxiF/gsIbgsJfgsLjgsY3gsJ/gsYFf4LC44LGG4LCq4LGN4LCf4LGG4LCC4LCs4LCw4LGNX+CwheCwleCxjeCwn+Cxi+CwrOCwsOCxjV/gsKjgsLXgsILgsKzgsLDgsY1f4LCh4LC/4LC44LGG4LCC4LCs4LCw4LGNJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CwnOCwqC5f4LCr4LC/4LCs4LGN4LCwLl/gsK7gsL7gsLDgsY3gsJrgsL9f4LCP4LCq4LGN4LCw4LC/Ll/gsK7gsYdf4LCc4LGC4LCo4LGNX+CwnOCxgeCwsuCxiF/gsIbgsJcuX+CwuOCxhuCwquCxjS5f4LCF4LCV4LGN4LCf4LGLLl/gsKjgsLUuX+CwoeCwv+CwuOCxhi4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4LCG4LCm4LC/4LC14LC+4LCw4LCCX+CwuOCxi+CwruCwteCwvuCwsOCwgl/gsK7gsILgsJfgsLPgsLXgsL7gsLDgsIJf4LCs4LGB4LCn4LC14LC+4LCw4LCCX+Cwl+CxgeCwsOCxgeCwteCwvuCwsOCwgl/gsLbgsYHgsJXgsY3gsLDgsLXgsL7gsLDgsIJf4LC24LCo4LC/4LC14LC+4LCw4LCCJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4LCG4LCm4LC/X+CwuOCxi+Cwrl/gsK7gsILgsJfgsLNf4LCs4LGB4LCnX+Cwl+CxgeCwsOCxgV/gsLbgsYHgsJXgsY3gsLBf4LC24LCo4LC/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+Cwhl/gsLjgsYtf4LCu4LCCX+CwrOCxgV/gsJfgsYFf4LC24LGBX+Cwticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgsKjgsYfgsKHgsYFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4LCw4LGH4LCq4LGBXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4LCo4LC/4LCo4LGN4LCoXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgsJfgsKRdIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4LCy4LGLJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgsJXgsY3gsLDgsL/gsKTgsIInLFxuICAgICAgICAgICAgczogJ+CwleCxiuCwqOCxjeCwqOCwvyDgsJXgsY3gsLfgsKPgsL7gsLLgsYEnLFxuICAgICAgICAgICAgc3M6ICclZCDgsLjgsYbgsJXgsKjgsY3gsLLgsYEnLFxuICAgICAgICAgICAgbTogJ+CwkuCwlSDgsKjgsL/gsK7gsL/gsLfgsIInLFxuICAgICAgICAgICAgbW06ICclZCDgsKjgsL/gsK7gsL/gsLfgsL7gsLLgsYEnLFxuICAgICAgICAgICAgaDogJ+CwkuCwlSDgsJfgsILgsJ8nLFxuICAgICAgICAgICAgaGg6ICclZCDgsJfgsILgsJ/gsLLgsYEnLFxuICAgICAgICAgICAgZDogJ+CwkuCwlSDgsLDgsYvgsJzgsYEnLFxuICAgICAgICAgICAgZGQ6ICclZCDgsLDgsYvgsJzgsYHgsLLgsYEnLFxuICAgICAgICAgICAgTTogJ+CwkuCwlSDgsKjgsYbgsLInLFxuICAgICAgICAgICAgTU06ICclZCDgsKjgsYbgsLLgsLLgsYEnLFxuICAgICAgICAgICAgeTogJ+CwkuCwlSDgsLjgsILgsLXgsKTgsY3gsLjgsLDgsIInLFxuICAgICAgICAgICAgeXk6ICclZCDgsLjgsILgsLXgsKTgsY3gsLjgsLDgsL7gsLLgsYEnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3gsLUvLFxuICAgICAgICBvcmRpbmFsOiAnJWTgsLUnLFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LCw4LC+4LCk4LGN4LCw4LC/fOCwieCwpuCwr+CwgnzgsK7gsKfgsY3gsK/gsL7gsLngsY3gsKjgsIJ84LC44LC+4LCv4LCC4LCk4LGN4LCw4LCCLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4LCw4LC+4LCk4LGN4LCw4LC/Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4LCJ4LCm4LCv4LCCJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CwruCwp+CxjeCwr+CwvuCwueCxjeCwqOCwgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4LC44LC+4LCv4LCC4LCk4LGN4LCw4LCCJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwsOCwvuCwpOCxjeCwsOCwvyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LCJ4LCm4LCv4LCCJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsK7gsKfgsY3gsK/gsL7gsLngsY3gsKjgsIInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwuOCwvuCwr+CwguCwpOCxjeCwsOCwgic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LCw4LC+4LCk4LGN4LCw4LC/JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRldHVuIERpbGkgKEVhc3QgVGltb3IpIFt0ZXRdXG4vLyEgYXV0aG9yIDogSm9zaHVhIEJyb29rcyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb3NoYnJvb2tzXG4vLyEgYXV0aG9yIDogT25vcmlvIERlIEouIEFmb25zbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJvYm9cbi8vISBhdXRob3IgOiBTb25pYSBTaW1vZXMgOiBodHRwczovL2dpdGh1Yi5jb20vc29uaWFzaW1vZXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0ZXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0ZXQnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbmVpcnVfRmV2ZXJlaXJ1X01hcnN1X0FicmlsX01haXVfSnXDsXVfSnVsbHVfQWd1c3R1X1NldGVtYnJ1X091dHVicnVfTm92ZW1icnVfRGV6ZW1icnUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0Zldl9NYXJfQWJyX01haV9KdW5fSnVsX0Fnb19TZXRfT3V0X05vdl9EZXonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnRG9taW5ndV9TZWd1bmRhX1RlcnNhX0t1YXJ0YV9LaW50YV9TZXN0YV9TYWJhZHUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdEb21fU2VnX1RlcnNfS3VhX0tpbnRfU2VzdF9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnRG9fU2VnX1RlX0t1X0tpX1Nlc19TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tPaGluIGloYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBYmFuIGloYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtpaGFdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSG9yaXNlaWsgaWhhXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3NlbWFuYSBrb3R1a10gW2loYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpaGEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGxpdWJhJyxcbiAgICAgICAgICAgIHM6ICdzZWd1bmR1IGJhbHVuJyxcbiAgICAgICAgICAgIHNzOiAnc2VndW5kdSAlZCcsXG4gICAgICAgICAgICBtOiAnbWludXR1IGlkYScsXG4gICAgICAgICAgICBtbTogJ21pbnV0dSAlZCcsXG4gICAgICAgICAgICBoOiAnb3JhcyBpZGEnLFxuICAgICAgICAgICAgaGg6ICdvcmFzICVkJyxcbiAgICAgICAgICAgIGQ6ICdsb3JvbiBpZGEnLFxuICAgICAgICAgICAgZGQ6ICdsb3JvbiAlZCcsXG4gICAgICAgICAgICBNOiAnZnVsYW4gaWRhJyxcbiAgICAgICAgICAgIE1NOiAnZnVsYW4gJWQnLFxuICAgICAgICAgICAgeTogJ3RpbmFuIGlkYScsXG4gICAgICAgICAgICB5eTogJ3RpbmFuICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRldDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUYWppayBbdGddXG4vLyEgYXV0aG9yIDogT3JpZiBOLiBKci4gOiBodHRwczovL2dpdGh1Yi5jb20vb3JpZi1qclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAwOiAnLdGD0LwnLFxuICAgICAgICAxOiAnLdGD0LwnLFxuICAgICAgICAyOiAnLdGO0LwnLFxuICAgICAgICAzOiAnLdGO0LwnLFxuICAgICAgICA0OiAnLdGD0LwnLFxuICAgICAgICA1OiAnLdGD0LwnLFxuICAgICAgICA2OiAnLdGD0LwnLFxuICAgICAgICA3OiAnLdGD0LwnLFxuICAgICAgICA4OiAnLdGD0LwnLFxuICAgICAgICA5OiAnLdGD0LwnLFxuICAgICAgICAxMDogJy3Rg9C8JyxcbiAgICAgICAgMTI6ICct0YPQvCcsXG4gICAgICAgIDEzOiAnLdGD0LwnLFxuICAgICAgICAyMDogJy3Rg9C8JyxcbiAgICAgICAgMzA6ICct0Y7QvCcsXG4gICAgICAgIDQwOiAnLdGD0LwnLFxuICAgICAgICA1MDogJy3Rg9C8JyxcbiAgICAgICAgNjA6ICct0YPQvCcsXG4gICAgICAgIDcwOiAnLdGD0LwnLFxuICAgICAgICA4MDogJy3Rg9C8JyxcbiAgICAgICAgOTA6ICct0YPQvCcsXG4gICAgICAgIDEwMDogJy3Rg9C8JyxcbiAgICB9O1xuXG4gICAgdmFyIHRnID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGcnLCB7XG4gICAgICAgIG1vbnRoczogJ9GP0L3QstCw0YBf0YTQtdCy0YDQsNC7X9C80LDRgNGCX9Cw0L/RgNC10Ltf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCz0YPRgdGCX9GB0LXQvdGC0Y/QsdGAX9C+0LrRgtGP0LHRgF/QvdC+0Y/QsdGAX9C00LXQutCw0LHRgCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRj9C90LJf0YTQtdCyX9C80LDRgF/QsNC/0YBf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCzX9GB0LXQvV/QvtC60YJf0L3QvtGPX9C00LXQuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfRj9C60YjQsNC90LHQtV/QtNGD0YjQsNC90LHQtV/RgdC10YjQsNC90LHQtV/Rh9C+0YDRiNCw0L3QsdC1X9C/0LDQvdK30YjQsNC90LHQtV/St9GD0LzRitCwX9GI0LDQvdCx0LUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfRj9GI0LFf0LTRiNCxX9GB0YjQsV/Rh9GI0LFf0L/RiNCxX9K30YPQvF/RiNC90LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0Y/RiF/QtNGIX9GB0Yhf0YfRiF/Qv9GIX9K30Lxf0YjQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQmNC80YDTr9C3INGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0J/QsNCz0L7SsyDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9CU0LjRgNOv0Lcg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkW9C4XSBb0rPQsNGE0YLQsNC4INC+0Y/QvdC00LAg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkW9C4XSBb0rPQsNGE0YLQsNC4INCz0YPQt9Cw0YjRgtCwINGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0LHQsNGK0LTQuCAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0L/QtdGIJyxcbiAgICAgICAgICAgIHM6ICfRj9C60YfQsNC90LQg0YHQvtC90LjRjycsXG4gICAgICAgICAgICBtOiAn0Y/QuiDQtNCw0pvQuNKb0LAnLFxuICAgICAgICAgICAgbW06ICclZCDQtNCw0pvQuNKb0LAnLFxuICAgICAgICAgICAgaDogJ9GP0Log0YHQvtCw0YInLFxuICAgICAgICAgICAgaGg6ICclZCDRgdC+0LDRgicsXG4gICAgICAgICAgICBkOiAn0Y/QuiDRgNOv0LcnLFxuICAgICAgICAgICAgZGQ6ICclZCDRgNOv0LcnLFxuICAgICAgICAgICAgTTogJ9GP0Log0LzQvtKzJyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LzQvtKzJyxcbiAgICAgICAgICAgIHk6ICfRj9C6INGB0L7QuycsXG4gICAgICAgICAgICB5eTogJyVkINGB0L7QuycsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/RiNCw0LF80YHRg9Cx0rN80YDTr9C3fNCx0LXQs9C+0rMvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfRiNCw0LEnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfRgdGD0LHSsycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfRgNOv0LcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ9Cx0LXQs9C+0rMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YjQsNCxJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRgdGD0LHSsyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YDTr9C3JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQsdC10LPQvtKzJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRiNCw0LEnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNGD0Lx80Y7QvCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGIgPSBudW1iZXIgPj0gMTAwID8gMTAwIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbbnVtYmVyXSB8fCBzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDF0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUaGFpIFt0aF1cbi8vISBhdXRob3IgOiBLcmlkc2FkYSBUaGFuYWJ1bHBvbmcgOiBodHRwczovL2dpdGh1Yi5jb20vc2lyblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRoID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGgnLCB7XG4gICAgICAgIG1vbnRoczogJ+C4oeC4geC4o+C4suC4hOC4oV/guIHguLjguKHguKDguLLguJ7guLHguJnguJjguYxf4Lih4Li14LiZ4Liy4LiE4LihX+C5gOC4oeC4qeC4suC4ouC4mV/guJ7guKTguKnguKDguLLguITguKFf4Lih4Li04LiW4Li44LiZ4Liy4Lii4LiZX+C4geC4o+C4geC4juC4suC4hOC4oV/guKrguLTguIfguKvguLLguITguKFf4LiB4Lix4LiZ4Lii4Liy4Lii4LiZX+C4leC4uOC4peC4suC4hOC4oV/guJ7guKTguKjguIjguLTguIHguLLguKLguJlf4LiY4Lix4LiZ4Lin4Liy4LiE4LihJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+C4oS7guIQuX+C4gS7guJ4uX+C4oeC4tS7guIQuX+C5gOC4oS7guKIuX+C4ni7guIQuX+C4oeC4tC7guKIuX+C4gS7guIQuX+C4qi7guIQuX+C4gS7guKIuX+C4lS7guIQuX+C4ni7guKIuX+C4mC7guIQuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+C4reC4suC4l+C4tOC4leC4ouC5jF/guIjguLHguJnguJfguKPguYxf4Lit4Lix4LiH4LiE4Liy4LijX+C4nuC4uOC4mF/guJ7guKTguKvguLHguKrguJrguJTguLVf4Lio4Li44LiB4Lij4LmMX+C5gOC4quC4suC4o+C5jCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+C4reC4suC4l+C4tOC4leC4ouC5jF/guIjguLHguJnguJfguKPguYxf4Lit4Lix4LiH4LiE4Liy4LijX+C4nuC4uOC4mF/guJ7guKTguKvguLHguKpf4Lio4Li44LiB4Lij4LmMX+C5gOC4quC4suC4o+C5jCcuc3BsaXQoJ18nKSwgLy8geWVzLCB0aHJlZSBjaGFyYWN0ZXJzIGRpZmZlcmVuY2VcbiAgICAgICAgd2Vla2RheXNNaW46ICfguK3guLIuX+C4iC5f4LitLl/guJ4uX+C4nuC4pC5f4LioLl/guKouJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIOC5gOC4p+C4peC4siBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICfguKfguLHguJlkZGRk4LiX4Li14LmIIEQgTU1NTSBZWVlZIOC5gOC4p+C4peC4siBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C4geC5iOC4reC4meC5gOC4l+C4teC5iOC4ouC4h3zguKvguKXguLHguIfguYDguJfguLXguYjguKLguIcvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+C4q+C4peC4seC4h+C5gOC4l+C4teC5iOC4ouC4hyc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfguIHguYjguK3guJnguYDguJfguLXguYjguKLguIcnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C4q+C4peC4seC4h+C5gOC4l+C4teC5iOC4ouC4hyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+C4p+C4seC4meC4meC4teC5iSDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4Lie4Lij4Li44LmI4LiH4LiZ4Li14LmJIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkW+C4q+C4meC5ieC4siDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4LmA4Lih4Li34LmI4Lit4Lin4Liy4LiZ4LiZ4Li14LmJIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Lin4Lix4LiZXWRkZGRb4LiX4Li14LmI4LmB4Lil4LmJ4LinIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfguK3guLXguIEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVz4LiX4Li14LmI4LmB4Lil4LmJ4LinJyxcbiAgICAgICAgICAgIHM6ICfguYTguKHguYjguIHguLXguYjguKfguLTguJnguLLguJfguLUnLFxuICAgICAgICAgICAgc3M6ICclZCDguKfguLTguJnguLLguJfguLUnLFxuICAgICAgICAgICAgbTogJzEg4LiZ4Liy4LiX4Li1JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LiZ4Liy4LiX4Li1JyxcbiAgICAgICAgICAgIGg6ICcxIOC4iuC4seC5iOC4p+C5guC4oeC4hycsXG4gICAgICAgICAgICBoaDogJyVkIOC4iuC4seC5iOC4p+C5guC4oeC4hycsXG4gICAgICAgICAgICBkOiAnMSDguKfguLHguJknLFxuICAgICAgICAgICAgZGQ6ICclZCDguKfguLHguJknLFxuICAgICAgICAgICAgTTogJzEg4LmA4LiU4Li34Lit4LiZJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LmA4LiU4Li34Lit4LiZJyxcbiAgICAgICAgICAgIHk6ICcxIOC4m+C4tScsXG4gICAgICAgICAgICB5eTogJyVkIOC4m+C4tScsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGg7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVHVya21lbiBbdHJrXVxuLy8hIGF1dGhvciA6IEF0YW15cmF0IEFiZHlyYWhtYW5vdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hdGFteXJhdGFiZHlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMTogXCInaW5qaVwiLFxuICAgICAgICA1OiBcIidpbmppXCIsXG4gICAgICAgIDg6IFwiJ2luamlcIixcbiAgICAgICAgNzA6IFwiJ2luamlcIixcbiAgICAgICAgODA6IFwiJ2luamlcIixcbiAgICAgICAgMjogXCInbmppXCIsXG4gICAgICAgIDc6IFwiJ25qaVwiLFxuICAgICAgICAyMDogXCInbmppXCIsXG4gICAgICAgIDUwOiBcIiduamlcIixcbiAgICAgICAgMzogXCInw7xuamlcIixcbiAgICAgICAgNDogXCInw7xuamlcIixcbiAgICAgICAgMTAwOiBcIifDvG5qaVwiLFxuICAgICAgICA2OiBcIiduanlcIixcbiAgICAgICAgOTogXCIndW5qeVwiLFxuICAgICAgICAxMDogXCIndW5qeVwiLFxuICAgICAgICAzMDogXCIndW5qeVwiLFxuICAgICAgICA2MDogXCIneW5qeVwiLFxuICAgICAgICA5MDogXCIneW5qeVwiLFxuICAgIH07XG5cbiAgICB2YXIgdGsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0aycsIHtcbiAgICAgICAgbW9udGhzOiAnw51hbndhcl9GZXdyYWxfTWFydF9BcHJlbF9NYcO9X0nDvXVuX0nDvXVsX0F3Z3VzdF9TZW50w71hYnJfT2t0w71hYnJfTm/DvWFicl9EZWthYnInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnw51hbl9GZXdfTWFyX0Fwcl9NYcO9X0nDvW5fScO9bF9Bd2dfU2VuX09rdF9Ob8O9X0Rlaycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfDnWVrxZ9lbmJlX0R1xZ9lbmJlX1NpxZ9lbmJlX8OHYXLFn2VuYmVfUGVuxZ9lbmJlX0FubmFfxZ5lbmJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnw51la19EdcWfX1NpxZ9fw4dhcl9QZW5fQW5uX8WeZW4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnw51rX0TFn19TxZ9fw4dyX1BuX0FuX8Webicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tidWfDvG4gc2FnYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbZXJ0aXIgc2FnYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW2luZGlraV0gZGRkZCBbc2FnYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZMO8w71uXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tnZcOnZW5dIGRkZGQgW3NhZ2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHNvxYgnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMO2xYgnLFxuICAgICAgICAgICAgczogJ2Jpcm7DpMOnZSBzZWt1bnQnLFxuICAgICAgICAgICAgbTogJ2JpciBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0JyxcbiAgICAgICAgICAgIGg6ICdiaXIgc2FnYXQnLFxuICAgICAgICAgICAgaGg6ICclZCBzYWdhdCcsXG4gICAgICAgICAgICBkOiAnYmlyIGfDvG4nLFxuICAgICAgICAgICAgZGQ6ICclZCBnw7xuJyxcbiAgICAgICAgICAgIE06ICdiaXIgYcO9JyxcbiAgICAgICAgICAgIE1NOiAnJWQgYcO9JyxcbiAgICAgICAgICAgIHk6ICdiaXIgw715bCcsXG4gICAgICAgICAgICB5eTogJyVkIMO9eWwnLFxuICAgICAgICB9LFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRG8nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0REJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yIHplcm9cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBcIid1bmp5XCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAobnVtYmVyICUgMTAwKSAtIGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0gfHwgc3VmZml4ZXNbY10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGFnYWxvZyAoUGhpbGlwcGluZXMpIFt0bC1waF1cbi8vISBhdXRob3IgOiBEYW4gSGFnbWFuIDogaHR0cHM6Ly9naXRodWIuY29tL2hhZ21hbmRhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRsUGggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0bC1waCcsIHtcbiAgICAgICAgbW9udGhzOiAnRW5lcm9fUGVicmVyb19NYXJzb19BYnJpbF9NYXlvX0h1bnlvX0h1bHlvX0Fnb3N0b19TZXR5ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0VuZV9QZWJfTWFyX0Ficl9NYXlfSHVuX0h1bF9BZ29fU2V0X09rdF9Ob2JfRGlzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0xpbmdnb19MdW5lc19NYXJ0ZXNfTWl5ZXJrdWxlc19IdXdlYmVzX0JpeWVybmVzX1NhYmFkbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0xpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdMaV9MdV9NYV9NaV9IdV9CaV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdNTS9EL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnTU1NTSBELCBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIERELCBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdMVCBbbmdheW9uZyBhcmF3XScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0J1a2FzIG5nXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ0xUIFtzYSBzdXN1bm9kIG5hXSBkZGRkJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdMVCBba2FoYXBvbl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMVCBbbm9vbmcgbmFrYXJhYW5nXSBkZGRkJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnc2EgbG9vYiBuZyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYW5nIG5ha2FsaXBhcycsXG4gICAgICAgICAgICBzOiAnaWxhbmcgc2VndW5kbycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG8nLFxuICAgICAgICAgICAgbTogJ2lzYW5nIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0bycsXG4gICAgICAgICAgICBoOiAnaXNhbmcgb3JhcycsXG4gICAgICAgICAgICBoaDogJyVkIG9yYXMnLFxuICAgICAgICAgICAgZDogJ2lzYW5nIGFyYXcnLFxuICAgICAgICAgICAgZGQ6ICclZCBhcmF3JyxcbiAgICAgICAgICAgIE06ICdpc2FuZyBidXdhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1d2FuJyxcbiAgICAgICAgICAgIHk6ICdpc2FuZyB0YW9uJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFvbicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0bFBoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEtsaW5nb24gW3RsaF1cbi8vISBhdXRob3IgOiBEb21pbmlrYSBLcnVrIDogaHR0cHM6Ly9naXRodWIuY29tL2FtYXJhbnRocm9zZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG51bWJlcnNOb3VucyA9ICdwYWdoX3dh4oCZX2NoYeKAmV93ZWpfbG9TX3ZhZ2hfamF2X1NvY2hfY2hvcmdoX0h1dCcuc3BsaXQoJ18nKTtcblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZUZ1dHVyZShvdXRwdXQpIHtcbiAgICAgICAgdmFyIHRpbWUgPSBvdXRwdXQ7XG4gICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgb3V0cHV0LmluZGV4T2YoJ2phaicpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnbGVTJ1xuICAgICAgICAgICAgICAgIDogb3V0cHV0LmluZGV4T2YoJ2phcicpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnd2FRJ1xuICAgICAgICAgICAgICAgIDogb3V0cHV0LmluZGV4T2YoJ0RJUycpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnbmVtJ1xuICAgICAgICAgICAgICAgIDogdGltZSArICcgcElxJztcbiAgICAgICAgcmV0dXJuIHRpbWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlUGFzdChvdXRwdXQpIHtcbiAgICAgICAgdmFyIHRpbWUgPSBvdXRwdXQ7XG4gICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgb3V0cHV0LmluZGV4T2YoJ2phaicpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnSHXigJknXG4gICAgICAgICAgICAgICAgOiBvdXRwdXQuaW5kZXhPZignamFyJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICd3ZW4nXG4gICAgICAgICAgICAgICAgOiBvdXRwdXQuaW5kZXhPZignRElTJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICdiZW4nXG4gICAgICAgICAgICAgICAgOiB0aW1lICsgJyByZXQnO1xuICAgICAgICByZXR1cm4gdGltZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBudW1iZXJOb3VuID0gbnVtYmVyQXNOb3VuKG51bWJlcik7XG4gICAgICAgIHN3aXRjaCAoc3RyaW5nKSB7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIGx1cCc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIHR1cCc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIHJlcCc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIGphaic7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIGphcic7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck5vdW4gKyAnIERJUyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBudW1iZXJBc05vdW4obnVtYmVyKSB7XG4gICAgICAgIHZhciBodW5kcmVkID0gTWF0aC5mbG9vcigobnVtYmVyICUgMTAwMCkgLyAxMDApLFxuICAgICAgICAgICAgdGVuID0gTWF0aC5mbG9vcigobnVtYmVyICUgMTAwKSAvIDEwKSxcbiAgICAgICAgICAgIG9uZSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgd29yZCA9ICcnO1xuICAgICAgICBpZiAoaHVuZHJlZCA+IDApIHtcbiAgICAgICAgICAgIHdvcmQgKz0gbnVtYmVyc05vdW5zW2h1bmRyZWRdICsgJ3ZhdGxoJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGVuID4gMCkge1xuICAgICAgICAgICAgd29yZCArPSAod29yZCAhPT0gJycgPyAnICcgOiAnJykgKyBudW1iZXJzTm91bnNbdGVuXSArICdtYUgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvbmUgPiAwKSB7XG4gICAgICAgICAgICB3b3JkICs9ICh3b3JkICE9PSAnJyA/ICcgJyA6ICcnKSArIG51bWJlcnNOb3Vuc1tvbmVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB3b3JkID09PSAnJyA/ICdwYWdoJyA6IHdvcmQ7XG4gICAgfVxuXG4gICAgdmFyIHRsaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RsaCcsIHtcbiAgICAgICAgbW9udGhzOiAndGVyYeKAmSBqYXIgd2HigJlfdGVyYeKAmSBqYXIgY2hh4oCZX3RlcmHigJkgamFyIHdlal90ZXJh4oCZIGphciBsb1NfdGVyYeKAmSBqYXIgdmFnaF90ZXJh4oCZIGphciBqYXZfdGVyYeKAmSBqYXIgU29jaF90ZXJh4oCZIGphciBjaG9yZ2hfdGVyYeKAmSBqYXIgSHV0X3RlcmHigJkgamFyIHdh4oCZbWFIX3RlcmHigJkgamFyIHdh4oCZbWFIIHdh4oCZX3RlcmHigJkgamFyIHdh4oCZbWFIIGNoYeKAmScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYXIgd2HigJlfamFyIGNoYeKAmV9qYXIgd2VqX2phciBsb1NfamFyIHZhZ2hfamFyIGphdl9qYXIgU29jaF9qYXIgY2hvcmdoX2phciBIdXRfamFyIHdh4oCZbWFIX2phciB3YeKAmW1hSCB3YeKAmV9qYXIgd2HigJltYUggY2hh4oCZJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2xvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbG9qbUl0amFqX0RhU2phal9wb3ZqYWpfZ2hJdGxoamFqX2xvZ2hqYWpfYnVxamFqX2doSW5qYWonLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbG9qbUl0amFqX0RhU2phal9wb3ZqYWpfZ2hJdGxoamFqX2xvZ2hqYWpfYnVxamFqX2doSW5qYWonLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbRGFIamFqXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3dh4oCZbGVTXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ0xMTCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW3dh4oCZSHXigJldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnTExMJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiB0cmFuc2xhdGVGdXR1cmUsXG4gICAgICAgICAgICBwYXN0OiB0cmFuc2xhdGVQYXN0LFxuICAgICAgICAgICAgczogJ3B1UyBsdXAnLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06ICd3YeKAmSB0dXAnLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6ICd3YeKAmSByZXAnLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICd3YeKAmSBqYWonLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICd3YeKAmSBqYXInLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICd3YeKAmSBESVMnLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0bGg7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVHVya2lzaCBbdHJdXG4vLyEgYXV0aG9ycyA6IEVyaGFuIEd1bmRvZ2FuIDogaHR0cHM6Ly9naXRodWIuY29tL2VyaGFuZ3VuZG9nYW4sXG4vLyEgICAgICAgICAgIEJ1cmFrIFlpxJ9pdCBLYXlhOiBodHRwczovL2dpdGh1Yi5jb20vQllLXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDE6IFwiJ2luY2lcIixcbiAgICAgICAgNTogXCInaW5jaVwiLFxuICAgICAgICA4OiBcIidpbmNpXCIsXG4gICAgICAgIDcwOiBcIidpbmNpXCIsXG4gICAgICAgIDgwOiBcIidpbmNpXCIsXG4gICAgICAgIDI6IFwiJ25jaVwiLFxuICAgICAgICA3OiBcIiduY2lcIixcbiAgICAgICAgMjA6IFwiJ25jaVwiLFxuICAgICAgICA1MDogXCInbmNpXCIsXG4gICAgICAgIDM6IFwiJ8O8bmPDvFwiLFxuICAgICAgICA0OiBcIifDvG5jw7xcIixcbiAgICAgICAgMTAwOiBcIifDvG5jw7xcIixcbiAgICAgICAgNjogXCInbmPEsVwiLFxuICAgICAgICA5OiBcIid1bmN1XCIsXG4gICAgICAgIDEwOiBcIid1bmN1XCIsXG4gICAgICAgIDMwOiBcIid1bmN1XCIsXG4gICAgICAgIDYwOiBcIifEsW5jxLFcIixcbiAgICAgICAgOTA6IFwiJ8SxbmPEsVwiLFxuICAgIH07XG5cbiAgICB2YXIgdHIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0cicsIHtcbiAgICAgICAgbW9udGhzOiAnT2Nha1/FnnViYXRfTWFydF9OaXNhbl9NYXnEsXNfSGF6aXJhbl9UZW1tdXpfQcSfdXN0b3NfRXlsw7xsX0VraW1fS2FzxLFtX0FyYWzEsWsnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnT2NhX8WedWJfTWFyX05pc19NYXlfSGF6X1RlbV9BxJ91X0V5bF9Fa2lfS2FzX0FyYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdQYXphcl9QYXphcnRlc2lfU2FsxLFfw4dhcsWfYW1iYV9QZXLFn2VtYmVfQ3VtYV9DdW1hcnRlc2knLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdQYXpfUHRzX1NhbF/Dh2FyX1Blcl9DdW1fQ3RzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1B6X1B0X1NhX8OHYV9QZV9DdV9DdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfDtsO2JyA6ICfDlsOWJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnw7ZzJyA6ICfDllMnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvw7bDtnzDlsOWfMO2c3zDllMvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ8O2cycgfHwgaW5wdXQgPT09ICfDllMnO1xuICAgICAgICB9LFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2J1Z8O8biBzYWF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3lhcsSxbiBzYWF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1tnZWxlY2VrXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2TDvG5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2dlw6dlbl0gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBzb25yYScsXG4gICAgICAgICAgICBwYXN0OiAnJXMgw7ZuY2UnLFxuICAgICAgICAgICAgczogJ2Jpcmthw6cgc2FuaXllJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2FuaXllJyxcbiAgICAgICAgICAgIG06ICdiaXIgZGFraWthJyxcbiAgICAgICAgICAgIG1tOiAnJWQgZGFraWthJyxcbiAgICAgICAgICAgIGg6ICdiaXIgc2FhdCcsXG4gICAgICAgICAgICBoaDogJyVkIHNhYXQnLFxuICAgICAgICAgICAgZDogJ2JpciBnw7xuJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZ8O8bicsXG4gICAgICAgICAgICBNOiAnYmlyIGF5JyxcbiAgICAgICAgICAgIE1NOiAnJWQgYXknLFxuICAgICAgICAgICAgeTogJ2JpciB5xLFsJyxcbiAgICAgICAgICAgIHl5OiAnJWQgecSxbCcsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEbyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgemVyb1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIFwiJ8SxbmPEsVwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBiID0gKG51bWJlciAlIDEwMCkgLSBhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYyA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdIHx8IHN1ZmZpeGVzW2NdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRhbG9zc2FuIFt0emxdXG4vLyEgYXV0aG9yIDogUm9iaW4gdmFuIGRlciBWbGlldCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yb2JpbjB2YW4wZGVyMHZcbi8vISBhdXRob3IgOiBJdXN0w6wgQ2FudW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIC8vIEFmdGVyIHRoZSB5ZWFyIHRoZXJlIHNob3VsZCBiZSBhIHNsYXNoIGFuZCB0aGUgYW1vdW50IG9mIHllYXJzIHNpbmNlIERlY2VtYmVyIDI2LCAxOTc5IGluIFJvbWFuIG51bWVyYWxzLlxuICAgIC8vIFRoaXMgaXMgY3VycmVudGx5IHRvbyBkaWZmaWN1bHQgKG1heWJlIGV2ZW4gaW1wb3NzaWJsZSkgdG8gYWRkLlxuICAgIHZhciB0emwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0emwnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcl9GZXZyYWdsaF9NYXLDp19BdnLDr3VfTWFpX0fDvG5fSnVsaWFfR3VzY2h0X1NldGVtdmFyX0xpc3RvcMOkdHNfTm9lbXZhcl9aZWNlbXZhcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmV2X01hcl9BdnJfTWFpX0fDvG5fSnVsX0d1c19TZXRfTGlzX05vZV9aZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU8O6bGFkaV9Mw7puZcOnaV9NYWl0emlfTcOhcmN1cmlfWGjDumFkaV9WacOpbmVyw6dpX1PDoXR1cmknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTw7psX0zDum5fTWFpX03DoXJfWGjDul9WacOpX1PDoXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU8O6X0zDul9NYV9Nw6FfWGhfVmlfU8OhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gW2RhbGxhc10gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFtkYWxsYXNdIFlZWVkgSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIFtsaV0gRC4gTU1NTSBbZGFsbGFzXSBZWVlZIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2RcXCdvfGRcXCdhL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiZCdvXCIgPT09IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyBcImQnb1wiIDogXCJEJ09cIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyBcImQnYVwiIDogXCJEJ0FcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbb3hoaSDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tkZW3DoCDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpZWlyaSDDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbc8O8ciBlbF0gZGRkZCBbbGFzdGV1IMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29zcHJlaSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnamElcycsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgczogWyd2aWVuc2FzIHNlY3VuZHMnLCBcIidpZW5zYXMgc2VjdW5kc1wiXSxcbiAgICAgICAgICAgIHNzOiBbbnVtYmVyICsgJyBzZWN1bmRzJywgJycgKyBudW1iZXIgKyAnIHNlY3VuZHMnXSxcbiAgICAgICAgICAgIG06IFtcIiduIG3DrXV0XCIsIFwiJ2llbnMgbcOtdXRcIl0sXG4gICAgICAgICAgICBtbTogW251bWJlciArICcgbcOtdXRzJywgJycgKyBudW1iZXIgKyAnIG3DrXV0cyddLFxuICAgICAgICAgICAgaDogW1wiJ24gw75vcmFcIiwgXCInaWVuc2Egw75vcmFcIl0sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcgw75vcmFzJywgJycgKyBudW1iZXIgKyAnIMO+b3JhcyddLFxuICAgICAgICAgICAgZDogW1wiJ24geml1YVwiLCBcIidpZW5zYSB6aXVhXCJdLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIHppdWFzJywgJycgKyBudW1iZXIgKyAnIHppdWFzJ10sXG4gICAgICAgICAgICBNOiBbXCInbiBtZXNcIiwgXCInaWVucyBtZXNcIl0sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcgbWVzZW4nLCAnJyArIG51bWJlciArICcgbWVzZW4nXSxcbiAgICAgICAgICAgIHk6IFtcIiduIGFyXCIsIFwiJ2llbnMgYXJcIl0sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgYXJzJywgJycgKyBudW1iZXIgKyAnIGFycyddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gaXNGdXR1cmVcbiAgICAgICAgICAgID8gZm9ybWF0W2tleV1bMF1cbiAgICAgICAgICAgIDogd2l0aG91dFN1ZmZpeFxuICAgICAgICAgICAgPyBmb3JtYXRba2V5XVswXVxuICAgICAgICAgICAgOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHpsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENlbnRyYWwgQXRsYXMgVGFtYXppZ2h0IFt0em1dXG4vLyEgYXV0aG9yIDogQWJkZWwgU2FpZCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmRlbHNhaWRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0em0gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0em0nLCB7XG4gICAgICAgIG1vbnRoczogJ+K1ieK1j+K1j+K0sOK1ouK1lF/itLHitZXitLDitaLitZVf4rWO4rSw4rWV4rWaX+K1ieK0seK1lOK1ieK1lF/itY7itLDitaLitaLitZNf4rWi4rWT4rWP4rWi4rWTX+K1ouK1k+K1jeK1ouK1k+K1o1/itZbitZPitZvitZxf4rWb4rWT4rWc4rSw4rWP4rSx4rWJ4rWUX+K0veK1n+K1k+K0seK1lV/itY/itZPitaHitLDitY/itLHitYnitZRf4rS34rWT4rWK4rWP4rSx4rWJ4rWUJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+K1ieK1j+K1j+K0sOK1ouK1lF/itLHitZXitLDitaLitZVf4rWO4rSw4rWV4rWaX+K1ieK0seK1lOK1ieK1lF/itY7itLDitaLitaLitZNf4rWi4rWT4rWP4rWi4rWTX+K1ouK1k+K1jeK1ouK1k+K1o1/itZbitZPitZvitZxf4rWb4rWT4rWc4rSw4rWP4rSx4rWJ4rWUX+K0veK1n+K1k+K0seK1lV/itY/itZPitaHitLDitY/itLHitYnitZRf4rS34rWT4rWK4rWP4rSx4rWJ4rWUJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+K0sOK1meK0sOK1juK0sOK1mV/itLDitaLitY/itLDitZlf4rSw4rWZ4rWJ4rWP4rSw4rWZX+K0sOK0veK1lOK0sOK1mV/itLDitL3itaHitLDitZlf4rSw4rWZ4rWJ4rWO4rWh4rSw4rWZX+K0sOK1meK1ieK0ueK1ouK0sOK1mScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+K0sOK1meK0sOK1juK0sOK1mV/itLDitaLitY/itLDitZlf4rSw4rWZ4rWJ4rWP4rSw4rWZX+K0sOK0veK1lOK0sOK1mV/itLDitL3itaHitLDitZlf4rSw4rWZ4rWJ4rWO4rWh4rSw4rWZX+K0sOK1meK1ieK0ueK1ouK0sOK1mScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfitLDitZnitLDitY7itLDitZlf4rSw4rWi4rWP4rSw4rWZX+K0sOK1meK1ieK1j+K0sOK1mV/itLDitL3itZTitLDitZlf4rSw4rS94rWh4rSw4rWZX+K0sOK1meK1ieK1juK1oeK0sOK1mV/itLDitZnitYnitLnitaLitLDitZknLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vitLDitZnitLfitYUg4rS0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+K0sOK1meK0veK0sCDitLRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb4rS0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+K0sOK1muK0sOK1j+K1nCDitLRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb4rS0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ+K0t+K0sOK0t+K1hSDitZkg4rWi4rSw4rWPICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfitaLitLDitY8gJXMnLFxuICAgICAgICAgICAgczogJ+K1ieK1juK1ieK0vScsXG4gICAgICAgICAgICBzczogJyVkIOK1ieK1juK1ieK0vScsXG4gICAgICAgICAgICBtOiAn4rWO4rWJ4rWP4rWT4rS6JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4rWO4rWJ4rWP4rWT4rS6JyxcbiAgICAgICAgICAgIGg6ICfitZnitLDitYTitLAnLFxuICAgICAgICAgICAgaGg6ICclZCDitZzitLDitZnitZnitLDitYTitYnitY8nLFxuICAgICAgICAgICAgZDogJ+K0sOK1meK1mScsXG4gICAgICAgICAgICBkZDogJyVkIG/itZnitZnitLDitY8nLFxuICAgICAgICAgICAgTTogJ+K0sOK1om/itZPitZQnLFxuICAgICAgICAgICAgTU06ICclZCDitYnitaLitaLitYnitZTitY8nLFxuICAgICAgICAgICAgeTogJ+K0sOK1meK0s+K0sOK1mScsXG4gICAgICAgICAgICB5eTogJyVkIOK1ieK1meK0s+K0sOK1meK1jycsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHptO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENlbnRyYWwgQXRsYXMgVGFtYXppZ2h0IExhdGluIFt0em0tbGF0bl1cbi8vISBhdXRob3IgOiBBYmRlbCBTYWlkIDogaHR0cHM6Ly9naXRodWIuY29tL2FiZGVsc2FpZFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHR6bUxhdG4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0em0tbGF0bicsIHtcbiAgICAgICAgbW9udGhzOiAnaW5uYXlyX2Jyy6RheXLLpF9tYXLLpHPLpF9pYnJpcl9tYXl5d195d255d195d2x5d3pfyaN3xaF0X8Whd3RhbmJpcl9rdMukd2Jyy6Rfbnd3YW5iaXJfZHdqbmJpcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdpbm5heXJfYnLLpGF5csukX21hcsukc8ukX2licmlyX21heXl3X3l3bnl3X3l3bHl3el/Jo3fFoXRfxaF3dGFuYmlyX2t0y6R3YnLLpF9ud3dhbmJpcl9kd2puYmlyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ2FzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2nhuI15YXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNp4biNeWFzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2FzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2nhuI15YXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1thc2RraCBnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2Fza2EgZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtnXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2Fzc2FudCBnXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2ddIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFka2ggcyB5YW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3lhbiAlcycsXG4gICAgICAgICAgICBzOiAnaW1paycsXG4gICAgICAgICAgICBzczogJyVkIGltaWsnLFxuICAgICAgICAgICAgbTogJ21pbnXhuI0nLFxuICAgICAgICAgICAgbW06ICclZCBtaW514biNJyxcbiAgICAgICAgICAgIGg6ICdzYcmbYScsXG4gICAgICAgICAgICBoaDogJyVkIHRhc3NhyZtpbicsXG4gICAgICAgICAgICBkOiAnYXNzJyxcbiAgICAgICAgICAgIGRkOiAnJWQgb3NzYW4nLFxuICAgICAgICAgICAgTTogJ2F5b3dyJyxcbiAgICAgICAgICAgIE1NOiAnJWQgaXl5aXJuJyxcbiAgICAgICAgICAgIHk6ICdhc2dhcycsXG4gICAgICAgICAgICB5eTogJyVkIGlzZ2FzbicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHptTGF0bjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbGFuZ3VhZ2UgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFV5Z2h1ciAoQ2hpbmEpIFt1Zy1jbl1cbi8vISBhdXRob3I6IGJveWFxIDogaHR0cHM6Ly9naXRodWIuY29tL2JveWFxXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB1Z0NuID0gbW9tZW50LmRlZmluZUxvY2FsZSgndWctY24nLCB7XG4gICAgICAgIG1vbnRoczogJ9mK2KfZhtuL2KfYsV/ZgduQ24vYsdin2YRf2YXYp9ix2Kpf2KbYp9m+2LHbkNmEX9mF2KfZil/YptmJ2Yrbh9mGX9im2YnZituH2YRf2KbYp9uL2Lrbh9iz2Kpf2LPbkNmG2Krbldio2YnYsV/YptuG2YPYqtuV2KjZidixX9mG2YjZitin2KjZidixX9iv25DZg9in2KjZidixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9mK2KfZhtuL2KfYsV/ZgduQ24vYsdin2YRf2YXYp9ix2Kpf2KbYp9m+2LHbkNmEX9mF2KfZil/YptmJ2Yrbh9mGX9im2YnZituH2YRf2KbYp9uL2Lrbh9iz2Kpf2LPbkNmG2Krbldio2YnYsV/YptuG2YPYqtuV2KjZidixX9mG2YjZitin2KjZidixX9iv25DZg9in2KjZidixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9mK25XZg9i025XZhtio25Vf2K/biNi025XZhtio25Vf2LPbldmK2LTbldmG2KjblV/ahtin2LHYtNuV2YbYqNuVX9m+25XZiti025XZhtio25Vf2KzbiNmF25Vf2LTbldmG2KjblScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9mK25Vf2K/biF/Ys9uVX9qG2Kdf2b7blV/YrNuIX9i025UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2YrblV/Yr9uIX9iz25Vf2obYp1/ZvtuVX9is24hf2LTblScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZLdmK2YnZhNmJTS3Yptin2YrZhtmJ2q1ELdmD24jZhtmJJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkt2YrZidmE2YlNLdim2KfZitmG2YnarUQt2YPbiNmG2YnYjCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZNiMIFlZWVkt2YrZidmE2YlNLdim2KfZitmG2YnarUQt2YPbiNmG2YnYjCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/ZituQ2LHZidmFINmD25DahtuVfNiz25XavtuV2LF82obbiNi02KrZidmGINio24fYsduH2YZ82obbiNi0fNqG24jYtNiq2YnZhiDZg9uQ2YrZidmGfNmD25Xahi8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ9mK25DYsdmJ2YUg2YPbkNqG25UnIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfYs9uV2r7bldixJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn2obbiNi02KrZidmGINio24fYsduH2YYnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfahtuI2LTYqtmJ2YYg2YPbkNmK2YnZhicgfHwgbWVyaWRpZW0gPT09ICfZg9uV2oYnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgdmFyIGhtID0gaG91ciAqIDEwMCArIG1pbnV0ZTtcbiAgICAgICAgICAgIGlmIChobSA8IDYwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YrbkNix2YnZhSDZg9uQ2obblSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYs9uV2r7bldixJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMTMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfahtuI2LTYqtmJ2YYg2Kjbh9ix24fZhic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2obbiNi0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfahtuI2LTYqtmJ2YYg2YPbkNmK2YnZhic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YPbldqGJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KjbiNqv24jZhiDYs9in2KbbldiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9im25XYqtuVINiz2KfYptuV2KpdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW9mD25DZhNuV2LHZg9mJXSBkZGRkIFvYs9in2KbbldiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9iq24bZhtuI2q/biNmGXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vYptin2YTYr9mJ2YbZgtmJXSBkZGRkIFvYs9in2KbbldiqXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINmD25DZitmJ2YYnLFxuICAgICAgICAgICAgcGFzdDogJyVzINio24fYsduH2YYnLFxuICAgICAgICAgICAgczogJ9mG25XahtqG25Ug2LPbkNmD2YjZhtiqJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2LPbkNmD2YjZhtiqJyxcbiAgICAgICAgICAgIG06ICfYqNmJ2LEg2YXZidmG24fYqicsXG4gICAgICAgICAgICBtbTogJyVkINmF2YnZhtuH2KonLFxuICAgICAgICAgICAgaDogJ9io2YnYsSDYs9in2KbbldiqJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2LPYp9im25XYqicsXG4gICAgICAgICAgICBkOiAn2KjZidixINmD24jZhicsXG4gICAgICAgICAgICBkZDogJyVkINmD24jZhicsXG4gICAgICAgICAgICBNOiAn2KjZidixINim2KfZiicsXG4gICAgICAgICAgICBNTTogJyVkINim2KfZiicsXG4gICAgICAgICAgICB5OiAn2KjZidixINmK2YnZhCcsXG4gICAgICAgICAgICB5eTogJyVkINmK2YnZhCcsXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KC3Zg9uI2YbZiXwt2KbYp9mKfC3avtuV2b7YqtuVKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Zg9uI2YbZiSc7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdq+25XZvtiq25UnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgLy8gR0IvVCA3NDA4LTE5OTTjgIrmlbDmja7lhYPlkozkuqTmjaLmoLzlvI/Ct+S/oeaBr+S6pOaNosK35pel5pyf5ZKM5pe26Ze06KGo56S65rOV44CL5LiOSVNPIDg2MDE6MTk4OOetieaViFxuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMXN0IGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVnQ247XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVWtyYWluaWFuIFt1a11cbi8vISBhdXRob3IgOiB6ZW1sYW5pbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS96ZW1sYW5pblxuLy8hIEF1dGhvciA6IE1lbmVsaW9uIEVsZW5zw7psZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9PaXJlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwbHVyYWwod29yZCwgbnVtKSB7XG4gICAgICAgIHZhciBmb3JtcyA9IHdvcmQuc3BsaXQoJ18nKTtcbiAgICAgICAgcmV0dXJuIG51bSAlIDEwID09PSAxICYmIG51bSAlIDEwMCAhPT0gMTFcbiAgICAgICAgICAgID8gZm9ybXNbMF1cbiAgICAgICAgICAgIDogbnVtICUgMTAgPj0gMiAmJiBudW0gJSAxMCA8PSA0ICYmIChudW0gJSAxMDAgPCAxMCB8fCBudW0gJSAxMDAgPj0gMjApXG4gICAgICAgICAgICA/IGZvcm1zWzFdXG4gICAgICAgICAgICA6IGZvcm1zWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzczogd2l0aG91dFN1ZmZpeCA/ICfRgdC10LrRg9C90LTQsF/RgdC10LrRg9C90LTQuF/RgdC10LrRg9C90LQnIDogJ9GB0LXQutGD0L3QtNGDX9GB0LXQutGD0L3QtNC4X9GB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtbTogd2l0aG91dFN1ZmZpeCA/ICfRhdCy0LjQu9C40L3QsF/RhdCy0LjQu9C40L3QuF/RhdCy0LjQu9C40L0nIDogJ9GF0LLQuNC70LjQvdGDX9GF0LLQuNC70LjQvdC4X9GF0LLQuNC70LjQvScsXG4gICAgICAgICAgICBoaDogd2l0aG91dFN1ZmZpeCA/ICfQs9C+0LTQuNC90LBf0LPQvtC00LjQvdC4X9Cz0L7QtNC40L0nIDogJ9Cz0L7QtNC40L3Rg1/Qs9C+0LTQuNC90Lhf0LPQvtC00LjQvScsXG4gICAgICAgICAgICBkZDogJ9C00LXQvdGMX9C00L3Rll/QtNC90ZbQsicsXG4gICAgICAgICAgICBNTTogJ9C80ZbRgdGP0YbRjF/QvNGW0YHRj9GG0ZZf0LzRltGB0Y/RhtGW0LInLFxuICAgICAgICAgICAgeXk6ICfRgNGW0Lpf0YDQvtC60Lhf0YDQvtC60ZbQsicsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChrZXkgPT09ICdtJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0YXQstC40LvQuNC90LAnIDogJ9GF0LLQuNC70LjQvdGDJztcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdoJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0LPQvtC00LjQvdCwJyA6ICfQs9C+0LTQuNC90YMnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIHBsdXJhbChmb3JtYXRba2V5XSwgK251bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gd2Vla2RheXNDYXNlUmVwbGFjZShtLCBmb3JtYXQpIHtcbiAgICAgICAgdmFyIHdlZWtkYXlzID0ge1xuICAgICAgICAgICAgICAgIG5vbWluYXRpdmU6ICfQvdC10LTRltC70Y9f0L/QvtC90LXQtNGW0LvQvtC6X9Cy0ZbQstGC0L7RgNC+0Lpf0YHQtdGA0LXQtNCwX9GH0LXRgtCy0LXRgF/Qv+KAmdGP0YLQvdC40YbRj1/RgdGD0LHQvtGC0LAnLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGFjY3VzYXRpdmU6ICfQvdC10LTRltC70Y5f0L/QvtC90LXQtNGW0LvQvtC6X9Cy0ZbQstGC0L7RgNC+0Lpf0YHQtdGA0LXQtNGDX9GH0LXRgtCy0LXRgF/Qv+KAmdGP0YLQvdC40YbRjl/RgdGD0LHQvtGC0YMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGdlbml0aXZlOiAn0L3QtdC00ZbQu9GWX9C/0L7QvdC10LTRltC70LrQsF/QstGW0LLRgtC+0YDQutCwX9GB0LXRgNC10LTQuF/Rh9C10YLQstC10YDQs9CwX9C/4oCZ0Y/RgtC90LjRhtGWX9GB0YPQsdC+0YLQuCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbm91bkNhc2U7XG5cbiAgICAgICAgaWYgKG0gPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5c1snbm9taW5hdGl2ZSddXG4gICAgICAgICAgICAgICAgLnNsaWNlKDEsIDcpXG4gICAgICAgICAgICAgICAgLmNvbmNhdCh3ZWVrZGF5c1snbm9taW5hdGl2ZSddLnNsaWNlKDAsIDEpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5c1snbm9taW5hdGl2ZSddO1xuICAgICAgICB9XG5cbiAgICAgICAgbm91bkNhc2UgPSAvKFxcW1vQktCy0KPRg11cXF0pID9kZGRkLy50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgID8gJ2FjY3VzYXRpdmUnXG4gICAgICAgICAgICA6IC9cXFs/KD860LzQuNC90YPQu9C+0Zd80L3QsNGB0YLRg9C/0L3QvtGXKT8gP1xcXSA/ZGRkZC8udGVzdChmb3JtYXQpXG4gICAgICAgICAgICA/ICdnZW5pdGl2ZSdcbiAgICAgICAgICAgIDogJ25vbWluYXRpdmUnO1xuICAgICAgICByZXR1cm4gd2Vla2RheXNbbm91bkNhc2VdW20uZGF5KCldO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzSG91cnNGdW5jdGlvbihzdHIpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHIgKyAn0L4nICsgKHRoaXMuaG91cnMoKSA9PT0gMTEgPyAn0LEnIDogJycpICsgJ10gTFQnO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciB1ayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3VrJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9GB0ZbRh9C90Y9f0LvRjtGC0L7Qs9C+X9Cx0LXRgNC10LfQvdGPX9C60LLRltGC0L3Rj1/RgtGA0LDQstC90Y9f0YfQtdGA0LLQvdGPX9C70LjQv9C90Y9f0YHQtdGA0L/QvdGPX9Cy0LXRgNC10YHQvdGPX9C20L7QstGC0L3Rj1/Qu9C40YHRgtC+0L/QsNC00LBf0LPRgNGD0LTQvdGPJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0YHRltGH0LXQvdGMX9C70Y7RgtC40Llf0LHQtdGA0LXQt9C10L3RjF/QutCy0ZbRgtC10L3RjF/RgtGA0LDQstC10L3RjF/Rh9C10YDQstC10L3RjF/Qu9C40L/QtdC90Yxf0YHQtdGA0L/QtdC90Yxf0LLQtdGA0LXRgdC10L3RjF/QttC+0LLRgtC10L3RjF/Qu9C40YHRgtC+0L/QsNC0X9Cz0YDRg9C00LXQvdGMJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0YHRltGHX9C70Y7Rgl/QsdC10YBf0LrQstGW0YJf0YLRgNCw0LJf0YfQtdGA0LJf0LvQuNC/X9GB0LXRgNC/X9Cy0LXRgF/QttC+0LLRgl/Qu9C40YHRgl/Qs9GA0YPQtCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6IHdlZWtkYXlzQ2FzZVJlcGxhY2UsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC0X9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C90LRf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVkg0YAuJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZINGALiwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZINGALiwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQodGM0L7Qs9C+0LTQvdGWICcpLFxuICAgICAgICAgICAgbmV4dERheTogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQl9Cw0LLRgtGA0LAgJyksXG4gICAgICAgICAgICBsYXN0RGF5OiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9CS0YfQvtGA0LAgJyksXG4gICAgICAgICAgICBuZXh0V2VlazogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQo10gZGRkZCBbJyksXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQnNC40L3Rg9C70L7Rl10gZGRkZCBbJykuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9Cc0LjQvdGD0LvQvtCz0L5dIGRkZGQgWycpLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0LfQsCAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0YLQvtC80YMnLFxuICAgICAgICAgICAgczogJ9C00LXQutGW0LvRjNC60LAg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIHNzOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaDogJ9Cz0L7QtNC40L3RgycsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQ6ICfQtNC10L3RjCcsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06ICfQvNGW0YHRj9GG0YwnLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiAn0YDRltC6JyxcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICB9LFxuICAgICAgICAvLyBNLiBFLjogdGhvc2UgdHdvIGFyZSB2aXJ0dWFsbHkgdW51c2VkIGJ1dCBhIHVzZXIgbWlnaHQgd2FudCB0byBpbXBsZW1lbnQgdGhlbSBmb3IgaGlzL2hlciB3ZWJzaXRlIGZvciBzb21lIHJlYXNvblxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0L3QvtGH0ZZ80YDQsNC90LrRg3zQtNC90Y980LLQtdGH0L7RgNCwLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o0LTQvdGPfNCy0LXRh9C+0YDQsCkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0L3QvtGH0ZYnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GA0LDQvdC60YMnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C00L3Rjyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LLQtdGH0L7RgNCwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQuXzQs9C+KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QuSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCz0L4nO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB1aztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVcmR1IFt1cl1cbi8vISBhdXRob3IgOiBTYXdvb2QgQWxhbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYm5lc2F5ZWVkXG4vLyEgYXV0aG9yIDogWmFjayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9aYWNrVmlzaW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9is2YbZiNix24wnLFxuICAgICAgICAgICAgJ9mB2LHZiNix24wnLFxuICAgICAgICAgICAgJ9mF2KfYsdqGJyxcbiAgICAgICAgICAgICfYp9m+2LHbjNmEJyxcbiAgICAgICAgICAgICfZhdim24wnLFxuICAgICAgICAgICAgJ9is2YjZhicsXG4gICAgICAgICAgICAn2KzZiNmE2KfYptuMJyxcbiAgICAgICAgICAgICfYp9qv2LPYqicsXG4gICAgICAgICAgICAn2LPYqtmF2KjYsScsXG4gICAgICAgICAgICAn2Kfaqdiq2YjYqNixJyxcbiAgICAgICAgICAgICfZhtmI2YXYqNixJyxcbiAgICAgICAgICAgICfYr9iz2YXYqNixJyxcbiAgICAgICAgXSxcbiAgICAgICAgZGF5cyA9IFsn2KfYqtmI2KfYsScsICfZvtuM2LEnLCAn2YXZhtqv2YQnLCAn2KjYr9q+JywgJ9is2YXYudix2KfYqicsICfYrNmF2LnbgScsICfbgdmB2KrbgSddO1xuXG4gICAgdmFyIHVyID0gbW9tZW50LmRlZmluZUxvY2FsZSgndXInLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46IGRheXMsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGTYjCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/Ytdio2K182LTYp9mFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9i02KfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LXYqNitJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJztcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KLYrCDYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vaqdmEINio2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9io2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9qv2LDYtNiq24Eg2LHZiNiyINio2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1var9iw2LTYqtuBXSBkZGRkIFvYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDYqNi52K8nLFxuICAgICAgICAgICAgcGFzdDogJyVzINmC2KjZhCcsXG4gICAgICAgICAgICBzOiAn2obZhtivINiz24zaqdmG2ognLFxuICAgICAgICAgICAgc3M6ICclZCDYs9uM2qnZhtqIJyxcbiAgICAgICAgICAgIG06ICfYp9uM2qkg2YXZhtm5JyxcbiAgICAgICAgICAgIG1tOiAnJWQg2YXZhtm5JyxcbiAgICAgICAgICAgIGg6ICfYp9uM2qkg2q/avtmG2bnbgScsXG4gICAgICAgICAgICBoaDogJyVkINqv2r7Zhtm525InLFxuICAgICAgICAgICAgZDogJ9in24zaqSDYr9mGJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2K/ZhicsXG4gICAgICAgICAgICBNOiAn2KfbjNqpINmF2KfbgScsXG4gICAgICAgICAgICBNTTogJyVkINmF2KfbgScsXG4gICAgICAgICAgICB5OiAn2KfbjNqpINiz2KfZhCcsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfZhCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFV6YmVrIFt1el1cbi8vISBhdXRob3IgOiBTYXJkb3IgTXVtaW5vdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tdW1pbm9mZlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHV6ID0gbW9tZW50LmRlZmluZUxvY2FsZSgndXonLCB7XG4gICAgICAgIG1vbnRoczogJ9GP0L3QstCw0YBf0YTQtdCy0YDQsNC7X9C80LDRgNGCX9Cw0L/RgNC10Ltf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCz0YPRgdGCX9GB0LXQvdGC0Y/QsdGAX9C+0LrRgtGP0LHRgF/QvdC+0Y/QsdGAX9C00LXQutCw0LHRgCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRj9C90LJf0YTQtdCyX9C80LDRgF/QsNC/0YBf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCzX9GB0LXQvV/QvtC60YJf0L3QvtGPX9C00LXQuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfQr9C60YjQsNC90LHQsF/QlNGD0YjQsNC90LHQsF/QodC10YjQsNC90LHQsF/Qp9C+0YDRiNCw0L3QsdCwX9Cf0LDQudGI0LDQvdCx0LBf0JbRg9C80LBf0KjQsNC90LHQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9Cv0LrRiF/QlNGD0Yhf0KHQtdGIX9Cn0L7RgF/Qn9Cw0Llf0JbRg9C8X9Co0LDQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQr9C6X9CU0YNf0KHQtV/Qp9C+X9Cf0LBf0JbRg1/QqNCwJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdEIE1NTU0gWVlZWSwgZGRkZCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CR0YPQs9GD0L0g0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Ct0YDRgtCw0LPQsF0gTFQgW9C00LBdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb0LrRg9C90Lgg0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Ca0LXRh9CwINGB0L7QsNGCXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb0KPRgtCz0LDQvV0gZGRkZCBb0LrRg9C90Lgg0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9Cv0LrQuNC9ICVzINC40YfQuNC00LAnLFxuICAgICAgICAgICAgcGFzdDogJ9CR0LjRgCDQvdC10YfQsCAlcyDQvtC70LTQuNC9JyxcbiAgICAgICAgICAgIHM6ICfRhNGD0YDRgdCw0YInLFxuICAgICAgICAgICAgc3M6ICclZCDRhNGD0YDRgdCw0YInLFxuICAgICAgICAgICAgbTogJ9Cx0LjRgCDQtNCw0LrQuNC60LAnLFxuICAgICAgICAgICAgbW06ICclZCDQtNCw0LrQuNC60LAnLFxuICAgICAgICAgICAgaDogJ9Cx0LjRgCDRgdC+0LDRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0L7QsNGCJyxcbiAgICAgICAgICAgIGQ6ICfQsdC40YAg0LrRg9C9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LrRg9C9JyxcbiAgICAgICAgICAgIE06ICfQsdC40YAg0L7QuScsXG4gICAgICAgICAgICBNTTogJyVkINC+0LknLFxuICAgICAgICAgICAgeTogJ9Cx0LjRgCDQudC40LsnLFxuICAgICAgICAgICAgeXk6ICclZCDQudC40LsnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXo7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVXpiZWsgTGF0aW4gW3V6LWxhdG5dXG4vLyEgYXV0aG9yIDogUmFzdWxiZWsgTWlyemF5ZXYgOiBnaXRodWIuY29tL1Jhc3VsYmVlZWtcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB1ekxhdG4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1ei1sYXRuJywge1xuICAgICAgICBtb250aHM6ICdZYW52YXJfRmV2cmFsX01hcnRfQXByZWxfTWF5X0l5dW5fSXl1bF9Bdmd1c3RfU2VudGFicl9Pa3RhYnJfTm95YWJyX0Rla2Ficicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdZYW5fRmV2X01hcl9BcHJfTWF5X0l5dW5fSXl1bF9BdmdfU2VuX09rdF9Ob3lfRGVrJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1lha3NoYW5iYV9EdXNoYW5iYV9TZXNoYW5iYV9DaG9yc2hhbmJhX1BheXNoYW5iYV9KdW1hX1NoYW5iYScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1lha19EdXNoX1Nlc2hfQ2hvcl9QYXlfSnVtX1NoYW4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnWWFfRHVfU2VfQ2hvX1BhX0p1X1NoYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnRCBNTU1NIFlZWVksIGRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tCdWd1biBzb2F0XSBMVCBbZGFdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRXJ0YWdhXSBMVCBbZGFdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba3VuaSBzb2F0XSBMVCBbZGFdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2VjaGEgc29hdF0gTFQgW2RhXScsXG4gICAgICAgICAgICBsYXN0V2VlazogXCJbTyd0Z2FuXSBkZGRkIFtrdW5pIHNvYXRdIExUIFtkYV1cIixcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnWWFxaW4gJXMgaWNoaWRhJyxcbiAgICAgICAgICAgIHBhc3Q6ICdCaXIgbmVjaGEgJXMgb2xkaW4nLFxuICAgICAgICAgICAgczogJ3Nvbml5YScsXG4gICAgICAgICAgICBzczogJyVkIHNvbml5YScsXG4gICAgICAgICAgICBtOiAnYmlyIGRhcWlxYScsXG4gICAgICAgICAgICBtbTogJyVkIGRhcWlxYScsXG4gICAgICAgICAgICBoOiAnYmlyIHNvYXQnLFxuICAgICAgICAgICAgaGg6ICclZCBzb2F0JyxcbiAgICAgICAgICAgIGQ6ICdiaXIga3VuJyxcbiAgICAgICAgICAgIGRkOiAnJWQga3VuJyxcbiAgICAgICAgICAgIE06ICdiaXIgb3knLFxuICAgICAgICAgICAgTU06ICclZCBveScsXG4gICAgICAgICAgICB5OiAnYmlyIHlpbCcsXG4gICAgICAgICAgICB5eTogJyVkIHlpbCcsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB1ekxhdG47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVmlldG5hbWVzZSBbdmldXG4vLyEgYXV0aG9yIDogQmFuZyBOZ3V5ZW4gOiBodHRwczovL2dpdGh1Yi5jb20vYmFuZ25rXG4vLyEgYXV0aG9yIDogQ2hpZW4gS2lyYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGllbmtpcmFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB2aSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3ZpJywge1xuICAgICAgICBtb250aHM6ICd0aMOhbmcgMV90aMOhbmcgMl90aMOhbmcgM190aMOhbmcgNF90aMOhbmcgNV90aMOhbmcgNl90aMOhbmcgN190aMOhbmcgOF90aMOhbmcgOV90aMOhbmcgMTBfdGjDoW5nIDExX3Row6FuZyAxMicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdUaGcgMDFfVGhnIDAyX1RoZyAwM19UaGcgMDRfVGhnIDA1X1RoZyAwNl9UaGcgMDdfVGhnIDA4X1RoZyAwOV9UaGcgMTBfVGhnIDExX1RoZyAxMicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdjaOG7pyBuaOG6rXRfdGjhu6kgaGFpX3Ro4bupIGJhX3Ro4bupIHTGsF90aOG7qSBuxINtX3Ro4bupIHPDoXVfdGjhu6kgYuG6o3knLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdDTl9UMl9UM19UNF9UNV9UNl9UNycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdDTl9UMl9UM19UNF9UNV9UNl9UNycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvc2F8Y2gvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL15jaCQvaS50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdzYScgOiAnU0EnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdjaCcgOiAnQ0gnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBbbsSDbV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gW27Eg21dIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBbbsSDbV0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsOiAnREQvTS9ZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRCBNTU0gWVlZWScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIEQgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIw7RtIG5heSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW05nw6B5IG1haSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3R14bqnbiB04bubaSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0jDtG0gcXVhIGzDumNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbdHXhuqduIHRyxrDhu5tjIGzDumNdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgdOG7m2knLFxuICAgICAgICAgICAgcGFzdDogJyVzIHRyxrDhu5tjJyxcbiAgICAgICAgICAgIHM6ICd2w6BpIGdpw6J5JyxcbiAgICAgICAgICAgIHNzOiAnJWQgZ2nDonknLFxuICAgICAgICAgICAgbTogJ23hu5l0IHBow7p0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgcGjDunQnLFxuICAgICAgICAgICAgaDogJ23hu5l0IGdp4budJyxcbiAgICAgICAgICAgIGhoOiAnJWQgZ2nhu50nLFxuICAgICAgICAgICAgZDogJ23hu5l0IG5nw6B5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgbmfDoHknLFxuICAgICAgICAgICAgTTogJ23hu5l0IHRow6FuZycsXG4gICAgICAgICAgICBNTTogJyVkIHRow6FuZycsXG4gICAgICAgICAgICB5OiAnbeG7mXQgbsSDbScsXG4gICAgICAgICAgICB5eTogJyVkIG7Eg20nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUHNldWRvIFt4LXBzZXVkb11cbi8vISBhdXRob3IgOiBBbmRyZXcgSG9vZCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyZXdob29kMTI1XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgeFBzZXVkbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3gtcHNldWRvJywge1xuICAgICAgICBtb250aHM6ICdKfsOhw7HDusOhfnLDvV9GfsOpYnLDun7DoXLDvV9+TcOhcmN+aF/DgXB+csOtbF9+TcOhw71ffkrDusOxw6l+X0rDumx+w71fw4HDun5nw7pzdH5fU8OpcH50w6ltYn7DqXJfw5N+Y3TDs2J+w6lyX8ORfsOzdsOpbX5iw6lyX35Ew6ljw6l+bWLDqXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSn7DocOxX35Gw6liX35Nw6FyX37DgXByX35Nw6HDvV9+SsO6w7FffkrDumxffsOBw7pnX35Tw6lwX37Dk2N0X37DkcOzdl9+RMOpYycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdTfsO6w7Fkw6F+w71fTcOzfsOxZMOhw71+X1TDusOpfnNkw6HDvX5fV8OpZH7DscOpc2R+w6HDvV9UfmjDunJzfmTDocO9X35GcsOtZH7DocO9X1N+w6F0w7pyfmTDocO9Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU37DusOxX35Nw7PDsV9+VMO6w6lfflfDqWRfflRow7pffkZyw61fflPDoXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU37Dul9Nw7N+X1TDul9+V8OpX1R+aF9Gcn5fU8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVH7Ds2TDoX7DvSDDoXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVH7Ds23Ds35ycsOzfncgw6F0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8OhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vDnX7DqXN0fsOpcmTDoX7DvSDDoXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0x+w6FzdF0gZGRkZCBbw6F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ8OtfsOxICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDDoX5nw7MnLFxuICAgICAgICAgICAgczogJ8OhIH5mw6l3IH5zw6ljw7N+w7FkcycsXG4gICAgICAgICAgICBzczogJyVkIHN+w6ljw7PDsX5kcycsXG4gICAgICAgICAgICBtOiAnw6Egfm3DrcOxfsO6dMOpJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbX7DrcOxw7p+dMOpcycsXG4gICAgICAgICAgICBoOiAnw6F+w7EgaMOzfsO6cicsXG4gICAgICAgICAgICBoaDogJyVkIGh+w7PDunJzJyxcbiAgICAgICAgICAgIGQ6ICfDoSB+ZMOhw70nLFxuICAgICAgICAgICAgZGQ6ICclZCBkfsOhw71zJyxcbiAgICAgICAgICAgIE06ICfDoSB+bcOzw7F+dGgnLFxuICAgICAgICAgICAgTU06ICclZCBtfsOzw7F0fmhzJyxcbiAgICAgICAgICAgIHk6ICfDoSB+w73DqcOhcicsXG4gICAgICAgICAgICB5eTogJyVkIMO9fsOpw6FycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSh0aHxzdHxuZHxyZCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB4UHNldWRvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFlvcnViYSBOaWdlcmlhIFt5b11cbi8vISBhdXRob3IgOiBBdG9sYWdiZSBBYmlzb3llIDogaHR0cHM6Ly9naXRodWIuY29tL2FuZGVsYS1iYXRvbGFnYmVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB5byA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3lvJywge1xuICAgICAgICBtb250aHM6ICdT4bq5zIFy4bq5zIFfRcyAcmXMgGxlzIBf4bq4cuG6ucyAbmHMgF9JzIBnYmXMgV9FzIBiaWJpX0/MgGt1zIBkdV9BZ+G6uW1vX0/MgGd1zIFuX093ZXdlX+G7jMyAd2HMgHJhzIBfQmXMgWx1zIFf4buMzIBw4bq5zIDMgCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdT4bq5zIFyX0XMgHJsX+G6uHJuX0nMgGdiX0XMgGJpX0/MgGt1zIBfQWfhurlfT8yAZ3XMgV9Pd2Vf4buMzIB3YcyAX0JlzIFsX+G7jMyAcOG6ucyAzIAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnQcyAacyAa3XMgV9BamXMgV9JzIBz4bq5zIFndW5f4buMauG7jcyBcnXMgV/hu4xq4buNzIFi4buNX+G6uHRpzIBfQcyAYmHMgW3hurnMgXRhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQcyAacyAa19BamXMgV9JzIBz4bq5zIFf4buManJf4buMamJf4bq4dGnMgF9BzIBiYcyBJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0HMgGnMgF9Bal9JzIBzX+G7jHJf4buMYl/hurh0X0HMgGInLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0/MgG5pzIAgbmldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4buMzIBsYSBuaV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IFwiZGRkZCBb4buMc+G6ucyAIHRvzIFuJ2Lhu41dIFtuaV0gTFRcIixcbiAgICAgICAgICAgIGxhc3REYXk6ICdbQcyAbmEgbmldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb4buMc+G6ucyAIHRvzIFs4buNzIFdIFtuaV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICduacyBICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBr4buNamHMgScsXG4gICAgICAgICAgICBzOiAnacyAc+G6uWp1zIEgYWF5YcyBIGRpZScsXG4gICAgICAgICAgICBzczogJ2FheWHMgSAlZCcsXG4gICAgICAgICAgICBtOiAnacyAc+G6uWp1zIEga2FuJyxcbiAgICAgICAgICAgIG1tOiAnacyAc+G6uWp1zIEgJWQnLFxuICAgICAgICAgICAgaDogJ3dhzIFrYXRpIGthbicsXG4gICAgICAgICAgICBoaDogJ3dhzIFrYXRpICVkJyxcbiAgICAgICAgICAgIGQ6ICfhu41q4buNzIEga2FuJyxcbiAgICAgICAgICAgIGRkOiAn4buNauG7jcyBICVkJyxcbiAgICAgICAgICAgIE06ICdvc3XMgCBrYW4nLFxuICAgICAgICAgICAgTU06ICdvc3XMgCAlZCcsXG4gICAgICAgICAgICB5OiAn4buNZHXMgW4ga2FuJyxcbiAgICAgICAgICAgIHl5OiAn4buNZHXMgW4gJWQnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAv4buNauG7jcyBXFxzXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiAn4buNauG7jcyBICVkJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHlvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENoaW5lc2UgKENoaW5hKSBbemgtY25dXG4vLyEgYXV0aG9yIDogc3V1cGljIDogaHR0cHM6Ly9naXRodWIuY29tL3N1dXBpY1xuLy8hIGF1dGhvciA6IFplbm8gWmVuZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS96ZW5vemVuZ1xuLy8hIGF1dGhvciA6IHV1MTA5IDogaHR0cHM6Ly9naXRodWIuY29tL3V1MTA5XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgemhDbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3poLWNuJywge1xuICAgICAgICBtb250aHM6ICfkuIDmnIhf5LqM5pyIX+S4ieaciF/lm5vmnIhf5LqU5pyIX+WFreaciF/kuIPmnIhf5YWr5pyIX+S5neaciF/ljYHmnIhf5Y2B5LiA5pyIX+WNgeS6jOaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICcx5pyIXzLmnIhfM+aciF805pyIXzXmnIhfNuaciF835pyIXzjmnIhfOeaciF8xMOaciF8xMeaciF8xMuaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfmmJ/mnJ/ml6Vf5pif5pyf5LiAX+aYn+acn+S6jF/mmJ/mnJ/kuIlf5pif5pyf5ZubX+aYn+acn+S6lF/mmJ/mnJ/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICflkajml6Vf5ZGo5LiAX+WRqOS6jF/lkajkuIlf5ZGo5ZubX+WRqOS6lF/lkajlha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn5pelX+S4gF/kuoxf5LiJX+Wbm1/kupRf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZ5bm0TeaciETml6VBaOeCuW1t5YiGJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6VkZGRkQWjngrltbeWIhicsXG4gICAgICAgICAgICBsOiAnWVlZWS9NL0QnLFxuICAgICAgICAgICAgbGw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+WHjOaZqHzml6nkuIp85LiK5Y2IfOS4reWNiHzkuIvljYh85pma5LiKLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn5YeM5pmoJyB8fCBtZXJpZGllbSA9PT0gJ+aXqeS4iicgfHwgbWVyaWRpZW0gPT09ICfkuIrljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5LiL5Y2IJyB8fCBtZXJpZGllbSA9PT0gJ+aZmuS4iicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyAn5Lit5Y2IJ1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Lit5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIvljYgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aZmuS4iic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+S7iuWkqV1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+aYjuWkqV1MVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vkuItdZGRkTFQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+acrF1kZGRMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5aSpXUxUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMud2VlaygpICE9PSBub3cud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+S4il1kZGRMVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5pysXWRkZExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOaXpXzmnIh85ZGoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pyIJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICflkagnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPlkI4nLFxuICAgICAgICAgICAgcGFzdDogJyVz5YmNJyxcbiAgICAgICAgICAgIHM6ICflh6Dnp5InLFxuICAgICAgICAgICAgc3M6ICclZCDnp5InLFxuICAgICAgICAgICAgbTogJzEg5YiG6ZKfJyxcbiAgICAgICAgICAgIG1tOiAnJWQg5YiG6ZKfJyxcbiAgICAgICAgICAgIGg6ICcxIOWwj+aXticsXG4gICAgICAgICAgICBoaDogJyVkIOWwj+aXticsXG4gICAgICAgICAgICBkOiAnMSDlpKknLFxuICAgICAgICAgICAgZGQ6ICclZCDlpKknLFxuICAgICAgICAgICAgTTogJzEg5Liq5pyIJyxcbiAgICAgICAgICAgIE1NOiAnJWQg5Liq5pyIJyxcbiAgICAgICAgICAgIHk6ICcxIOW5tCcsXG4gICAgICAgICAgICB5eTogJyVkIOW5tCcsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIC8vIEdCL1QgNzQwOC0xOTk044CK5pWw5o2u5YWD5ZKM5Lqk5o2i5qC85byPwrfkv6Hmga/kuqTmjaLCt+aXpeacn+WSjOaXtumXtOihqOekuuazleOAi+S4jklTTyA4NjAxOjE5ODjnrYnmlYhcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aENuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENoaW5lc2UgKEhvbmcgS29uZykgW3poLWhrXVxuLy8hIGF1dGhvciA6IEJlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZW4tbGluXG4vLyEgYXV0aG9yIDogQ2hyaXMgTGFtIDogaHR0cHM6Ly9naXRodWIuY29tL2hlaGFjaHJpc1xuLy8hIGF1dGhvciA6IEtvbnN0YW50aW4gOiBodHRwczovL2dpdGh1Yi5jb20vc2tmZFxuLy8hIGF1dGhvciA6IEFudGhvbnkgOiBodHRwczovL2dpdGh1Yi5jb20vYW50aG9ueWxhdVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHpoSGsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd6aC1oaycsIHtcbiAgICAgICAgbW9udGhzOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pif5pyf5pelX+aYn+acn+S4gF/mmJ/mnJ/kuoxf5pif5pyf5LiJX+aYn+acn+Wbm1/mmJ/mnJ/kupRf5pif5pyf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn6YCx5pelX+mAseS4gF/pgLHkuoxf6YCx5LiJX+mAseWbm1/pgLHkupRf6YCx5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZL00vRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuK3ljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtID09PSAxMjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuK3ljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4i+WNiCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pma5LiKJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb5piO5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+S4i11kZGRkTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vmmKjlpKldTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb5LiKXWRkZGRMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzpgLEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+mAsSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+W+jCcsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+W5vuenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkJgnLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkJgnLFxuICAgICAgICAgICAgaDogJzEg5bCP5pmCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pmCJyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICBNOiAnMSDlgIvmnIgnLFxuICAgICAgICAgICAgTU06ICclZCDlgIvmnIgnLFxuICAgICAgICAgICAgeTogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWQg5bm0JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aEhrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENoaW5lc2UgKE1hY2F1KSBbemgtbW9dXG4vLyEgYXV0aG9yIDogQmVuIDogaHR0cHM6Ly9naXRodWIuY29tL2Jlbi1saW5cbi8vISBhdXRob3IgOiBDaHJpcyBMYW0gOiBodHRwczovL2dpdGh1Yi5jb20vaGVoYWNocmlzXG4vLyEgYXV0aG9yIDogVGFuIFl1YW5ob25nIDogaHR0cHM6Ly9naXRodWIuY29tL2xlMHRhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHpoTW8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd6aC1tbycsIHtcbiAgICAgICAgbW9udGhzOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pif5pyf5pelX+aYn+acn+S4gF/mmJ/mnJ/kuoxf5pif5pyf5LiJX+aYn+acn+Wbm1/mmJ/mnJ/kupRf5pif5pyf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn6YCx5pelX+mAseS4gF/pgLHkuoxf6YCx5LiJX+mAseWbm1/pgLHkupRf6YCx5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdEL00vWVlZWScsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuK3ljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Lit5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIvljYgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aZmuS4iic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+S7iuWkqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vmmI7lpKldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+S4i11kZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5aSpXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vkuIpdZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzpgLEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+mAsSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+WFpycsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+W5vuenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkJgnLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkJgnLFxuICAgICAgICAgICAgaDogJzEg5bCP5pmCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pmCJyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICBNOiAnMSDlgIvmnIgnLFxuICAgICAgICAgICAgTU06ICclZCDlgIvmnIgnLFxuICAgICAgICAgICAgeTogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWQg5bm0JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aE1vO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENoaW5lc2UgKFRhaXdhbikgW3poLXR3XVxuLy8hIGF1dGhvciA6IEJlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZW4tbGluXG4vLyEgYXV0aG9yIDogQ2hyaXMgTGFtIDogaHR0cHM6Ly9naXRodWIuY29tL2hlaGFjaHJpc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHpoVHcgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd6aC10dycsIHtcbiAgICAgICAgbW9udGhzOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pif5pyf5pelX+aYn+acn+S4gF/mmJ/mnJ/kuoxf5pif5pyf5LiJX+aYn+acn+Wbm1/mmJ/mnJ/kupRf5pif5pyf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn6YCx5pelX+mAseS4gF/pgLHkuoxf6YCx5LiJX+mAseWbm1/pgLHkupRf6YCx5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZL00vRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuK3ljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Lit5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIvljYgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aZmuS4iic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+S7iuWkqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vmmI7lpKldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+S4i11kZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5aSpXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vkuIpdZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzpgLEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+mAsSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+W+jCcsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+W5vuenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkJgnLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkJgnLFxuICAgICAgICAgICAgaDogJzEg5bCP5pmCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pmCJyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICBNOiAnMSDlgIvmnIgnLFxuICAgICAgICAgICAgTU06ICclZCDlgIvmnIgnLFxuICAgICAgICAgICAgeTogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWQg5bm0JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB6aFR3O1xuXG59KSkpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9lbl9VUyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXBhZ2luYXRpb24vbGliL2xvY2FsZS9lbl9VU1wiKSk7XG5cbnZhciBfZW5fVVMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vZGF0ZS1waWNrZXIvbG9jYWxlL2VuX1VTXCIpKTtcblxudmFyIF9lbl9VUzMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi90aW1lLXBpY2tlci9sb2NhbGUvZW5fVVNcIikpO1xuXG52YXIgX2VuX1VTNCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2NhbGVuZGFyL2xvY2FsZS9lbl9VU1wiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG52YXIgX2RlZmF1bHQgPSB7XG4gIGxvY2FsZTogJ2VuJyxcbiAgUGFnaW5hdGlvbjogX2VuX1VTW1wiZGVmYXVsdFwiXSxcbiAgRGF0ZVBpY2tlcjogX2VuX1VTMltcImRlZmF1bHRcIl0sXG4gIFRpbWVQaWNrZXI6IF9lbl9VUzNbXCJkZWZhdWx0XCJdLFxuICBDYWxlbmRhcjogX2VuX1VTNFtcImRlZmF1bHRcIl0sXG4gIGdsb2JhbDoge1xuICAgIHBsYWNlaG9sZGVyOiAnUGxlYXNlIHNlbGVjdCdcbiAgfSxcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ0ZpbHRlciBtZW51JyxcbiAgICBmaWx0ZXJDb25maXJtOiAnT0snLFxuICAgIGZpbHRlclJlc2V0OiAnUmVzZXQnLFxuICAgIHNlbGVjdEFsbDogJ1NlbGVjdCBjdXJyZW50IHBhZ2UnLFxuICAgIHNlbGVjdEludmVydDogJ0ludmVydCBjdXJyZW50IHBhZ2UnLFxuICAgIHNvcnRUaXRsZTogJ1NvcnQnLFxuICAgIGV4cGFuZDogJ0V4cGFuZCByb3cnLFxuICAgIGNvbGxhcHNlOiAnQ29sbGFwc2Ugcm93J1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICBqdXN0T2tUZXh0OiAnT0snXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbCdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICB0aXRsZXM6IFsnJywgJyddLFxuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIGhlcmUnLFxuICAgIGl0ZW1Vbml0OiAnaXRlbScsXG4gICAgaXRlbXNVbml0OiAnaXRlbXMnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ1VwbG9hZGluZy4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1JlbW92ZSBmaWxlJyxcbiAgICB1cGxvYWRFcnJvcjogJ1VwbG9hZCBlcnJvcicsXG4gICAgcHJldmlld0ZpbGU6ICdQcmV2aWV3IGZpbGUnLFxuICAgIGRvd25sb2FkRmlsZTogJ0Rvd25sb2FkIGZpbGUnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdObyBEYXRhJ1xuICB9LFxuICBJY29uOiB7XG4gICAgaWNvbjogJ2ljb24nXG4gIH0sXG4gIFRleHQ6IHtcbiAgICBlZGl0OiAnRWRpdCcsXG4gICAgY29weTogJ0NvcHknLFxuICAgIGNvcGllZDogJ0NvcGllZCcsXG4gICAgZXhwYW5kOiAnRXhwYW5kJ1xuICB9LFxuICBQYWdlSGVhZGVyOiB7XG4gICAgYmFjazogJ0JhY2snXG4gIH1cbn07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZW5fVVMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1jYWxlbmRhci9saWIvbG9jYWxlL2VuX1VTXCIpKTtcblxudmFyIF9lbl9VUzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi90aW1lLXBpY2tlci9sb2NhbGUvZW5fVVNcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbnZhciBsb2NhbGUgPSB7XG4gIGxhbmc6IF9leHRlbmRzKHtcbiAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdCBkYXRlJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ1N0YXJ0IGRhdGUnLCAnRW5kIGRhdGUnXVxuICB9LCBfZW5fVVNbXCJkZWZhdWx0XCJdKSxcbiAgdGltZVBpY2tlckxvY2FsZTogX2V4dGVuZHMoe30sIF9lbl9VUzJbXCJkZWZhdWx0XCJdKVxufTsgLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxudmFyIF9kZWZhdWx0ID0gbG9jYWxlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xudmFyIGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgdGltZSdcbn07XG52YXIgX2RlZmF1bHQgPSBsb2NhbGU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFNpbWlsYXIgdG8gaW52YXJpYW50IGJ1dCBvbmx5IGxvZ3MgYSB3YXJuaW5nIGlmIHRoZSBjb25kaXRpb24gaXMgbm90IG1ldC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gbG9nIGlzc3VlcyBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaW4gY3JpdGljYWxcbiAqIHBhdGhzLiBSZW1vdmluZyB0aGUgbG9nZ2luZyBjb2RlIGZvciBwcm9kdWN0aW9uIGVudmlyb25tZW50cyB3aWxsIGtlZXAgdGhlXG4gKiBzYW1lIGxvZ2ljIGFuZCBmb2xsb3cgdGhlIHNhbWUgY29kZSBwYXRocy5cbiAqL1xuXG52YXIgX19ERVZfXyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbic7XG5cbnZhciB3YXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKF9fREVWX18pIHtcbiAgdmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uIHByaW50V2FybmluZyhmb3JtYXQsIGFyZ3MpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiA+IDEgPyBsZW4gLSAxIDogMCk7XG4gICAgZm9yICh2YXIga2V5ID0gMTsga2V5IDwgbGVuOyBrZXkrKykge1xuICAgICAgYXJnc1trZXkgLSAxXSA9IGFyZ3VtZW50c1trZXldO1xuICAgIH1cbiAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgK1xuICAgICAgZm9ybWF0LnJlcGxhY2UoLyVzL2csIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXJnc1thcmdJbmRleCsrXTtcbiAgICAgIH0pO1xuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyAtLS0gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgLS0tXG4gICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgIC8vIHRvIGZpbmQgdGhlIGNhbGxzaXRlIHRoYXQgY2F1c2VkIHRoaXMgd2FybmluZyB0byBmaXJlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH1cblxuICB3YXJuaW5nID0gZnVuY3Rpb24oY29uZGl0aW9uLCBmb3JtYXQsIGFyZ3MpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiA+IDIgPyBsZW4gLSAyIDogMCk7XG4gICAgZm9yICh2YXIga2V5ID0gMjsga2V5IDwgbGVuOyBrZXkrKykge1xuICAgICAgYXJnc1trZXkgLSAyXSA9IGFyZ3VtZW50c1trZXldO1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnYHdhcm5pbmcoY29uZGl0aW9uLCBmb3JtYXQsIC4uLmFyZ3MpYCByZXF1aXJlcyBhIHdhcm5pbmcgJyArXG4gICAgICAgICAgJ21lc3NhZ2UgYXJndW1lbnQnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgcHJpbnRXYXJuaW5nLmFwcGx5KG51bGwsIFtmb3JtYXRdLmNvbmNhdChhcmdzKSk7XG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHdhcm5pbmc7XG4iLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbnZhciBydW50aW1lID0gKGZ1bmN0aW9uIChleHBvcnRzKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIHZhciBPcCA9IE9iamVjdC5wcm90b3R5cGU7XG4gIHZhciBoYXNPd24gPSBPcC5oYXNPd25Qcm9wZXJ0eTtcbiAgdmFyIHVuZGVmaW5lZDsgLy8gTW9yZSBjb21wcmVzc2libGUgdGhhbiB2b2lkIDAuXG4gIHZhciAkU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiID8gU3ltYm9sIDoge307XG4gIHZhciBpdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCI7XG4gIHZhciBhc3luY0l0ZXJhdG9yU3ltYm9sID0gJFN5bWJvbC5hc3luY0l0ZXJhdG9yIHx8IFwiQEBhc3luY0l0ZXJhdG9yXCI7XG4gIHZhciB0b1N0cmluZ1RhZ1N5bWJvbCA9ICRTeW1ib2wudG9TdHJpbmdUYWcgfHwgXCJAQHRvU3RyaW5nVGFnXCI7XG5cbiAgZnVuY3Rpb24gZGVmaW5lKG9iaiwga2V5LCB2YWx1ZSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIG9ialtrZXldO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gSUUgOCBoYXMgYSBicm9rZW4gT2JqZWN0LmRlZmluZVByb3BlcnR5IHRoYXQgb25seSB3b3JrcyBvbiBET00gb2JqZWN0cy5cbiAgICBkZWZpbmUoe30sIFwiXCIpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbihvYmosIGtleSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSB7XG4gICAgLy8gSWYgb3V0ZXJGbiBwcm92aWRlZCBhbmQgb3V0ZXJGbi5wcm90b3R5cGUgaXMgYSBHZW5lcmF0b3IsIHRoZW4gb3V0ZXJGbi5wcm90b3R5cGUgaW5zdGFuY2VvZiBHZW5lcmF0b3IuXG4gICAgdmFyIHByb3RvR2VuZXJhdG9yID0gb3V0ZXJGbiAmJiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvciA/IG91dGVyRm4gOiBHZW5lcmF0b3I7XG4gICAgdmFyIGdlbmVyYXRvciA9IE9iamVjdC5jcmVhdGUocHJvdG9HZW5lcmF0b3IucHJvdG90eXBlKTtcbiAgICB2YXIgY29udGV4dCA9IG5ldyBDb250ZXh0KHRyeUxvY3NMaXN0IHx8IFtdKTtcblxuICAgIC8vIFRoZSAuX2ludm9rZSBtZXRob2QgdW5pZmllcyB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSAubmV4dCxcbiAgICAvLyAudGhyb3csIGFuZCAucmV0dXJuIG1ldGhvZHMuXG4gICAgZ2VuZXJhdG9yLl9pbnZva2UgPSBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfVxuICBleHBvcnRzLndyYXAgPSB3cmFwO1xuXG4gIC8vIFRyeS9jYXRjaCBoZWxwZXIgdG8gbWluaW1pemUgZGVvcHRpbWl6YXRpb25zLiBSZXR1cm5zIGEgY29tcGxldGlvblxuICAvLyByZWNvcmQgbGlrZSBjb250ZXh0LnRyeUVudHJpZXNbaV0uY29tcGxldGlvbi4gVGhpcyBpbnRlcmZhY2UgY291bGRcbiAgLy8gaGF2ZSBiZWVuIChhbmQgd2FzIHByZXZpb3VzbHkpIGRlc2lnbmVkIHRvIHRha2UgYSBjbG9zdXJlIHRvIGJlXG4gIC8vIGludm9rZWQgd2l0aG91dCBhcmd1bWVudHMsIGJ1dCBpbiBhbGwgdGhlIGNhc2VzIHdlIGNhcmUgYWJvdXQgd2VcbiAgLy8gYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG1ldGhvZCB3ZSB3YW50IHRvIGNhbGwsIHNvIHRoZXJlJ3Mgbm8gbmVlZFxuICAvLyB0byBjcmVhdGUgYSBuZXcgZnVuY3Rpb24gb2JqZWN0LiBXZSBjYW4gZXZlbiBnZXQgYXdheSB3aXRoIGFzc3VtaW5nXG4gIC8vIHRoZSBtZXRob2QgdGFrZXMgZXhhY3RseSBvbmUgYXJndW1lbnQsIHNpbmNlIHRoYXQgaGFwcGVucyB0byBiZSB0cnVlXG4gIC8vIGluIGV2ZXJ5IGNhc2UsIHNvIHdlIGRvbid0IGhhdmUgdG8gdG91Y2ggdGhlIGFyZ3VtZW50cyBvYmplY3QuIFRoZVxuICAvLyBvbmx5IGFkZGl0aW9uYWwgYWxsb2NhdGlvbiByZXF1aXJlZCBpcyB0aGUgY29tcGxldGlvbiByZWNvcmQsIHdoaWNoXG4gIC8vIGhhcyBhIHN0YWJsZSBzaGFwZSBhbmQgc28gaG9wZWZ1bGx5IHNob3VsZCBiZSBjaGVhcCB0byBhbGxvY2F0ZS5cbiAgZnVuY3Rpb24gdHJ5Q2F0Y2goZm4sIG9iaiwgYXJnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwibm9ybWFsXCIsIGFyZzogZm4uY2FsbChvYmosIGFyZykgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwidGhyb3dcIiwgYXJnOiBlcnIgfTtcbiAgICB9XG4gIH1cblxuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRTdGFydCA9IFwic3VzcGVuZGVkU3RhcnRcIjtcbiAgdmFyIEdlblN0YXRlU3VzcGVuZGVkWWllbGQgPSBcInN1c3BlbmRlZFlpZWxkXCI7XG4gIHZhciBHZW5TdGF0ZUV4ZWN1dGluZyA9IFwiZXhlY3V0aW5nXCI7XG4gIHZhciBHZW5TdGF0ZUNvbXBsZXRlZCA9IFwiY29tcGxldGVkXCI7XG5cbiAgLy8gUmV0dXJuaW5nIHRoaXMgb2JqZWN0IGZyb20gdGhlIGlubmVyRm4gaGFzIHRoZSBzYW1lIGVmZmVjdCBhc1xuICAvLyBicmVha2luZyBvdXQgb2YgdGhlIGRpc3BhdGNoIHN3aXRjaCBzdGF0ZW1lbnQuXG4gIHZhciBDb250aW51ZVNlbnRpbmVsID0ge307XG5cbiAgLy8gRHVtbXkgY29uc3RydWN0b3IgZnVuY3Rpb25zIHRoYXQgd2UgdXNlIGFzIHRoZSAuY29uc3RydWN0b3IgYW5kXG4gIC8vIC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgcHJvcGVydGllcyBmb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIEdlbmVyYXRvclxuICAvLyBvYmplY3RzLiBGb3IgZnVsbCBzcGVjIGNvbXBsaWFuY2UsIHlvdSBtYXkgd2lzaCB0byBjb25maWd1cmUgeW91clxuICAvLyBtaW5pZmllciBub3QgdG8gbWFuZ2xlIHRoZSBuYW1lcyBvZiB0aGVzZSB0d28gZnVuY3Rpb25zLlxuICBmdW5jdGlvbiBHZW5lcmF0b3IoKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvbigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKCkge31cblxuICAvLyBUaGlzIGlzIGEgcG9seWZpbGwgZm9yICVJdGVyYXRvclByb3RvdHlwZSUgZm9yIGVudmlyb25tZW50cyB0aGF0XG4gIC8vIGRvbid0IG5hdGl2ZWx5IHN1cHBvcnQgaXQuXG4gIHZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuICBJdGVyYXRvclByb3RvdHlwZVtpdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgdmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuICB2YXIgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90byAmJiBnZXRQcm90byhnZXRQcm90byh2YWx1ZXMoW10pKSk7XG4gIGlmIChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAmJlxuICAgICAgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgIT09IE9wICYmXG4gICAgICBoYXNPd24uY2FsbChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSwgaXRlcmF0b3JTeW1ib2wpKSB7XG4gICAgLy8gVGhpcyBlbnZpcm9ubWVudCBoYXMgYSBuYXRpdmUgJUl0ZXJhdG9yUHJvdG90eXBlJTsgdXNlIGl0IGluc3RlYWRcbiAgICAvLyBvZiB0aGUgcG9seWZpbGwuXG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBOYXRpdmVJdGVyYXRvclByb3RvdHlwZTtcbiAgfVxuXG4gIHZhciBHcCA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZSA9XG4gICAgR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUpO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5wcm90b3R5cGUgPSBHcC5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlO1xuICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZSA9IGRlZmluZShcbiAgICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICB0b1N0cmluZ1RhZ1N5bWJvbCxcbiAgICBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgKTtcblxuICAvLyBIZWxwZXIgZm9yIGRlZmluaW5nIHRoZSAubmV4dCwgLnRocm93LCBhbmQgLnJldHVybiBtZXRob2RzIG9mIHRoZVxuICAvLyBJdGVyYXRvciBpbnRlcmZhY2UgaW4gdGVybXMgb2YgYSBzaW5nbGUgLl9pbnZva2UgbWV0aG9kLlxuICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHMocHJvdG90eXBlKSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gICAgICBkZWZpbmUocHJvdG90eXBlLCBtZXRob2QsIGZ1bmN0aW9uKGFyZykge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKG1ldGhvZCwgYXJnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBkZWZpbmUoZ2VuRnVuLCB0b1N0cmluZ1RhZ1N5bWJvbCwgXCJHZW5lcmF0b3JGdW5jdGlvblwiKTtcbiAgICB9XG4gICAgZ2VuRnVuLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoR3ApO1xuICAgIHJldHVybiBnZW5GdW47XG4gIH07XG5cbiAgLy8gV2l0aGluIHRoZSBib2R5IG9mIGFueSBhc3luYyBmdW5jdGlvbiwgYGF3YWl0IHhgIGlzIHRyYW5zZm9ybWVkIHRvXG4gIC8vIGB5aWVsZCByZWdlbmVyYXRvclJ1bnRpbWUuYXdyYXAoeClgLCBzbyB0aGF0IHRoZSBydW50aW1lIGNhbiB0ZXN0XG4gIC8vIGBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpYCB0byBkZXRlcm1pbmUgaWYgdGhlIHlpZWxkZWQgdmFsdWUgaXNcbiAgLy8gbWVhbnQgdG8gYmUgYXdhaXRlZC5cbiAgZXhwb3J0cy5hd3JhcCA9IGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiB7IF9fYXdhaXQ6IGFyZyB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIEFzeW5jSXRlcmF0b3IoZ2VuZXJhdG9yLCBQcm9taXNlSW1wbCkge1xuICAgIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZywgcmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goZ2VuZXJhdG9yW21ldGhvZF0sIGdlbmVyYXRvciwgYXJnKTtcbiAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIHJlamVjdChyZWNvcmQuYXJnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZWNvcmQuYXJnO1xuICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2VJbXBsLnJlc29sdmUodmFsdWUuX19hd2FpdCkudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgIGludm9rZShcInRocm93XCIsIGVyciwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uKHVud3JhcHBlZCkge1xuICAgICAgICAgIC8vIFdoZW4gYSB5aWVsZGVkIFByb21pc2UgaXMgcmVzb2x2ZWQsIGl0cyBmaW5hbCB2YWx1ZSBiZWNvbWVzXG4gICAgICAgICAgLy8gdGhlIC52YWx1ZSBvZiB0aGUgUHJvbWlzZTx7dmFsdWUsZG9uZX0+IHJlc3VsdCBmb3IgdGhlXG4gICAgICAgICAgLy8gY3VycmVudCBpdGVyYXRpb24uXG4gICAgICAgICAgcmVzdWx0LnZhbHVlID0gdW53cmFwcGVkO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAvLyBJZiBhIHJlamVjdGVkIFByb21pc2Ugd2FzIHlpZWxkZWQsIHRocm93IHRoZSByZWplY3Rpb24gYmFja1xuICAgICAgICAgIC8vIGludG8gdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgaGFuZGxlZCB0aGVyZS5cbiAgICAgICAgICByZXR1cm4gaW52b2tlKFwidGhyb3dcIiwgZXJyb3IsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwcmV2aW91c1Byb21pc2U7XG5cbiAgICBmdW5jdGlvbiBlbnF1ZXVlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBmdW5jdGlvbiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlSW1wbChmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcHJldmlvdXNQcm9taXNlID1cbiAgICAgICAgLy8gSWYgZW5xdWV1ZSBoYXMgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIHdlIHdhbnQgdG8gd2FpdCB1bnRpbFxuICAgICAgICAvLyBhbGwgcHJldmlvdXMgUHJvbWlzZXMgaGF2ZSBiZWVuIHJlc29sdmVkIGJlZm9yZSBjYWxsaW5nIGludm9rZSxcbiAgICAgICAgLy8gc28gdGhhdCByZXN1bHRzIGFyZSBhbHdheXMgZGVsaXZlcmVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLiBJZlxuICAgICAgICAvLyBlbnF1ZXVlIGhhcyBub3QgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIGl0IGlzIGltcG9ydGFudCB0b1xuICAgICAgICAvLyBjYWxsIGludm9rZSBpbW1lZGlhdGVseSwgd2l0aG91dCB3YWl0aW5nIG9uIGEgY2FsbGJhY2sgdG8gZmlyZSxcbiAgICAgICAgLy8gc28gdGhhdCB0aGUgYXN5bmMgZ2VuZXJhdG9yIGZ1bmN0aW9uIGhhcyB0aGUgb3Bwb3J0dW5pdHkgdG8gZG9cbiAgICAgICAgLy8gYW55IG5lY2Vzc2FyeSBzZXR1cCBpbiBhIHByZWRpY3RhYmxlIHdheS4gVGhpcyBwcmVkaWN0YWJpbGl0eVxuICAgICAgICAvLyBpcyB3aHkgdGhlIFByb21pc2UgY29uc3RydWN0b3Igc3luY2hyb25vdXNseSBpbnZva2VzIGl0c1xuICAgICAgICAvLyBleGVjdXRvciBjYWxsYmFjaywgYW5kIHdoeSBhc3luYyBmdW5jdGlvbnMgc3luY2hyb25vdXNseVxuICAgICAgICAvLyBleGVjdXRlIGNvZGUgYmVmb3JlIHRoZSBmaXJzdCBhd2FpdC4gU2luY2Ugd2UgaW1wbGVtZW50IHNpbXBsZVxuICAgICAgICAvLyBhc3luYyBmdW5jdGlvbnMgaW4gdGVybXMgb2YgYXN5bmMgZ2VuZXJhdG9ycywgaXQgaXMgZXNwZWNpYWxseVxuICAgICAgICAvLyBpbXBvcnRhbnQgdG8gZ2V0IHRoaXMgcmlnaHQsIGV2ZW4gdGhvdWdoIGl0IHJlcXVpcmVzIGNhcmUuXG4gICAgICAgIHByZXZpb3VzUHJvbWlzZSA/IHByZXZpb3VzUHJvbWlzZS50aGVuKFxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLFxuICAgICAgICAgIC8vIEF2b2lkIHByb3BhZ2F0aW5nIGZhaWx1cmVzIHRvIFByb21pc2VzIHJldHVybmVkIGJ5IGxhdGVyXG4gICAgICAgICAgLy8gaW52b2NhdGlvbnMgb2YgdGhlIGl0ZXJhdG9yLlxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnXG4gICAgICAgICkgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgIH1cblxuICAgIC8vIERlZmluZSB0aGUgdW5pZmllZCBoZWxwZXIgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgLm5leHQsXG4gICAgLy8gLnRocm93LCBhbmQgLnJldHVybiAoc2VlIGRlZmluZUl0ZXJhdG9yTWV0aG9kcykuXG4gICAgdGhpcy5faW52b2tlID0gZW5xdWV1ZTtcbiAgfVxuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSk7XG4gIEFzeW5jSXRlcmF0b3IucHJvdG90eXBlW2FzeW5jSXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBleHBvcnRzLkFzeW5jSXRlcmF0b3IgPSBBc3luY0l0ZXJhdG9yO1xuXG4gIC8vIE5vdGUgdGhhdCBzaW1wbGUgYXN5bmMgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2ZcbiAgLy8gQXN5bmNJdGVyYXRvciBvYmplY3RzOyB0aGV5IGp1c3QgcmV0dXJuIGEgUHJvbWlzZSBmb3IgdGhlIHZhbHVlIG9mXG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgcHJvZHVjZWQgYnkgdGhlIGl0ZXJhdG9yLlxuICBleHBvcnRzLmFzeW5jID0gZnVuY3Rpb24oaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QsIFByb21pc2VJbXBsKSB7XG4gICAgaWYgKFByb21pc2VJbXBsID09PSB2b2lkIDApIFByb21pc2VJbXBsID0gUHJvbWlzZTtcblxuICAgIHZhciBpdGVyID0gbmV3IEFzeW5jSXRlcmF0b3IoXG4gICAgICB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSxcbiAgICAgIFByb21pc2VJbXBsXG4gICAgKTtcblxuICAgIHJldHVybiBleHBvcnRzLmlzR2VuZXJhdG9yRnVuY3Rpb24ob3V0ZXJGbilcbiAgICAgID8gaXRlciAvLyBJZiBvdXRlckZuIGlzIGEgZ2VuZXJhdG9yLCByZXR1cm4gdGhlIGZ1bGwgaXRlcmF0b3IuXG4gICAgICA6IGl0ZXIubmV4dCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gcmVzdWx0LnZhbHVlIDogaXRlci5uZXh0KCk7XG4gICAgICAgIH0pO1xuICB9O1xuXG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCkge1xuICAgIHZhciBzdGF0ZSA9IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQ7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gaW52b2tlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlRXhlY3V0aW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVDb21wbGV0ZWQpIHtcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgdGhyb3cgYXJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmUgZm9yZ2l2aW5nLCBwZXIgMjUuMy4zLjMuMyBvZiB0aGUgc3BlYzpcbiAgICAgICAgLy8gaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLWdlbmVyYXRvcnJlc3VtZVxuICAgICAgICByZXR1cm4gZG9uZVJlc3VsdCgpO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgIGNvbnRleHQuYXJnID0gYXJnO1xuXG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgZGVsZWdhdGUgPSBjb250ZXh0LmRlbGVnYXRlO1xuICAgICAgICBpZiAoZGVsZWdhdGUpIHtcbiAgICAgICAgICB2YXIgZGVsZWdhdGVSZXN1bHQgPSBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcbiAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChkZWxlZ2F0ZVJlc3VsdCA9PT0gQ29udGludWVTZW50aW5lbCkgY29udGludWU7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVSZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcIm5leHRcIikge1xuICAgICAgICAgIC8vIFNldHRpbmcgY29udGV4dC5fc2VudCBmb3IgbGVnYWN5IHN1cHBvcnQgb2YgQmFiZWwnc1xuICAgICAgICAgIC8vIGZ1bmN0aW9uLnNlbnQgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgY29udGV4dC5zZW50ID0gY29udGV4dC5fc2VudCA9IGNvbnRleHQuYXJnO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVTdXNwZW5kZWRTdGFydCkge1xuICAgICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAgIHRocm93IGNvbnRleHQuYXJnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgICBjb250ZXh0LmFicnVwdChcInJldHVyblwiLCBjb250ZXh0LmFyZyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZSA9IEdlblN0YXRlRXhlY3V0aW5nO1xuXG4gICAgICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcIm5vcm1hbFwiKSB7XG4gICAgICAgICAgLy8gSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBmcm9tIGlubmVyRm4sIHdlIGxlYXZlIHN0YXRlID09PVxuICAgICAgICAgIC8vIEdlblN0YXRlRXhlY3V0aW5nIGFuZCBsb29wIGJhY2sgZm9yIGFub3RoZXIgaW52b2NhdGlvbi5cbiAgICAgICAgICBzdGF0ZSA9IGNvbnRleHQuZG9uZVxuICAgICAgICAgICAgPyBHZW5TdGF0ZUNvbXBsZXRlZFxuICAgICAgICAgICAgOiBHZW5TdGF0ZVN1c3BlbmRlZFlpZWxkO1xuXG4gICAgICAgICAgaWYgKHJlY29yZC5hcmcgPT09IENvbnRpbnVlU2VudGluZWwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcmVjb3JkLmFyZyxcbiAgICAgICAgICAgIGRvbmU6IGNvbnRleHQuZG9uZVxuICAgICAgICAgIH07XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAvLyBEaXNwYXRjaCB0aGUgZXhjZXB0aW9uIGJ5IGxvb3BpbmcgYmFjayBhcm91bmQgdG8gdGhlXG4gICAgICAgICAgLy8gY29udGV4dC5kaXNwYXRjaEV4Y2VwdGlvbihjb250ZXh0LmFyZykgY2FsbCBhYm92ZS5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gQ2FsbCBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF0oY29udGV4dC5hcmcpIGFuZCBoYW5kbGUgdGhlXG4gIC8vIHJlc3VsdCwgZWl0aGVyIGJ5IHJldHVybmluZyBhIHsgdmFsdWUsIGRvbmUgfSByZXN1bHQgZnJvbSB0aGVcbiAgLy8gZGVsZWdhdGUgaXRlcmF0b3IsIG9yIGJ5IG1vZGlmeWluZyBjb250ZXh0Lm1ldGhvZCBhbmQgY29udGV4dC5hcmcsXG4gIC8vIHNldHRpbmcgY29udGV4dC5kZWxlZ2F0ZSB0byBudWxsLCBhbmQgcmV0dXJuaW5nIHRoZSBDb250aW51ZVNlbnRpbmVsLlxuICBmdW5jdGlvbiBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KSB7XG4gICAgdmFyIG1ldGhvZCA9IGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXTtcbiAgICBpZiAobWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEEgLnRocm93IG9yIC5yZXR1cm4gd2hlbiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIG5vIC50aHJvd1xuICAgICAgLy8gbWV0aG9kIGFsd2F5cyB0ZXJtaW5hdGVzIHRoZSB5aWVsZCogbG9vcC5cbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuXG4gICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAvLyBOb3RlOiBbXCJyZXR1cm5cIl0gbXVzdCBiZSB1c2VkIGZvciBFUzMgcGFyc2luZyBjb21wYXRpYmlsaXR5LlxuICAgICAgICBpZiAoZGVsZWdhdGUuaXRlcmF0b3JbXCJyZXR1cm5cIl0pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIGEgcmV0dXJuIG1ldGhvZCwgZ2l2ZSBpdCBhXG4gICAgICAgICAgLy8gY2hhbmNlIHRvIGNsZWFuIHVwLlxuICAgICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJyZXR1cm5cIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgICAvLyBJZiBtYXliZUludm9rZURlbGVnYXRlKGNvbnRleHQpIGNoYW5nZWQgY29udGV4dC5tZXRob2QgZnJvbVxuICAgICAgICAgICAgLy8gXCJyZXR1cm5cIiB0byBcInRocm93XCIsIGxldCB0aGF0IG92ZXJyaWRlIHRoZSBUeXBlRXJyb3IgYmVsb3cuXG4gICAgICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgIFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZFwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKG1ldGhvZCwgZGVsZWdhdGUuaXRlcmF0b3IsIGNvbnRleHQuYXJnKTtcblxuICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgIGNvbnRleHQuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIGluZm8gPSByZWNvcmQuYXJnO1xuXG4gICAgaWYgKCEgaW5mbykge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IG5ldyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKTtcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgaWYgKGluZm8uZG9uZSkge1xuICAgICAgLy8gQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGZpbmlzaGVkIGRlbGVnYXRlIHRvIHRoZSB0ZW1wb3JhcnlcbiAgICAgIC8vIHZhcmlhYmxlIHNwZWNpZmllZCBieSBkZWxlZ2F0ZS5yZXN1bHROYW1lIChzZWUgZGVsZWdhdGVZaWVsZCkuXG4gICAgICBjb250ZXh0W2RlbGVnYXRlLnJlc3VsdE5hbWVdID0gaW5mby52YWx1ZTtcblxuICAgICAgLy8gUmVzdW1lIGV4ZWN1dGlvbiBhdCB0aGUgZGVzaXJlZCBsb2NhdGlvbiAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dC5uZXh0ID0gZGVsZWdhdGUubmV4dExvYztcblxuICAgICAgLy8gSWYgY29udGV4dC5tZXRob2Qgd2FzIFwidGhyb3dcIiBidXQgdGhlIGRlbGVnYXRlIGhhbmRsZWQgdGhlXG4gICAgICAvLyBleGNlcHRpb24sIGxldCB0aGUgb3V0ZXIgZ2VuZXJhdG9yIHByb2NlZWQgbm9ybWFsbHkuIElmXG4gICAgICAvLyBjb250ZXh0Lm1ldGhvZCB3YXMgXCJuZXh0XCIsIGZvcmdldCBjb250ZXh0LmFyZyBzaW5jZSBpdCBoYXMgYmVlblxuICAgICAgLy8gXCJjb25zdW1lZFwiIGJ5IHRoZSBkZWxlZ2F0ZSBpdGVyYXRvci4gSWYgY29udGV4dC5tZXRob2Qgd2FzXG4gICAgICAvLyBcInJldHVyblwiLCBhbGxvdyB0aGUgb3JpZ2luYWwgLnJldHVybiBjYWxsIHRvIGNvbnRpbnVlIGluIHRoZVxuICAgICAgLy8gb3V0ZXIgZ2VuZXJhdG9yLlxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kICE9PSBcInJldHVyblwiKSB7XG4gICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlLXlpZWxkIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGRlbGVnYXRlIG1ldGhvZC5cbiAgICAgIHJldHVybiBpbmZvO1xuICAgIH1cblxuICAgIC8vIFRoZSBkZWxlZ2F0ZSBpdGVyYXRvciBpcyBmaW5pc2hlZCwgc28gZm9yZ2V0IGl0IGFuZCBjb250aW51ZSB3aXRoXG4gICAgLy8gdGhlIG91dGVyIGdlbmVyYXRvci5cbiAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgfVxuXG4gIC8vIERlZmluZSBHZW5lcmF0b3IucHJvdG90eXBlLntuZXh0LHRocm93LHJldHVybn0gaW4gdGVybXMgb2YgdGhlXG4gIC8vIHVuaWZpZWQgLl9pbnZva2UgaGVscGVyIG1ldGhvZC5cbiAgZGVmaW5lSXRlcmF0b3JNZXRob2RzKEdwKTtcblxuICBkZWZpbmUoR3AsIHRvU3RyaW5nVGFnU3ltYm9sLCBcIkdlbmVyYXRvclwiKTtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm93XCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIF9yb3dbXCJkZWZhdWx0XCJdO1xuICB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNvbFwiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfY29sW1wiZGVmYXVsdFwiXTtcbiAgfVxufSk7XG5cbnZhciBfcm93ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9yb3dcIikpO1xuXG52YXIgX2NvbCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vY29sXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9jcmVhdGVSZWFjdENvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYW50LWRlc2lnbi9jcmVhdGUtcmVhY3QtY29udGV4dFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG52YXIgUm93Q29udGV4dCA9ICgwLCBfY3JlYXRlUmVhY3RDb250ZXh0W1wiZGVmYXVsdFwiXSkoe30pO1xudmFyIF9kZWZhdWx0ID0gUm93Q29udGV4dDtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGl0ZXJhdGluZyBvdmVyIGEgY29sbGVjdGlvblxuICpcbiAqIEBwYXJhbSBjb2xsZWN0aW9uXG4gKiBAcGFyYW0gZm5cbiAqL1xuZnVuY3Rpb24gZWFjaChjb2xsZWN0aW9uLCBmbikge1xuICAgIHZhciBpICAgICAgPSAwLFxuICAgICAgICBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aCxcbiAgICAgICAgY29udDtcblxuICAgIGZvcihpOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29udCA9IGZuKGNvbGxlY3Rpb25baV0sIGkpO1xuICAgICAgICBpZihjb250ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgYnJlYWs7IC8vYWxsb3cgZWFybHkgZXhpdFxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciB0YXJnZXQgb2JqZWN0IGlzIGFuIGFycmF5XG4gKlxuICogQHBhcmFtIHRhcmdldCB0aGUgb2JqZWN0IHVuZGVyIHRlc3RcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgYXJyYXksIGZhbHNlIG90aGVyd2lzZVxuICovXG5mdW5jdGlvbiBpc0FycmF5KHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHRhcmdldCkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHRhcmdldCBvYmplY3QgaXMgYSBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB0YXJnZXQgdGhlIG9iamVjdCB1bmRlciB0ZXN0XG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIGZ1bmN0aW9uLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih0YXJnZXQpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNGdW5jdGlvbiA6IGlzRnVuY3Rpb24sXG4gICAgaXNBcnJheSA6IGlzQXJyYXksXG4gICAgZWFjaCA6IGVhY2hcbn07XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdDtcbiIsInZhciBmcmVlR2xvYmFsID0gcmVxdWlyZSgnLi9fZnJlZUdsb2JhbCcpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHNlbGZgLiAqL1xudmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbi8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xudmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm9vdDtcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW1ib2w7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxudmFyIHByb2Nlc3MgPSBtb2R1bGUuZXhwb3J0cyA9IHt9O1xuXG4vLyBjYWNoZWQgZnJvbSB3aGF0ZXZlciBnbG9iYWwgaXMgcHJlc2VudCBzbyB0aGF0IHRlc3QgcnVubmVycyB0aGF0IHN0dWIgaXRcbi8vIGRvbid0IGJyZWFrIHRoaW5ncy4gIEJ1dCB3ZSBuZWVkIHRvIHdyYXAgaXQgaW4gYSB0cnkgY2F0Y2ggaW4gY2FzZSBpdCBpc1xuLy8gd3JhcHBlZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdoaWNoIGRvZXNuJ3QgZGVmaW5lIGFueSBnbG9iYWxzLiAgSXQncyBpbnNpZGUgYVxuLy8gZnVuY3Rpb24gYmVjYXVzZSB0cnkvY2F0Y2hlcyBkZW9wdGltaXplIGluIGNlcnRhaW4gZW5naW5lcy5cblxudmFyIGNhY2hlZFNldFRpbWVvdXQ7XG52YXIgY2FjaGVkQ2xlYXJUaW1lb3V0O1xuXG5mdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbihmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgfVxufSAoKSlcbmZ1bmN0aW9uIHJ1blRpbWVvdXQoZnVuKSB7XG4gICAgaWYgKGNhY2hlZFNldFRpbWVvdXQgPT09IHNldFRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIC8vIGlmIHNldFRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRTZXRUaW1lb3V0ID09PSBkZWZhdWx0U2V0VGltb3V0IHx8ICFjYWNoZWRTZXRUaW1lb3V0KSAmJiBzZXRUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfSBjYXRjaChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbChudWxsLCBmdW4sIDApO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3JcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwodGhpcywgZnVuLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG59XG5mdW5jdGlvbiBydW5DbGVhclRpbWVvdXQobWFya2VyKSB7XG4gICAgaWYgKGNhY2hlZENsZWFyVGltZW91dCA9PT0gY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIC8vIGlmIGNsZWFyVGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZENsZWFyVGltZW91dCA9PT0gZGVmYXVsdENsZWFyVGltZW91dCB8fCAhY2FjaGVkQ2xlYXJUaW1lb3V0KSAmJiBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0ICB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKG51bGwsIG1hcmtlcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3IuXG4gICAgICAgICAgICAvLyBTb21lIHZlcnNpb25zIG9mIEkuRS4gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgZm9yIGNsZWFyVGltZW91dCB2cyBzZXRUaW1lb3V0XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwodGhpcywgbWFya2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbn1cbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG52YXIgY3VycmVudFF1ZXVlO1xudmFyIHF1ZXVlSW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCkge1xuICAgIGlmICghZHJhaW5pbmcgfHwgIWN1cnJlbnRRdWV1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnRRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcXVldWUgPSBjdXJyZW50UXVldWUuY29uY2F0KHF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgZHJhaW5RdWV1ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZHJhaW5RdWV1ZSgpIHtcbiAgICBpZiAoZHJhaW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgdGltZW91dCA9IHJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTtcbiAgICBkcmFpbmluZyA9IHRydWU7XG5cbiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIHdoaWxlKGxlbikge1xuICAgICAgICBjdXJyZW50UXVldWUgPSBxdWV1ZTtcbiAgICAgICAgcXVldWUgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsrcXVldWVJbmRleCA8IGxlbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRRdWV1ZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIHJ1bkNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7XG4gICAgICAgIHJ1blRpbWVvdXQoZHJhaW5RdWV1ZSk7XG4gICAgfVxufTtcblxuLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0c1xuZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7XG4gICAgdGhpcy5mdW4gPSBmdW47XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xufVxuSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpO1xufTtcbnByb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7XG5wcm9jZXNzLmJyb3dzZXIgPSB0cnVlO1xucHJvY2Vzcy5lbnYgPSB7fTtcbnByb2Nlc3MuYXJndiA9IFtdO1xucHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzXG5wcm9jZXNzLnZlcnNpb25zID0ge307XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5wcm9jZXNzLm9uID0gbm9vcDtcbnByb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5vbmNlID0gbm9vcDtcbnByb2Nlc3Mub2ZmID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBub29wO1xucHJvY2Vzcy5lbWl0ID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZE9uY2VMaXN0ZW5lciA9IG5vb3A7XG5cbnByb2Nlc3MubGlzdGVuZXJzID0gZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIFtdIH1cblxucHJvY2Vzcy5iaW5kaW5nID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xuXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGFyciwgb2JqKXtcbiAgaWYgKGFyci5pbmRleE9mKSByZXR1cm4gYXJyLmluZGV4T2Yob2JqKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoYXJyW2ldID09PSBvYmopIHJldHVybiBpO1xuICB9XG4gIHJldHVybiAtMTtcbn07IiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3Q7XG4iLCJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvb3Q7XG4iLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgU3ltYm9sID0gcm9vdC5TeW1ib2w7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ltYm9sO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuZGVzdHJveUZucyA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yY0RpYWxvZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLWRpYWxvZ1wiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2FkZEV2ZW50TGlzdGVuZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy11dGlsL2xpYi9Eb20vYWRkRXZlbnRMaXN0ZW5lclwiKSk7XG5cbnZhciBfbG9jYWxlID0gcmVxdWlyZShcIi4vbG9jYWxlXCIpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxudmFyIF9idXR0b24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9idXR0b25cIikpO1xuXG52YXIgX0xvY2FsZVJlY2VpdmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyL0xvY2FsZVJlY2VpdmVyXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgbW91c2VQb3NpdGlvbjtcbnZhciBkZXN0cm95Rm5zID0gW107IC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTU3OTVcblxuZXhwb3J0cy5kZXN0cm95Rm5zID0gZGVzdHJveUZucztcblxudmFyIGdldENsaWNrUG9zaXRpb24gPSBmdW5jdGlvbiBnZXRDbGlja1Bvc2l0aW9uKGUpIHtcbiAgbW91c2VQb3NpdGlvbiA9IHtcbiAgICB4OiBlLnBhZ2VYLFxuICAgIHk6IGUucGFnZVlcbiAgfTsgLy8gMTAwbXMg5YaF5Y+R55Sf6L+H54K55Ye75LqL5Lu277yM5YiZ5LuO54K55Ye75L2N572u5Yqo55S75bGV56S6XG4gIC8vIOWQpuWImeebtOaOpSB6b29tIOWxleekulxuICAvLyDov5nmoLflj6/ku6XlhbzlrrnpnZ7ngrnlh7vmlrnlvI/lsZXlvIBcblxuICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbW91c2VQb3NpdGlvbiA9IG51bGw7XG4gIH0sIDEwMCk7XG59OyAvLyDlj6rmnInngrnlh7vkuovku7bmlK/mjIHku47pvKDmoIfkvY3nva7liqjnlLvlsZXlvIBcblxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgKDAsIF9hZGRFdmVudExpc3RlbmVyW1wiZGVmYXVsdFwiXSkoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnY2xpY2snLCBnZXRDbGlja1Bvc2l0aW9uKTtcbn1cblxudmFyIE1vZGFsID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhNb2RhbCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihNb2RhbCk7XG5cbiAgZnVuY3Rpb24gTW9kYWwoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1vZGFsKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5oYW5kbGVDYW5jZWwgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIG9uQ2FuY2VsID0gX3RoaXMucHJvcHMub25DYW5jZWw7XG5cbiAgICAgIGlmIChvbkNhbmNlbCkge1xuICAgICAgICBvbkNhbmNlbChlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlT2sgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIG9uT2sgPSBfdGhpcy5wcm9wcy5vbk9rO1xuXG4gICAgICBpZiAob25Paykge1xuICAgICAgICBvbk9rKGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJGb290ZXIgPSBmdW5jdGlvbiAobG9jYWxlKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBva1RleHQgPSBfdGhpcyRwcm9wcy5va1RleHQsXG4gICAgICAgICAgb2tUeXBlID0gX3RoaXMkcHJvcHMub2tUeXBlLFxuICAgICAgICAgIGNhbmNlbFRleHQgPSBfdGhpcyRwcm9wcy5jYW5jZWxUZXh0LFxuICAgICAgICAgIGNvbmZpcm1Mb2FkaW5nID0gX3RoaXMkcHJvcHMuY29uZmlybUxvYWRpbmc7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2J1dHRvbltcImRlZmF1bHRcIl0sIF9leHRlbmRzKHtcbiAgICAgICAgb25DbGljazogX3RoaXMuaGFuZGxlQ2FuY2VsXG4gICAgICB9LCBfdGhpcy5wcm9wcy5jYW5jZWxCdXR0b25Qcm9wcyksIGNhbmNlbFRleHQgfHwgbG9jYWxlLmNhbmNlbFRleHQpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfYnV0dG9uW1wiZGVmYXVsdFwiXSwgX2V4dGVuZHMoe1xuICAgICAgICB0eXBlOiBva1R5cGUsXG4gICAgICAgIGxvYWRpbmc6IGNvbmZpcm1Mb2FkaW5nLFxuICAgICAgICBvbkNsaWNrOiBfdGhpcy5oYW5kbGVPa1xuICAgICAgfSwgX3RoaXMucHJvcHMub2tCdXR0b25Qcm9wcyksIG9rVGV4dCB8fCBsb2NhbGUub2tUZXh0KSk7XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlck1vZGFsID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBnZXRDb250ZXh0UG9wdXBDb250YWluZXIgPSBfcmVmLmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgICAgIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgICB2YXIgX2EgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICAgICAgZm9vdGVyID0gX2EuZm9vdGVyLFxuICAgICAgICAgIHZpc2libGUgPSBfYS52aXNpYmxlLFxuICAgICAgICAgIHdyYXBDbGFzc05hbWUgPSBfYS53cmFwQ2xhc3NOYW1lLFxuICAgICAgICAgIGNlbnRlcmVkID0gX2EuY2VudGVyZWQsXG4gICAgICAgICAgZ2V0Q29udGFpbmVyID0gX2EuZ2V0Q29udGFpbmVyLFxuICAgICAgICAgIGNsb3NlSWNvbiA9IF9hLmNsb3NlSWNvbixcbiAgICAgICAgICByZXN0UHJvcHMgPSBfX3Jlc3QoX2EsIFtcInByZWZpeENsc1wiLCBcImZvb3RlclwiLCBcInZpc2libGVcIiwgXCJ3cmFwQ2xhc3NOYW1lXCIsIFwiY2VudGVyZWRcIiwgXCJnZXRDb250YWluZXJcIiwgXCJjbG9zZUljb25cIl0pO1xuXG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdtb2RhbCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgZGVmYXVsdEZvb3RlciA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9Mb2NhbGVSZWNlaXZlcltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgY29tcG9uZW50TmFtZTogXCJNb2RhbFwiLFxuICAgICAgICBkZWZhdWx0TG9jYWxlOiAoMCwgX2xvY2FsZS5nZXRDb25maXJtTG9jYWxlKSgpXG4gICAgICB9LCBfdGhpcy5yZW5kZXJGb290ZXIpO1xuICAgICAgdmFyIGNsb3NlSWNvblRvUmVuZGVyID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNsb3NlLXhcIilcbiAgICAgIH0sIGNsb3NlSWNvbiB8fCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNsb3NlLWljb25cIiksXG4gICAgICAgIHR5cGU6IFwiY2xvc2VcIlxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yY0RpYWxvZ1tcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCByZXN0UHJvcHMsIHtcbiAgICAgICAgZ2V0Q29udGFpbmVyOiBnZXRDb250YWluZXIgPT09IHVuZGVmaW5lZCA/IGdldENvbnRleHRQb3B1cENvbnRhaW5lciA6IGdldENvbnRhaW5lcixcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIHdyYXBDbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jZW50ZXJlZFwiKSwgISFjZW50ZXJlZCksIHdyYXBDbGFzc05hbWUpLFxuICAgICAgICBmb290ZXI6IGZvb3RlciA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdEZvb3RlciA6IGZvb3RlcixcbiAgICAgICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICAgICAgbW91c2VQb3NpdGlvbjogbW91c2VQb3NpdGlvbixcbiAgICAgICAgb25DbG9zZTogX3RoaXMuaGFuZGxlQ2FuY2VsLFxuICAgICAgICBjbG9zZUljb246IGNsb3NlSWNvblRvUmVuZGVyXG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNb2RhbCwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyTW9kYWwpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBNb2RhbDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBNb2RhbDtcbk1vZGFsLmRlZmF1bHRQcm9wcyA9IHtcbiAgd2lkdGg6IDUyMCxcbiAgdHJhbnNpdGlvbk5hbWU6ICd6b29tJyxcbiAgbWFza1RyYW5zaXRpb25OYW1lOiAnZmFkZScsXG4gIGNvbmZpcm1Mb2FkaW5nOiBmYWxzZSxcbiAgdmlzaWJsZTogZmFsc2UsXG4gIG9rVHlwZTogJ3ByaW1hcnknXG59O1xuTW9kYWwucHJvcFR5cGVzID0ge1xuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uT2s6IFByb3BUeXBlcy5mdW5jLFxuICBvbkNhbmNlbDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9rVGV4dDogUHJvcFR5cGVzLm5vZGUsXG4gIGNhbmNlbFRleHQ6IFByb3BUeXBlcy5ub2RlLFxuICBjZW50ZXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIHdpZHRoOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIGNvbmZpcm1Mb2FkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgdmlzaWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIGZvb3RlcjogUHJvcFR5cGVzLm5vZGUsXG4gIHRpdGxlOiBQcm9wVHlwZXMubm9kZSxcbiAgY2xvc2FibGU6IFByb3BUeXBlcy5ib29sLFxuICBjbG9zZUljb246IFByb3BUeXBlcy5ub2RlXG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfYnV0dG9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9idXR0b25cIikpO1xuXG52YXIgX2J1dHRvbkdyb3VwID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9idXR0b24tZ3JvdXBcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuX2J1dHRvbltcImRlZmF1bHRcIl0uR3JvdXAgPSBfYnV0dG9uR3JvdXBbXCJkZWZhdWx0XCJdO1xudmFyIF9kZWZhdWx0ID0gX2J1dHRvbltcImRlZmF1bHRcIl07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsInZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzaGFsbG93RXF1YWwgZnJvbSAnc2hhbGxvd2VxdWFsJztcblxudmFyIFBhbmVsQ29udGVudCA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQYW5lbENvbnRlbnQsIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFBhbmVsQ29udGVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUGFuZWxDb250ZW50KTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoUGFuZWxDb250ZW50Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoUGFuZWxDb250ZW50KSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUGFuZWxDb250ZW50LCBbe1xuICAgIGtleTogJ3Nob3VsZENvbXBvbmVudFVwZGF0ZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcmNlUmVuZGVyIHx8ICFzaGFsbG93RXF1YWwodGhpcy5wcm9wcywgbmV4dFByb3BzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzbmFtZXM7XG5cbiAgICAgIHRoaXMuX2lzQWN0aXZlZCA9IHRoaXMucHJvcHMuZm9yY2VSZW5kZXIgfHwgdGhpcy5faXNBY3RpdmVkIHx8IHRoaXMucHJvcHMuaXNBY3RpdmU7XG4gICAgICBpZiAoIXRoaXMuX2lzQWN0aXZlZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHByZWZpeENscyA9IF9wcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgaXNBY3RpdmUgPSBfcHJvcHMuaXNBY3RpdmUsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgZGVzdHJveUluYWN0aXZlUGFuZWwgPSBfcHJvcHMuZGVzdHJveUluYWN0aXZlUGFuZWwsXG4gICAgICAgICAgZm9yY2VSZW5kZXIgPSBfcHJvcHMuZm9yY2VSZW5kZXIsXG4gICAgICAgICAgcm9sZSA9IF9wcm9wcy5yb2xlO1xuXG4gICAgICB2YXIgY29udGVudENscyA9IGNsYXNzbmFtZXMoKF9jbGFzc25hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NuYW1lcywgcHJlZml4Q2xzICsgJy1jb250ZW50JywgdHJ1ZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NuYW1lcywgcHJlZml4Q2xzICsgJy1jb250ZW50LWFjdGl2ZScsIGlzQWN0aXZlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc25hbWVzLCBwcmVmaXhDbHMgKyAnLWNvbnRlbnQtaW5hY3RpdmUnLCAhaXNBY3RpdmUpLCBfY2xhc3NuYW1lcykpO1xuICAgICAgdmFyIGNoaWxkID0gIWZvcmNlUmVuZGVyICYmICFpc0FjdGl2ZSAmJiBkZXN0cm95SW5hY3RpdmVQYW5lbCA/IG51bGwgOiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZGl2JyxcbiAgICAgICAgeyBjbGFzc05hbWU6IHByZWZpeENscyArICctY29udGVudC1ib3gnIH0sXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICApO1xuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBjb250ZW50Q2xzLFxuICAgICAgICAgIHJvbGU6IHJvbGVcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFBhbmVsQ29udGVudDtcbn0oQ29tcG9uZW50KTtcblxuUGFuZWxDb250ZW50LnByb3BUeXBlcyA9IHtcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpc0FjdGl2ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBkZXN0cm95SW5hY3RpdmVQYW5lbDogUHJvcFR5cGVzLmJvb2wsXG4gIGZvcmNlUmVuZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgcm9sZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxDb250ZW50OyIsInZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQYW5lbENvbnRlbnQgZnJvbSAnLi9QYW5lbENvbnRlbnQnO1xuaW1wb3J0IEFuaW1hdGUgZnJvbSAncmMtYW5pbWF0ZSc7XG5pbXBvcnQgc2hhbGxvd0VxdWFsIGZyb20gJ3NoYWxsb3dlcXVhbCc7XG5cbnZhciBDb2xsYXBzZVBhbmVsID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKENvbGxhcHNlUGFuZWwsIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIENvbGxhcHNlUGFuZWwoKSB7XG4gICAgdmFyIF9yZWY7XG5cbiAgICB2YXIgX3RlbXAsIF90aGlzLCBfcmV0O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbGxhcHNlUGFuZWwpO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIF9yZXQgPSAoX3RlbXAgPSAoX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoX3JlZiA9IENvbGxhcHNlUGFuZWwuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihDb2xsYXBzZVBhbmVsKSkuY2FsbC5hcHBseShfcmVmLCBbdGhpc10uY29uY2F0KGFyZ3MpKSksIF90aGlzKSwgX3RoaXMuaGFuZGxlSXRlbUNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgb25JdGVtQ2xpY2sgPSBfdGhpcyRwcm9wcy5vbkl0ZW1DbGljayxcbiAgICAgICAgICBwYW5lbEtleSA9IF90aGlzJHByb3BzLnBhbmVsS2V5O1xuXG5cbiAgICAgIGlmICh0eXBlb2Ygb25JdGVtQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25JdGVtQ2xpY2socGFuZWxLZXkpO1xuICAgICAgfVxuICAgIH0sIF90aGlzLmhhbmRsZUtleVByZXNzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleUNvZGUgPT09IDEzIHx8IGUud2hpY2ggPT09IDEzKSB7XG4gICAgICAgIF90aGlzLmhhbmRsZUl0ZW1DbGljaygpO1xuICAgICAgfVxuICAgIH0sIF90ZW1wKSwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsIF9yZXQpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENvbGxhcHNlUGFuZWwsIFt7XG4gICAga2V5OiAnc2hvdWxkQ29tcG9uZW50VXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgcmV0dXJuICFzaGFsbG93RXF1YWwodGhpcy5wcm9wcywgbmV4dFByb3BzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXMyO1xuXG4gICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGlkID0gX3Byb3BzLmlkLFxuICAgICAgICAgIHN0eWxlID0gX3Byb3BzLnN0eWxlLFxuICAgICAgICAgIHByZWZpeENscyA9IF9wcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgaGVhZGVyID0gX3Byb3BzLmhlYWRlcixcbiAgICAgICAgICBoZWFkZXJDbGFzcyA9IF9wcm9wcy5oZWFkZXJDbGFzcyxcbiAgICAgICAgICBjaGlsZHJlbiA9IF9wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBpc0FjdGl2ZSA9IF9wcm9wcy5pc0FjdGl2ZSxcbiAgICAgICAgICBzaG93QXJyb3cgPSBfcHJvcHMuc2hvd0Fycm93LFxuICAgICAgICAgIGRlc3Ryb3lJbmFjdGl2ZVBhbmVsID0gX3Byb3BzLmRlc3Ryb3lJbmFjdGl2ZVBhbmVsLFxuICAgICAgICAgIGRpc2FibGVkID0gX3Byb3BzLmRpc2FibGVkLFxuICAgICAgICAgIGFjY29yZGlvbiA9IF9wcm9wcy5hY2NvcmRpb24sXG4gICAgICAgICAgZm9yY2VSZW5kZXIgPSBfcHJvcHMuZm9yY2VSZW5kZXIsXG4gICAgICAgICAgZXhwYW5kSWNvbiA9IF9wcm9wcy5leHBhbmRJY29uLFxuICAgICAgICAgIGV4dHJhID0gX3Byb3BzLmV4dHJhO1xuXG4gICAgICB2YXIgaGVhZGVyQ2xzID0gY2xhc3NOYW1lcyhwcmVmaXhDbHMgKyAnLWhlYWRlcicsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgaGVhZGVyQ2xhc3MsIGhlYWRlckNsYXNzKSk7XG4gICAgICB2YXIgaXRlbUNscyA9IGNsYXNzTmFtZXMoKF9jbGFzc05hbWVzMiA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMyLCBwcmVmaXhDbHMgKyAnLWl0ZW0nLCB0cnVlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzMiwgcHJlZml4Q2xzICsgJy1pdGVtLWFjdGl2ZScsIGlzQWN0aXZlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzMiwgcHJlZml4Q2xzICsgJy1pdGVtLWRpc2FibGVkJywgZGlzYWJsZWQpLCBfY2xhc3NOYW1lczIpLCBjbGFzc05hbWUpO1xuXG4gICAgICB2YXIgaWNvbiA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2knLCB7IGNsYXNzTmFtZTogJ2Fycm93JyB9KTtcbiAgICAgIGlmIChzaG93QXJyb3cgJiYgdHlwZW9mIGV4cGFuZEljb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWNvbiA9IGV4cGFuZEljb24odGhpcy5wcm9wcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBpdGVtQ2xzLCBzdHlsZTogc3R5bGUsIGlkOiBpZCB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICdkaXYnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogaGVhZGVyQ2xzLFxuICAgICAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVJdGVtQ2xpY2ssXG4gICAgICAgICAgICByb2xlOiBhY2NvcmRpb24gPyAndGFiJyA6ICdidXR0b24nLFxuICAgICAgICAgICAgdGFiSW5kZXg6IGRpc2FibGVkID8gLTEgOiAwLFxuICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiAnJyArIGlzQWN0aXZlLFxuICAgICAgICAgICAgb25LZXlQcmVzczogdGhpcy5oYW5kbGVLZXlQcmVzc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hvd0Fycm93ICYmIGljb24sXG4gICAgICAgICAgaGVhZGVyLFxuICAgICAgICAgIGV4dHJhICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBwcmVmaXhDbHMgKyAnLWV4dHJhJyB9LFxuICAgICAgICAgICAgZXh0cmFcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgQW5pbWF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzaG93UHJvcDogJ2lzQWN0aXZlJyxcbiAgICAgICAgICAgIGV4Y2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogJycsXG4gICAgICAgICAgICBhbmltYXRpb246IHRoaXMucHJvcHMub3BlbkFuaW1hdGlvblxuICAgICAgICAgIH0sXG4gICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFBhbmVsQ29udGVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgICAgICAgIGlzQWN0aXZlOiBpc0FjdGl2ZSxcbiAgICAgICAgICAgICAgZGVzdHJveUluYWN0aXZlUGFuZWw6IGRlc3Ryb3lJbmFjdGl2ZVBhbmVsLFxuICAgICAgICAgICAgICBmb3JjZVJlbmRlcjogZm9yY2VSZW5kZXIsXG4gICAgICAgICAgICAgIHJvbGU6IGFjY29yZGlvbiA/ICd0YWJwYW5lbCcgOiBudWxsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIENvbGxhcHNlUGFuZWw7XG59KENvbXBvbmVudCk7XG5cbkNvbGxhcHNlUGFuZWwucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBvcGVuQW5pbWF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlYWRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLm5vZGVdKSxcbiAgaGVhZGVyQ2xhc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNob3dBcnJvdzogUHJvcFR5cGVzLmJvb2wsXG4gIGlzQWN0aXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25JdGVtQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGVzdHJveUluYWN0aXZlUGFuZWw6IFByb3BUeXBlcy5ib29sLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGFjY29yZGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gIGZvcmNlUmVuZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgZXhwYW5kSWNvbjogUHJvcFR5cGVzLmZ1bmMsXG4gIGV4dHJhOiBQcm9wVHlwZXMubm9kZSxcbiAgcGFuZWxLZXk6IFByb3BUeXBlcy5hbnlcbn07XG5cbkNvbGxhcHNlUGFuZWwuZGVmYXVsdFByb3BzID0ge1xuICBzaG93QXJyb3c6IHRydWUsXG4gIGlzQWN0aXZlOiBmYWxzZSxcbiAgZGVzdHJveUluYWN0aXZlUGFuZWw6IGZhbHNlLFxuICBvbkl0ZW1DbGljazogZnVuY3Rpb24gb25JdGVtQ2xpY2soKSB7fSxcblxuICBoZWFkZXJDbGFzczogJycsXG4gIGZvcmNlUmVuZGVyOiBmYWxzZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29sbGFwc2VQYW5lbDsiLCJpbXBvcnQgY3NzQW5pbWF0aW9uIGZyb20gJ2Nzcy1hbmltYXRpb24nO1xuXG5mdW5jdGlvbiBhbmltYXRlKG5vZGUsIHNob3csIHRyYW5zaXRpb25OYW1lLCBkb25lKSB7XG4gIHZhciBoZWlnaHQgPSB2b2lkIDA7XG4gIHJldHVybiBjc3NBbmltYXRpb24obm9kZSwgdHJhbnNpdGlvbk5hbWUsIHtcbiAgICBzdGFydDogZnVuY3Rpb24gc3RhcnQoKSB7XG4gICAgICBpZiAoIXNob3cpIHtcbiAgICAgICAgbm9kZS5zdHlsZS5oZWlnaHQgPSBub2RlLm9mZnNldEhlaWdodCArICdweCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWlnaHQgPSBub2RlLm9mZnNldEhlaWdodDtcbiAgICAgICAgbm9kZS5zdHlsZS5oZWlnaHQgPSAwO1xuICAgICAgfVxuICAgIH0sXG4gICAgYWN0aXZlOiBmdW5jdGlvbiBhY3RpdmUoKSB7XG4gICAgICBub2RlLnN0eWxlLmhlaWdodCA9IChzaG93ID8gaGVpZ2h0IDogMCkgKyAncHgnO1xuICAgIH0sXG4gICAgZW5kOiBmdW5jdGlvbiBlbmQoKSB7XG4gICAgICBub2RlLnN0eWxlLmhlaWdodCA9ICcnO1xuICAgICAgZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFuaW1hdGlvbihwcmVmaXhDbHMpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnRlcjogZnVuY3Rpb24gZW50ZXIobm9kZSwgZG9uZSkge1xuICAgICAgcmV0dXJuIGFuaW1hdGUobm9kZSwgdHJ1ZSwgcHJlZml4Q2xzICsgJy1hbmltJywgZG9uZSk7XG4gICAgfSxcbiAgICBsZWF2ZTogZnVuY3Rpb24gbGVhdmUobm9kZSwgZG9uZSkge1xuICAgICAgcmV0dXJuIGFuaW1hdGUobm9kZSwgZmFsc2UsIHByZWZpeENscyArICctYW5pbScsIGRvbmUpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYW5pbWF0aW9uOyIsInZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgeyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IEFycmF5KGFyci5sZW5ndGgpOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH0gZWxzZSB7IHJldHVybiBBcnJheS5mcm9tKGFycik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQsIENoaWxkcmVuIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBDb2xsYXBzZVBhbmVsIGZyb20gJy4vUGFuZWwnO1xuaW1wb3J0IG9wZW5BbmltYXRpb25GYWN0b3J5IGZyb20gJy4vb3BlbkFuaW1hdGlvbkZhY3RvcnknO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBpc0ZyYWdtZW50IH0gZnJvbSAncmVhY3QtaXMnO1xuaW1wb3J0IHNoYWxsb3dFcXVhbCBmcm9tICdzaGFsbG93ZXF1YWwnO1xuXG5mdW5jdGlvbiB0b0FycmF5KGFjdGl2ZUtleSkge1xuICB2YXIgY3VycmVudEFjdGl2ZUtleSA9IGFjdGl2ZUtleTtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGN1cnJlbnRBY3RpdmVLZXkpKSB7XG4gICAgY3VycmVudEFjdGl2ZUtleSA9IGN1cnJlbnRBY3RpdmVLZXkgPyBbY3VycmVudEFjdGl2ZUtleV0gOiBbXTtcbiAgfVxuICByZXR1cm4gY3VycmVudEFjdGl2ZUtleTtcbn1cblxudmFyIENvbGxhcHNlID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKENvbGxhcHNlLCBfQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBDb2xsYXBzZShwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb2xsYXBzZSk7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoQ29sbGFwc2UuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihDb2xsYXBzZSkpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF9pbml0aWFsaXNlUHJvcHMuY2FsbChfdGhpcyk7XG5cbiAgICB2YXIgYWN0aXZlS2V5ID0gcHJvcHMuYWN0aXZlS2V5LFxuICAgICAgICBkZWZhdWx0QWN0aXZlS2V5ID0gcHJvcHMuZGVmYXVsdEFjdGl2ZUtleTtcblxuICAgIHZhciBjdXJyZW50QWN0aXZlS2V5ID0gZGVmYXVsdEFjdGl2ZUtleTtcbiAgICBpZiAoJ2FjdGl2ZUtleScgaW4gcHJvcHMpIHtcbiAgICAgIGN1cnJlbnRBY3RpdmVLZXkgPSBhY3RpdmVLZXk7XG4gICAgfVxuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBvcGVuQW5pbWF0aW9uOiBwcm9wcy5vcGVuQW5pbWF0aW9uIHx8IG9wZW5BbmltYXRpb25GYWN0b3J5KHByb3BzLnByZWZpeENscyksXG4gICAgICBhY3RpdmVLZXk6IHRvQXJyYXkoY3VycmVudEFjdGl2ZUtleSlcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDb2xsYXBzZSwgW3tcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIGlmICgnYWN0aXZlS2V5JyBpbiBuZXh0UHJvcHMpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgYWN0aXZlS2V5OiB0b0FycmF5KG5leHRQcm9wcy5hY3RpdmVLZXkpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCdvcGVuQW5pbWF0aW9uJyBpbiBuZXh0UHJvcHMpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgb3BlbkFuaW1hdGlvbjogbmV4dFByb3BzLm9wZW5BbmltYXRpb25cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc2hvdWxkQ29tcG9uZW50VXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlKSB7XG4gICAgICByZXR1cm4gIXNoYWxsb3dFcXVhbCh0aGlzLnByb3BzLCBuZXh0UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwodGhpcy5zdGF0ZSwgbmV4dFN0YXRlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHByZWZpeENscyA9IF9wcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3Byb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgICBhY2NvcmRpb24gPSBfcHJvcHMuYWNjb3JkaW9uO1xuXG4gICAgICB2YXIgY29sbGFwc2VDbGFzc05hbWUgPSBjbGFzc05hbWVzKChfY2xhc3NOYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIHByZWZpeENscywgdHJ1ZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgY2xhc3NOYW1lLCAhIWNsYXNzTmFtZSksIF9jbGFzc05hbWVzKSk7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBjb2xsYXBzZUNsYXNzTmFtZSwgc3R5bGU6IHN0eWxlLCByb2xlOiBhY2NvcmRpb24gPyAndGFibGlzdCcgOiBudWxsIH0sXG4gICAgICAgIHRoaXMuZ2V0SXRlbXMoKVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ29sbGFwc2U7XG59KENvbXBvbmVudCk7XG5cbnZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgdGhpcy5vbkNsaWNrSXRlbSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgYWN0aXZlS2V5ID0gX3RoaXMyLnN0YXRlLmFjdGl2ZUtleTtcbiAgICBpZiAoX3RoaXMyLnByb3BzLmFjY29yZGlvbikge1xuICAgICAgYWN0aXZlS2V5ID0gYWN0aXZlS2V5WzBdID09PSBrZXkgPyBbXSA6IFtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3RpdmVLZXkgPSBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGFjdGl2ZUtleSkpO1xuICAgICAgdmFyIGluZGV4ID0gYWN0aXZlS2V5LmluZGV4T2Yoa2V5KTtcbiAgICAgIHZhciBpc0FjdGl2ZSA9IGluZGV4ID4gLTE7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgLy8gcmVtb3ZlIGFjdGl2ZSBzdGF0ZVxuICAgICAgICBhY3RpdmVLZXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGl2ZUtleS5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIF90aGlzMi5zZXRBY3RpdmVLZXkoYWN0aXZlS2V5KTtcbiAgfTtcblxuICB0aGlzLmdldE5ld0NoaWxkID0gZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgIGlmICghY2hpbGQpIHJldHVybiBudWxsO1xuXG4gICAgdmFyIGFjdGl2ZUtleSA9IF90aGlzMi5zdGF0ZS5hY3RpdmVLZXk7XG4gICAgdmFyIF9wcm9wczIgPSBfdGhpczIucHJvcHMsXG4gICAgICAgIHByZWZpeENscyA9IF9wcm9wczIucHJlZml4Q2xzLFxuICAgICAgICBhY2NvcmRpb24gPSBfcHJvcHMyLmFjY29yZGlvbixcbiAgICAgICAgZGVzdHJveUluYWN0aXZlUGFuZWwgPSBfcHJvcHMyLmRlc3Ryb3lJbmFjdGl2ZVBhbmVsLFxuICAgICAgICBleHBhbmRJY29uID0gX3Byb3BzMi5leHBhbmRJY29uO1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIGtleSBwcm92aWRlLCB1c2UgdGhlIHBhbmVsIG9yZGVyIGFzIGRlZmF1bHQga2V5XG5cbiAgICB2YXIga2V5ID0gY2hpbGQua2V5IHx8IFN0cmluZyhpbmRleCk7XG4gICAgdmFyIF9jaGlsZCRwcm9wcyA9IGNoaWxkLnByb3BzLFxuICAgICAgICBoZWFkZXIgPSBfY2hpbGQkcHJvcHMuaGVhZGVyLFxuICAgICAgICBoZWFkZXJDbGFzcyA9IF9jaGlsZCRwcm9wcy5oZWFkZXJDbGFzcyxcbiAgICAgICAgZGlzYWJsZWQgPSBfY2hpbGQkcHJvcHMuZGlzYWJsZWQ7XG5cbiAgICB2YXIgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICBpZiAoYWNjb3JkaW9uKSB7XG4gICAgICBpc0FjdGl2ZSA9IGFjdGl2ZUtleVswXSA9PT0ga2V5O1xuICAgIH0gZWxzZSB7XG4gICAgICBpc0FjdGl2ZSA9IGFjdGl2ZUtleS5pbmRleE9mKGtleSkgPiAtMTtcbiAgICB9XG5cbiAgICB2YXIgcHJvcHMgPSB7XG4gICAgICBrZXk6IGtleSxcbiAgICAgIHBhbmVsS2V5OiBrZXksXG4gICAgICBoZWFkZXI6IGhlYWRlcixcbiAgICAgIGhlYWRlckNsYXNzOiBoZWFkZXJDbGFzcyxcbiAgICAgIGlzQWN0aXZlOiBpc0FjdGl2ZSxcbiAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgZGVzdHJveUluYWN0aXZlUGFuZWw6IGRlc3Ryb3lJbmFjdGl2ZVBhbmVsLFxuICAgICAgb3BlbkFuaW1hdGlvbjogX3RoaXMyLnN0YXRlLm9wZW5BbmltYXRpb24sXG4gICAgICBhY2NvcmRpb246IGFjY29yZGlvbixcbiAgICAgIGNoaWxkcmVuOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgIG9uSXRlbUNsaWNrOiBkaXNhYmxlZCA/IG51bGwgOiBfdGhpczIub25DbGlja0l0ZW0sXG4gICAgICBleHBhbmRJY29uOiBleHBhbmRJY29uXG4gICAgfTtcblxuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHByb3BzKTtcbiAgfTtcblxuICB0aGlzLmdldEl0ZW1zID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBjaGlsZHJlbiA9IF90aGlzMi5wcm9wcy5jaGlsZHJlbjtcblxuICAgIHZhciBjaGlsZExpc3QgPSBpc0ZyYWdtZW50KGNoaWxkcmVuKSA/IGNoaWxkcmVuLnByb3BzLmNoaWxkcmVuIDogY2hpbGRyZW47XG4gICAgdmFyIG5ld0NoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkTGlzdCwgX3RoaXMyLmdldE5ld0NoaWxkKTtcblxuICAgIC8vICByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzEzODg0XG4gICAgaWYgKGlzRnJhZ21lbnQoY2hpbGRyZW4pKSB7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgUmVhY3QuRnJhZ21lbnQsXG4gICAgICAgIG51bGwsXG4gICAgICAgIG5ld0NoaWxkcmVuXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdDaGlsZHJlbjtcbiAgfTtcblxuICB0aGlzLnNldEFjdGl2ZUtleSA9IGZ1bmN0aW9uIChhY3RpdmVLZXkpIHtcbiAgICBpZiAoISgnYWN0aXZlS2V5JyBpbiBfdGhpczIucHJvcHMpKSB7XG4gICAgICBfdGhpczIuc2V0U3RhdGUoeyBhY3RpdmVLZXk6IGFjdGl2ZUtleSB9KTtcbiAgICB9XG4gICAgX3RoaXMyLnByb3BzLm9uQ2hhbmdlKF90aGlzMi5wcm9wcy5hY2NvcmRpb24gPyBhY3RpdmVLZXlbMF0gOiBhY3RpdmVLZXkpO1xuICB9O1xufTtcblxuQ29sbGFwc2UucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhY3RpdmVLZXk6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpXSksXG4gIGRlZmF1bHRBY3RpdmVLZXk6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpXSksXG4gIG9wZW5BbmltYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgYWNjb3JkaW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGVzdHJveUluYWN0aXZlUGFuZWw6IFByb3BUeXBlcy5ib29sLFxuICBleHBhbmRJY29uOiBQcm9wVHlwZXMuZnVuY1xufTtcblxuQ29sbGFwc2UuZGVmYXVsdFByb3BzID0ge1xuICBwcmVmaXhDbHM6ICdyYy1jb2xsYXBzZScsXG4gIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHt9LFxuXG4gIGFjY29yZGlvbjogZmFsc2UsXG4gIGRlc3Ryb3lJbmFjdGl2ZVBhbmVsOiBmYWxzZVxufTtcblxuQ29sbGFwc2UuUGFuZWwgPSBDb2xsYXBzZVBhbmVsO1xuXG5leHBvcnQgZGVmYXVsdCBDb2xsYXBzZTsiLCJpbXBvcnQgQ29sbGFwc2UgZnJvbSAnLi9Db2xsYXBzZSc7XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhcHNlO1xuZXhwb3J0IHZhciBQYW5lbCA9IENvbGxhcHNlLlBhbmVsOyIsImltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5JztcbmltcG9ydCBfZXh0ZW5kcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2VuZXJhdGUsIGdldFNlY29uZGFyeUNvbG9yLCBpc0ljb25EZWZpbml0aW9uLCBsb2csIE1pbmlNYXAsIHdpdGhTdWZmaXggfSBmcm9tICcuLi91dGlscyc7XG52YXIgdHdvVG9uZUNvbG9yUGFsZXR0ZSA9IHtcbiAgICBwcmltYXJ5Q29sb3I6ICcjMzMzJyxcbiAgICBzZWNvbmRhcnlDb2xvcjogJyNFNkU2RTYnXG59O1xuXG52YXIgSWNvbiA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKEljb24sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gSWNvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEljb24pO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoSWNvbi5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKEljb24pKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoSWNvbiwgW3tcbiAgICAgICAga2V5OiAncmVuZGVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICAgIHZhciBfZXh0ZW5kczI7XG5cbiAgICAgICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgIHR5cGUgPSBfcHJvcHMudHlwZSxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2sgPSBfcHJvcHMub25DbGljayxcbiAgICAgICAgICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgICBwcmltYXJ5Q29sb3IgPSBfcHJvcHMucHJpbWFyeUNvbG9yLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbG9yID0gX3Byb3BzLnNlY29uZGFyeUNvbG9yLFxuICAgICAgICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzLCBbJ3R5cGUnLCAnY2xhc3NOYW1lJywgJ29uQ2xpY2snLCAnc3R5bGUnLCAncHJpbWFyeUNvbG9yJywgJ3NlY29uZGFyeUNvbG9yJ10pO1xuXG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gdm9pZCAwO1xuICAgICAgICAgICAgdmFyIGNvbG9ycyA9IHR3b1RvbmVDb2xvclBhbGV0dGU7XG4gICAgICAgICAgICBpZiAocHJpbWFyeUNvbG9yKSB7XG4gICAgICAgICAgICAgICAgY29sb3JzID0ge1xuICAgICAgICAgICAgICAgICAgICBwcmltYXJ5Q29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sb3I6IHNlY29uZGFyeUNvbG9yIHx8IGdldFNlY29uZGFyeUNvbG9yKHByaW1hcnlDb2xvcilcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSWNvbkRlZmluaXRpb24odHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSB0eXBlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBJY29uLmdldCh0eXBlLCBjb2xvcnMpO1xuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxvZyhgQ291bGQgbm90IGZpbmQgaWNvbjogJHt0eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgICAgIGxvZygndHlwZSBzaG91bGQgYmUgc3RyaW5nIG9yIGljb24gZGVmaW5pdG9uLCBidXQgZ290ICcgKyB0eXBlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gX2V4dGVuZHMoe30sIHRhcmdldCwge1xuICAgICAgICAgICAgICAgICAgICBpY29uOiB0YXJnZXQuaWNvbihjb2xvcnMucHJpbWFyeUNvbG9yLCBjb2xvcnMuc2Vjb25kYXJ5Q29sb3IpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGUodGFyZ2V0Lmljb24sICdzdmctJyArIHRhcmdldC5uYW1lLCBfZXh0ZW5kcygoX2V4dGVuZHMyID0ge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICAgICAgICB9LCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnZGF0YS1pY29uJywgdGFyZ2V0Lm5hbWUpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnd2lkdGgnLCAnMWVtJyksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsICdoZWlnaHQnLCAnMWVtJyksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsICdmaWxsJywgJ2N1cnJlbnRDb2xvcicpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnYXJpYS1oaWRkZW4nLCAndHJ1ZScpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnZm9jdXNhYmxlJywgJ2ZhbHNlJyksIF9leHRlbmRzMiksIHJlc3QpKTtcbiAgICAgICAgfVxuICAgIH1dLCBbe1xuICAgICAgICBrZXk6ICdhZGQnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYWRkKCkge1xuICAgICAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBpY29ucyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICAgICAgICAgIGljb25zW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpY29ucy5mb3JFYWNoKGZ1bmN0aW9uIChpY29uKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLmRlZmluaXRpb25zLnNldCh3aXRoU3VmZml4KGljb24ubmFtZSwgaWNvbi50aGVtZSksIGljb24pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2NsZWFyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgICAgICAgdGhpcy5kZWZpbml0aW9ucy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdnZXQnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0KGtleSkge1xuICAgICAgICAgICAgdmFyIGNvbG9ycyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHdvVG9uZUNvbG9yUGFsZXR0ZTtcblxuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSB0aGlzLmRlZmluaXRpb25zLmdldChrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IF9leHRlbmRzKHt9LCB0YXJnZXQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IHRhcmdldC5pY29uKGNvbG9ycy5wcmltYXJ5Q29sb3IsIGNvbG9ycy5zZWNvbmRhcnlDb2xvcilcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ3NldFR3b1RvbmVDb2xvcnMnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gc2V0VHdvVG9uZUNvbG9ycyhfcmVmKSB7XG4gICAgICAgICAgICB2YXIgcHJpbWFyeUNvbG9yID0gX3JlZi5wcmltYXJ5Q29sb3IsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sb3IgPSBfcmVmLnNlY29uZGFyeUNvbG9yO1xuXG4gICAgICAgICAgICB0d29Ub25lQ29sb3JQYWxldHRlLnByaW1hcnlDb2xvciA9IHByaW1hcnlDb2xvcjtcbiAgICAgICAgICAgIHR3b1RvbmVDb2xvclBhbGV0dGUuc2Vjb25kYXJ5Q29sb3IgPSBzZWNvbmRhcnlDb2xvciB8fCBnZXRTZWNvbmRhcnlDb2xvcihwcmltYXJ5Q29sb3IpO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdnZXRUd29Ub25lQ29sb3JzJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFR3b1RvbmVDb2xvcnMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHR3b1RvbmVDb2xvclBhbGV0dGUpO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIEljb247XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbkljb24uZGlzcGxheU5hbWUgPSAnSWNvblJlYWN0Jztcbkljb24uZGVmaW5pdGlvbnMgPSBuZXcgTWluaU1hcCgpO1xuZXhwb3J0IGRlZmF1bHQgSWNvbjsiLCIvKiBnbG9iYWwgd2luZG93LCBleHBvcnRzLCBkZWZpbmUgKi9cblxuIWZ1bmN0aW9uKCkge1xuICAgICd1c2Ugc3RyaWN0J1xuXG4gICAgdmFyIHJlID0ge1xuICAgICAgICBub3Rfc3RyaW5nOiAvW15zXS8sXG4gICAgICAgIG5vdF9ib29sOiAvW150XS8sXG4gICAgICAgIG5vdF90eXBlOiAvW15UXS8sXG4gICAgICAgIG5vdF9wcmltaXRpdmU6IC9bXnZdLyxcbiAgICAgICAgbnVtYmVyOiAvW2RpZWZnXS8sXG4gICAgICAgIG51bWVyaWNfYXJnOiAvW2JjZGllZmd1eFhdLyxcbiAgICAgICAganNvbjogL1tqXS8sXG4gICAgICAgIG5vdF9qc29uOiAvW15qXS8sXG4gICAgICAgIHRleHQ6IC9eW15cXHgyNV0rLyxcbiAgICAgICAgbW9kdWxvOiAvXlxceDI1ezJ9LyxcbiAgICAgICAgcGxhY2Vob2xkZXI6IC9eXFx4MjUoPzooWzEtOV1cXGQqKVxcJHxcXCgoW14pXSspXFwpKT8oXFwrKT8oMHwnW14kXSk/KC0pPyhcXGQrKT8oPzpcXC4oXFxkKykpPyhbYi1naWpvc3RUdXZ4WF0pLyxcbiAgICAgICAga2V5OiAvXihbYS16X11bYS16X1xcZF0qKS9pLFxuICAgICAgICBrZXlfYWNjZXNzOiAvXlxcLihbYS16X11bYS16X1xcZF0qKS9pLFxuICAgICAgICBpbmRleF9hY2Nlc3M6IC9eXFxbKFxcZCspXFxdLyxcbiAgICAgICAgc2lnbjogL15bKy1dL1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNwcmludGYoa2V5KSB7XG4gICAgICAgIC8vIGBhcmd1bWVudHNgIGlzIG5vdCBhbiBhcnJheSwgYnV0IHNob3VsZCBiZSBmaW5lIGZvciB0aGlzIGNhbGxcbiAgICAgICAgcmV0dXJuIHNwcmludGZfZm9ybWF0KHNwcmludGZfcGFyc2Uoa2V5KSwgYXJndW1lbnRzKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZzcHJpbnRmKGZtdCwgYXJndikge1xuICAgICAgICByZXR1cm4gc3ByaW50Zi5hcHBseShudWxsLCBbZm10XS5jb25jYXQoYXJndiB8fCBbXSkpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3ByaW50Zl9mb3JtYXQocGFyc2VfdHJlZSwgYXJndikge1xuICAgICAgICB2YXIgY3Vyc29yID0gMSwgdHJlZV9sZW5ndGggPSBwYXJzZV90cmVlLmxlbmd0aCwgYXJnLCBvdXRwdXQgPSAnJywgaSwgaywgcGgsIHBhZCwgcGFkX2NoYXJhY3RlciwgcGFkX2xlbmd0aCwgaXNfcG9zaXRpdmUsIHNpZ25cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRyZWVfbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyc2VfdHJlZVtpXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcGFyc2VfdHJlZVtpXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBhcnNlX3RyZWVbaV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgcGggPSBwYXJzZV90cmVlW2ldIC8vIGNvbnZlbmllbmNlIHB1cnBvc2VzIG9ubHlcbiAgICAgICAgICAgICAgICBpZiAocGgua2V5cykgeyAvLyBrZXl3b3JkIGFyZ3VtZW50XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZ3ZbY3Vyc29yXVxuICAgICAgICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgcGgua2V5cy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3ByaW50ZignW3NwcmludGZdIENhbm5vdCBhY2Nlc3MgcHJvcGVydHkgXCIlc1wiIG9mIHVuZGVmaW5lZCB2YWx1ZSBcIiVzXCInLCBwaC5rZXlzW2tdLCBwaC5rZXlzW2stMV0pKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnW3BoLmtleXNba11dXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocGgucGFyYW1fbm8pIHsgLy8gcG9zaXRpb25hbCBhcmd1bWVudCAoZXhwbGljaXQpXG4gICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZ3ZbcGgucGFyYW1fbm9dXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBwb3NpdGlvbmFsIGFyZ3VtZW50IChpbXBsaWNpdClcbiAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJndltjdXJzb3IrK11cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocmUubm90X3R5cGUudGVzdChwaC50eXBlKSAmJiByZS5ub3RfcHJpbWl0aXZlLnRlc3QocGgudHlwZSkgJiYgYXJnIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnKClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocmUubnVtZXJpY19hcmcudGVzdChwaC50eXBlKSAmJiAodHlwZW9mIGFyZyAhPT0gJ251bWJlcicgJiYgaXNOYU4oYXJnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzcHJpbnRmKCdbc3ByaW50Zl0gZXhwZWN0aW5nIG51bWJlciBidXQgZm91bmQgJVQnLCBhcmcpKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChyZS5udW1iZXIudGVzdChwaC50eXBlKSkge1xuICAgICAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZSA9IGFyZyA+PSAwXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3dpdGNoIChwaC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gcGFyc2VJbnQoYXJnLCAxMCkudG9TdHJpbmcoMilcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2MnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChhcmcsIDEwKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdpJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBhcnNlSW50KGFyZywgMTApXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdqJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IEpTT04uc3RyaW5naWZ5KGFyZywgbnVsbCwgcGgud2lkdGggPyBwYXJzZUludChwaC53aWR0aCkgOiAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBwaC5wcmVjaXNpb24gPyBwYXJzZUZsb2F0KGFyZykudG9FeHBvbmVudGlhbChwaC5wcmVjaXNpb24pIDogcGFyc2VGbG9hdChhcmcpLnRvRXhwb25lbnRpYWwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBwaC5wcmVjaXNpb24gPyBwYXJzZUZsb2F0KGFyZykudG9GaXhlZChwaC5wcmVjaXNpb24pIDogcGFyc2VGbG9hdChhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdnJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBoLnByZWNpc2lvbiA/IFN0cmluZyhOdW1iZXIoYXJnLnRvUHJlY2lzaW9uKHBoLnByZWNpc2lvbikpKSA6IHBhcnNlRmxvYXQoYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSAocGFyc2VJbnQoYXJnLCAxMCkgPj4+IDApLnRvU3RyaW5nKDgpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IFN0cmluZyhhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSAocGgucHJlY2lzaW9uID8gYXJnLnN1YnN0cmluZygwLCBwaC5wcmVjaXNpb24pIDogYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBTdHJpbmcoISFhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSAocGgucHJlY2lzaW9uID8gYXJnLnN1YnN0cmluZygwLCBwaC5wcmVjaXNpb24pIDogYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnVCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gKHBoLnByZWNpc2lvbiA/IGFyZy5zdWJzdHJpbmcoMCwgcGgucHJlY2lzaW9uKSA6IGFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gcGFyc2VJbnQoYXJnLCAxMCkgPj4+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnZhbHVlT2YoKVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gKHBoLnByZWNpc2lvbiA/IGFyZy5zdWJzdHJpbmcoMCwgcGgucHJlY2lzaW9uKSA6IGFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3gnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gKHBhcnNlSW50KGFyZywgMTApID4+PiAwKS50b1N0cmluZygxNilcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1gnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gKHBhcnNlSW50KGFyZywgMTApID4+PiAwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlLmpzb24udGVzdChwaC50eXBlKSkge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gYXJnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmUubnVtYmVyLnRlc3QocGgudHlwZSkgJiYgKCFpc19wb3NpdGl2ZSB8fCBwaC5zaWduKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IGlzX3Bvc2l0aXZlID8gJysnIDogJy0nXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcudG9TdHJpbmcoKS5yZXBsYWNlKHJlLnNpZ24sICcnKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9ICcnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGFkX2NoYXJhY3RlciA9IHBoLnBhZF9jaGFyID8gcGgucGFkX2NoYXIgPT09ICcwJyA/ICcwJyA6IHBoLnBhZF9jaGFyLmNoYXJBdCgxKSA6ICcgJ1xuICAgICAgICAgICAgICAgICAgICBwYWRfbGVuZ3RoID0gcGgud2lkdGggLSAoc2lnbiArIGFyZykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIHBhZCA9IHBoLndpZHRoID8gKHBhZF9sZW5ndGggPiAwID8gcGFkX2NoYXJhY3Rlci5yZXBlYXQocGFkX2xlbmd0aCkgOiAnJykgOiAnJ1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcGguYWxpZ24gPyBzaWduICsgYXJnICsgcGFkIDogKHBhZF9jaGFyYWN0ZXIgPT09ICcwJyA/IHNpZ24gKyBwYWQgKyBhcmcgOiBwYWQgKyBzaWduICsgYXJnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0XG4gICAgfVxuXG4gICAgdmFyIHNwcmludGZfY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpXG5cbiAgICBmdW5jdGlvbiBzcHJpbnRmX3BhcnNlKGZtdCkge1xuICAgICAgICBpZiAoc3ByaW50Zl9jYWNoZVtmbXRdKSB7XG4gICAgICAgICAgICByZXR1cm4gc3ByaW50Zl9jYWNoZVtmbXRdXG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX2ZtdCA9IGZtdCwgbWF0Y2gsIHBhcnNlX3RyZWUgPSBbXSwgYXJnX25hbWVzID0gMFxuICAgICAgICB3aGlsZSAoX2ZtdCkge1xuICAgICAgICAgICAgaWYgKChtYXRjaCA9IHJlLnRleHQuZXhlYyhfZm10KSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBwYXJzZV90cmVlLnB1c2gobWF0Y2hbMF0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgobWF0Y2ggPSByZS5tb2R1bG8uZXhlYyhfZm10KSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBwYXJzZV90cmVlLnB1c2goJyUnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoKG1hdGNoID0gcmUucGxhY2Vob2xkZXIuZXhlYyhfZm10KSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hbMl0pIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnX25hbWVzIHw9IDFcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpZWxkX2xpc3QgPSBbXSwgcmVwbGFjZW1lbnRfZmllbGQgPSBtYXRjaFsyXSwgZmllbGRfbWF0Y2ggPSBbXVxuICAgICAgICAgICAgICAgICAgICBpZiAoKGZpZWxkX21hdGNoID0gcmUua2V5LmV4ZWMocmVwbGFjZW1lbnRfZmllbGQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRfbGlzdC5wdXNoKGZpZWxkX21hdGNoWzFdKVxuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChyZXBsYWNlbWVudF9maWVsZCA9IHJlcGxhY2VtZW50X2ZpZWxkLnN1YnN0cmluZyhmaWVsZF9tYXRjaFswXS5sZW5ndGgpKSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGZpZWxkX21hdGNoID0gcmUua2V5X2FjY2Vzcy5leGVjKHJlcGxhY2VtZW50X2ZpZWxkKSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRfbGlzdC5wdXNoKGZpZWxkX21hdGNoWzFdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgoZmllbGRfbWF0Y2ggPSByZS5pbmRleF9hY2Nlc3MuZXhlYyhyZXBsYWNlbWVudF9maWVsZCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX2xpc3QucHVzaChmaWVsZF9tYXRjaFsxXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcignW3NwcmludGZdIGZhaWxlZCB0byBwYXJzZSBuYW1lZCBhcmd1bWVudCBrZXknKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcignW3NwcmludGZdIGZhaWxlZCB0byBwYXJzZSBuYW1lZCBhcmd1bWVudCBrZXknKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoWzJdID0gZmllbGRfbGlzdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnX25hbWVzIHw9IDJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFyZ19uYW1lcyA9PT0gMykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tzcHJpbnRmXSBtaXhpbmcgcG9zaXRpb25hbCBhbmQgbmFtZWQgcGxhY2Vob2xkZXJzIGlzIG5vdCAoeWV0KSBzdXBwb3J0ZWQnKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHBhcnNlX3RyZWUucHVzaChcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IG1hdGNoWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1fbm86ICAgIG1hdGNoWzFdLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5czogICAgICAgIG1hdGNoWzJdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbjogICAgICAgIG1hdGNoWzNdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkX2NoYXI6ICAgIG1hdGNoWzRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246ICAgICAgIG1hdGNoWzVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICAgICAgIG1hdGNoWzZdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uOiAgIG1hdGNoWzddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogICAgICAgIG1hdGNoWzhdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ1tzcHJpbnRmXSB1bmV4cGVjdGVkIHBsYWNlaG9sZGVyJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9mbXQgPSBfZm10LnN1YnN0cmluZyhtYXRjaFswXS5sZW5ndGgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNwcmludGZfY2FjaGVbZm10XSA9IHBhcnNlX3RyZWVcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBleHBvcnQgdG8gZWl0aGVyIGJyb3dzZXIgb3Igbm9kZS5qc1xuICAgICAqL1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHF1b3RlLXByb3BzICovXG4gICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBleHBvcnRzWydzcHJpbnRmJ10gPSBzcHJpbnRmXG4gICAgICAgIGV4cG9ydHNbJ3ZzcHJpbnRmJ10gPSB2c3ByaW50ZlxuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgd2luZG93WydzcHJpbnRmJ10gPSBzcHJpbnRmXG4gICAgICAgIHdpbmRvd1sndnNwcmludGYnXSA9IHZzcHJpbnRmXG5cbiAgICAgICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lWydhbWQnXSkge1xuICAgICAgICAgICAgZGVmaW5lKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICdzcHJpbnRmJzogc3ByaW50ZixcbiAgICAgICAgICAgICAgICAgICAgJ3ZzcHJpbnRmJzogdnNwcmludGZcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgcXVvdGUtcHJvcHMgKi9cbn0oKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuIiwiZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICB0cnkge1xuICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICB9XG5cbiAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FzeW5jVG9HZW5lcmF0b3I7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICB0cnkge1xuICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICB9XG5cbiAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FzeW5jVG9HZW5lcmF0b3I7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY2xhc3NDYWxsQ2hlY2s7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9vbWl0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwib21pdC5qc1wiKSk7XG5cbnZhciBfZGVib3VuY2UgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJsb2Rhc2gvZGVib3VuY2VcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF90eXBlID0gcmVxdWlyZShcIi4uL191dGlsL3R5cGVcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgU3BpblNpemVzID0gKDAsIF90eXBlLnR1cGxlKSgnc21hbGwnLCAnZGVmYXVsdCcsICdsYXJnZScpOyAvLyBSZW5kZXIgaW5kaWNhdG9yXG5cbnZhciBkZWZhdWx0SW5kaWNhdG9yID0gbnVsbDtcblxuZnVuY3Rpb24gcmVuZGVySW5kaWNhdG9yKHByZWZpeENscywgcHJvcHMpIHtcbiAgdmFyIGluZGljYXRvciA9IHByb3BzLmluZGljYXRvcjtcbiAgdmFyIGRvdENsYXNzTmFtZSA9IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZG90XCIpOyAvLyBzaG91bGQgbm90IGJlIHJlbmRlciBkZWZhdWx0IGluZGljYXRvciB3aGVuIGluZGljYXRvciB2YWx1ZSBpcyBudWxsXG5cbiAgaWYgKGluZGljYXRvciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKCAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoaW5kaWNhdG9yKSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGluZGljYXRvciwge1xuICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShpbmRpY2F0b3IucHJvcHMuY2xhc3NOYW1lLCBkb3RDbGFzc05hbWUpXG4gICAgfSk7XG4gIH1cblxuICBpZiAoIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChkZWZhdWx0SW5kaWNhdG9yKSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGRlZmF1bHRJbmRpY2F0b3IsIHtcbiAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoZGVmYXVsdEluZGljYXRvci5wcm9wcy5jbGFzc05hbWUsIGRvdENsYXNzTmFtZSlcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoZG90Q2xhc3NOYW1lLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRvdC1zcGluXCIpKVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1kb3QtaXRlbVwiKVxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZG90LWl0ZW1cIilcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaVwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRvdC1pdGVtXCIpXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1kb3QtaXRlbVwiKVxuICB9KSk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZERlbGF5KHNwaW5uaW5nLCBkZWxheSkge1xuICByZXR1cm4gISFzcGlubmluZyAmJiAhIWRlbGF5ICYmICFpc05hTihOdW1iZXIoZGVsYXkpKTtcbn1cblxudmFyIFNwaW4gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFNwaW4sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoU3Bpbik7XG5cbiAgZnVuY3Rpb24gU3Bpbihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTcGluKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX3RoaXMuZGVib3VuY2lmeVVwZGF0ZVNwaW5uaW5nID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICB2YXIgX3JlZiA9IHByb3BzIHx8IF90aGlzLnByb3BzLFxuICAgICAgICAgIGRlbGF5ID0gX3JlZi5kZWxheTtcblxuICAgICAgaWYgKGRlbGF5KSB7XG4gICAgICAgIF90aGlzLmNhbmNlbEV4aXN0aW5nU3BpbigpO1xuXG4gICAgICAgIF90aGlzLnVwZGF0ZVNwaW5uaW5nID0gKDAsIF9kZWJvdW5jZVtcImRlZmF1bHRcIl0pKF90aGlzLm9yaWdpbmFsVXBkYXRlU3Bpbm5pbmcsIGRlbGF5KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMudXBkYXRlU3Bpbm5pbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgc3Bpbm5pbmcgPSBfdGhpcy5wcm9wcy5zcGlubmluZztcbiAgICAgIHZhciBjdXJyZW50U3Bpbm5pbmcgPSBfdGhpcy5zdGF0ZS5zcGlubmluZztcblxuICAgICAgaWYgKGN1cnJlbnRTcGlubmluZyAhPT0gc3Bpbm5pbmcpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHNwaW5uaW5nOiBzcGlubmluZ1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyU3BpbiA9IGZ1bmN0aW9uIChfcmVmMikge1xuICAgICAgdmFyIF9jbGFzc05hbWVzO1xuXG4gICAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZjIuZ2V0UHJlZml4Q2xzO1xuXG4gICAgICB2YXIgX2EgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLFxuICAgICAgICAgIHNpemUgPSBfYS5zaXplLFxuICAgICAgICAgIHRpcCA9IF9hLnRpcCxcbiAgICAgICAgICB3cmFwcGVyQ2xhc3NOYW1lID0gX2Eud3JhcHBlckNsYXNzTmFtZSxcbiAgICAgICAgICBzdHlsZSA9IF9hLnN0eWxlLFxuICAgICAgICAgIHJlc3RQcm9wcyA9IF9fcmVzdChfYSwgW1wicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwic2l6ZVwiLCBcInRpcFwiLCBcIndyYXBwZXJDbGFzc05hbWVcIiwgXCJzdHlsZVwiXSk7XG5cbiAgICAgIHZhciBzcGlubmluZyA9IF90aGlzLnN0YXRlLnNwaW5uaW5nO1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnc3BpbicsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgc3BpbkNsYXNzTmFtZSA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbVwiKSwgc2l6ZSA9PT0gJ3NtYWxsJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sZ1wiKSwgc2l6ZSA9PT0gJ2xhcmdlJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zcGlubmluZ1wiKSwgc3Bpbm5pbmcpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc2hvdy10ZXh0XCIpLCAhIXRpcCksIF9jbGFzc05hbWVzKSwgY2xhc3NOYW1lKTsgLy8gZml4IGh0dHBzOi8vZmIubWUvcmVhY3QtdW5rbm93bi1wcm9wXG5cbiAgICAgIHZhciBkaXZQcm9wcyA9ICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHJlc3RQcm9wcywgWydzcGlubmluZycsICdkZWxheScsICdpbmRpY2F0b3InXSk7XG4gICAgICB2YXIgc3BpbkVsZW1lbnQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZGl2UHJvcHMsIHtcbiAgICAgICAgc3R5bGU6IHN0eWxlLFxuICAgICAgICBjbGFzc05hbWU6IHNwaW5DbGFzc05hbWVcbiAgICAgIH0pLCByZW5kZXJJbmRpY2F0b3IocHJlZml4Q2xzLCBfdGhpcy5wcm9wcyksIHRpcCA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXRleHRcIilcbiAgICAgIH0sIHRpcCkgOiBudWxsKTtcblxuICAgICAgaWYgKF90aGlzLmlzTmVzdGVkUGF0dGVybigpKSB7XG4gICAgICAgIHZhciBjb250YWluZXJDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNvbnRhaW5lclwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWJsdXJcIiksIHNwaW5uaW5nKSk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZGl2UHJvcHMsIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbmVzdGVkLWxvYWRpbmdcIiksIHdyYXBwZXJDbGFzc05hbWUpXG4gICAgICAgIH0pLCBzcGlubmluZyAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAga2V5OiBcImxvYWRpbmdcIlxuICAgICAgICB9LCBzcGluRWxlbWVudCksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IGNvbnRhaW5lckNsYXNzTmFtZSxcbiAgICAgICAgICBrZXk6IFwiY29udGFpbmVyXCJcbiAgICAgICAgfSwgX3RoaXMucHJvcHMuY2hpbGRyZW4pKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNwaW5FbGVtZW50O1xuICAgIH07XG5cbiAgICB2YXIgc3Bpbm5pbmcgPSBwcm9wcy5zcGlubmluZyxcbiAgICAgICAgZGVsYXkgPSBwcm9wcy5kZWxheTtcbiAgICB2YXIgc2hvdWxkQmVEZWxheWVkID0gc2hvdWxkRGVsYXkoc3Bpbm5pbmcsIGRlbGF5KTtcbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHNwaW5uaW5nOiBzcGlubmluZyAmJiAhc2hvdWxkQmVEZWxheWVkXG4gICAgfTtcbiAgICBfdGhpcy5vcmlnaW5hbFVwZGF0ZVNwaW5uaW5nID0gX3RoaXMudXBkYXRlU3Bpbm5pbmc7XG5cbiAgICBfdGhpcy5kZWJvdW5jaWZ5VXBkYXRlU3Bpbm5pbmcocHJvcHMpO1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNwaW4sIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy51cGRhdGVTcGlubmluZygpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgdGhpcy5kZWJvdW5jaWZ5VXBkYXRlU3Bpbm5pbmcoKTtcbiAgICAgIHRoaXMudXBkYXRlU3Bpbm5pbmcoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLmNhbmNlbEV4aXN0aW5nU3BpbigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjYW5jZWxFeGlzdGluZ1NwaW5cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2FuY2VsRXhpc3RpbmdTcGluKCkge1xuICAgICAgdmFyIHVwZGF0ZVNwaW5uaW5nID0gdGhpcy51cGRhdGVTcGlubmluZztcblxuICAgICAgaWYgKHVwZGF0ZVNwaW5uaW5nICYmIHVwZGF0ZVNwaW5uaW5nLmNhbmNlbCkge1xuICAgICAgICB1cGRhdGVTcGlubmluZy5jYW5jZWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNOZXN0ZWRQYXR0ZXJuXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzTmVzdGVkUGF0dGVybigpIHtcbiAgICAgIHJldHVybiAhISh0aGlzLnByb3BzICYmIHRoaXMucHJvcHMuY2hpbGRyZW4pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJTcGluKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogXCJzZXREZWZhdWx0SW5kaWNhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldERlZmF1bHRJbmRpY2F0b3IoaW5kaWNhdG9yKSB7XG4gICAgICBkZWZhdWx0SW5kaWNhdG9yID0gaW5kaWNhdG9yO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBTcGluO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5TcGluLmRlZmF1bHRQcm9wcyA9IHtcbiAgc3Bpbm5pbmc6IHRydWUsXG4gIHNpemU6ICdkZWZhdWx0JyxcbiAgd3JhcHBlckNsYXNzTmFtZTogJydcbn07XG5TcGluLnByb3BUeXBlcyA9IHtcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNwaW5uaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgc2l6ZTogUHJvcFR5cGVzLm9uZU9mKFNwaW5TaXplcyksXG4gIHdyYXBwZXJDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGluZGljYXRvcjogUHJvcFR5cGVzLmVsZW1lbnRcbn07XG52YXIgX2RlZmF1bHQgPSBTcGluO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3Byb2dyZXNzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9wcm9ncmVzc1wiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG52YXIgX2RlZmF1bHQgPSBfcHJvZ3Jlc3NbXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBnZW5lcmF0ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL2dlbmVyYXRlXCIpKTtcbmV4cG9ydHMuZ2VuZXJhdGUgPSBnZW5lcmF0ZV8xLmRlZmF1bHQ7XG52YXIgcHJlc2V0UHJpbWFyeUNvbG9ycyA9IHtcbiAgICByZWQ6ICcjRjUyMjJEJyxcbiAgICB2b2xjYW5vOiAnI0ZBNTQxQycsXG4gICAgb3JhbmdlOiAnI0ZBOEMxNicsXG4gICAgZ29sZDogJyNGQUFEMTQnLFxuICAgIHllbGxvdzogJyNGQURCMTQnLFxuICAgIGxpbWU6ICcjQTBEOTExJyxcbiAgICBncmVlbjogJyM1MkM0MUEnLFxuICAgIGN5YW46ICcjMTNDMkMyJyxcbiAgICBibHVlOiAnIzE4OTBGRicsXG4gICAgZ2Vla2JsdWU6ICcjMkY1NEVCJyxcbiAgICBwdXJwbGU6ICcjNzIyRUQxJyxcbiAgICBtYWdlbnRhOiAnI0VCMkY5NicsXG4gICAgZ3JleTogJyM2NjY2NjYnLFxufTtcbmV4cG9ydHMucHJlc2V0UHJpbWFyeUNvbG9ycyA9IHByZXNldFByaW1hcnlDb2xvcnM7XG52YXIgcHJlc2V0UGFsZXR0ZXMgPSB7fTtcbmV4cG9ydHMucHJlc2V0UGFsZXR0ZXMgPSBwcmVzZXRQYWxldHRlcztcbk9iamVjdC5rZXlzKHByZXNldFByaW1hcnlDb2xvcnMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIHByZXNldFBhbGV0dGVzW2tleV0gPSBnZW5lcmF0ZV8xLmRlZmF1bHQocHJlc2V0UHJpbWFyeUNvbG9yc1trZXldKTtcbiAgICBwcmVzZXRQYWxldHRlc1trZXldLnByaW1hcnkgPSBwcmVzZXRQYWxldHRlc1trZXldWzZdO1xufSk7XG52YXIgcmVkID0gcHJlc2V0UGFsZXR0ZXMucmVkO1xuZXhwb3J0cy5yZWQgPSByZWQ7XG52YXIgdm9sY2FubyA9IHByZXNldFBhbGV0dGVzLnZvbGNhbm87XG5leHBvcnRzLnZvbGNhbm8gPSB2b2xjYW5vO1xudmFyIGdvbGQgPSBwcmVzZXRQYWxldHRlcy5nb2xkO1xuZXhwb3J0cy5nb2xkID0gZ29sZDtcbnZhciB5ZWxsb3cgPSBwcmVzZXRQYWxldHRlcy55ZWxsb3c7XG5leHBvcnRzLnllbGxvdyA9IHllbGxvdztcbnZhciBsaW1lID0gcHJlc2V0UGFsZXR0ZXMubGltZTtcbmV4cG9ydHMubGltZSA9IGxpbWU7XG52YXIgZ3JlZW4gPSBwcmVzZXRQYWxldHRlcy5ncmVlbjtcbmV4cG9ydHMuZ3JlZW4gPSBncmVlbjtcbnZhciBjeWFuID0gcHJlc2V0UGFsZXR0ZXMuY3lhbjtcbmV4cG9ydHMuY3lhbiA9IGN5YW47XG52YXIgYmx1ZSA9IHByZXNldFBhbGV0dGVzLmJsdWU7XG5leHBvcnRzLmJsdWUgPSBibHVlO1xudmFyIGdlZWtibHVlID0gcHJlc2V0UGFsZXR0ZXMuZ2Vla2JsdWU7XG5leHBvcnRzLmdlZWtibHVlID0gZ2Vla2JsdWU7XG52YXIgcHVycGxlID0gcHJlc2V0UGFsZXR0ZXMucHVycGxlO1xuZXhwb3J0cy5wdXJwbGUgPSBwdXJwbGU7XG52YXIgbWFnZW50YSA9IHByZXNldFBhbGV0dGVzLm1hZ2VudGE7XG5leHBvcnRzLm1hZ2VudGEgPSBtYWdlbnRhO1xudmFyIGdyZXkgPSBwcmVzZXRQYWxldHRlcy5ncmV5O1xuZXhwb3J0cy5ncmV5ID0gZ3JleTtcbiIsIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG50cnkge1xuICB2YXIgaW5kZXggPSByZXF1aXJlKCdpbmRleG9mJyk7XG59IGNhdGNoIChlcnIpIHtcbiAgdmFyIGluZGV4ID0gcmVxdWlyZSgnY29tcG9uZW50LWluZGV4b2YnKTtcbn1cblxuLyoqXG4gKiBXaGl0ZXNwYWNlIHJlZ2V4cC5cbiAqL1xuXG52YXIgcmUgPSAvXFxzKy87XG5cbi8qKlxuICogdG9TdHJpbmcgcmVmZXJlbmNlLlxuICovXG5cbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogV3JhcCBgZWxgIGluIGEgYENsYXNzTGlzdGAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBlbFxuICogQHJldHVybiB7Q2xhc3NMaXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGVsKXtcbiAgcmV0dXJuIG5ldyBDbGFzc0xpc3QoZWwpO1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IENsYXNzTGlzdCBmb3IgYGVsYC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBDbGFzc0xpc3QoZWwpIHtcbiAgaWYgKCFlbCB8fCAhZWwubm9kZVR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgRE9NIGVsZW1lbnQgcmVmZXJlbmNlIGlzIHJlcXVpcmVkJyk7XG4gIH1cbiAgdGhpcy5lbCA9IGVsO1xuICB0aGlzLmxpc3QgPSBlbC5jbGFzc0xpc3Q7XG59XG5cbi8qKlxuICogQWRkIGNsYXNzIGBuYW1lYCBpZiBub3QgYWxyZWFkeSBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtDbGFzc0xpc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obmFtZSl7XG4gIC8vIGNsYXNzTGlzdFxuICBpZiAodGhpcy5saXN0KSB7XG4gICAgdGhpcy5saXN0LmFkZChuYW1lKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGZhbGxiYWNrXG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIHZhciBpID0gaW5kZXgoYXJyLCBuYW1lKTtcbiAgaWYgKCF+aSkgYXJyLnB1c2gobmFtZSk7XG4gIHRoaXMuZWwuY2xhc3NOYW1lID0gYXJyLmpvaW4oJyAnKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBjbGFzcyBgbmFtZWAgd2hlbiBwcmVzZW50LCBvclxuICogcGFzcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byByZW1vdmVcbiAqIGFueSB3aGljaCBtYXRjaC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xSZWdFeHB9IG5hbWVcbiAqIEByZXR1cm4ge0NsYXNzTGlzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuQ2xhc3NMaXN0LnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbihuYW1lKXtcbiAgaWYgKCdbb2JqZWN0IFJlZ0V4cF0nID09IHRvU3RyaW5nLmNhbGwobmFtZSkpIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVNYXRjaGluZyhuYW1lKTtcbiAgfVxuXG4gIC8vIGNsYXNzTGlzdFxuICBpZiAodGhpcy5saXN0KSB7XG4gICAgdGhpcy5saXN0LnJlbW92ZShuYW1lKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGZhbGxiYWNrXG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIHZhciBpID0gaW5kZXgoYXJyLCBuYW1lKTtcbiAgaWYgKH5pKSBhcnIuc3BsaWNlKGksIDEpO1xuICB0aGlzLmVsLmNsYXNzTmFtZSA9IGFyci5qb2luKCcgJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgYWxsIGNsYXNzZXMgbWF0Y2hpbmcgYHJlYC5cbiAqXG4gKiBAcGFyYW0ge1JlZ0V4cH0gcmVcbiAqIEByZXR1cm4ge0NsYXNzTGlzdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUucmVtb3ZlTWF0Y2hpbmcgPSBmdW5jdGlvbihyZSl7XG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHJlLnRlc3QoYXJyW2ldKSkge1xuICAgICAgdGhpcy5yZW1vdmUoYXJyW2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBjbGFzcyBgbmFtZWAsIGNhbiBmb3JjZSBzdGF0ZSB2aWEgYGZvcmNlYC5cbiAqXG4gKiBGb3IgYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGNsYXNzTGlzdCwgYnV0IGRvIG5vdCBzdXBwb3J0IGBmb3JjZWAgeWV0LFxuICogdGhlIG1pc3Rha2Ugd2lsbCBiZSBkZXRlY3RlZCBhbmQgY29ycmVjdGVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGZvcmNlXG4gKiBAcmV0dXJuIHtDbGFzc0xpc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24obmFtZSwgZm9yY2Upe1xuICAvLyBjbGFzc0xpc3RcbiAgaWYgKHRoaXMubGlzdCkge1xuICAgIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgZm9yY2UpIHtcbiAgICAgIGlmIChmb3JjZSAhPT0gdGhpcy5saXN0LnRvZ2dsZShuYW1lLCBmb3JjZSkpIHtcbiAgICAgICAgdGhpcy5saXN0LnRvZ2dsZShuYW1lKTsgLy8gdG9nZ2xlIGFnYWluIHRvIGNvcnJlY3RcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0LnRvZ2dsZShuYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBmYWxsYmFja1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIGZvcmNlKSB7XG4gICAgaWYgKCFmb3JjZSkge1xuICAgICAgdGhpcy5yZW1vdmUobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkKG5hbWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAodGhpcy5oYXMobmFtZSkpIHtcbiAgICAgIHRoaXMucmVtb3ZlKG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZChuYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmV0dXJuIGFuIGFycmF5IG9mIGNsYXNzZXMuXG4gKlxuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUuYXJyYXkgPSBmdW5jdGlvbigpe1xuICB2YXIgY2xhc3NOYW1lID0gdGhpcy5lbC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJyc7XG4gIHZhciBzdHIgPSBjbGFzc05hbWUucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xuICB2YXIgYXJyID0gc3RyLnNwbGl0KHJlKTtcbiAgaWYgKCcnID09PSBhcnJbMF0pIGFyci5zaGlmdCgpO1xuICByZXR1cm4gYXJyO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBjbGFzcyBgbmFtZWAgaXMgcHJlc2VudC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHJldHVybiB7Q2xhc3NMaXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5DbGFzc0xpc3QucHJvdG90eXBlLmhhcyA9XG5DbGFzc0xpc3QucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24obmFtZSl7XG4gIHJldHVybiB0aGlzLmxpc3RcbiAgICA/IHRoaXMubGlzdC5jb250YWlucyhuYW1lKVxuICAgIDogISEgfmluZGV4KHRoaXMuYXJyYXkoKSwgbmFtZSk7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX01vZGFsID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vTW9kYWxcIikpO1xuXG52YXIgX2NvbmZpcm0gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2NvbmZpcm1cIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIG1vZGFsV2Fybihwcm9wcykge1xuICB2YXIgY29uZmlnID0gX2V4dGVuZHMoe1xuICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICBpY29uOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgIHR5cGU6IFwiZXhjbGFtYXRpb24tY2lyY2xlXCJcbiAgICB9KSxcbiAgICBva0NhbmNlbDogZmFsc2VcbiAgfSwgcHJvcHMpO1xuXG4gIHJldHVybiAoMCwgX2NvbmZpcm1bXCJkZWZhdWx0XCJdKShjb25maWcpO1xufVxuXG5fTW9kYWxbXCJkZWZhdWx0XCJdLmluZm8gPSBmdW5jdGlvbiBpbmZvRm4ocHJvcHMpIHtcbiAgdmFyIGNvbmZpZyA9IF9leHRlbmRzKHtcbiAgICB0eXBlOiAnaW5mbycsXG4gICAgaWNvbjogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICB0eXBlOiBcImluZm8tY2lyY2xlXCJcbiAgICB9KSxcbiAgICBva0NhbmNlbDogZmFsc2VcbiAgfSwgcHJvcHMpO1xuXG4gIHJldHVybiAoMCwgX2NvbmZpcm1bXCJkZWZhdWx0XCJdKShjb25maWcpO1xufTtcblxuX01vZGFsW1wiZGVmYXVsdFwiXS5zdWNjZXNzID0gZnVuY3Rpb24gc3VjY2Vzc0ZuKHByb3BzKSB7XG4gIHZhciBjb25maWcgPSBfZXh0ZW5kcyh7XG4gICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgIGljb246IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgdHlwZTogXCJjaGVjay1jaXJjbGVcIlxuICAgIH0pLFxuICAgIG9rQ2FuY2VsOiBmYWxzZVxuICB9LCBwcm9wcyk7XG5cbiAgcmV0dXJuICgwLCBfY29uZmlybVtcImRlZmF1bHRcIl0pKGNvbmZpZyk7XG59O1xuXG5fTW9kYWxbXCJkZWZhdWx0XCJdLmVycm9yID0gZnVuY3Rpb24gZXJyb3JGbihwcm9wcykge1xuICB2YXIgY29uZmlnID0gX2V4dGVuZHMoe1xuICAgIHR5cGU6ICdlcnJvcicsXG4gICAgaWNvbjogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICB0eXBlOiBcImNsb3NlLWNpcmNsZVwiXG4gICAgfSksXG4gICAgb2tDYW5jZWw6IGZhbHNlXG4gIH0sIHByb3BzKTtcblxuICByZXR1cm4gKDAsIF9jb25maXJtW1wiZGVmYXVsdFwiXSkoY29uZmlnKTtcbn07XG5cbl9Nb2RhbFtcImRlZmF1bHRcIl0ud2FybmluZyA9IG1vZGFsV2Fybjtcbl9Nb2RhbFtcImRlZmF1bHRcIl0ud2FybiA9IG1vZGFsV2FybjtcblxuX01vZGFsW1wiZGVmYXVsdFwiXS5jb25maXJtID0gZnVuY3Rpb24gY29uZmlybUZuKHByb3BzKSB7XG4gIHZhciBjb25maWcgPSBfZXh0ZW5kcyh7XG4gICAgdHlwZTogJ2NvbmZpcm0nLFxuICAgIG9rQ2FuY2VsOiB0cnVlXG4gIH0sIHByb3BzKTtcblxuICByZXR1cm4gKDAsIF9jb25maXJtW1wiZGVmYXVsdFwiXSkoY29uZmlnKTtcbn07XG5cbl9Nb2RhbFtcImRlZmF1bHRcIl0uZGVzdHJveUFsbCA9IGZ1bmN0aW9uIGRlc3Ryb3lBbGxGbigpIHtcbiAgd2hpbGUgKF9Nb2RhbC5kZXN0cm95Rm5zLmxlbmd0aCkge1xuICAgIHZhciBjbG9zZSA9IF9Nb2RhbC5kZXN0cm95Rm5zLnBvcCgpO1xuXG4gICAgaWYgKGNsb3NlKSB7XG4gICAgICBjbG9zZSgpO1xuICAgIH1cbiAgfVxufTtcblxudmFyIF9kZWZhdWx0ID0gX01vZGFsW1wiZGVmYXVsdFwiXTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY2xhc3NDYWxsQ2hlY2s7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5ncyB7XG4gICAgcHJpdmF0ZSByZXN0QVBJO1xuXG4gICAgY29uc3RydWN0b3IocmVzdEFQSSkge1xuICAgICAgICB0aGlzLnJlc3RBUEkgPSByZXN0QVBJO1xuICAgIH1cblxuICAgIGFzeW5jIHNldChncm91cDogc3RyaW5nLCBrZXk6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlc3RBUEkucG9zdCgnL3dwbWwvc3QvdjEvc2V0dGluZ3MnLCB7Z3JvdXAsIGtleSwgZGF0YX0pO1xuICAgIH1cbn0iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjkuMFxuICogcmVhY3QucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7dmFyIGg9cmVxdWlyZShcIm9iamVjdC1hc3NpZ25cIiksbj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yLHA9bj9TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKTo2MDEwMyxxPW4/U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKTo2MDEwNixyPW4/U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpOjYwMTA3LHQ9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik6NjAxMDgsdT1uP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTo2MDExNCx2PW4/U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpOjYwMTA5LHc9bj9TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKTo2MDExMCx4PW4/U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpOjYwMTEyLHk9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMsYWE9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTo2MDEyMCxiYT1uP1N5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpOlxuNjAxMTUsY2E9bj9TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTo2MDExNjtuJiZTeW1ib2wuZm9yKFwicmVhY3QuZnVuZGFtZW50YWxcIik7biYmU3ltYm9sLmZvcihcInJlYWN0LnJlc3BvbmRlclwiKTt2YXIgej1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7XG5mdW5jdGlvbiBBKGEpe2Zvcih2YXIgYj1hLm1lc3NhZ2UsZD1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2IsYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspZCs9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbY10pO2EubWVzc2FnZT1cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIitiK1wiOyB2aXNpdCBcIitkK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4gXCI7cmV0dXJuIGF9dmFyIEI9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEM9e307XG5mdW5jdGlvbiBEKGEsYixkKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUM7dGhpcy51cGRhdGVyPWR8fEJ9RC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fTtELnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihhLGIpe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJm51bGwhPWEpdGhyb3cgQShFcnJvcig4NSkpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxhLGIsXCJzZXRTdGF0ZVwiKX07RC5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oYSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGEsXCJmb3JjZVVwZGF0ZVwiKX07ZnVuY3Rpb24gRSgpe31FLnByb3RvdHlwZT1ELnByb3RvdHlwZTtmdW5jdGlvbiBGKGEsYixkKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUM7dGhpcy51cGRhdGVyPWR8fEJ9dmFyIEc9Ri5wcm90b3R5cGU9bmV3IEU7XG5HLmNvbnN0cnVjdG9yPUY7aChHLEQucHJvdG90eXBlKTtHLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBIPXtjdXJyZW50Om51bGx9LEk9e3N1c3BlbnNlOm51bGx9LEo9e2N1cnJlbnQ6bnVsbH0sSz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEw9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtcbmZ1bmN0aW9uIE0oYSxiLGQpe3ZhciBjPXZvaWQgMCxlPXt9LGc9bnVsbCxrPW51bGw7aWYobnVsbCE9Yilmb3IoYyBpbiB2b2lkIDAhPT1iLnJlZiYmKGs9Yi5yZWYpLHZvaWQgMCE9PWIua2V5JiYoZz1cIlwiK2Iua2V5KSxiKUsuY2FsbChiLGMpJiYhTC5oYXNPd25Qcm9wZXJ0eShjKSYmKGVbY109YltjXSk7dmFyIGY9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1mKWUuY2hpbGRyZW49ZDtlbHNlIGlmKDE8Zil7Zm9yKHZhciBsPUFycmF5KGYpLG09MDttPGY7bSsrKWxbbV09YXJndW1lbnRzW20rMl07ZS5jaGlsZHJlbj1sfWlmKGEmJmEuZGVmYXVsdFByb3BzKWZvcihjIGluIGY9YS5kZWZhdWx0UHJvcHMsZil2b2lkIDA9PT1lW2NdJiYoZVtjXT1mW2NdKTtyZXR1cm57JCR0eXBlb2Y6cCx0eXBlOmEsa2V5OmcscmVmOmsscHJvcHM6ZSxfb3duZXI6Si5jdXJyZW50fX1cbmZ1bmN0aW9uIGRhKGEsYil7cmV0dXJueyQkdHlwZW9mOnAsdHlwZTphLnR5cGUsa2V5OmIscmVmOmEucmVmLHByb3BzOmEucHJvcHMsX293bmVyOmEuX293bmVyfX1mdW5jdGlvbiBOKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1wfWZ1bmN0aW9uIGVzY2FwZShhKXt2YXIgYj17XCI9XCI6XCI9MFwiLFwiOlwiOlwiPTJcIn07cmV0dXJuXCIkXCIrKFwiXCIrYSkucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfSl9dmFyIE89L1xcLysvZyxQPVtdO2Z1bmN0aW9uIFEoYSxiLGQsYyl7aWYoUC5sZW5ndGgpe3ZhciBlPVAucG9wKCk7ZS5yZXN1bHQ9YTtlLmtleVByZWZpeD1iO2UuZnVuYz1kO2UuY29udGV4dD1jO2UuY291bnQ9MDtyZXR1cm4gZX1yZXR1cm57cmVzdWx0OmEsa2V5UHJlZml4OmIsZnVuYzpkLGNvbnRleHQ6Yyxjb3VudDowfX1cbmZ1bmN0aW9uIFIoYSl7YS5yZXN1bHQ9bnVsbDthLmtleVByZWZpeD1udWxsO2EuZnVuYz1udWxsO2EuY29udGV4dD1udWxsO2EuY291bnQ9MDsxMD5QLmxlbmd0aCYmUC5wdXNoKGEpfVxuZnVuY3Rpb24gUyhhLGIsZCxjKXt2YXIgZT10eXBlb2YgYTtpZihcInVuZGVmaW5lZFwiPT09ZXx8XCJib29sZWFuXCI9PT1lKWE9bnVsbDt2YXIgZz0hMTtpZihudWxsPT09YSlnPSEwO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgXCJzdHJpbmdcIjpjYXNlIFwibnVtYmVyXCI6Zz0hMDticmVhaztjYXNlIFwib2JqZWN0XCI6c3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgcDpjYXNlIHE6Zz0hMH19aWYoZylyZXR1cm4gZChjLGEsXCJcIj09PWI/XCIuXCIrVChhLDApOmIpLDE7Zz0wO2I9XCJcIj09PWI/XCIuXCI6YitcIjpcIjtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgaz0wO2s8YS5sZW5ndGg7aysrKXtlPWFba107dmFyIGY9YitUKGUsayk7Zys9UyhlLGYsZCxjKX1lbHNlIGlmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGE/Zj1udWxsOihmPXomJmFbel18fGFbXCJAQGl0ZXJhdG9yXCJdLGY9XCJmdW5jdGlvblwiPT09dHlwZW9mIGY/ZjpudWxsKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZilmb3IoYT1mLmNhbGwoYSksaz1cbjA7IShlPWEubmV4dCgpKS5kb25lOyllPWUudmFsdWUsZj1iK1QoZSxrKyspLGcrPVMoZSxmLGQsYyk7ZWxzZSBpZihcIm9iamVjdFwiPT09ZSl0aHJvdyBkPVwiXCIrYSxBKEVycm9yKDMxKSxcIltvYmplY3QgT2JqZWN0XVwiPT09ZD9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGEpLmpvaW4oXCIsIFwiKStcIn1cIjpkLFwiXCIpO3JldHVybiBnfWZ1bmN0aW9uIFUoYSxiLGQpe3JldHVybiBudWxsPT1hPzA6UyhhLFwiXCIsYixkKX1mdW5jdGlvbiBUKGEsYil7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmbnVsbCE9YS5rZXk/ZXNjYXBlKGEua2V5KTpiLnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBlYShhLGIpe2EuZnVuYy5jYWxsKGEuY29udGV4dCxiLGEuY291bnQrKyl9XG5mdW5jdGlvbiBmYShhLGIsZCl7dmFyIGM9YS5yZXN1bHQsZT1hLmtleVByZWZpeDthPWEuZnVuYy5jYWxsKGEuY29udGV4dCxiLGEuY291bnQrKyk7QXJyYXkuaXNBcnJheShhKT9WKGEsYyxkLGZ1bmN0aW9uKGEpe3JldHVybiBhfSk6bnVsbCE9YSYmKE4oYSkmJihhPWRhKGEsZSsoIWEua2V5fHxiJiZiLmtleT09PWEua2V5P1wiXCI6KFwiXCIrYS5rZXkpLnJlcGxhY2UoTyxcIiQmL1wiKStcIi9cIikrZCkpLGMucHVzaChhKSl9ZnVuY3Rpb24gVihhLGIsZCxjLGUpe3ZhciBnPVwiXCI7bnVsbCE9ZCYmKGc9KFwiXCIrZCkucmVwbGFjZShPLFwiJCYvXCIpK1wiL1wiKTtiPVEoYixnLGMsZSk7VShhLGZhLGIpO1IoYil9ZnVuY3Rpb24gVygpe3ZhciBhPUguY3VycmVudDtpZihudWxsPT09YSl0aHJvdyBBKEVycm9yKDMyMSkpO3JldHVybiBhfVxudmFyIFg9e0NoaWxkcmVuOnttYXA6ZnVuY3Rpb24oYSxiLGQpe2lmKG51bGw9PWEpcmV0dXJuIGE7dmFyIGM9W107VihhLGMsbnVsbCxiLGQpO3JldHVybiBjfSxmb3JFYWNoOmZ1bmN0aW9uKGEsYixkKXtpZihudWxsPT1hKXJldHVybiBhO2I9UShudWxsLG51bGwsYixkKTtVKGEsZWEsYik7UihiKX0sY291bnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFUoYSxmdW5jdGlvbigpe3JldHVybiBudWxsfSxudWxsKX0sdG9BcnJheTpmdW5jdGlvbihhKXt2YXIgYj1bXTtWKGEsYixudWxsLGZ1bmN0aW9uKGEpe3JldHVybiBhfSk7cmV0dXJuIGJ9LG9ubHk6ZnVuY3Rpb24oYSl7aWYoIU4oYSkpdGhyb3cgQShFcnJvcigxNDMpKTtyZXR1cm4gYX19LGNyZWF0ZVJlZjpmdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSxDb21wb25lbnQ6RCxQdXJlQ29tcG9uZW50OkYsY3JlYXRlQ29udGV4dDpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPW51bGwpO2E9eyQkdHlwZW9mOncsX2NhbGN1bGF0ZUNoYW5nZWRCaXRzOmIsXG5fY3VycmVudFZhbHVlOmEsX2N1cnJlbnRWYWx1ZTI6YSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9O2EuUHJvdmlkZXI9eyQkdHlwZW9mOnYsX2NvbnRleHQ6YX07cmV0dXJuIGEuQ29uc3VtZXI9YX0sZm9yd2FyZFJlZjpmdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6eCxyZW5kZXI6YX19LGxhenk6ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOmNhLF9jdG9yOmEsX3N0YXR1czotMSxfcmVzdWx0Om51bGx9fSxtZW1vOmZ1bmN0aW9uKGEsYil7cmV0dXJueyQkdHlwZW9mOmJhLHR5cGU6YSxjb21wYXJlOnZvaWQgMD09PWI/bnVsbDpifX0sdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZUNhbGxiYWNrKGEsYil9LHVzZUNvbnRleHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZUNvbnRleHQoYSxiKX0sdXNlRWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIFcoKS51c2VFZmZlY3QoYSxiKX0sdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLFxuYixkKXtyZXR1cm4gVygpLnVzZUltcGVyYXRpdmVIYW5kbGUoYSxiLGQpfSx1c2VEZWJ1Z1ZhbHVlOmZ1bmN0aW9uKCl7fSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZUxheW91dEVmZmVjdChhLGIpfSx1c2VNZW1vOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFcoKS51c2VNZW1vKGEsYil9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBXKCkudXNlUmVkdWNlcihhLGIsZCl9LHVzZVJlZjpmdW5jdGlvbihhKXtyZXR1cm4gVygpLnVzZVJlZihhKX0sdXNlU3RhdGU6ZnVuY3Rpb24oYSl7cmV0dXJuIFcoKS51c2VTdGF0ZShhKX0sRnJhZ21lbnQ6cixQcm9maWxlcjp1LFN0cmljdE1vZGU6dCxTdXNwZW5zZTp5LHVuc3RhYmxlX1N1c3BlbnNlTGlzdDphYSxjcmVhdGVFbGVtZW50Ok0sY2xvbmVFbGVtZW50OmZ1bmN0aW9uKGEsYixkKXtpZihudWxsPT09YXx8dm9pZCAwPT09YSl0aHJvdyBBKEVycm9yKDI2NyksYSk7dmFyIGM9dm9pZCAwLGU9XG5oKHt9LGEucHJvcHMpLGc9YS5rZXksaz1hLnJlZixmPWEuX293bmVyO2lmKG51bGwhPWIpe3ZvaWQgMCE9PWIucmVmJiYoaz1iLnJlZixmPUouY3VycmVudCk7dm9pZCAwIT09Yi5rZXkmJihnPVwiXCIrYi5rZXkpO3ZhciBsPXZvaWQgMDthLnR5cGUmJmEudHlwZS5kZWZhdWx0UHJvcHMmJihsPWEudHlwZS5kZWZhdWx0UHJvcHMpO2ZvcihjIGluIGIpSy5jYWxsKGIsYykmJiFMLmhhc093blByb3BlcnR5KGMpJiYoZVtjXT12b2lkIDA9PT1iW2NdJiZ2b2lkIDAhPT1sP2xbY106YltjXSl9Yz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWMpZS5jaGlsZHJlbj1kO2Vsc2UgaWYoMTxjKXtsPUFycmF5KGMpO2Zvcih2YXIgbT0wO208YzttKyspbFttXT1hcmd1bWVudHNbbSsyXTtlLmNoaWxkcmVuPWx9cmV0dXJueyQkdHlwZW9mOnAsdHlwZTphLnR5cGUsa2V5OmcscmVmOmsscHJvcHM6ZSxfb3duZXI6Zn19LGNyZWF0ZUZhY3Rvcnk6ZnVuY3Rpb24oYSl7dmFyIGI9TS5iaW5kKG51bGwsYSk7XG5iLnR5cGU9YTtyZXR1cm4gYn0saXNWYWxpZEVsZW1lbnQ6Tix2ZXJzaW9uOlwiMTYuOS4wXCIsdW5zdGFibGVfd2l0aFN1c3BlbnNlQ29uZmlnOmZ1bmN0aW9uKGEsYil7dmFyIGQ9SS5zdXNwZW5zZTtJLnN1c3BlbnNlPXZvaWQgMD09PWI/bnVsbDpiO3RyeXthKCl9ZmluYWxseXtJLnN1c3BlbnNlPWR9fSxfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDp7UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpILFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOkksUmVhY3RDdXJyZW50T3duZXI6SixJc1NvbWVSZW5kZXJlckFjdGluZzp7Y3VycmVudDohMX0sYXNzaWduOmh9fSxZPXtkZWZhdWx0Olh9LFo9WSYmWHx8WTttb2R1bGUuZXhwb3J0cz1aLmRlZmF1bHR8fFo7XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjkuMFxuICogcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuLypcbiBNb2Rlcm5penIgMy4wLjBwcmUgKEN1c3RvbSBCdWlsZCkgfCBNSVRcbiovXG4ndXNlIHN0cmljdCc7dmFyIGFhPXJlcXVpcmUoXCJyZWFjdFwiKSxtPXJlcXVpcmUoXCJvYmplY3QtYXNzaWduXCIpLHE9cmVxdWlyZShcInNjaGVkdWxlclwiKTtmdW5jdGlvbiB0KGEpe2Zvcih2YXIgYj1hLm1lc3NhZ2UsYz1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2IsZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspYys9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbZF0pO2EubWVzc2FnZT1cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIitiK1wiOyB2aXNpdCBcIitjK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4gXCI7cmV0dXJuIGF9aWYoIWFhKXRocm93IHQoRXJyb3IoMjI3KSk7dmFyIGJhPW51bGwsY2E9e307XG5mdW5jdGlvbiBkYSgpe2lmKGJhKWZvcih2YXIgYSBpbiBjYSl7dmFyIGI9Y2FbYV0sYz1iYS5pbmRleE9mKGEpO2lmKCEoLTE8YykpdGhyb3cgdChFcnJvcig5NiksYSk7aWYoIWVhW2NdKXtpZighYi5leHRyYWN0RXZlbnRzKXRocm93IHQoRXJyb3IoOTcpLGEpO2VhW2NdPWI7Yz1iLmV2ZW50VHlwZXM7Zm9yKHZhciBkIGluIGMpe3ZhciBlPXZvaWQgMDt2YXIgZj1jW2RdLGg9YixnPWQ7aWYoZmEuaGFzT3duUHJvcGVydHkoZykpdGhyb3cgdChFcnJvcig5OSksZyk7ZmFbZ109Zjt2YXIgaz1mLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzO2lmKGspe2ZvcihlIGluIGspay5oYXNPd25Qcm9wZXJ0eShlKSYmaGEoa1tlXSxoLGcpO2U9ITB9ZWxzZSBmLnJlZ2lzdHJhdGlvbk5hbWU/KGhhKGYucmVnaXN0cmF0aW9uTmFtZSxoLGcpLGU9ITApOmU9ITE7aWYoIWUpdGhyb3cgdChFcnJvcig5OCksZCxhKTt9fX19XG5mdW5jdGlvbiBoYShhLGIsYyl7aWYoaWFbYV0pdGhyb3cgdChFcnJvcigxMDApLGEpO2lhW2FdPWI7amFbYV09Yi5ldmVudFR5cGVzW2NdLmRlcGVuZGVuY2llc312YXIgZWE9W10sZmE9e30saWE9e30samE9e307ZnVuY3Rpb24ga2EoYSxiLGMsZCxlLGYsaCxnLGspe3ZhciBsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7Yi5hcHBseShjLGwpfWNhdGNoKG4pe3RoaXMub25FcnJvcihuKX19dmFyIGxhPSExLG1hPW51bGwsbmE9ITEsb2E9bnVsbCxwYT17b25FcnJvcjpmdW5jdGlvbihhKXtsYT0hMDttYT1hfX07ZnVuY3Rpb24gcWEoYSxiLGMsZCxlLGYsaCxnLGspe2xhPSExO21hPW51bGw7a2EuYXBwbHkocGEsYXJndW1lbnRzKX1cbmZ1bmN0aW9uIHJhKGEsYixjLGQsZSxmLGgsZyxrKXtxYS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYobGEpe2lmKGxhKXt2YXIgbD1tYTtsYT0hMTttYT1udWxsfWVsc2UgdGhyb3cgdChFcnJvcigxOTgpKTtuYXx8KG5hPSEwLG9hPWwpfX12YXIgc2E9bnVsbCx0YT1udWxsLHZhPW51bGw7ZnVuY3Rpb24gd2EoYSxiLGMpe3ZhciBkPWEudHlwZXx8XCJ1bmtub3duLWV2ZW50XCI7YS5jdXJyZW50VGFyZ2V0PXZhKGMpO3JhKGQsYix2b2lkIDAsYSk7YS5jdXJyZW50VGFyZ2V0PW51bGx9ZnVuY3Rpb24geGEoYSxiKXtpZihudWxsPT1iKXRocm93IHQoRXJyb3IoMzApKTtpZihudWxsPT1hKXJldHVybiBiO2lmKEFycmF5LmlzQXJyYXkoYSkpe2lmKEFycmF5LmlzQXJyYXkoYikpcmV0dXJuIGEucHVzaC5hcHBseShhLGIpLGE7YS5wdXNoKGIpO3JldHVybiBhfXJldHVybiBBcnJheS5pc0FycmF5KGIpP1thXS5jb25jYXQoYik6W2EsYl19XG5mdW5jdGlvbiB5YShhLGIsYyl7QXJyYXkuaXNBcnJheShhKT9hLmZvckVhY2goYixjKTphJiZiLmNhbGwoYyxhKX12YXIgemE9bnVsbDtmdW5jdGlvbiBBYShhKXtpZihhKXt2YXIgYj1hLl9kaXNwYXRjaExpc3RlbmVycyxjPWEuX2Rpc3BhdGNoSW5zdGFuY2VzO2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBkPTA7ZDxiLmxlbmd0aCYmIWEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTtkKyspd2EoYSxiW2RdLGNbZF0pO2Vsc2UgYiYmd2EoYSxiLGMpO2EuX2Rpc3BhdGNoTGlzdGVuZXJzPW51bGw7YS5fZGlzcGF0Y2hJbnN0YW5jZXM9bnVsbDthLmlzUGVyc2lzdGVudCgpfHxhLmNvbnN0cnVjdG9yLnJlbGVhc2UoYSl9fWZ1bmN0aW9uIEJhKGEpe251bGwhPT1hJiYoemE9eGEoemEsYSkpO2E9emE7emE9bnVsbDtpZihhKXt5YShhLEFhKTtpZih6YSl0aHJvdyB0KEVycm9yKDk1KSk7aWYobmEpdGhyb3cgYT1vYSxuYT0hMSxvYT1udWxsLGE7fX1cbnZhciBDYT17aW5qZWN0RXZlbnRQbHVnaW5PcmRlcjpmdW5jdGlvbihhKXtpZihiYSl0aHJvdyB0KEVycm9yKDEwMSkpO2JhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpO2RhKCl9LGluamVjdEV2ZW50UGx1Z2luc0J5TmFtZTpmdW5jdGlvbihhKXt2YXIgYj0hMSxjO2ZvcihjIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9YVtjXTtpZighY2EuaGFzT3duUHJvcGVydHkoYyl8fGNhW2NdIT09ZCl7aWYoY2FbY10pdGhyb3cgdChFcnJvcigxMDIpLGMpO2NhW2NdPWQ7Yj0hMH19YiYmZGEoKX19O1xuZnVuY3Rpb24gRGEoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtpZighYylyZXR1cm4gbnVsbDt2YXIgZD1zYShjKTtpZighZClyZXR1cm4gbnVsbDtjPWRbYl07YTpzd2l0Y2goYil7Y2FzZSBcIm9uQ2xpY2tcIjpjYXNlIFwib25DbGlja0NhcHR1cmVcIjpjYXNlIFwib25Eb3VibGVDbGlja1wiOmNhc2UgXCJvbkRvdWJsZUNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlRG93blwiOmNhc2UgXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZU1vdmVcIjpjYXNlIFwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VVcFwiOmNhc2UgXCJvbk1vdXNlVXBDYXB0dXJlXCI6KGQ9IWQuZGlzYWJsZWQpfHwoYT1hLnR5cGUsZD0hKFwiYnV0dG9uXCI9PT1hfHxcImlucHV0XCI9PT1hfHxcInNlbGVjdFwiPT09YXx8XCJ0ZXh0YXJlYVwiPT09YSkpO2E9IWQ7YnJlYWsgYTtkZWZhdWx0OmE9ITF9aWYoYSlyZXR1cm4gbnVsbDtpZihjJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYyl0aHJvdyB0KEVycm9yKDIzMSksYix0eXBlb2YgYyk7XG5yZXR1cm4gY312YXIgRWE9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksRmE9XCJfX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSRcIitFYSxHYT1cIl9fcmVhY3RFdmVudEhhbmRsZXJzJFwiK0VhO2Z1bmN0aW9uIEhhKGEpe2lmKGFbRmFdKXJldHVybiBhW0ZhXTtmb3IoOyFhW0ZhXTspaWYoYS5wYXJlbnROb2RlKWE9YS5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGw7YT1hW0ZhXTtyZXR1cm4gNT09PWEudGFnfHw2PT09YS50YWc/YTpudWxsfWZ1bmN0aW9uIElhKGEpe2E9YVtGYV07cmV0dXJuIWF8fDUhPT1hLnRhZyYmNiE9PWEudGFnP251bGw6YX1mdW5jdGlvbiBKYShhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYS5zdGF0ZU5vZGU7dGhyb3cgdChFcnJvcigzMykpO31mdW5jdGlvbiBLYShhKXtyZXR1cm4gYVtHYV18fG51bGx9ZnVuY3Rpb24gTGEoYSl7ZG8gYT1hLnJldHVybjt3aGlsZShhJiY1IT09YS50YWcpO3JldHVybiBhP2E6bnVsbH1cbmZ1bmN0aW9uIE1hKGEsYixjKXtpZihiPURhKGEsYy5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lc1tiXSkpYy5fZGlzcGF0Y2hMaXN0ZW5lcnM9eGEoYy5fZGlzcGF0Y2hMaXN0ZW5lcnMsYiksYy5fZGlzcGF0Y2hJbnN0YW5jZXM9eGEoYy5fZGlzcGF0Y2hJbnN0YW5jZXMsYSl9ZnVuY3Rpb24gTmEoYSl7aWYoYSYmYS5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lcyl7Zm9yKHZhciBiPWEuX3RhcmdldEluc3QsYz1bXTtiOyljLnB1c2goYiksYj1MYShiKTtmb3IoYj1jLmxlbmd0aDswPGItLTspTWEoY1tiXSxcImNhcHR1cmVkXCIsYSk7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKylNYShjW2JdLFwiYnViYmxlZFwiLGEpfX1cbmZ1bmN0aW9uIE9hKGEsYixjKXthJiZjJiZjLmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUmJihiPURhKGEsYy5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lKSkmJihjLl9kaXNwYXRjaExpc3RlbmVycz14YShjLl9kaXNwYXRjaExpc3RlbmVycyxiKSxjLl9kaXNwYXRjaEluc3RhbmNlcz14YShjLl9kaXNwYXRjaEluc3RhbmNlcyxhKSl9ZnVuY3Rpb24gUGEoYSl7YSYmYS5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lJiZPYShhLl90YXJnZXRJbnN0LG51bGwsYSl9ZnVuY3Rpb24gUWEoYSl7eWEoYSxOYSl9dmFyIFJhPSEoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3d8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbmZ1bmN0aW9uIFNhKGEsYil7dmFyIGM9e307Y1thLnRvTG93ZXJDYXNlKCldPWIudG9Mb3dlckNhc2UoKTtjW1wiV2Via2l0XCIrYV09XCJ3ZWJraXRcIitiO2NbXCJNb3pcIithXT1cIm1velwiK2I7cmV0dXJuIGN9dmFyIFRhPXthbmltYXRpb25lbmQ6U2EoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246U2EoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpTYShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbmVuZDpTYShcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25FbmRcIil9LFVhPXt9LFZhPXt9O1xuUmEmJihWYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlLFwiQW5pbWF0aW9uRXZlbnRcImluIHdpbmRvd3x8KGRlbGV0ZSBUYS5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBUYS5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBUYS5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLFwiVHJhbnNpdGlvbkV2ZW50XCJpbiB3aW5kb3d8fGRlbGV0ZSBUYS50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO2Z1bmN0aW9uIFdhKGEpe2lmKFVhW2FdKXJldHVybiBVYVthXTtpZighVGFbYV0pcmV0dXJuIGE7dmFyIGI9VGFbYV0sYztmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmMgaW4gVmEpcmV0dXJuIFVhW2FdPWJbY107cmV0dXJuIGF9XG52YXIgWGE9V2EoXCJhbmltYXRpb25lbmRcIiksWWE9V2EoXCJhbmltYXRpb25pdGVyYXRpb25cIiksWmE9V2EoXCJhbmltYXRpb25zdGFydFwiKSxhYj1XYShcInRyYW5zaXRpb25lbmRcIiksYmI9XCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nXCIuc3BsaXQoXCIgXCIpLGNiPW51bGwsZGI9bnVsbCxlYj1udWxsO1xuZnVuY3Rpb24gZmIoKXtpZihlYilyZXR1cm4gZWI7dmFyIGEsYj1kYixjPWIubGVuZ3RoLGQsZT1cInZhbHVlXCJpbiBjYj9jYi52YWx1ZTpjYi50ZXh0Q29udGVudCxmPWUubGVuZ3RoO2ZvcihhPTA7YTxjJiZiW2FdPT09ZVthXTthKyspO3ZhciBoPWMtYTtmb3IoZD0xO2Q8PWgmJmJbYy1kXT09PWVbZi1kXTtkKyspO3JldHVybiBlYj1lLnNsaWNlKGEsMTxkPzEtZDp2b2lkIDApfWZ1bmN0aW9uIGdiKCl7cmV0dXJuITB9ZnVuY3Rpb24gaGIoKXtyZXR1cm4hMX1cbmZ1bmN0aW9uIHkoYSxiLGMsZCl7dGhpcy5kaXNwYXRjaENvbmZpZz1hO3RoaXMuX3RhcmdldEluc3Q9Yjt0aGlzLm5hdGl2ZUV2ZW50PWM7YT10aGlzLmNvbnN0cnVjdG9yLkludGVyZmFjZTtmb3IodmFyIGUgaW4gYSlhLmhhc093blByb3BlcnR5KGUpJiYoKGI9YVtlXSk/dGhpc1tlXT1iKGMpOlwidGFyZ2V0XCI9PT1lP3RoaXMudGFyZ2V0PWQ6dGhpc1tlXT1jW2VdKTt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9Yy5kZWZhdWx0UHJldmVudGVkP2MuZGVmYXVsdFByZXZlbnRlZDohMT09PWMucmV0dXJuVmFsdWUpP2diOmhiO3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9aGI7cmV0dXJuIHRoaXN9XG5tKHkucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTpcInVua25vd25cIiE9PXR5cGVvZiBhLnJldHVyblZhbHVlJiYoYS5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9Z2IpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnN0b3BQcm9wYWdhdGlvbj9hLnN0b3BQcm9wYWdhdGlvbigpOlwidW5rbm93blwiIT09dHlwZW9mIGEuY2FuY2VsQnViYmxlJiYoYS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9Z2IpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7dGhpcy5pc1BlcnNpc3RlbnQ9Z2J9LGlzUGVyc2lzdGVudDpoYixkZXN0cnVjdG9yOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb25zdHJ1Y3Rvci5JbnRlcmZhY2UsXG5iO2ZvcihiIGluIGEpdGhpc1tiXT1udWxsO3RoaXMubmF0aXZlRXZlbnQ9dGhpcy5fdGFyZ2V0SW5zdD10aGlzLmRpc3BhdGNoQ29uZmlnPW51bGw7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD10aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1oYjt0aGlzLl9kaXNwYXRjaEluc3RhbmNlcz10aGlzLl9kaXNwYXRjaExpc3RlbmVycz1udWxsfX0pO3kuSW50ZXJmYWNlPXt0eXBlOm51bGwsdGFyZ2V0Om51bGwsY3VycmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxldmVudFBoYXNlOm51bGwsYnViYmxlczpudWxsLGNhbmNlbGFibGU6bnVsbCx0aW1lU3RhbXA6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOm51bGwsaXNUcnVzdGVkOm51bGx9O1xueS5leHRlbmQ9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBjKCl7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBkPXRoaXM7Yi5wcm90b3R5cGU9ZC5wcm90b3R5cGU7dmFyIGU9bmV3IGI7bShlLGMucHJvdG90eXBlKTtjLnByb3RvdHlwZT1lO2MucHJvdG90eXBlLmNvbnN0cnVjdG9yPWM7Yy5JbnRlcmZhY2U9bSh7fSxkLkludGVyZmFjZSxhKTtjLmV4dGVuZD1kLmV4dGVuZDtpYihjKTtyZXR1cm4gY307aWIoeSk7ZnVuY3Rpb24gamIoYSxiLGMsZCl7aWYodGhpcy5ldmVudFBvb2wubGVuZ3RoKXt2YXIgZT10aGlzLmV2ZW50UG9vbC5wb3AoKTt0aGlzLmNhbGwoZSxhLGIsYyxkKTtyZXR1cm4gZX1yZXR1cm4gbmV3IHRoaXMoYSxiLGMsZCl9XG5mdW5jdGlvbiBrYihhKXtpZighKGEgaW5zdGFuY2VvZiB0aGlzKSl0aHJvdyB0KEVycm9yKDI3OSkpO2EuZGVzdHJ1Y3RvcigpOzEwPnRoaXMuZXZlbnRQb29sLmxlbmd0aCYmdGhpcy5ldmVudFBvb2wucHVzaChhKX1mdW5jdGlvbiBpYihhKXthLmV2ZW50UG9vbD1bXTthLmdldFBvb2xlZD1qYjthLnJlbGVhc2U9a2J9dmFyIGxiPXkuZXh0ZW5kKHtkYXRhOm51bGx9KSxtYj15LmV4dGVuZCh7ZGF0YTpudWxsfSksbmI9WzksMTMsMjcsMzJdLG9iPVJhJiZcIkNvbXBvc2l0aW9uRXZlbnRcImluIHdpbmRvdyxwYj1udWxsO1JhJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJihwYj1kb2N1bWVudC5kb2N1bWVudE1vZGUpO1xudmFyIHFiPVJhJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhcGIsc2I9UmEmJighb2J8fHBiJiY4PHBiJiYxMT49cGIpLHRiPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLHViPXtiZWZvcmVJbnB1dDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkJlZm9yZUlucHV0XCIsY2FwdHVyZWQ6XCJvbkJlZm9yZUlucHV0Q2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6W1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdfSxjb21wb3NpdGlvbkVuZDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkNvbXBvc2l0aW9uRW5kXCIsY2FwdHVyZWQ6XCJvbkNvbXBvc2l0aW9uRW5kQ2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6XCJibHVyIGNvbXBvc2l0aW9uZW5kIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpfSxjb21wb3NpdGlvblN0YXJ0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpcIm9uQ29tcG9zaXRpb25TdGFydFwiLFxuY2FwdHVyZWQ6XCJvbkNvbXBvc2l0aW9uU3RhcnRDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKX0sY29tcG9zaXRpb25VcGRhdGU6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOlwib25Db21wb3NpdGlvblVwZGF0ZVwiLGNhcHR1cmVkOlwib25Db21wb3NpdGlvblVwZGF0ZUNhcHR1cmVcIn0sZGVwZW5kZW5jaWVzOlwiYmx1ciBjb21wb3NpdGlvbnVwZGF0ZSBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKX19LHZiPSExO1xuZnVuY3Rpb24gd2IoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImtleXVwXCI6cmV0dXJuLTEhPT1uYi5pbmRleE9mKGIua2V5Q29kZSk7Y2FzZSBcImtleWRvd25cIjpyZXR1cm4gMjI5IT09Yi5rZXlDb2RlO2Nhc2UgXCJrZXlwcmVzc1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwiYmx1clwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIHhiKGEpe2E9YS5kZXRhaWw7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZcImRhdGFcImluIGE/YS5kYXRhOm51bGx9dmFyIHliPSExO2Z1bmN0aW9uIEFiKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiB4YihiKTtjYXNlIFwia2V5cHJlc3NcIjppZigzMiE9PWIud2hpY2gpcmV0dXJuIG51bGw7dmI9ITA7cmV0dXJuIHRiO2Nhc2UgXCJ0ZXh0SW5wdXRcIjpyZXR1cm4gYT1iLmRhdGEsYT09PXRiJiZ2Yj9udWxsOmE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBCYihhLGIpe2lmKHliKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWF8fCFvYiYmd2IoYSxiKT8oYT1mYigpLGViPWRiPWNiPW51bGwseWI9ITEsYSk6bnVsbDtzd2l0Y2goYSl7Y2FzZSBcInBhc3RlXCI6cmV0dXJuIG51bGw7Y2FzZSBcImtleXByZXNzXCI6aWYoIShiLmN0cmxLZXl8fGIuYWx0S2V5fHxiLm1ldGFLZXkpfHxiLmN0cmxLZXkmJmIuYWx0S2V5KXtpZihiLmNoYXImJjE8Yi5jaGFyLmxlbmd0aClyZXR1cm4gYi5jaGFyO2lmKGIud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYi53aGljaCl9cmV0dXJuIG51bGw7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIHNiJiZcImtvXCIhPT1iLmxvY2FsZT9udWxsOmIuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbnZhciBDYj17ZXZlbnRUeXBlczp1YixleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXZvaWQgMDt2YXIgZj12b2lkIDA7aWYob2IpYjp7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbnN0YXJ0XCI6ZT11Yi5jb21wb3NpdGlvblN0YXJ0O2JyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6ZT11Yi5jb21wb3NpdGlvbkVuZDticmVhayBiO2Nhc2UgXCJjb21wb3NpdGlvbnVwZGF0ZVwiOmU9dWIuY29tcG9zaXRpb25VcGRhdGU7YnJlYWsgYn1lPXZvaWQgMH1lbHNlIHliP3diKGEsYykmJihlPXViLmNvbXBvc2l0aW9uRW5kKTpcImtleWRvd25cIj09PWEmJjIyOT09PWMua2V5Q29kZSYmKGU9dWIuY29tcG9zaXRpb25TdGFydCk7ZT8oc2ImJlwia29cIiE9PWMubG9jYWxlJiYoeWJ8fGUhPT11Yi5jb21wb3NpdGlvblN0YXJ0P2U9PT11Yi5jb21wb3NpdGlvbkVuZCYmeWImJihmPWZiKCkpOihjYj1kLGRiPVwidmFsdWVcImluIGNiP2NiLnZhbHVlOmNiLnRleHRDb250ZW50LHliPVxuITApKSxlPWxiLmdldFBvb2xlZChlLGIsYyxkKSxmP2UuZGF0YT1mOihmPXhiKGMpLG51bGwhPT1mJiYoZS5kYXRhPWYpKSxRYShlKSxmPWUpOmY9bnVsbDsoYT1xYj9BYihhLGMpOkJiKGEsYykpPyhiPW1iLmdldFBvb2xlZCh1Yi5iZWZvcmVJbnB1dCxiLGMsZCksYi5kYXRhPWEsUWEoYikpOmI9bnVsbDtyZXR1cm4gbnVsbD09PWY/YjpudWxsPT09Yj9mOltmLGJdfX0sRGI9bnVsbCxFYj1udWxsLEZiPW51bGw7ZnVuY3Rpb24gR2IoYSl7aWYoYT10YShhKSl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIERiKXRocm93IHQoRXJyb3IoMjgwKSk7dmFyIGI9c2EoYS5zdGF0ZU5vZGUpO0RiKGEuc3RhdGVOb2RlLGEudHlwZSxiKX19ZnVuY3Rpb24gSGIoYSl7RWI/RmI/RmIucHVzaChhKTpGYj1bYV06RWI9YX1mdW5jdGlvbiBJYigpe2lmKEViKXt2YXIgYT1FYixiPUZiO0ZiPUViPW51bGw7R2IoYSk7aWYoYilmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKUdiKGJbYV0pfX1cbmZ1bmN0aW9uIEpiKGEsYil7cmV0dXJuIGEoYil9ZnVuY3Rpb24gS2IoYSxiLGMsZCl7cmV0dXJuIGEoYixjLGQpfWZ1bmN0aW9uIExiKCl7fXZhciBNYj1KYixOYj0hMTtmdW5jdGlvbiBPYigpe2lmKG51bGwhPT1FYnx8bnVsbCE9PUZiKUxiKCksSWIoKX12YXIgUGI9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gUWIoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PWI/ISFQYlthLnR5cGVdOlwidGV4dGFyZWFcIj09PWI/ITA6ITF9XG5mdW5jdGlvbiBSYihhKXthPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnR8fHdpbmRvdzthLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoYT1hLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KTtyZXR1cm4gMz09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmF9ZnVuY3Rpb24gU2IoYSl7aWYoIVJhKXJldHVybiExO2E9XCJvblwiK2E7dmFyIGI9YSBpbiBkb2N1bWVudDtifHwoYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGIuc2V0QXR0cmlidXRlKGEsXCJyZXR1cm47XCIpLGI9XCJmdW5jdGlvblwiPT09dHlwZW9mIGJbYV0pO3JldHVybiBifWZ1bmN0aW9uIFRiKGEpe3ZhciBiPWEudHlwZTtyZXR1cm4oYT1hLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09YS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09Ynx8XCJyYWRpb1wiPT09Yil9XG5mdW5jdGlvbiBVYihhKXt2YXIgYj1UYihhKT9cImNoZWNrZWRcIjpcInZhbHVlXCIsYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEuY29uc3RydWN0b3IucHJvdG90eXBlLGIpLGQ9XCJcIithW2JdO2lmKCFhLmhhc093blByb3BlcnR5KGIpJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmdldCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuc2V0KXt2YXIgZT1jLmdldCxmPWMuc2V0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oYSl7ZD1cIlwiK2E7Zi5jYWxsKHRoaXMsYSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7ZW51bWVyYWJsZTpjLmVudW1lcmFibGV9KTtyZXR1cm57Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc2V0VmFsdWU6ZnVuY3Rpb24oYSl7ZD1cIlwiK2F9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2EuX3ZhbHVlVHJhY2tlcj1cbm51bGw7ZGVsZXRlIGFbYl19fX19ZnVuY3Rpb24gVmIoYSl7YS5fdmFsdWVUcmFja2VyfHwoYS5fdmFsdWVUcmFja2VyPVViKGEpKX1mdW5jdGlvbiBXYihhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hLl92YWx1ZVRyYWNrZXI7aWYoIWIpcmV0dXJuITA7dmFyIGM9Yi5nZXRWYWx1ZSgpO3ZhciBkPVwiXCI7YSYmKGQ9VGIoYSk/YS5jaGVja2VkP1widHJ1ZVwiOlwiZmFsc2VcIjphLnZhbHVlKTthPWQ7cmV0dXJuIGEhPT1jPyhiLnNldFZhbHVlKGEpLCEwKTohMX12YXIgWGI9YWEuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7WGIuaGFzT3duUHJvcGVydHkoXCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyXCIpfHwoWGIuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcj17Y3VycmVudDpudWxsfSk7WGIuaGFzT3duUHJvcGVydHkoXCJSZWFjdEN1cnJlbnRCYXRjaENvbmZpZ1wiKXx8KFhiLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnPXtzdXNwZW5zZTpudWxsfSk7XG52YXIgWWI9L14oLiopW1xcXFxcXC9dLyxCPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsWmI9Qj9TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKTo2MDEwMywkYj1CP1N5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIik6NjAxMDYsYWM9Qj9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsYmM9Qj9TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik6NjAxMDgsY2M9Qj9TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik6NjAxMTQsZGM9Qj9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksZWM9Qj9TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKTo2MDExMCxmYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5jb25jdXJyZW50X21vZGVcIik6NjAxMTEsZ2M9Qj9TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIik6NjAxMTIsaGM9Qj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMsaWM9Qj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTpcbjYwMTIwLGpjPUI/U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIik6NjAxMTUsa2M9Qj9TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTo2MDExNjtCJiZTeW1ib2wuZm9yKFwicmVhY3QuZnVuZGFtZW50YWxcIik7QiYmU3ltYm9sLmZvcihcInJlYWN0LnJlc3BvbmRlclwiKTt2YXIgbGM9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIG1jKGEpe2lmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGEpcmV0dXJuIG51bGw7YT1sYyYmYVtsY118fGFbXCJAQGl0ZXJhdG9yXCJdO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbH1cbmZ1bmN0aW9uIG9jKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpcmV0dXJuIGEuZGlzcGxheU5hbWV8fGEubmFtZXx8bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGEpcmV0dXJuIGE7c3dpdGNoKGEpe2Nhc2UgYWM6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgJGI6cmV0dXJuXCJQb3J0YWxcIjtjYXNlIGNjOnJldHVyblwiUHJvZmlsZXJcIjtjYXNlIGJjOnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgaGM6cmV0dXJuXCJTdXNwZW5zZVwiO2Nhc2UgaWM6cmV0dXJuXCJTdXNwZW5zZUxpc3RcIn1pZihcIm9iamVjdFwiPT09dHlwZW9mIGEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgZWM6cmV0dXJuXCJDb250ZXh0LkNvbnN1bWVyXCI7Y2FzZSBkYzpyZXR1cm5cIkNvbnRleHQuUHJvdmlkZXJcIjtjYXNlIGdjOnZhciBiPWEucmVuZGVyO2I9Yi5kaXNwbGF5TmFtZXx8Yi5uYW1lfHxcIlwiO3JldHVybiBhLmRpc3BsYXlOYW1lfHwoXCJcIiE9PWI/XCJGb3J3YXJkUmVmKFwiK2IrXCIpXCI6XG5cIkZvcndhcmRSZWZcIik7Y2FzZSBqYzpyZXR1cm4gb2MoYS50eXBlKTtjYXNlIGtjOmlmKGE9MT09PWEuX3N0YXR1cz9hLl9yZXN1bHQ6bnVsbClyZXR1cm4gb2MoYSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcGMoYSl7dmFyIGI9XCJcIjtkb3thOnN3aXRjaChhLnRhZyl7Y2FzZSAzOmNhc2UgNDpjYXNlIDY6Y2FzZSA3OmNhc2UgMTA6Y2FzZSA5OnZhciBjPVwiXCI7YnJlYWsgYTtkZWZhdWx0OnZhciBkPWEuX2RlYnVnT3duZXIsZT1hLl9kZWJ1Z1NvdXJjZSxmPW9jKGEudHlwZSk7Yz1udWxsO2QmJihjPW9jKGQudHlwZSkpO2Q9ZjtmPVwiXCI7ZT9mPVwiIChhdCBcIitlLmZpbGVOYW1lLnJlcGxhY2UoWWIsXCJcIikrXCI6XCIrZS5saW5lTnVtYmVyK1wiKVwiOmMmJihmPVwiIChjcmVhdGVkIGJ5IFwiK2MrXCIpXCIpO2M9XCJcXG4gICAgaW4gXCIrKGR8fFwiVW5rbm93blwiKStmfWIrPWM7YT1hLnJldHVybn13aGlsZShhKTtyZXR1cm4gYn1cbnZhciBxYz0vXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJC8scmM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxzYz17fSx0Yz17fTtcbmZ1bmN0aW9uIHVjKGEpe2lmKHJjLmNhbGwodGMsYSkpcmV0dXJuITA7aWYocmMuY2FsbChzYyxhKSlyZXR1cm4hMTtpZihxYy50ZXN0KGEpKXJldHVybiB0Y1thXT0hMDtzY1thXT0hMDtyZXR1cm4hMX1mdW5jdGlvbiB2YyhhLGIsYyxkKXtpZihudWxsIT09YyYmMD09PWMudHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIGIpe2Nhc2UgXCJmdW5jdGlvblwiOmNhc2UgXCJzeW1ib2xcIjpyZXR1cm4hMDtjYXNlIFwiYm9vbGVhblwiOmlmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpcmV0dXJuIWMuYWNjZXB0c0Jvb2xlYW5zO2E9YS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7cmV0dXJuXCJkYXRhLVwiIT09YSYmXCJhcmlhLVwiIT09YTtkZWZhdWx0OnJldHVybiExfX1cbmZ1bmN0aW9uIHdjKGEsYixjLGQpe2lmKG51bGw9PT1ifHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIGJ8fHZjKGEsYixjLGQpKXJldHVybiEwO2lmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpc3dpdGNoKGMudHlwZSl7Y2FzZSAzOnJldHVybiFiO2Nhc2UgNDpyZXR1cm4hMT09PWI7Y2FzZSA1OnJldHVybiBpc05hTihiKTtjYXNlIDY6cmV0dXJuIGlzTmFOKGIpfHwxPmJ9cmV0dXJuITF9ZnVuY3Rpb24gRChhLGIsYyxkLGUsZil7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PWJ8fDM9PT1ifHw0PT09Yjt0aGlzLmF0dHJpYnV0ZU5hbWU9ZDt0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1lO3RoaXMubXVzdFVzZVByb3BlcnR5PWM7dGhpcy5wcm9wZXJ0eU5hbWU9YTt0aGlzLnR5cGU9Yjt0aGlzLnNhbml0aXplVVJMPWZ9dmFyIEY9e307XG5cImNoaWxkcmVuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBzdHlsZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwwLCExLGEsbnVsbCwhMSl9KTtbW1wiYWNjZXB0Q2hhcnNldFwiLFwiYWNjZXB0LWNoYXJzZXRcIl0sW1wiY2xhc3NOYW1lXCIsXCJjbGFzc1wiXSxbXCJodG1sRm9yXCIsXCJmb3JcIl0sW1wiaHR0cEVxdWl2XCIsXCJodHRwLWVxdWl2XCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWFbMF07RltiXT1uZXcgRChiLDEsITEsYVsxXSxudWxsLCExKX0pO1tcImNvbnRlbnRFZGl0YWJsZVwiLFwiZHJhZ2dhYmxlXCIsXCJzcGVsbENoZWNrXCIsXCJ2YWx1ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwyLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExKX0pO1xuW1wiYXV0b1JldmVyc2VcIixcImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcIixcImZvY3VzYWJsZVwiLFwicHJlc2VydmVBbHBoYVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwyLCExLGEsbnVsbCwhMSl9KTtcImFsbG93RnVsbFNjcmVlbiBhc3luYyBhdXRvRm9jdXMgYXV0b1BsYXkgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlUGljdHVyZUluUGljdHVyZSBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwzLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExKX0pO1xuW1wiY2hlY2tlZFwiLFwibXVsdGlwbGVcIixcIm11dGVkXCIsXCJzZWxlY3RlZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwzLCEwLGEsbnVsbCwhMSl9KTtbXCJjYXB0dXJlXCIsXCJkb3dubG9hZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSw0LCExLGEsbnVsbCwhMSl9KTtbXCJjb2xzXCIsXCJyb3dzXCIsXCJzaXplXCIsXCJzcGFuXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDYsITEsYSxudWxsLCExKX0pO1tcInJvd1NwYW5cIixcInN0YXJ0XCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDUsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSk7dmFyIHhjPS9bXFwtOl0oW2Etel0pL2c7ZnVuY3Rpb24geWMoYSl7cmV0dXJuIGFbMV0udG9VcHBlckNhc2UoKX1cblwiYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHRcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoeGMsXG55Yyk7RltiXT1uZXcgRChiLDEsITEsYSxudWxsLCExKX0pO1wieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHhjLHljKTtGW2JdPW5ldyBEKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLCExKX0pO1tcInhtbDpiYXNlXCIsXCJ4bWw6bGFuZ1wiLFwieG1sOnNwYWNlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHhjLHljKTtGW2JdPW5ldyBEKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsITEpfSk7W1widGFiSW5kZXhcIixcImNyb3NzT3JpZ2luXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSk7XG5GLnhsaW5rSHJlZj1uZXcgRChcInhsaW5rSHJlZlwiLDEsITEsXCJ4bGluazpocmVmXCIsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITApO1tcInNyY1wiLFwiaHJlZlwiLFwiYWN0aW9uXCIsXCJmb3JtQWN0aW9uXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITApfSk7XG5mdW5jdGlvbiB6YyhhLGIsYyxkKXt2YXIgZT1GLmhhc093blByb3BlcnR5KGIpP0ZbYl06bnVsbDt2YXIgZj1udWxsIT09ZT8wPT09ZS50eXBlOmQ/ITE6ISgyPGIubGVuZ3RoKXx8XCJvXCIhPT1iWzBdJiZcIk9cIiE9PWJbMF18fFwiblwiIT09YlsxXSYmXCJOXCIhPT1iWzFdPyExOiEwO2Z8fCh3YyhiLGMsZSxkKSYmKGM9bnVsbCksZHx8bnVsbD09PWU/dWMoYikmJihudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTphLnNldEF0dHJpYnV0ZShiLFwiXCIrYykpOmUubXVzdFVzZVByb3BlcnR5P2FbZS5wcm9wZXJ0eU5hbWVdPW51bGw9PT1jPzM9PT1lLnR5cGU/ITE6XCJcIjpjOihiPWUuYXR0cmlidXRlTmFtZSxkPWUuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOihlPWUudHlwZSxjPTM9PT1lfHw0PT09ZSYmITA9PT1jP1wiXCI6XCJcIitjLGQ/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKSkpKX1cbmZ1bmN0aW9uIEFjKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSBcImJvb2xlYW5cIjpjYXNlIFwibnVtYmVyXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJzdHJpbmdcIjpjYXNlIFwidW5kZWZpbmVkXCI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm5cIlwifX1mdW5jdGlvbiBCYyhhLGIpe3ZhciBjPWIuY2hlY2tlZDtyZXR1cm4gbSh7fSxiLHtkZWZhdWx0Q2hlY2tlZDp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCx2YWx1ZTp2b2lkIDAsY2hlY2tlZDpudWxsIT1jP2M6YS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkfSl9XG5mdW5jdGlvbiBDYyhhLGIpe3ZhciBjPW51bGw9PWIuZGVmYXVsdFZhbHVlP1wiXCI6Yi5kZWZhdWx0VmFsdWUsZD1udWxsIT1iLmNoZWNrZWQ/Yi5jaGVja2VkOmIuZGVmYXVsdENoZWNrZWQ7Yz1BYyhudWxsIT1iLnZhbHVlP2IudmFsdWU6Yyk7YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpkLGluaXRpYWxWYWx1ZTpjLGNvbnRyb2xsZWQ6XCJjaGVja2JveFwiPT09Yi50eXBlfHxcInJhZGlvXCI9PT1iLnR5cGU/bnVsbCE9Yi5jaGVja2VkOm51bGwhPWIudmFsdWV9fWZ1bmN0aW9uIERjKGEsYil7Yj1iLmNoZWNrZWQ7bnVsbCE9YiYmemMoYSxcImNoZWNrZWRcIixiLCExKX1cbmZ1bmN0aW9uIEVjKGEsYil7RGMoYSxiKTt2YXIgYz1BYyhiLnZhbHVlKSxkPWIudHlwZTtpZihudWxsIT1jKWlmKFwibnVtYmVyXCI9PT1kKXtpZigwPT09YyYmXCJcIj09PWEudmFsdWV8fGEudmFsdWUhPWMpYS52YWx1ZT1cIlwiK2N9ZWxzZSBhLnZhbHVlIT09XCJcIitjJiYoYS52YWx1ZT1cIlwiK2MpO2Vsc2UgaWYoXCJzdWJtaXRcIj09PWR8fFwicmVzZXRcIj09PWQpe2EucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik7cmV0dXJufWIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKT9GYyhhLGIudHlwZSxjKTpiLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpJiZGYyhhLGIudHlwZSxBYyhiLmRlZmF1bHRWYWx1ZSkpO251bGw9PWIuY2hlY2tlZCYmbnVsbCE9Yi5kZWZhdWx0Q2hlY2tlZCYmKGEuZGVmYXVsdENoZWNrZWQ9ISFiLmRlZmF1bHRDaGVja2VkKX1cbmZ1bmN0aW9uIEdjKGEsYixjKXtpZihiLmhhc093blByb3BlcnR5KFwidmFsdWVcIil8fGIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikpe3ZhciBkPWIudHlwZTtpZighKFwic3VibWl0XCIhPT1kJiZcInJlc2V0XCIhPT1kfHx2b2lkIDAhPT1iLnZhbHVlJiZudWxsIT09Yi52YWx1ZSkpcmV0dXJuO2I9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlO2N8fGI9PT1hLnZhbHVlfHwoYS52YWx1ZT1iKTthLmRlZmF1bHRWYWx1ZT1ifWM9YS5uYW1lO1wiXCIhPT1jJiYoYS5uYW1lPVwiXCIpO2EuZGVmYXVsdENoZWNrZWQ9IWEuZGVmYXVsdENoZWNrZWQ7YS5kZWZhdWx0Q2hlY2tlZD0hIWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcIlwiIT09YyYmKGEubmFtZT1jKX1cbmZ1bmN0aW9uIEZjKGEsYixjKXtpZihcIm51bWJlclwiIT09Ynx8YS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hKW51bGw9PWM/YS5kZWZhdWx0VmFsdWU9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmEuZGVmYXVsdFZhbHVlIT09XCJcIitjJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitjKX12YXIgSGM9e2NoYW5nZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkNoYW5nZVwiLGNhcHR1cmVkOlwib25DaGFuZ2VDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY2hhbmdlIGNsaWNrIGZvY3VzIGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpfX07ZnVuY3Rpb24gSWMoYSxiLGMpe2E9eS5nZXRQb29sZWQoSGMuY2hhbmdlLGEsYixjKTthLnR5cGU9XCJjaGFuZ2VcIjtIYihjKTtRYShhKTtyZXR1cm4gYX12YXIgSmM9bnVsbCxLYz1udWxsO2Z1bmN0aW9uIExjKGEpe0JhKGEpfVxuZnVuY3Rpb24gTWMoYSl7dmFyIGI9SmEoYSk7aWYoV2IoYikpcmV0dXJuIGF9ZnVuY3Rpb24gTmMoYSxiKXtpZihcImNoYW5nZVwiPT09YSlyZXR1cm4gYn12YXIgT2M9ITE7UmEmJihPYz1TYihcImlucHV0XCIpJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpKTtmdW5jdGlvbiBQYygpe0pjJiYoSmMuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsUWMpLEtjPUpjPW51bGwpfWZ1bmN0aW9uIFFjKGEpe2lmKFwidmFsdWVcIj09PWEucHJvcGVydHlOYW1lJiZNYyhLYykpaWYoYT1JYyhLYyxhLFJiKGEpKSxOYilCYShhKTtlbHNle05iPSEwO3RyeXtKYihMYyxhKX1maW5hbGx5e05iPSExLE9iKCl9fX1mdW5jdGlvbiBSYyhhLGIsYyl7XCJmb2N1c1wiPT09YT8oUGMoKSxKYz1iLEtjPWMsSmMuYXR0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsUWMpKTpcImJsdXJcIj09PWEmJlBjKCl9XG5mdW5jdGlvbiBTYyhhKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09YXx8XCJrZXl1cFwiPT09YXx8XCJrZXlkb3duXCI9PT1hKXJldHVybiBNYyhLYyl9ZnVuY3Rpb24gVGMoYSxiKXtpZihcImNsaWNrXCI9PT1hKXJldHVybiBNYyhiKX1mdW5jdGlvbiBVYyhhLGIpe2lmKFwiaW5wdXRcIj09PWF8fFwiY2hhbmdlXCI9PT1hKXJldHVybiBNYyhiKX1cbnZhciBWYz17ZXZlbnRUeXBlczpIYyxfaXNJbnB1dEV2ZW50U3VwcG9ydGVkOk9jLGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Yj9KYShiKTp3aW5kb3csZj12b2lkIDAsaD12b2lkIDAsZz1lLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XCJzZWxlY3RcIj09PWd8fFwiaW5wdXRcIj09PWcmJlwiZmlsZVwiPT09ZS50eXBlP2Y9TmM6UWIoZSk/T2M/Zj1VYzooZj1TYyxoPVJjKTooZz1lLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09Zy50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09ZS50eXBlfHxcInJhZGlvXCI9PT1lLnR5cGUpJiYoZj1UYyk7aWYoZiYmKGY9ZihhLGIpKSlyZXR1cm4gSWMoZixjLGQpO2gmJmgoYSxlLGIpO1wiYmx1clwiPT09YSYmKGE9ZS5fd3JhcHBlclN0YXRlKSYmYS5jb250cm9sbGVkJiZcIm51bWJlclwiPT09ZS50eXBlJiZGYyhlLFwibnVtYmVyXCIsZS52YWx1ZSl9fSxXYz15LmV4dGVuZCh7dmlldzpudWxsLGRldGFpbDpudWxsfSksWGM9e0FsdDpcImFsdEtleVwiLFxuQ29udHJvbDpcImN0cmxLZXlcIixNZXRhOlwibWV0YUtleVwiLFNoaWZ0Olwic2hpZnRLZXlcIn07ZnVuY3Rpb24gWWMoYSl7dmFyIGI9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gYi5nZXRNb2RpZmllclN0YXRlP2IuZ2V0TW9kaWZpZXJTdGF0ZShhKTooYT1YY1thXSk/ISFiW2FdOiExfWZ1bmN0aW9uIFpjKCl7cmV0dXJuIFljfVxudmFyICRjPTAsYWQ9MCxiZD0hMSxjZD0hMSxkZD1XYy5leHRlbmQoe3NjcmVlblg6bnVsbCxzY3JlZW5ZOm51bGwsY2xpZW50WDpudWxsLGNsaWVudFk6bnVsbCxwYWdlWDpudWxsLHBhZ2VZOm51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLGdldE1vZGlmaWVyU3RhdGU6WmMsYnV0dG9uOm51bGwsYnV0dG9uczpudWxsLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVsYXRlZFRhcmdldHx8KGEuZnJvbUVsZW1lbnQ9PT1hLnNyY0VsZW1lbnQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudCl9LG1vdmVtZW50WDpmdW5jdGlvbihhKXtpZihcIm1vdmVtZW50WFwiaW4gYSlyZXR1cm4gYS5tb3ZlbWVudFg7dmFyIGI9JGM7JGM9YS5zY3JlZW5YO3JldHVybiBiZD9cIm1vdXNlbW92ZVwiPT09YS50eXBlP2Euc2NyZWVuWC1iOjA6KGJkPSEwLDApfSxtb3ZlbWVudFk6ZnVuY3Rpb24oYSl7aWYoXCJtb3ZlbWVudFlcImluIGEpcmV0dXJuIGEubW92ZW1lbnRZO1xudmFyIGI9YWQ7YWQ9YS5zY3JlZW5ZO3JldHVybiBjZD9cIm1vdXNlbW92ZVwiPT09YS50eXBlP2Euc2NyZWVuWS1iOjA6KGNkPSEwLDApfX0pLGVkPWRkLmV4dGVuZCh7cG9pbnRlcklkOm51bGwsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxwcmVzc3VyZTpudWxsLHRhbmdlbnRpYWxQcmVzc3VyZTpudWxsLHRpbHRYOm51bGwsdGlsdFk6bnVsbCx0d2lzdDpudWxsLHBvaW50ZXJUeXBlOm51bGwsaXNQcmltYXJ5Om51bGx9KSxmZD17bW91c2VFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZTpcIm9uTW91c2VFbnRlclwiLGRlcGVuZGVuY2llczpbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdfSxtb3VzZUxlYXZlOntyZWdpc3RyYXRpb25OYW1lOlwib25Nb3VzZUxlYXZlXCIsZGVwZW5kZW5jaWVzOltcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl19LHBvaW50ZXJFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZTpcIm9uUG9pbnRlckVudGVyXCIsZGVwZW5kZW5jaWVzOltcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdfSxwb2ludGVyTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6XCJvblBvaW50ZXJMZWF2ZVwiLFxuZGVwZW5kZW5jaWVzOltcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdfX0sZ2Q9e2V2ZW50VHlwZXM6ZmQsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1cIm1vdXNlb3ZlclwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YSxmPVwibW91c2VvdXRcIj09PWF8fFwicG9pbnRlcm91dFwiPT09YTtpZihlJiYoYy5yZWxhdGVkVGFyZ2V0fHxjLmZyb21FbGVtZW50KXx8IWYmJiFlKXJldHVybiBudWxsO2U9ZC53aW5kb3c9PT1kP2Q6KGU9ZC5vd25lckRvY3VtZW50KT9lLmRlZmF1bHRWaWV3fHxlLnBhcmVudFdpbmRvdzp3aW5kb3c7Zj8oZj1iLGI9KGI9Yy5yZWxhdGVkVGFyZ2V0fHxjLnRvRWxlbWVudCk/SGEoYik6bnVsbCk6Zj1udWxsO2lmKGY9PT1iKXJldHVybiBudWxsO3ZhciBoPXZvaWQgMCxnPXZvaWQgMCxrPXZvaWQgMCxsPXZvaWQgMDtpZihcIm1vdXNlb3V0XCI9PT1hfHxcIm1vdXNlb3ZlclwiPT09YSloPWRkLGc9ZmQubW91c2VMZWF2ZSxrPWZkLm1vdXNlRW50ZXIsbD1cIm1vdXNlXCI7XG5lbHNlIGlmKFwicG9pbnRlcm91dFwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YSloPWVkLGc9ZmQucG9pbnRlckxlYXZlLGs9ZmQucG9pbnRlckVudGVyLGw9XCJwb2ludGVyXCI7dmFyIG49bnVsbD09Zj9lOkphKGYpO2U9bnVsbD09Yj9lOkphKGIpO2E9aC5nZXRQb29sZWQoZyxmLGMsZCk7YS50eXBlPWwrXCJsZWF2ZVwiO2EudGFyZ2V0PW47YS5yZWxhdGVkVGFyZ2V0PWU7Yz1oLmdldFBvb2xlZChrLGIsYyxkKTtjLnR5cGU9bCtcImVudGVyXCI7Yy50YXJnZXQ9ZTtjLnJlbGF0ZWRUYXJnZXQ9bjtkPWI7aWYoZiYmZClhOntiPWY7ZT1kO2w9MDtmb3IoaD1iO2g7aD1MYShoKSlsKys7aD0wO2ZvcihrPWU7aztrPUxhKGspKWgrKztmb3IoOzA8bC1oOyliPUxhKGIpLGwtLTtmb3IoOzA8aC1sOyllPUxhKGUpLGgtLTtmb3IoO2wtLTspe2lmKGI9PT1lfHxiPT09ZS5hbHRlcm5hdGUpYnJlYWsgYTtiPUxhKGIpO2U9TGEoZSl9Yj1udWxsfWVsc2UgYj1udWxsO2U9Yjtmb3IoYj1bXTtmJiZmIT09ZTspe2w9XG5mLmFsdGVybmF0ZTtpZihudWxsIT09bCYmbD09PWUpYnJlYWs7Yi5wdXNoKGYpO2Y9TGEoZil9Zm9yKGY9W107ZCYmZCE9PWU7KXtsPWQuYWx0ZXJuYXRlO2lmKG51bGwhPT1sJiZsPT09ZSlicmVhaztmLnB1c2goZCk7ZD1MYShkKX1mb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKU9hKGJbZF0sXCJidWJibGVkXCIsYSk7Zm9yKGQ9Zi5sZW5ndGg7MDxkLS07KU9hKGZbZF0sXCJjYXB0dXJlZFwiLGMpO3JldHVyblthLGNdfX07ZnVuY3Rpb24gaGQoYSxiKXtyZXR1cm4gYT09PWImJigwIT09YXx8MS9hPT09MS9iKXx8YSE9PWEmJmIhPT1ifXZhciBpZD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuZnVuY3Rpb24gamQoYSxiKXtpZihoZChhLGIpKXJldHVybiEwO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYXx8bnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYnx8bnVsbD09PWIpcmV0dXJuITE7dmFyIGM9T2JqZWN0LmtleXMoYSksZD1PYmplY3Qua2V5cyhiKTtpZihjLmxlbmd0aCE9PWQubGVuZ3RoKXJldHVybiExO2ZvcihkPTA7ZDxjLmxlbmd0aDtkKyspaWYoIWlkLmNhbGwoYixjW2RdKXx8IWhkKGFbY1tkXV0sYltjW2RdXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24ga2QoYSxiKXtyZXR1cm57cmVzcG9uZGVyOmEscHJvcHM6Yn19bmV3IE1hcDtuZXcgTWFwO25ldyBTZXQ7bmV3IE1hcDtcbmZ1bmN0aW9uIGxkKGEpe3ZhciBiPWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtiLnJldHVybjspYj1iLnJldHVybjtlbHNle2lmKDAhPT0oYi5lZmZlY3RUYWcmMikpcmV0dXJuIDE7Zm9yKDtiLnJldHVybjspaWYoYj1iLnJldHVybiwwIT09KGIuZWZmZWN0VGFnJjIpKXJldHVybiAxfXJldHVybiAzPT09Yi50YWc/MjozfWZ1bmN0aW9uIG9kKGEpe2lmKDIhPT1sZChhKSl0aHJvdyB0KEVycm9yKDE4OCkpO31cbmZ1bmN0aW9uIHBkKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO2lmKCFiKXtiPWxkKGEpO2lmKDM9PT1iKXRocm93IHQoRXJyb3IoMTg4KSk7cmV0dXJuIDE9PT1iP251bGw6YX1mb3IodmFyIGM9YSxkPWI7Oyl7dmFyIGU9Yy5yZXR1cm47aWYobnVsbD09PWUpYnJlYWs7dmFyIGY9ZS5hbHRlcm5hdGU7aWYobnVsbD09PWYpe2Q9ZS5yZXR1cm47aWYobnVsbCE9PWQpe2M9ZDtjb250aW51ZX1icmVha31pZihlLmNoaWxkPT09Zi5jaGlsZCl7Zm9yKGY9ZS5jaGlsZDtmOyl7aWYoZj09PWMpcmV0dXJuIG9kKGUpLGE7aWYoZj09PWQpcmV0dXJuIG9kKGUpLGI7Zj1mLnNpYmxpbmd9dGhyb3cgdChFcnJvcigxODgpKTt9aWYoYy5yZXR1cm4hPT1kLnJldHVybiljPWUsZD1mO2Vsc2V7Zm9yKHZhciBoPSExLGc9ZS5jaGlsZDtnOyl7aWYoZz09PWMpe2g9ITA7Yz1lO2Q9ZjticmVha31pZihnPT09ZCl7aD0hMDtkPWU7Yz1mO2JyZWFrfWc9Zy5zaWJsaW5nfWlmKCFoKXtmb3IoZz1mLmNoaWxkO2c7KXtpZihnPT09XG5jKXtoPSEwO2M9ZjtkPWU7YnJlYWt9aWYoZz09PWQpe2g9ITA7ZD1mO2M9ZTticmVha31nPWcuc2libGluZ31pZighaCl0aHJvdyB0KEVycm9yKDE4OSkpO319aWYoYy5hbHRlcm5hdGUhPT1kKXRocm93IHQoRXJyb3IoMTkwKSk7fWlmKDMhPT1jLnRhZyl0aHJvdyB0KEVycm9yKDE4OCkpO3JldHVybiBjLnN0YXRlTm9kZS5jdXJyZW50PT09Yz9hOmJ9ZnVuY3Rpb24gcWQoYSl7YT1wZChhKTtpZighYSlyZXR1cm4gbnVsbDtmb3IodmFyIGI9YTs7KXtpZig1PT09Yi50YWd8fDY9PT1iLnRhZylyZXR1cm4gYjtpZihiLmNoaWxkKWIuY2hpbGQucmV0dXJuPWIsYj1iLmNoaWxkO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDshYi5zaWJsaW5nOyl7aWYoIWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfX1yZXR1cm4gbnVsbH1cbnZhciByZD15LmV4dGVuZCh7YW5pbWF0aW9uTmFtZTpudWxsLGVsYXBzZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfSksc2Q9eS5leHRlbmQoe2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuXCJjbGlwYm9hcmREYXRhXCJpbiBhP2EuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSx0ZD1XYy5leHRlbmQoe3JlbGF0ZWRUYXJnZXQ6bnVsbH0pO2Z1bmN0aW9uIHVkKGEpe3ZhciBiPWEua2V5Q29kZTtcImNoYXJDb2RlXCJpbiBhPyhhPWEuY2hhckNvZGUsMD09PWEmJjEzPT09YiYmKGE9MTMpKTphPWI7MTA9PT1hJiYoYT0xMyk7cmV0dXJuIDMyPD1hfHwxMz09PWE/YTowfVxudmFyIHZkPXtFc2M6XCJFc2NhcGVcIixTcGFjZWJhcjpcIiBcIixMZWZ0OlwiQXJyb3dMZWZ0XCIsVXA6XCJBcnJvd1VwXCIsUmlnaHQ6XCJBcnJvd1JpZ2h0XCIsRG93bjpcIkFycm93RG93blwiLERlbDpcIkRlbGV0ZVwiLFdpbjpcIk9TXCIsTWVudTpcIkNvbnRleHRNZW51XCIsQXBwczpcIkNvbnRleHRNZW51XCIsU2Nyb2xsOlwiU2Nyb2xsTG9ja1wiLE1velByaW50YWJsZUtleTpcIlVuaWRlbnRpZmllZFwifSx3ZD17ODpcIkJhY2tzcGFjZVwiLDk6XCJUYWJcIiwxMjpcIkNsZWFyXCIsMTM6XCJFbnRlclwiLDE2OlwiU2hpZnRcIiwxNzpcIkNvbnRyb2xcIiwxODpcIkFsdFwiLDE5OlwiUGF1c2VcIiwyMDpcIkNhcHNMb2NrXCIsMjc6XCJFc2NhcGVcIiwzMjpcIiBcIiwzMzpcIlBhZ2VVcFwiLDM0OlwiUGFnZURvd25cIiwzNTpcIkVuZFwiLDM2OlwiSG9tZVwiLDM3OlwiQXJyb3dMZWZ0XCIsMzg6XCJBcnJvd1VwXCIsMzk6XCJBcnJvd1JpZ2h0XCIsNDA6XCJBcnJvd0Rvd25cIiw0NTpcIkluc2VydFwiLDQ2OlwiRGVsZXRlXCIsMTEyOlwiRjFcIiwxMTM6XCJGMlwiLDExNDpcIkYzXCIsMTE1OlwiRjRcIixcbjExNjpcIkY1XCIsMTE3OlwiRjZcIiwxMTg6XCJGN1wiLDExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0seGQ9V2MuZXh0ZW5kKHtrZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPXZkW2Eua2V5XXx8YS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PWIpcmV0dXJuIGJ9cmV0dXJuXCJrZXlwcmVzc1wiPT09YS50eXBlPyhhPXVkKGEpLDEzPT09YT9cIkVudGVyXCI6U3RyaW5nLmZyb21DaGFyQ29kZShhKSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT93ZFthLmtleUNvZGVdfHxcIlVuaWRlbnRpZmllZFwiOlwiXCJ9LGxvY2F0aW9uOm51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLHJlcGVhdDpudWxsLGxvY2FsZTpudWxsLGdldE1vZGlmaWVyU3RhdGU6WmMsY2hhckNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09XG5hLnR5cGU/dWQoYSk6MH0sa2V5Q29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/dWQoYSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9hLmtleUNvZGU6MH19KSx5ZD1kZC5leHRlbmQoe2RhdGFUcmFuc2ZlcjpudWxsfSksemQ9V2MuZXh0ZW5kKHt0b3VjaGVzOm51bGwsdGFyZ2V0VG91Y2hlczpudWxsLGNoYW5nZWRUb3VjaGVzOm51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGdldE1vZGlmaWVyU3RhdGU6WmN9KSxBZD15LmV4dGVuZCh7cHJvcGVydHlOYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSxCZD1kZC5leHRlbmQoe2RlbHRhWDpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWFwiaW4gYT9hLmRlbHRhWDpcIndoZWVsRGVsdGFYXCJpblxuYT8tYS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVlcImluIGE/YS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gYT8tYS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGE/LWEud2hlZWxEZWx0YTowfSxkZWx0YVo6bnVsbCxkZWx0YU1vZGU6bnVsbH0pLENkPVtbXCJibHVyXCIsXCJibHVyXCIsMF0sW1wiY2FuY2VsXCIsXCJjYW5jZWxcIiwwXSxbXCJjbGlja1wiLFwiY2xpY2tcIiwwXSxbXCJjbG9zZVwiLFwiY2xvc2VcIiwwXSxbXCJjb250ZXh0bWVudVwiLFwiY29udGV4dE1lbnVcIiwwXSxbXCJjb3B5XCIsXCJjb3B5XCIsMF0sW1wiY3V0XCIsXCJjdXRcIiwwXSxbXCJhdXhjbGlja1wiLFwiYXV4Q2xpY2tcIiwwXSxbXCJkYmxjbGlja1wiLFwiZG91YmxlQ2xpY2tcIiwwXSxbXCJkcmFnZW5kXCIsXCJkcmFnRW5kXCIsMF0sW1wiZHJhZ3N0YXJ0XCIsXCJkcmFnU3RhcnRcIiwwXSxbXCJkcm9wXCIsXCJkcm9wXCIsMF0sW1wiZm9jdXNcIixcImZvY3VzXCIsMF0sW1wiaW5wdXRcIixcImlucHV0XCIsMF0sW1wiaW52YWxpZFwiLFwiaW52YWxpZFwiLDBdLFxuW1wia2V5ZG93blwiLFwia2V5RG93blwiLDBdLFtcImtleXByZXNzXCIsXCJrZXlQcmVzc1wiLDBdLFtcImtleXVwXCIsXCJrZXlVcFwiLDBdLFtcIm1vdXNlZG93blwiLFwibW91c2VEb3duXCIsMF0sW1wibW91c2V1cFwiLFwibW91c2VVcFwiLDBdLFtcInBhc3RlXCIsXCJwYXN0ZVwiLDBdLFtcInBhdXNlXCIsXCJwYXVzZVwiLDBdLFtcInBsYXlcIixcInBsYXlcIiwwXSxbXCJwb2ludGVyY2FuY2VsXCIsXCJwb2ludGVyQ2FuY2VsXCIsMF0sW1wicG9pbnRlcmRvd25cIixcInBvaW50ZXJEb3duXCIsMF0sW1wicG9pbnRlcnVwXCIsXCJwb2ludGVyVXBcIiwwXSxbXCJyYXRlY2hhbmdlXCIsXCJyYXRlQ2hhbmdlXCIsMF0sW1wicmVzZXRcIixcInJlc2V0XCIsMF0sW1wic2Vla2VkXCIsXCJzZWVrZWRcIiwwXSxbXCJzdWJtaXRcIixcInN1Ym1pdFwiLDBdLFtcInRvdWNoY2FuY2VsXCIsXCJ0b3VjaENhbmNlbFwiLDBdLFtcInRvdWNoZW5kXCIsXCJ0b3VjaEVuZFwiLDBdLFtcInRvdWNoc3RhcnRcIixcInRvdWNoU3RhcnRcIiwwXSxbXCJ2b2x1bWVjaGFuZ2VcIixcInZvbHVtZUNoYW5nZVwiLDBdLFtcImRyYWdcIixcImRyYWdcIixcbjFdLFtcImRyYWdlbnRlclwiLFwiZHJhZ0VudGVyXCIsMV0sW1wiZHJhZ2V4aXRcIixcImRyYWdFeGl0XCIsMV0sW1wiZHJhZ2xlYXZlXCIsXCJkcmFnTGVhdmVcIiwxXSxbXCJkcmFnb3ZlclwiLFwiZHJhZ092ZXJcIiwxXSxbXCJtb3VzZW1vdmVcIixcIm1vdXNlTW92ZVwiLDFdLFtcIm1vdXNlb3V0XCIsXCJtb3VzZU91dFwiLDFdLFtcIm1vdXNlb3ZlclwiLFwibW91c2VPdmVyXCIsMV0sW1wicG9pbnRlcm1vdmVcIixcInBvaW50ZXJNb3ZlXCIsMV0sW1wicG9pbnRlcm91dFwiLFwicG9pbnRlck91dFwiLDFdLFtcInBvaW50ZXJvdmVyXCIsXCJwb2ludGVyT3ZlclwiLDFdLFtcInNjcm9sbFwiLFwic2Nyb2xsXCIsMV0sW1widG9nZ2xlXCIsXCJ0b2dnbGVcIiwxXSxbXCJ0b3VjaG1vdmVcIixcInRvdWNoTW92ZVwiLDFdLFtcIndoZWVsXCIsXCJ3aGVlbFwiLDFdLFtcImFib3J0XCIsXCJhYm9ydFwiLDJdLFtYYSxcImFuaW1hdGlvbkVuZFwiLDJdLFtZYSxcImFuaW1hdGlvbkl0ZXJhdGlvblwiLDJdLFtaYSxcImFuaW1hdGlvblN0YXJ0XCIsMl0sW1wiY2FucGxheVwiLFwiY2FuUGxheVwiLDJdLFtcImNhbnBsYXl0aHJvdWdoXCIsXG5cImNhblBsYXlUaHJvdWdoXCIsMl0sW1wiZHVyYXRpb25jaGFuZ2VcIixcImR1cmF0aW9uQ2hhbmdlXCIsMl0sW1wiZW1wdGllZFwiLFwiZW1wdGllZFwiLDJdLFtcImVuY3J5cHRlZFwiLFwiZW5jcnlwdGVkXCIsMl0sW1wiZW5kZWRcIixcImVuZGVkXCIsMl0sW1wiZXJyb3JcIixcImVycm9yXCIsMl0sW1wiZ290cG9pbnRlcmNhcHR1cmVcIixcImdvdFBvaW50ZXJDYXB0dXJlXCIsMl0sW1wibG9hZFwiLFwibG9hZFwiLDJdLFtcImxvYWRlZGRhdGFcIixcImxvYWRlZERhdGFcIiwyXSxbXCJsb2FkZWRtZXRhZGF0YVwiLFwibG9hZGVkTWV0YWRhdGFcIiwyXSxbXCJsb2Fkc3RhcnRcIixcImxvYWRTdGFydFwiLDJdLFtcImxvc3Rwb2ludGVyY2FwdHVyZVwiLFwibG9zdFBvaW50ZXJDYXB0dXJlXCIsMl0sW1wicGxheWluZ1wiLFwicGxheWluZ1wiLDJdLFtcInByb2dyZXNzXCIsXCJwcm9ncmVzc1wiLDJdLFtcInNlZWtpbmdcIixcInNlZWtpbmdcIiwyXSxbXCJzdGFsbGVkXCIsXCJzdGFsbGVkXCIsMl0sW1wic3VzcGVuZFwiLFwic3VzcGVuZFwiLDJdLFtcInRpbWV1cGRhdGVcIixcInRpbWVVcGRhdGVcIixcbjJdLFthYixcInRyYW5zaXRpb25FbmRcIiwyXSxbXCJ3YWl0aW5nXCIsXCJ3YWl0aW5nXCIsMl1dLERkPXt9LEVkPXt9LEZkPTA7Zm9yKDtGZDxDZC5sZW5ndGg7RmQrKyl7dmFyIEdkPUNkW0ZkXSxIZD1HZFswXSxJZD1HZFsxXSxKZD1HZFsyXSxLZD1cIm9uXCIrKElkWzBdLnRvVXBwZXJDYXNlKCkrSWQuc2xpY2UoMSkpLExkPXtwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpLZCxjYXB0dXJlZDpLZCtcIkNhcHR1cmVcIn0sZGVwZW5kZW5jaWVzOltIZF0sZXZlbnRQcmlvcml0eTpKZH07RGRbSWRdPUxkO0VkW0hkXT1MZH1cbnZhciBNZD17ZXZlbnRUeXBlczpEZCxnZXRFdmVudFByaW9yaXR5OmZ1bmN0aW9uKGEpe2E9RWRbYV07cmV0dXJuIHZvaWQgMCE9PWE/YS5ldmVudFByaW9yaXR5OjJ9LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9RWRbYV07aWYoIWUpcmV0dXJuIG51bGw7c3dpdGNoKGEpe2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDA9PT11ZChjKSlyZXR1cm4gbnVsbDtjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOmE9eGQ7YnJlYWs7Y2FzZSBcImJsdXJcIjpjYXNlIFwiZm9jdXNcIjphPXRkO2JyZWFrO2Nhc2UgXCJjbGlja1wiOmlmKDI9PT1jLmJ1dHRvbilyZXR1cm4gbnVsbDtjYXNlIFwiYXV4Y2xpY2tcIjpjYXNlIFwiZGJsY2xpY2tcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcIm1vdXNlbW92ZVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcIm1vdXNlb3V0XCI6Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJjb250ZXh0bWVudVwiOmE9ZGQ7YnJlYWs7Y2FzZSBcImRyYWdcIjpjYXNlIFwiZHJhZ2VuZFwiOmNhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2V4aXRcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6Y2FzZSBcImRyYWdvdmVyXCI6Y2FzZSBcImRyYWdzdGFydFwiOmNhc2UgXCJkcm9wXCI6YT1cbnlkO2JyZWFrO2Nhc2UgXCJ0b3VjaGNhbmNlbFwiOmNhc2UgXCJ0b3VjaGVuZFwiOmNhc2UgXCJ0b3VjaG1vdmVcIjpjYXNlIFwidG91Y2hzdGFydFwiOmE9emQ7YnJlYWs7Y2FzZSBYYTpjYXNlIFlhOmNhc2UgWmE6YT1yZDticmVhaztjYXNlIGFiOmE9QWQ7YnJlYWs7Y2FzZSBcInNjcm9sbFwiOmE9V2M7YnJlYWs7Y2FzZSBcIndoZWVsXCI6YT1CZDticmVhaztjYXNlIFwiY29weVwiOmNhc2UgXCJjdXRcIjpjYXNlIFwicGFzdGVcIjphPXNkO2JyZWFrO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwicG9pbnRlcmNhbmNlbFwiOmNhc2UgXCJwb2ludGVyZG93blwiOmNhc2UgXCJwb2ludGVybW92ZVwiOmNhc2UgXCJwb2ludGVyb3V0XCI6Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInBvaW50ZXJ1cFwiOmE9ZWQ7YnJlYWs7ZGVmYXVsdDphPXl9Yj1hLmdldFBvb2xlZChlLGIsYyxkKTtRYShiKTtyZXR1cm4gYn19LE5kPU1kLmdldEV2ZW50UHJpb3JpdHksT2Q9W107XG5mdW5jdGlvbiBQZChhKXt2YXIgYj1hLnRhcmdldEluc3QsYz1iO2Rve2lmKCFjKXthLmFuY2VzdG9ycy5wdXNoKGMpO2JyZWFrfXZhciBkO2ZvcihkPWM7ZC5yZXR1cm47KWQ9ZC5yZXR1cm47ZD0zIT09ZC50YWc/bnVsbDpkLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2lmKCFkKWJyZWFrO2EuYW5jZXN0b3JzLnB1c2goYyk7Yz1IYShkKX13aGlsZShjKTtmb3IoYz0wO2M8YS5hbmNlc3RvcnMubGVuZ3RoO2MrKyl7Yj1hLmFuY2VzdG9yc1tjXTt2YXIgZT1SYihhLm5hdGl2ZUV2ZW50KTtkPWEudG9wTGV2ZWxUeXBlO2Zvcih2YXIgZj1hLm5hdGl2ZUV2ZW50LGg9bnVsbCxnPTA7ZzxlYS5sZW5ndGg7ZysrKXt2YXIgaz1lYVtnXTtrJiYoaz1rLmV4dHJhY3RFdmVudHMoZCxiLGYsZSkpJiYoaD14YShoLGspKX1CYShoKX19dmFyIFFkPSEwO2Z1bmN0aW9uIEcoYSxiKXtSZChiLGEsITEpfVxuZnVuY3Rpb24gUmQoYSxiLGMpe3N3aXRjaChOZChiKSl7Y2FzZSAwOnZhciBkPVNkLmJpbmQobnVsbCxiLDEpO2JyZWFrO2Nhc2UgMTpkPVRkLmJpbmQobnVsbCxiLDEpO2JyZWFrO2RlZmF1bHQ6ZD1VZC5iaW5kKG51bGwsYiwxKX1jP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGQsITApOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGQsITEpfWZ1bmN0aW9uIFNkKGEsYixjKXtOYnx8TGIoKTt2YXIgZD1VZCxlPU5iO05iPSEwO3RyeXtLYihkLGEsYixjKX1maW5hbGx5eyhOYj1lKXx8T2IoKX19ZnVuY3Rpb24gVGQoYSxiLGMpe1VkKGEsYixjKX1cbmZ1bmN0aW9uIFVkKGEsYixjKXtpZihRZCl7Yj1SYihjKTtiPUhhKGIpO251bGw9PT1ifHxcIm51bWJlclwiIT09dHlwZW9mIGIudGFnfHwyPT09bGQoYil8fChiPW51bGwpO2lmKE9kLmxlbmd0aCl7dmFyIGQ9T2QucG9wKCk7ZC50b3BMZXZlbFR5cGU9YTtkLm5hdGl2ZUV2ZW50PWM7ZC50YXJnZXRJbnN0PWI7YT1kfWVsc2UgYT17dG9wTGV2ZWxUeXBlOmEsbmF0aXZlRXZlbnQ6Yyx0YXJnZXRJbnN0OmIsYW5jZXN0b3JzOltdfTt0cnl7aWYoYz1hLE5iKVBkKGMsdm9pZCAwKTtlbHNle05iPSEwO3RyeXtNYihQZCxjLHZvaWQgMCl9ZmluYWxseXtOYj0hMSxPYigpfX19ZmluYWxseXthLnRvcExldmVsVHlwZT1udWxsLGEubmF0aXZlRXZlbnQ9bnVsbCxhLnRhcmdldEluc3Q9bnVsbCxhLmFuY2VzdG9ycy5sZW5ndGg9MCwxMD5PZC5sZW5ndGgmJk9kLnB1c2goYSl9fX12YXIgVmQ9bmV3IChcImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCk7XG5mdW5jdGlvbiBXZChhKXt2YXIgYj1WZC5nZXQoYSk7dm9pZCAwPT09YiYmKGI9bmV3IFNldCxWZC5zZXQoYSxiKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gWGQoYSl7YT1hfHwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGEuYWN0aXZlRWxlbWVudHx8YS5ib2R5fWNhdGNoKGIpe3JldHVybiBhLmJvZHl9fWZ1bmN0aW9uIFlkKGEpe2Zvcig7YSYmYS5maXJzdENoaWxkOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX1cbmZ1bmN0aW9uIFpkKGEsYil7dmFyIGM9WWQoYSk7YT0wO2Zvcih2YXIgZDtjOyl7aWYoMz09PWMubm9kZVR5cGUpe2Q9YStjLnRleHRDb250ZW50Lmxlbmd0aDtpZihhPD1iJiZkPj1iKXJldHVybntub2RlOmMsb2Zmc2V0OmItYX07YT1kfWE6e2Zvcig7Yzspe2lmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGluZzticmVhayBhfWM9Yy5wYXJlbnROb2RlfWM9dm9pZCAwfWM9WWQoYyl9fWZ1bmN0aW9uICRkKGEsYil7cmV0dXJuIGEmJmI/YT09PWI/ITA6YSYmMz09PWEubm9kZVR5cGU/ITE6YiYmMz09PWIubm9kZVR5cGU/JGQoYSxiLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIGE/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPyEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpOiExOiExfVxuZnVuY3Rpb24gYWUoKXtmb3IodmFyIGE9d2luZG93LGI9WGQoKTtiIGluc3RhbmNlb2YgYS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYz1cInN0cmluZ1wiPT09dHlwZW9mIGIuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGQpe2M9ITF9aWYoYylhPWIuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2I9WGQoYS5kb2N1bWVudCl9cmV0dXJuIGJ9ZnVuY3Rpb24gYmUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiJiYoXCJpbnB1dFwiPT09YiYmKFwidGV4dFwiPT09YS50eXBlfHxcInNlYXJjaFwiPT09YS50eXBlfHxcInRlbFwiPT09YS50eXBlfHxcInVybFwiPT09YS50eXBlfHxcInBhc3N3b3JkXCI9PT1hLnR5cGUpfHxcInRleHRhcmVhXCI9PT1ifHxcInRydWVcIj09PWEuY29udGVudEVkaXRhYmxlKX1cbnZhciBjZT1SYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLGRlPXtzZWxlY3Q6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOlwib25TZWxlY3RcIixjYXB0dXJlZDpcIm9uU2VsZWN0Q2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6XCJibHVyIGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXMga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIil9fSxlZT1udWxsLGZlPW51bGwsZ2U9bnVsbCxoZT0hMTtcbmZ1bmN0aW9uIGllKGEsYil7dmFyIGM9Yi53aW5kb3c9PT1iP2IuZG9jdW1lbnQ6OT09PWIubm9kZVR5cGU/YjpiLm93bmVyRG9jdW1lbnQ7aWYoaGV8fG51bGw9PWVlfHxlZSE9PVhkKGMpKXJldHVybiBudWxsO2M9ZWU7XCJzZWxlY3Rpb25TdGFydFwiaW4gYyYmYmUoYyk/Yz17c3RhcnQ6Yy5zZWxlY3Rpb25TdGFydCxlbmQ6Yy5zZWxlY3Rpb25FbmR9OihjPShjLm93bmVyRG9jdW1lbnQmJmMub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxjPXthbmNob3JOb2RlOmMuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6Yy5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmMuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmMuZm9jdXNPZmZzZXR9KTtyZXR1cm4gZ2UmJmpkKGdlLGMpP251bGw6KGdlPWMsYT15LmdldFBvb2xlZChkZS5zZWxlY3QsZmUsYSxiKSxhLnR5cGU9XCJzZWxlY3RcIixhLnRhcmdldD1lZSxRYShhKSxhKX1cbnZhciBqZT17ZXZlbnRUeXBlczpkZSxleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWQud2luZG93PT09ZD9kLmRvY3VtZW50Ojk9PT1kLm5vZGVUeXBlP2Q6ZC5vd25lckRvY3VtZW50LGY7aWYoIShmPSFlKSl7YTp7ZT1XZChlKTtmPWphLm9uU2VsZWN0O2Zvcih2YXIgaD0wO2g8Zi5sZW5ndGg7aCsrKWlmKCFlLmhhcyhmW2hdKSl7ZT0hMTticmVhayBhfWU9ITB9Zj0hZX1pZihmKXJldHVybiBudWxsO2U9Yj9KYShiKTp3aW5kb3c7c3dpdGNoKGEpe2Nhc2UgXCJmb2N1c1wiOmlmKFFiKGUpfHxcInRydWVcIj09PWUuY29udGVudEVkaXRhYmxlKWVlPWUsZmU9YixnZT1udWxsO2JyZWFrO2Nhc2UgXCJibHVyXCI6Z2U9ZmU9ZWU9bnVsbDticmVhaztjYXNlIFwibW91c2Vkb3duXCI6aGU9ITA7YnJlYWs7Y2FzZSBcImNvbnRleHRtZW51XCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwiZHJhZ2VuZFwiOnJldHVybiBoZT0hMSxpZShjLGQpO2Nhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihjZSlicmVhaztcbmNhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6cmV0dXJuIGllKGMsZCl9cmV0dXJuIG51bGx9fTtDYS5pbmplY3RFdmVudFBsdWdpbk9yZGVyKFwiUmVzcG9uZGVyRXZlbnRQbHVnaW4gU2ltcGxlRXZlbnRQbHVnaW4gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIENoYW5nZUV2ZW50UGx1Z2luIFNlbGVjdEV2ZW50UGx1Z2luIEJlZm9yZUlucHV0RXZlbnRQbHVnaW5cIi5zcGxpdChcIiBcIikpO3NhPUthO3RhPUlhO3ZhPUphO0NhLmluamVjdEV2ZW50UGx1Z2luc0J5TmFtZSh7U2ltcGxlRXZlbnRQbHVnaW46TWQsRW50ZXJMZWF2ZUV2ZW50UGx1Z2luOmdkLENoYW5nZUV2ZW50UGx1Z2luOlZjLFNlbGVjdEV2ZW50UGx1Z2luOmplLEJlZm9yZUlucHV0RXZlbnRQbHVnaW46Q2J9KTtmdW5jdGlvbiBrZShhKXt2YXIgYj1cIlwiO2FhLkNoaWxkcmVuLmZvckVhY2goYSxmdW5jdGlvbihhKXtudWxsIT1hJiYoYis9YSl9KTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGxlKGEsYil7YT1tKHtjaGlsZHJlbjp2b2lkIDB9LGIpO2lmKGI9a2UoYi5jaGlsZHJlbikpYS5jaGlsZHJlbj1iO3JldHVybiBhfWZ1bmN0aW9uIG1lKGEsYixjLGQpe2E9YS5vcHRpb25zO2lmKGIpe2I9e307Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspYltcIiRcIitjW2VdXT0hMDtmb3IoYz0wO2M8YS5sZW5ndGg7YysrKWU9Yi5oYXNPd25Qcm9wZXJ0eShcIiRcIithW2NdLnZhbHVlKSxhW2NdLnNlbGVjdGVkIT09ZSYmKGFbY10uc2VsZWN0ZWQ9ZSksZSYmZCYmKGFbY10uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2M9XCJcIitBYyhjKTtiPW51bGw7Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKyl7aWYoYVtlXS52YWx1ZT09PWMpe2FbZV0uc2VsZWN0ZWQ9ITA7ZCYmKGFbZV0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59bnVsbCE9PWJ8fGFbZV0uZGlzYWJsZWR8fChiPWFbZV0pfW51bGwhPT1iJiYoYi5zZWxlY3RlZD0hMCl9fVxuZnVuY3Rpb24gbmUoYSxiKXtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXRocm93IHQoRXJyb3IoOTEpKTtyZXR1cm4gbSh7fSxiLHt2YWx1ZTp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCxjaGlsZHJlbjpcIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWV9KX1mdW5jdGlvbiBvZShhLGIpe3ZhciBjPWIudmFsdWU7aWYobnVsbD09Yyl7Yz1iLmRlZmF1bHRWYWx1ZTtiPWIuY2hpbGRyZW47aWYobnVsbCE9Yil7aWYobnVsbCE9Yyl0aHJvdyB0KEVycm9yKDkyKSk7aWYoQXJyYXkuaXNBcnJheShiKSl7aWYoISgxPj1iLmxlbmd0aCkpdGhyb3cgdChFcnJvcig5MykpO2I9YlswXX1jPWJ9bnVsbD09YyYmKGM9XCJcIil9YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsVmFsdWU6QWMoYyl9fVxuZnVuY3Rpb24gcGUoYSxiKXt2YXIgYz1BYyhiLnZhbHVlKSxkPUFjKGIuZGVmYXVsdFZhbHVlKTtudWxsIT1jJiYoYz1cIlwiK2MsYyE9PWEudmFsdWUmJihhLnZhbHVlPWMpLG51bGw9PWIuZGVmYXVsdFZhbHVlJiZhLmRlZmF1bHRWYWx1ZSE9PWMmJihhLmRlZmF1bHRWYWx1ZT1jKSk7bnVsbCE9ZCYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrZCl9ZnVuY3Rpb24gcWUoYSl7dmFyIGI9YS50ZXh0Q29udGVudDtiPT09YS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmKGEudmFsdWU9Yil9dmFyIHJlPXtodG1sOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiLG1hdGhtbDpcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIixzdmc6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifTtcbmZ1bmN0aW9uIHNlKGEpe3N3aXRjaChhKXtjYXNlIFwic3ZnXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO2Nhc2UgXCJtYXRoXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI7ZGVmYXVsdDpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIn19ZnVuY3Rpb24gdGUoYSxiKXtyZXR1cm4gbnVsbD09YXx8XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hP3NlKGIpOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09PWEmJlwiZm9yZWlnbk9iamVjdFwiPT09Yj9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjphfVxudmFyIHVlPXZvaWQgMCx2ZT1mdW5jdGlvbihhKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihiLGMsZCxlKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBhKGIsYyxkLGUpfSl9OmF9KGZ1bmN0aW9uKGEsYil7aWYoYS5uYW1lc3BhY2VVUkkhPT1yZS5zdmd8fFwiaW5uZXJIVE1MXCJpbiBhKWEuaW5uZXJIVE1MPWI7ZWxzZXt1ZT11ZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt1ZS5pbm5lckhUTUw9XCI8c3ZnPlwiK2IrXCI8L3N2Zz5cIjtmb3IoYj11ZS5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7Yi5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGIuZmlyc3RDaGlsZCl9fSk7XG5mdW5jdGlvbiB3ZShhLGIpe2lmKGIpe3ZhciBjPWEuZmlyc3RDaGlsZDtpZihjJiZjPT09YS5sYXN0Q2hpbGQmJjM9PT1jLm5vZGVUeXBlKXtjLm5vZGVWYWx1ZT1iO3JldHVybn19YS50ZXh0Q29udGVudD1ifVxudmFyIHhlPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxcbmZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHllPVtcIldlYmtpdFwiLFwibXNcIixcIk1velwiLFwiT1wiXTtPYmplY3Qua2V5cyh4ZSkuZm9yRWFjaChmdW5jdGlvbihhKXt5ZS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2I9YithLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEpO3hlW2JdPXhlW2FdfSl9KTtmdW5jdGlvbiB6ZShhLGIsYyl7cmV0dXJuIG51bGw9PWJ8fFwiYm9vbGVhblwiPT09dHlwZW9mIGJ8fFwiXCI9PT1iP1wiXCI6Y3x8XCJudW1iZXJcIiE9PXR5cGVvZiBifHwwPT09Ynx8eGUuaGFzT3duUHJvcGVydHkoYSkmJnhlW2FdPyhcIlwiK2IpLnRyaW0oKTpiK1wicHhcIn1cbmZ1bmN0aW9uIEFlKGEsYil7YT1hLnN0eWxlO2Zvcih2YXIgYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPTA9PT1jLmluZGV4T2YoXCItLVwiKSxlPXplKGMsYltjXSxkKTtcImZsb2F0XCI9PT1jJiYoYz1cImNzc0Zsb2F0XCIpO2Q/YS5zZXRQcm9wZXJ0eShjLGUpOmFbY109ZX19dmFyIENlPW0oe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7XG5mdW5jdGlvbiBEZShhLGIpe2lmKGIpe2lmKENlW2FdJiYobnVsbCE9Yi5jaGlsZHJlbnx8bnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgdChFcnJvcigxMzcpLGEsXCJcIik7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9Yi5jaGlsZHJlbil0aHJvdyB0KEVycm9yKDYwKSk7aWYoIShcIm9iamVjdFwiPT09dHlwZW9mIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJlwiX19odG1sXCJpbiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyB0KEVycm9yKDYxKSk7fWlmKG51bGwhPWIuc3R5bGUmJlwib2JqZWN0XCIhPT10eXBlb2YgYi5zdHlsZSl0aHJvdyB0KEVycm9yKDYyKSxcIlwiKTt9fVxuZnVuY3Rpb24gRWUoYSxiKXtpZigtMT09PWEuaW5kZXhPZihcIi1cIikpcmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBiLmlzO3N3aXRjaChhKXtjYXNlIFwiYW5ub3RhdGlvbi14bWxcIjpjYXNlIFwiY29sb3ItcHJvZmlsZVwiOmNhc2UgXCJmb250LWZhY2VcIjpjYXNlIFwiZm9udC1mYWNlLXNyY1wiOmNhc2UgXCJmb250LWZhY2UtdXJpXCI6Y2FzZSBcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlIFwiZm9udC1mYWNlLW5hbWVcIjpjYXNlIFwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fVxuZnVuY3Rpb24gRmUoYSxiKXthPTk9PT1hLm5vZGVUeXBlfHwxMT09PWEubm9kZVR5cGU/YTphLm93bmVyRG9jdW1lbnQ7dmFyIGM9V2QoYSk7Yj1qYVtiXTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZighYy5oYXMoZSkpe3N3aXRjaChlKXtjYXNlIFwic2Nyb2xsXCI6UmQoYSxcInNjcm9sbFwiLCEwKTticmVhaztjYXNlIFwiZm9jdXNcIjpjYXNlIFwiYmx1clwiOlJkKGEsXCJmb2N1c1wiLCEwKTtSZChhLFwiYmx1clwiLCEwKTtjLmFkZChcImJsdXJcIik7Yy5hZGQoXCJmb2N1c1wiKTticmVhaztjYXNlIFwiY2FuY2VsXCI6Y2FzZSBcImNsb3NlXCI6U2IoZSkmJlJkKGEsZSwhMCk7YnJlYWs7Y2FzZSBcImludmFsaWRcIjpjYXNlIFwic3VibWl0XCI6Y2FzZSBcInJlc2V0XCI6YnJlYWs7ZGVmYXVsdDotMT09PWJiLmluZGV4T2YoZSkmJkcoZSxhKX1jLmFkZChlKX19fWZ1bmN0aW9uIEdlKCl7fXZhciBIZT1udWxsLEllPW51bGw7XG5mdW5jdGlvbiBKZShhLGIpe3N3aXRjaChhKXtjYXNlIFwiYnV0dG9uXCI6Y2FzZSBcImlucHV0XCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJ0ZXh0YXJlYVwiOnJldHVybiEhYi5hdXRvRm9jdXN9cmV0dXJuITF9ZnVuY3Rpb24gS2UoYSxiKXtyZXR1cm5cInRleHRhcmVhXCI9PT1hfHxcIm9wdGlvblwiPT09YXx8XCJub3NjcmlwdFwiPT09YXx8XCJzdHJpbmdcIj09PXR5cGVvZiBiLmNoaWxkcmVufHxcIm51bWJlclwiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwib2JqZWN0XCI9PT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfXZhciBMZT1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxNZT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDp2b2lkIDA7XG5mdW5jdGlvbiBOZShhKXtmb3IoO251bGwhPWE7YT1hLm5leHRTaWJsaW5nKXt2YXIgYj1hLm5vZGVUeXBlO2lmKDE9PT1ifHwzPT09YilicmVha31yZXR1cm4gYX1uZXcgU2V0O3ZhciBPZT1bXSxQZT0tMTtmdW5jdGlvbiBIKGEpezA+UGV8fChhLmN1cnJlbnQ9T2VbUGVdLE9lW1BlXT1udWxsLFBlLS0pfWZ1bmN0aW9uIEooYSxiKXtQZSsrO09lW1BlXT1hLmN1cnJlbnQ7YS5jdXJyZW50PWJ9dmFyIFFlPXt9LEw9e2N1cnJlbnQ6UWV9LE09e2N1cnJlbnQ6ITF9LFJlPVFlO1xuZnVuY3Rpb24gU2UoYSxiKXt2YXIgYz1hLnR5cGUuY29udGV4dFR5cGVzO2lmKCFjKXJldHVybiBRZTt2YXIgZD1hLnN0YXRlTm9kZTtpZihkJiZkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9PT1iKXJldHVybiBkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O3ZhciBlPXt9LGY7Zm9yKGYgaW4gYyllW2ZdPWJbZl07ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWIsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1lKTtyZXR1cm4gZX1mdW5jdGlvbiBOKGEpe2E9YS5jaGlsZENvbnRleHRUeXBlcztyZXR1cm4gbnVsbCE9PWEmJnZvaWQgMCE9PWF9ZnVuY3Rpb24gVGUoYSl7SChNLGEpO0goTCxhKX1mdW5jdGlvbiBVZShhKXtIKE0sYSk7SChMLGEpfVxuZnVuY3Rpb24gVmUoYSxiLGMpe2lmKEwuY3VycmVudCE9PVFlKXRocm93IHQoRXJyb3IoMTY4KSk7SihMLGIsYSk7SihNLGMsYSl9ZnVuY3Rpb24gV2UoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2E9Yi5jaGlsZENvbnRleHRUeXBlcztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZC5nZXRDaGlsZENvbnRleHQpcmV0dXJuIGM7ZD1kLmdldENoaWxkQ29udGV4dCgpO2Zvcih2YXIgZSBpbiBkKWlmKCEoZSBpbiBhKSl0aHJvdyB0KEVycm9yKDEwOCksb2MoYil8fFwiVW5rbm93blwiLGUpO3JldHVybiBtKHt9LGMsZCl9ZnVuY3Rpb24gWGUoYSl7dmFyIGI9YS5zdGF0ZU5vZGU7Yj1iJiZiLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxRZTtSZT1MLmN1cnJlbnQ7SihMLGIsYSk7SihNLE0uY3VycmVudCxhKTtyZXR1cm4hMH1cbmZ1bmN0aW9uIFllKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtpZighZCl0aHJvdyB0KEVycm9yKDE2OSkpO2M/KGI9V2UoYSxiLFJlKSxkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWIsSChNLGEpLEgoTCxhKSxKKEwsYixhKSk6SChNLGEpO0ooTSxjLGEpfVxudmFyIFplPXEudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5LCRlPXEudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxhZj1xLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLGJmPXEudW5zdGFibGVfc2hvdWxkWWllbGQsY2Y9cS51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsZGY9cS51bnN0YWJsZV9ub3csZWY9cS51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxmZj1xLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGhmPXEudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksamY9cS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxrZj1xLnVuc3RhYmxlX0xvd1ByaW9yaXR5LGxmPXEudW5zdGFibGVfSWRsZVByaW9yaXR5LG1mPXt9LG5mPXZvaWQgMCE9PWNmP2NmOmZ1bmN0aW9uKCl7fSxvZj1udWxsLHBmPW51bGwscWY9ITEscmY9ZGYoKSxzZj0xRTQ+cmY/ZGY6ZnVuY3Rpb24oKXtyZXR1cm4gZGYoKS1yZn07XG5mdW5jdGlvbiB0Zigpe3N3aXRjaChlZigpKXtjYXNlIGZmOnJldHVybiA5OTtjYXNlIGhmOnJldHVybiA5ODtjYXNlIGpmOnJldHVybiA5NztjYXNlIGtmOnJldHVybiA5NjtjYXNlIGxmOnJldHVybiA5NTtkZWZhdWx0OnRocm93IHQoRXJyb3IoMzMyKSk7fX1mdW5jdGlvbiB1ZihhKXtzd2l0Y2goYSl7Y2FzZSA5OTpyZXR1cm4gZmY7Y2FzZSA5ODpyZXR1cm4gaGY7Y2FzZSA5NzpyZXR1cm4gamY7Y2FzZSA5NjpyZXR1cm4ga2Y7Y2FzZSA5NTpyZXR1cm4gbGY7ZGVmYXVsdDp0aHJvdyB0KEVycm9yKDMzMikpO319ZnVuY3Rpb24gdmYoYSxiKXthPXVmKGEpO3JldHVybiBaZShhLGIpfWZ1bmN0aW9uIHdmKGEsYixjKXthPXVmKGEpO3JldHVybiAkZShhLGIsYyl9ZnVuY3Rpb24geGYoYSl7bnVsbD09PW9mPyhvZj1bYV0scGY9JGUoZmYseWYpKTpvZi5wdXNoKGEpO3JldHVybiBtZn1mdW5jdGlvbiBPKCl7bnVsbCE9PXBmJiZhZihwZik7eWYoKX1cbmZ1bmN0aW9uIHlmKCl7aWYoIXFmJiZudWxsIT09b2Ype3FmPSEwO3ZhciBhPTA7dHJ5e3ZhciBiPW9mO3ZmKDk5LGZ1bmN0aW9uKCl7Zm9yKDthPGIubGVuZ3RoO2ErKyl7dmFyIGM9YlthXTtkbyBjPWMoITApO3doaWxlKG51bGwhPT1jKX19KTtvZj1udWxsfWNhdGNoKGMpe3Rocm93IG51bGwhPT1vZiYmKG9mPW9mLnNsaWNlKGErMSkpLCRlKGZmLE8pLGM7fWZpbmFsbHl7cWY9ITF9fX1mdW5jdGlvbiB6ZihhLGIpe2lmKDEwNzM3NDE4MjM9PT1iKXJldHVybiA5OTtpZigxPT09YilyZXR1cm4gOTU7YT0xMCooMTA3Mzc0MTgyMS1iKS0xMCooMTA3Mzc0MTgyMS1hKTtyZXR1cm4gMD49YT85OToyNTA+PWE/OTg6NTI1MD49YT85Nzo5NX1mdW5jdGlvbiBBZihhLGIpe2lmKGEmJmEuZGVmYXVsdFByb3BzKXtiPW0oe30sYik7YT1hLmRlZmF1bHRQcm9wcztmb3IodmFyIGMgaW4gYSl2b2lkIDA9PT1iW2NdJiYoYltjXT1hW2NdKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIEJmKGEpe3ZhciBiPWEuX3Jlc3VsdDtzd2l0Y2goYS5fc3RhdHVzKXtjYXNlIDE6cmV0dXJuIGI7Y2FzZSAyOnRocm93IGI7Y2FzZSAwOnRocm93IGI7ZGVmYXVsdDphLl9zdGF0dXM9MDtiPWEuX2N0b3I7Yj1iKCk7Yi50aGVuKGZ1bmN0aW9uKGIpezA9PT1hLl9zdGF0dXMmJihiPWIuZGVmYXVsdCxhLl9zdGF0dXM9MSxhLl9yZXN1bHQ9Yil9LGZ1bmN0aW9uKGIpezA9PT1hLl9zdGF0dXMmJihhLl9zdGF0dXM9MixhLl9yZXN1bHQ9Yil9KTtzd2l0Y2goYS5fc3RhdHVzKXtjYXNlIDE6cmV0dXJuIGEuX3Jlc3VsdDtjYXNlIDI6dGhyb3cgYS5fcmVzdWx0O31hLl9yZXN1bHQ9Yjt0aHJvdyBiO319dmFyIENmPXtjdXJyZW50Om51bGx9LERmPW51bGwsRWY9bnVsbCxGZj1udWxsO2Z1bmN0aW9uIEdmKCl7RmY9RWY9RGY9bnVsbH1cbmZ1bmN0aW9uIEhmKGEsYil7dmFyIGM9YS50eXBlLl9jb250ZXh0O0ooQ2YsYy5fY3VycmVudFZhbHVlLGEpO2MuX2N1cnJlbnRWYWx1ZT1ifWZ1bmN0aW9uIElmKGEpe3ZhciBiPUNmLmN1cnJlbnQ7SChDZixhKTthLnR5cGUuX2NvbnRleHQuX2N1cnJlbnRWYWx1ZT1ifWZ1bmN0aW9uIEpmKGEsYil7Zm9yKDtudWxsIT09YTspe3ZhciBjPWEuYWx0ZXJuYXRlO2lmKGEuY2hpbGRFeHBpcmF0aW9uVGltZTxiKWEuY2hpbGRFeHBpcmF0aW9uVGltZT1iLG51bGwhPT1jJiZjLmNoaWxkRXhwaXJhdGlvblRpbWU8YiYmKGMuY2hpbGRFeHBpcmF0aW9uVGltZT1iKTtlbHNlIGlmKG51bGwhPT1jJiZjLmNoaWxkRXhwaXJhdGlvblRpbWU8YiljLmNoaWxkRXhwaXJhdGlvblRpbWU9YjtlbHNlIGJyZWFrO2E9YS5yZXR1cm59fVxuZnVuY3Rpb24gS2YoYSxiKXtEZj1hO0ZmPUVmPW51bGw7YT1hLmRlcGVuZGVuY2llcztudWxsIT09YSYmbnVsbCE9PWEuZmlyc3RDb250ZXh0JiYoYS5leHBpcmF0aW9uVGltZT49YiYmKExmPSEwKSxhLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiBNZihhLGIpe2lmKEZmIT09YSYmITEhPT1iJiYwIT09Yil7aWYoXCJudW1iZXJcIiE9PXR5cGVvZiBifHwxMDczNzQxODIzPT09YilGZj1hLGI9MTA3Mzc0MTgyMztiPXtjb250ZXh0OmEsb2JzZXJ2ZWRCaXRzOmIsbmV4dDpudWxsfTtpZihudWxsPT09RWYpe2lmKG51bGw9PT1EZil0aHJvdyB0KEVycm9yKDMwOCkpO0VmPWI7RGYuZGVwZW5kZW5jaWVzPXtleHBpcmF0aW9uVGltZTowLGZpcnN0Q29udGV4dDpiLHJlc3BvbmRlcnM6bnVsbH19ZWxzZSBFZj1FZi5uZXh0PWJ9cmV0dXJuIGEuX2N1cnJlbnRWYWx1ZX12YXIgTmY9ITE7XG5mdW5jdGlvbiBPZihhKXtyZXR1cm57YmFzZVN0YXRlOmEsZmlyc3RVcGRhdGU6bnVsbCxsYXN0VXBkYXRlOm51bGwsZmlyc3RDYXB0dXJlZFVwZGF0ZTpudWxsLGxhc3RDYXB0dXJlZFVwZGF0ZTpudWxsLGZpcnN0RWZmZWN0Om51bGwsbGFzdEVmZmVjdDpudWxsLGZpcnN0Q2FwdHVyZWRFZmZlY3Q6bnVsbCxsYXN0Q2FwdHVyZWRFZmZlY3Q6bnVsbH19ZnVuY3Rpb24gUGYoYSl7cmV0dXJue2Jhc2VTdGF0ZTphLmJhc2VTdGF0ZSxmaXJzdFVwZGF0ZTphLmZpcnN0VXBkYXRlLGxhc3RVcGRhdGU6YS5sYXN0VXBkYXRlLGZpcnN0Q2FwdHVyZWRVcGRhdGU6bnVsbCxsYXN0Q2FwdHVyZWRVcGRhdGU6bnVsbCxmaXJzdEVmZmVjdDpudWxsLGxhc3RFZmZlY3Q6bnVsbCxmaXJzdENhcHR1cmVkRWZmZWN0Om51bGwsbGFzdENhcHR1cmVkRWZmZWN0Om51bGx9fVxuZnVuY3Rpb24gUWYoYSxiKXtyZXR1cm57ZXhwaXJhdGlvblRpbWU6YSxzdXNwZW5zZUNvbmZpZzpiLHRhZzowLHBheWxvYWQ6bnVsbCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbCxuZXh0RWZmZWN0Om51bGx9fWZ1bmN0aW9uIFJmKGEsYil7bnVsbD09PWEubGFzdFVwZGF0ZT9hLmZpcnN0VXBkYXRlPWEubGFzdFVwZGF0ZT1iOihhLmxhc3RVcGRhdGUubmV4dD1iLGEubGFzdFVwZGF0ZT1iKX1cbmZ1bmN0aW9uIFNmKGEsYil7dmFyIGM9YS5hbHRlcm5hdGU7aWYobnVsbD09PWMpe3ZhciBkPWEudXBkYXRlUXVldWU7dmFyIGU9bnVsbDtudWxsPT09ZCYmKGQ9YS51cGRhdGVRdWV1ZT1PZihhLm1lbW9pemVkU3RhdGUpKX1lbHNlIGQ9YS51cGRhdGVRdWV1ZSxlPWMudXBkYXRlUXVldWUsbnVsbD09PWQ/bnVsbD09PWU/KGQ9YS51cGRhdGVRdWV1ZT1PZihhLm1lbW9pemVkU3RhdGUpLGU9Yy51cGRhdGVRdWV1ZT1PZihjLm1lbW9pemVkU3RhdGUpKTpkPWEudXBkYXRlUXVldWU9UGYoZSk6bnVsbD09PWUmJihlPWMudXBkYXRlUXVldWU9UGYoZCkpO251bGw9PT1lfHxkPT09ZT9SZihkLGIpOm51bGw9PT1kLmxhc3RVcGRhdGV8fG51bGw9PT1lLmxhc3RVcGRhdGU/KFJmKGQsYiksUmYoZSxiKSk6KFJmKGQsYiksZS5sYXN0VXBkYXRlPWIpfVxuZnVuY3Rpb24gVGYoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlO2M9bnVsbD09PWM/YS51cGRhdGVRdWV1ZT1PZihhLm1lbW9pemVkU3RhdGUpOlVmKGEsYyk7bnVsbD09PWMubGFzdENhcHR1cmVkVXBkYXRlP2MuZmlyc3RDYXB0dXJlZFVwZGF0ZT1jLmxhc3RDYXB0dXJlZFVwZGF0ZT1iOihjLmxhc3RDYXB0dXJlZFVwZGF0ZS5uZXh0PWIsYy5sYXN0Q2FwdHVyZWRVcGRhdGU9Yil9ZnVuY3Rpb24gVWYoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmYj09PWMudXBkYXRlUXVldWUmJihiPWEudXBkYXRlUXVldWU9UGYoYikpO3JldHVybiBifVxuZnVuY3Rpb24gVmYoYSxiLGMsZCxlLGYpe3N3aXRjaChjLnRhZyl7Y2FzZSAxOnJldHVybiBhPWMucGF5bG9hZCxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hLmNhbGwoZixkLGUpOmE7Y2FzZSAzOmEuZWZmZWN0VGFnPWEuZWZmZWN0VGFnJi0yMDQ5fDY0O2Nhc2UgMDphPWMucGF5bG9hZDtlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2EuY2FsbChmLGQsZSk6YTtpZihudWxsPT09ZXx8dm9pZCAwPT09ZSlicmVhaztyZXR1cm4gbSh7fSxkLGUpO2Nhc2UgMjpOZj0hMH1yZXR1cm4gZH1cbmZ1bmN0aW9uIFdmKGEsYixjLGQsZSl7TmY9ITE7Yj1VZihhLGIpO2Zvcih2YXIgZj1iLmJhc2VTdGF0ZSxoPW51bGwsZz0wLGs9Yi5maXJzdFVwZGF0ZSxsPWY7bnVsbCE9PWs7KXt2YXIgbj1rLmV4cGlyYXRpb25UaW1lO248ZT8obnVsbD09PWgmJihoPWssZj1sKSxnPG4mJihnPW4pKTooWGYobixrLnN1c3BlbnNlQ29uZmlnKSxsPVZmKGEsYixrLGwsYyxkKSxudWxsIT09ay5jYWxsYmFjayYmKGEuZWZmZWN0VGFnfD0zMixrLm5leHRFZmZlY3Q9bnVsbCxudWxsPT09Yi5sYXN0RWZmZWN0P2IuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWs6KGIubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWssYi5sYXN0RWZmZWN0PWspKSk7az1rLm5leHR9bj1udWxsO2ZvcihrPWIuZmlyc3RDYXB0dXJlZFVwZGF0ZTtudWxsIT09azspe3ZhciB6PWsuZXhwaXJhdGlvblRpbWU7ejxlPyhudWxsPT09biYmKG49ayxudWxsPT09aCYmKGY9bCkpLGc8eiYmKGc9eikpOihsPVZmKGEsYixrLGwsYyxkKSxudWxsIT09XG5rLmNhbGxiYWNrJiYoYS5lZmZlY3RUYWd8PTMyLGsubmV4dEVmZmVjdD1udWxsLG51bGw9PT1iLmxhc3RDYXB0dXJlZEVmZmVjdD9iLmZpcnN0Q2FwdHVyZWRFZmZlY3Q9Yi5sYXN0Q2FwdHVyZWRFZmZlY3Q9azooYi5sYXN0Q2FwdHVyZWRFZmZlY3QubmV4dEVmZmVjdD1rLGIubGFzdENhcHR1cmVkRWZmZWN0PWspKSk7az1rLm5leHR9bnVsbD09PWgmJihiLmxhc3RVcGRhdGU9bnVsbCk7bnVsbD09PW4/Yi5sYXN0Q2FwdHVyZWRVcGRhdGU9bnVsbDphLmVmZmVjdFRhZ3w9MzI7bnVsbD09PWgmJm51bGw9PT1uJiYoZj1sKTtiLmJhc2VTdGF0ZT1mO2IuZmlyc3RVcGRhdGU9aDtiLmZpcnN0Q2FwdHVyZWRVcGRhdGU9bjthLmV4cGlyYXRpb25UaW1lPWc7YS5tZW1vaXplZFN0YXRlPWx9XG5mdW5jdGlvbiBZZihhLGIsYyl7bnVsbCE9PWIuZmlyc3RDYXB0dXJlZFVwZGF0ZSYmKG51bGwhPT1iLmxhc3RVcGRhdGUmJihiLmxhc3RVcGRhdGUubmV4dD1iLmZpcnN0Q2FwdHVyZWRVcGRhdGUsYi5sYXN0VXBkYXRlPWIubGFzdENhcHR1cmVkVXBkYXRlKSxiLmZpcnN0Q2FwdHVyZWRVcGRhdGU9Yi5sYXN0Q2FwdHVyZWRVcGRhdGU9bnVsbCk7WmYoYi5maXJzdEVmZmVjdCxjKTtiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1udWxsO1pmKGIuZmlyc3RDYXB0dXJlZEVmZmVjdCxjKTtiLmZpcnN0Q2FwdHVyZWRFZmZlY3Q9Yi5sYXN0Q2FwdHVyZWRFZmZlY3Q9bnVsbH1mdW5jdGlvbiBaZihhLGIpe2Zvcig7bnVsbCE9PWE7KXt2YXIgYz1hLmNhbGxiYWNrO2lmKG51bGwhPT1jKXthLmNhbGxiYWNrPW51bGw7dmFyIGQ9YjtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgYyl0aHJvdyB0KEVycm9yKDE5MSksYyk7Yy5jYWxsKGQpfWE9YS5uZXh0RWZmZWN0fX1cbnZhciAkZj1YYi5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxhZz0obmV3IGFhLkNvbXBvbmVudCkucmVmcztmdW5jdGlvbiBiZyhhLGIsYyxkKXtiPWEubWVtb2l6ZWRTdGF0ZTtjPWMoZCxiKTtjPW51bGw9PT1jfHx2b2lkIDA9PT1jP2I6bSh7fSxiLGMpO2EubWVtb2l6ZWRTdGF0ZT1jO2Q9YS51cGRhdGVRdWV1ZTtudWxsIT09ZCYmMD09PWEuZXhwaXJhdGlvblRpbWUmJihkLmJhc2VTdGF0ZT1jKX1cbnZhciBmZz17aXNNb3VudGVkOmZ1bmN0aW9uKGEpe3JldHVybihhPWEuX3JlYWN0SW50ZXJuYWxGaWJlcik/Mj09PWxkKGEpOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbEZpYmVyO3ZhciBkPWNnKCksZT0kZi5zdXNwZW5zZTtkPWRnKGQsYSxlKTtlPVFmKGQsZSk7ZS5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihlLmNhbGxiYWNrPWMpO1NmKGEsZSk7ZWcoYSxkKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihhLGIsYyl7YT1hLl9yZWFjdEludGVybmFsRmliZXI7dmFyIGQ9Y2coKSxlPSRmLnN1c3BlbnNlO2Q9ZGcoZCxhLGUpO2U9UWYoZCxlKTtlLnRhZz0xO2UucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZS5jYWxsYmFjaz1jKTtTZihhLGUpO2VnKGEsZCl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihhLGIpe2E9YS5fcmVhY3RJbnRlcm5hbEZpYmVyO3ZhciBjPWNnKCksZD0kZi5zdXNwZW5zZTtcbmM9ZGcoYyxhLGQpO2Q9UWYoYyxkKTtkLnRhZz0yO3ZvaWQgMCE9PWImJm51bGwhPT1iJiYoZC5jYWxsYmFjaz1iKTtTZihhLGQpO2VnKGEsYyl9fTtmdW5jdGlvbiBnZyhhLGIsYyxkLGUsZixoKXthPWEuc3RhdGVOb2RlO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShkLGYsaCk6Yi5wcm90b3R5cGUmJmIucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFqZChjLGQpfHwhamQoZSxmKTohMH1cbmZ1bmN0aW9uIGhnKGEsYixjKXt2YXIgZD0hMSxlPVFlO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9mPU1mKGYpOihlPU4oYik/UmU6TC5jdXJyZW50LGQ9Yi5jb250ZXh0VHlwZXMsZj0oZD1udWxsIT09ZCYmdm9pZCAwIT09ZCk/U2UoYSxlKTpRZSk7Yj1uZXcgYihjLGYpO2EubWVtb2l6ZWRTdGF0ZT1udWxsIT09Yi5zdGF0ZSYmdm9pZCAwIT09Yi5zdGF0ZT9iLnN0YXRlOm51bGw7Yi51cGRhdGVyPWZnO2Euc3RhdGVOb2RlPWI7Yi5fcmVhY3RJbnRlcm5hbEZpYmVyPWE7ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1mKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGlnKGEsYixjLGQpe2E9Yi5zdGF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO2Iuc3RhdGUhPT1hJiZmZy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGIsYi5zdGF0ZSxudWxsKX1cbmZ1bmN0aW9uIGpnKGEsYixjLGQpe3ZhciBlPWEuc3RhdGVOb2RlO2UucHJvcHM9YztlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtlLnJlZnM9YWc7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2UuY29udGV4dD1NZihmKTooZj1OKGIpP1JlOkwuY3VycmVudCxlLmNvbnRleHQ9U2UoYSxmKSk7Zj1hLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiYoV2YoYSxmLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7Zj1iLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcImZ1bmN0aW9uXCI9PT10eXBlb2YgZiYmKGJnKGEsYixmLGMpLGUuc3RhdGU9YS5tZW1vaXplZFN0YXRlKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT1cbnR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudHx8KGI9ZS5zdGF0ZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5jb21wb25lbnRXaWxsTW91bnQmJmUuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksYiE9PWUuc3RhdGUmJmZnLmVucXVldWVSZXBsYWNlU3RhdGUoZSxlLnN0YXRlLG51bGwpLGY9YS51cGRhdGVRdWV1ZSxudWxsIT09ZiYmKFdmKGEsZixjLGUsZCksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5jb21wb25lbnREaWRNb3VudCYmKGEuZWZmZWN0VGFnfD00KX12YXIga2c9QXJyYXkuaXNBcnJheTtcbmZ1bmN0aW9uIGxnKGEsYixjKXthPWMucmVmO2lmKG51bGwhPT1hJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmXCJvYmplY3RcIiE9PXR5cGVvZiBhKXtpZihjLl9vd25lcil7Yz1jLl9vd25lcjt2YXIgZD12b2lkIDA7aWYoYyl7aWYoMSE9PWMudGFnKXRocm93IHQoRXJyb3IoMzA5KSk7ZD1jLnN0YXRlTm9kZX1pZighZCl0aHJvdyB0KEVycm9yKDE0NyksYSk7dmFyIGU9XCJcIithO2lmKG51bGwhPT1iJiZudWxsIT09Yi5yZWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLnJlZiYmYi5yZWYuX3N0cmluZ1JlZj09PWUpcmV0dXJuIGIucmVmO2I9ZnVuY3Rpb24oYSl7dmFyIGI9ZC5yZWZzO2I9PT1hZyYmKGI9ZC5yZWZzPXt9KTtudWxsPT09YT9kZWxldGUgYltlXTpiW2VdPWF9O2IuX3N0cmluZ1JlZj1lO3JldHVybiBifWlmKFwic3RyaW5nXCIhPT10eXBlb2YgYSl0aHJvdyB0KEVycm9yKDI4NCkpO2lmKCFjLl9vd25lcil0aHJvdyB0KEVycm9yKDI5MCksYSk7fXJldHVybiBhfVxuZnVuY3Rpb24gbWcoYSxiKXtpZihcInRleHRhcmVhXCIhPT1hLnR5cGUpdGhyb3cgdChFcnJvcigzMSksXCJbb2JqZWN0IE9iamVjdF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChiKT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGIpLmpvaW4oXCIsIFwiKStcIn1cIjpiLFwiXCIpO31cbmZ1bmN0aW9uIG5nKGEpe2Z1bmN0aW9uIGIoYixjKXtpZihhKXt2YXIgZD1iLmxhc3RFZmZlY3Q7bnVsbCE9PWQ/KGQubmV4dEVmZmVjdD1jLGIubGFzdEVmZmVjdD1jKTpiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1jO2MubmV4dEVmZmVjdD1udWxsO2MuZWZmZWN0VGFnPTh9fWZ1bmN0aW9uIGMoYyxkKXtpZighYSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1kOyliKGMsZCksZD1kLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChhLGIpe2ZvcihhPW5ldyBNYXA7bnVsbCE9PWI7KW51bGwhPT1iLmtleT9hLnNldChiLmtleSxiKTphLnNldChiLmluZGV4LGIpLGI9Yi5zaWJsaW5nO3JldHVybiBhfWZ1bmN0aW9uIGUoYSxiLGMpe2E9b2coYSxiLGMpO2EuaW5kZXg9MDthLnNpYmxpbmc9bnVsbDtyZXR1cm4gYX1mdW5jdGlvbiBmKGIsYyxkKXtiLmluZGV4PWQ7aWYoIWEpcmV0dXJuIGM7ZD1iLmFsdGVybmF0ZTtpZihudWxsIT09ZClyZXR1cm4gZD1kLmluZGV4LGQ8Yz8oYi5lZmZlY3RUYWc9XG4yLGMpOmQ7Yi5lZmZlY3RUYWc9MjtyZXR1cm4gY31mdW5jdGlvbiBoKGIpe2EmJm51bGw9PT1iLmFsdGVybmF0ZSYmKGIuZWZmZWN0VGFnPTIpO3JldHVybiBifWZ1bmN0aW9uIGcoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDYhPT1iLnRhZylyZXR1cm4gYj1wZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYyxkKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIGsoYSxiLGMsZCl7aWYobnVsbCE9PWImJmIuZWxlbWVudFR5cGU9PT1jLnR5cGUpcmV0dXJuIGQ9ZShiLGMucHJvcHMsZCksZC5yZWY9bGcoYSxiLGMpLGQucmV0dXJuPWEsZDtkPXFnKGMudHlwZSxjLmtleSxjLnByb3BzLG51bGwsYS5tb2RlLGQpO2QucmVmPWxnKGEsYixjKTtkLnJldHVybj1hO3JldHVybiBkfWZ1bmN0aW9uIGwoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDQhPT1iLnRhZ3x8Yi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PWMuY29udGFpbmVySW5mb3x8Yi5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT1cbmMuaW1wbGVtZW50YXRpb24pcmV0dXJuIGI9cmcoYyxhLm1vZGUsZCksYi5yZXR1cm49YSxiO2I9ZShiLGMuY2hpbGRyZW58fFtdLGQpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gbihhLGIsYyxkLGYpe2lmKG51bGw9PT1ifHw3IT09Yi50YWcpcmV0dXJuIGI9c2coYyxhLm1vZGUsZCxmKSxiLnJldHVybj1hLGI7Yj1lKGIsYyxkKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIHooYSxiLGMpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYnx8XCJudW1iZXJcIj09PXR5cGVvZiBiKXJldHVybiBiPXBnKFwiXCIrYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmbnVsbCE9PWIpe3N3aXRjaChiLiQkdHlwZW9mKXtjYXNlIFpiOnJldHVybiBjPXFnKGIudHlwZSxiLmtleSxiLnByb3BzLG51bGwsYS5tb2RlLGMpLGMucmVmPWxnKGEsbnVsbCxiKSxjLnJldHVybj1hLGM7Y2FzZSAkYjpyZXR1cm4gYj1yZyhiLGEubW9kZSxjKSxiLnJldHVybj1hLGJ9aWYoa2coYil8fFxubWMoYikpcmV0dXJuIGI9c2coYixhLm1vZGUsYyxudWxsKSxiLnJldHVybj1hLGI7bWcoYSxiKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB4KGEsYixjLGQpe3ZhciBlPW51bGwhPT1iP2Iua2V5Om51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBjfHxcIm51bWJlclwiPT09dHlwZW9mIGMpcmV0dXJuIG51bGwhPT1lP251bGw6ZyhhLGIsXCJcIitjLGQpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWMpe3N3aXRjaChjLiQkdHlwZW9mKXtjYXNlIFpiOnJldHVybiBjLmtleT09PWU/Yy50eXBlPT09YWM/bihhLGIsYy5wcm9wcy5jaGlsZHJlbixkLGUpOmsoYSxiLGMsZCk6bnVsbDtjYXNlICRiOnJldHVybiBjLmtleT09PWU/bChhLGIsYyxkKTpudWxsfWlmKGtnKGMpfHxtYyhjKSlyZXR1cm4gbnVsbCE9PWU/bnVsbDpuKGEsYixjLGQsbnVsbCk7bWcoYSxjKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB2KGEsYixjLGQsZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBkfHxcIm51bWJlclwiPT09dHlwZW9mIGQpcmV0dXJuIGE9XG5hLmdldChjKXx8bnVsbCxnKGIsYSxcIlwiK2QsZSk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgWmI6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGQudHlwZT09PWFjP24oYixhLGQucHJvcHMuY2hpbGRyZW4sZSxkLmtleSk6ayhiLGEsZCxlKTtjYXNlICRiOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxsKGIsYSxkLGUpfWlmKGtnKGQpfHxtYyhkKSlyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxuKGIsYSxkLGUsbnVsbCk7bWcoYixkKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiByYihlLGgsZyxrKXtmb3IodmFyIGw9bnVsbCx1PW51bGwsbj1oLHc9aD0wLEM9bnVsbDtudWxsIT09biYmdzxnLmxlbmd0aDt3Kyspe24uaW5kZXg+dz8oQz1uLG49bnVsbCk6Qz1uLnNpYmxpbmc7dmFyIHA9eChlLG4sZ1t3XSxrKTtpZihudWxsPT09cCl7bnVsbD09PW4mJihuPUMpO2JyZWFrfWEmJlxubiYmbnVsbD09PXAuYWx0ZXJuYXRlJiZiKGUsbik7aD1mKHAsaCx3KTtudWxsPT09dT9sPXA6dS5zaWJsaW5nPXA7dT1wO249Q31pZih3PT09Zy5sZW5ndGgpcmV0dXJuIGMoZSxuKSxsO2lmKG51bGw9PT1uKXtmb3IoO3c8Zy5sZW5ndGg7dysrKW49eihlLGdbd10sayksbnVsbCE9PW4mJihoPWYobixoLHcpLG51bGw9PT11P2w9bjp1LnNpYmxpbmc9bix1PW4pO3JldHVybiBsfWZvcihuPWQoZSxuKTt3PGcubGVuZ3RoO3crKylDPXYobixlLHcsZ1t3XSxrKSxudWxsIT09QyYmKGEmJm51bGwhPT1DLmFsdGVybmF0ZSYmbi5kZWxldGUobnVsbD09PUMua2V5P3c6Qy5rZXkpLGg9ZihDLGgsdyksbnVsbD09PXU/bD1DOnUuc2libGluZz1DLHU9Qyk7YSYmbi5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtyZXR1cm4gbH1mdW5jdGlvbiBCZShlLGgsZyxrKXt2YXIgbD1tYyhnKTtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgbCl0aHJvdyB0KEVycm9yKDE1MCkpO2c9bC5jYWxsKGcpO1xuaWYobnVsbD09Zyl0aHJvdyB0KEVycm9yKDE1MSkpO2Zvcih2YXIgbj1sPW51bGwsdT1oLHc9aD0wLEM9bnVsbCxwPWcubmV4dCgpO251bGwhPT11JiYhcC5kb25lO3crKyxwPWcubmV4dCgpKXt1LmluZGV4Pnc/KEM9dSx1PW51bGwpOkM9dS5zaWJsaW5nO3ZhciByPXgoZSx1LHAudmFsdWUsayk7aWYobnVsbD09PXIpe251bGw9PT11JiYodT1DKTticmVha31hJiZ1JiZudWxsPT09ci5hbHRlcm5hdGUmJmIoZSx1KTtoPWYocixoLHcpO251bGw9PT1uP2w9cjpuLnNpYmxpbmc9cjtuPXI7dT1DfWlmKHAuZG9uZSlyZXR1cm4gYyhlLHUpLGw7aWYobnVsbD09PXUpe2Zvcig7IXAuZG9uZTt3KysscD1nLm5leHQoKSlwPXooZSxwLnZhbHVlLGspLG51bGwhPT1wJiYoaD1mKHAsaCx3KSxudWxsPT09bj9sPXA6bi5zaWJsaW5nPXAsbj1wKTtyZXR1cm4gbH1mb3IodT1kKGUsdSk7IXAuZG9uZTt3KysscD1nLm5leHQoKSlwPXYodSxlLHcscC52YWx1ZSxrKSxudWxsIT09cCYmKGEmJm51bGwhPT1cbnAuYWx0ZXJuYXRlJiZ1LmRlbGV0ZShudWxsPT09cC5rZXk/dzpwLmtleSksaD1mKHAsaCx3KSxudWxsPT09bj9sPXA6bi5zaWJsaW5nPXAsbj1wKTthJiZ1LmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO3JldHVybiBsfXJldHVybiBmdW5jdGlvbihhLGQsZixnKXt2YXIgaz1cIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLnR5cGU9PT1hYyYmbnVsbD09PWYua2V5O2smJihmPWYucHJvcHMuY2hpbGRyZW4pO3ZhciBsPVwib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWY7aWYobClzd2l0Y2goZi4kJHR5cGVvZil7Y2FzZSBaYjphOntsPWYua2V5O2ZvcihrPWQ7bnVsbCE9PWs7KXtpZihrLmtleT09PWwpe2lmKDc9PT1rLnRhZz9mLnR5cGU9PT1hYzprLmVsZW1lbnRUeXBlPT09Zi50eXBlKXtjKGEsay5zaWJsaW5nKTtkPWUoayxmLnR5cGU9PT1hYz9mLnByb3BzLmNoaWxkcmVuOmYucHJvcHMsZyk7ZC5yZWY9bGcoYSxrLGYpO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9YyhhLFxuayk7YnJlYWt9ZWxzZSBiKGEsayk7az1rLnNpYmxpbmd9Zi50eXBlPT09YWM/KGQ9c2coZi5wcm9wcy5jaGlsZHJlbixhLm1vZGUsZyxmLmtleSksZC5yZXR1cm49YSxhPWQpOihnPXFnKGYudHlwZSxmLmtleSxmLnByb3BzLG51bGwsYS5tb2RlLGcpLGcucmVmPWxnKGEsZCxmKSxnLnJldHVybj1hLGE9Zyl9cmV0dXJuIGgoYSk7Y2FzZSAkYjphOntmb3Ioaz1mLmtleTtudWxsIT09ZDspe2lmKGQua2V5PT09ayl7aWYoND09PWQudGFnJiZkLnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09Zi5jb250YWluZXJJbmZvJiZkLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbj09PWYuaW1wbGVtZW50YXRpb24pe2MoYSxkLnNpYmxpbmcpO2Q9ZShkLGYuY2hpbGRyZW58fFtdLGcpO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9YyhhLGQpO2JyZWFrfWVsc2UgYihhLGQpO2Q9ZC5zaWJsaW5nfWQ9cmcoZixhLm1vZGUsZyk7ZC5yZXR1cm49YTthPWR9cmV0dXJuIGgoYSl9aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBmfHxcblwibnVtYmVyXCI9PT10eXBlb2YgZilyZXR1cm4gZj1cIlwiK2YsbnVsbCE9PWQmJjY9PT1kLnRhZz8oYyhhLGQuc2libGluZyksZD1lKGQsZixnKSxkLnJldHVybj1hLGE9ZCk6KGMoYSxkKSxkPXBnKGYsYS5tb2RlLGcpLGQucmV0dXJuPWEsYT1kKSxoKGEpO2lmKGtnKGYpKXJldHVybiByYihhLGQsZixnKTtpZihtYyhmKSlyZXR1cm4gQmUoYSxkLGYsZyk7bCYmbWcoYSxmKTtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGYmJiFrKXN3aXRjaChhLnRhZyl7Y2FzZSAxOmNhc2UgMDp0aHJvdyBhPWEudHlwZSx0KEVycm9yKDE1MiksYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxcIkNvbXBvbmVudFwiKTt9cmV0dXJuIGMoYSxkKX19dmFyIHRnPW5nKCEwKSx1Zz1uZyghMSksdmc9e30sd2c9e2N1cnJlbnQ6dmd9LHhnPXtjdXJyZW50OnZnfSx5Zz17Y3VycmVudDp2Z307ZnVuY3Rpb24gemcoYSl7aWYoYT09PXZnKXRocm93IHQoRXJyb3IoMTc0KSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBBZyhhLGIpe0ooeWcsYixhKTtKKHhnLGEsYSk7Sih3Zyx2ZyxhKTt2YXIgYz1iLm5vZGVUeXBlO3N3aXRjaChjKXtjYXNlIDk6Y2FzZSAxMTpiPShiPWIuZG9jdW1lbnRFbGVtZW50KT9iLm5hbWVzcGFjZVVSSTp0ZShudWxsLFwiXCIpO2JyZWFrO2RlZmF1bHQ6Yz04PT09Yz9iLnBhcmVudE5vZGU6YixiPWMubmFtZXNwYWNlVVJJfHxudWxsLGM9Yy50YWdOYW1lLGI9dGUoYixjKX1IKHdnLGEpO0ood2csYixhKX1mdW5jdGlvbiBCZyhhKXtIKHdnLGEpO0goeGcsYSk7SCh5ZyxhKX1mdW5jdGlvbiBDZyhhKXt6Zyh5Zy5jdXJyZW50KTt2YXIgYj16Zyh3Zy5jdXJyZW50KTt2YXIgYz10ZShiLGEudHlwZSk7YiE9PWMmJihKKHhnLGEsYSksSih3ZyxjLGEpKX1mdW5jdGlvbiBEZyhhKXt4Zy5jdXJyZW50PT09YSYmKEgod2csYSksSCh4ZyxhKSl9dmFyIEVnPTEsRmc9MSxHZz0yLFA9e2N1cnJlbnQ6MH07XG5mdW5jdGlvbiBIZyhhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe2lmKG51bGwhPT1iLm1lbW9pemVkU3RhdGUpcmV0dXJuIGJ9ZWxzZSBpZigxOT09PWIudGFnJiZ2b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPT0oYi5lZmZlY3RUYWcmNjQpKXJldHVybiBifWVsc2UgaWYobnVsbCE9PWIuY2hpbGQpe2IuY2hpbGQucmV0dXJuPWI7Yj1iLmNoaWxkO2NvbnRpbnVlfWlmKGI9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWIuc2libGluZzspe2lmKG51bGw9PT1iLnJldHVybnx8Yi5yZXR1cm49PT1hKXJldHVybiBudWxsO2I9Yi5yZXR1cm59Yi5zaWJsaW5nLnJldHVybj1iLnJldHVybjtiPWIuc2libGluZ31yZXR1cm4gbnVsbH1cbnZhciBJZz0wLEpnPTIsS2c9NCxMZz04LE1nPTE2LE5nPTMyLE9nPTY0LFBnPTEyOCxRZz1YYi5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLFJnPTAsU2c9bnVsbCxRPW51bGwsVGc9bnVsbCxVZz1udWxsLFI9bnVsbCxWZz1udWxsLFdnPTAsWGc9bnVsbCxZZz0wLFpnPSExLCRnPW51bGwsYWg9MDtmdW5jdGlvbiBiaCgpe3Rocm93IHQoRXJyb3IoMzIxKSk7fWZ1bmN0aW9uIGNoKGEsYil7aWYobnVsbD09PWIpcmV0dXJuITE7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aCYmYzxhLmxlbmd0aDtjKyspaWYoIWhkKGFbY10sYltjXSkpcmV0dXJuITE7cmV0dXJuITB9XG5mdW5jdGlvbiBkaChhLGIsYyxkLGUsZil7Umc9ZjtTZz1iO1RnPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsO1FnLmN1cnJlbnQ9bnVsbD09PVRnP2VoOmZoO2I9YyhkLGUpO2lmKFpnKXtkbyBaZz0hMSxhaCs9MSxUZz1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbCxWZz1VZyxYZz1SPVE9bnVsbCxRZy5jdXJyZW50PWZoLGI9YyhkLGUpO3doaWxlKFpnKTskZz1udWxsO2FoPTB9UWcuY3VycmVudD1oaDthPVNnO2EubWVtb2l6ZWRTdGF0ZT1VZzthLmV4cGlyYXRpb25UaW1lPVdnO2EudXBkYXRlUXVldWU9WGc7YS5lZmZlY3RUYWd8PVlnO2E9bnVsbCE9PVEmJm51bGwhPT1RLm5leHQ7Umc9MDtWZz1SPVVnPVRnPVE9U2c9bnVsbDtXZz0wO1hnPW51bGw7WWc9MDtpZihhKXRocm93IHQoRXJyb3IoMzAwKSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBpaCgpe1FnLmN1cnJlbnQ9aGg7Umc9MDtWZz1SPVVnPVRnPVE9U2c9bnVsbDtXZz0wO1hnPW51bGw7WWc9MDtaZz0hMTskZz1udWxsO2FoPTB9ZnVuY3Rpb24gamgoKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLHF1ZXVlOm51bGwsYmFzZVVwZGF0ZTpudWxsLG5leHQ6bnVsbH07bnVsbD09PVI/VWc9Uj1hOlI9Ui5uZXh0PWE7cmV0dXJuIFJ9ZnVuY3Rpb24ga2goKXtpZihudWxsIT09VmcpUj1WZyxWZz1SLm5leHQsUT1UZyxUZz1udWxsIT09UT9RLm5leHQ6bnVsbDtlbHNle2lmKG51bGw9PT1UZyl0aHJvdyB0KEVycm9yKDMxMCkpO1E9VGc7dmFyIGE9e21lbW9pemVkU3RhdGU6US5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpRLmJhc2VTdGF0ZSxxdWV1ZTpRLnF1ZXVlLGJhc2VVcGRhdGU6US5iYXNlVXBkYXRlLG5leHQ6bnVsbH07Uj1udWxsPT09Uj9VZz1hOlIubmV4dD1hO1RnPVEubmV4dH1yZXR1cm4gUn1cbmZ1bmN0aW9uIGxoKGEsYil7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpifVxuZnVuY3Rpb24gbWgoYSl7dmFyIGI9a2goKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgdChFcnJvcigzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTtpZigwPGFoKXt2YXIgZD1jLmRpc3BhdGNoO2lmKG51bGwhPT0kZyl7dmFyIGU9JGcuZ2V0KGMpO2lmKHZvaWQgMCE9PWUpeyRnLmRlbGV0ZShjKTt2YXIgZj1iLm1lbW9pemVkU3RhdGU7ZG8gZj1hKGYsZS5hY3Rpb24pLGU9ZS5uZXh0O3doaWxlKG51bGwhPT1lKTtoZChmLGIubWVtb2l6ZWRTdGF0ZSl8fChMZj0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7Yi5iYXNlVXBkYXRlPT09Yy5sYXN0JiYoYi5iYXNlU3RhdGU9Zik7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mO3JldHVybltmLGRdfX1yZXR1cm5bYi5tZW1vaXplZFN0YXRlLGRdfWQ9Yy5sYXN0O3ZhciBoPWIuYmFzZVVwZGF0ZTtmPWIuYmFzZVN0YXRlO251bGwhPT1oPyhudWxsIT09ZCYmKGQubmV4dD1udWxsKSxkPWgubmV4dCk6ZD1udWxsIT09ZD9kLm5leHQ6bnVsbDtpZihudWxsIT09XG5kKXt2YXIgZz1lPW51bGwsaz1kLGw9ITE7ZG97dmFyIG49ay5leHBpcmF0aW9uVGltZTtuPFJnPyhsfHwobD0hMCxnPWgsZT1mKSxuPldnJiYoV2c9bikpOihYZihuLGsuc3VzcGVuc2VDb25maWcpLGY9ay5lYWdlclJlZHVjZXI9PT1hP2suZWFnZXJTdGF0ZTphKGYsay5hY3Rpb24pKTtoPWs7az1rLm5leHR9d2hpbGUobnVsbCE9PWsmJmshPT1kKTtsfHwoZz1oLGU9Zik7aGQoZixiLm1lbW9pemVkU3RhdGUpfHwoTGY9ITApO2IubWVtb2l6ZWRTdGF0ZT1mO2IuYmFzZVVwZGF0ZT1nO2IuYmFzZVN0YXRlPWU7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mfXJldHVybltiLm1lbW9pemVkU3RhdGUsYy5kaXNwYXRjaF19XG5mdW5jdGlvbiBuaChhLGIsYyxkKXthPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH07bnVsbD09PVhnPyhYZz17bGFzdEVmZmVjdDpudWxsfSxYZy5sYXN0RWZmZWN0PWEubmV4dD1hKTooYj1YZy5sYXN0RWZmZWN0LG51bGw9PT1iP1hnLmxhc3RFZmZlY3Q9YS5uZXh0PWE6KGM9Yi5uZXh0LGIubmV4dD1hLGEubmV4dD1jLFhnLmxhc3RFZmZlY3Q9YSkpO3JldHVybiBhfWZ1bmN0aW9uIG9oKGEsYixjLGQpe3ZhciBlPWpoKCk7WWd8PWE7ZS5tZW1vaXplZFN0YXRlPW5oKGIsYyx2b2lkIDAsdm9pZCAwPT09ZD9udWxsOmQpfVxuZnVuY3Rpb24gcGgoYSxiLGMsZCl7dmFyIGU9a2goKTtkPXZvaWQgMD09PWQ/bnVsbDpkO3ZhciBmPXZvaWQgMDtpZihudWxsIT09USl7dmFyIGg9US5tZW1vaXplZFN0YXRlO2Y9aC5kZXN0cm95O2lmKG51bGwhPT1kJiZjaChkLGguZGVwcykpe25oKElnLGMsZixkKTtyZXR1cm59fVlnfD1hO2UubWVtb2l6ZWRTdGF0ZT1uaChiLGMsZixkKX1mdW5jdGlvbiBxaChhLGIpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiKXJldHVybiBhPWEoKSxiKGEpLGZ1bmN0aW9uKCl7YihudWxsKX07aWYobnVsbCE9PWImJnZvaWQgMCE9PWIpcmV0dXJuIGE9YSgpLGIuY3VycmVudD1hLGZ1bmN0aW9uKCl7Yi5jdXJyZW50PW51bGx9fWZ1bmN0aW9uIHJoKCl7fVxuZnVuY3Rpb24gc2goYSxiLGMpe2lmKCEoMjU+YWgpKXRocm93IHQoRXJyb3IoMzAxKSk7dmFyIGQ9YS5hbHRlcm5hdGU7aWYoYT09PVNnfHxudWxsIT09ZCYmZD09PVNnKWlmKFpnPSEwLGE9e2V4cGlyYXRpb25UaW1lOlJnLHN1c3BlbnNlQ29uZmlnOm51bGwsYWN0aW9uOmMsZWFnZXJSZWR1Y2VyOm51bGwsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sbnVsbD09PSRnJiYoJGc9bmV3IE1hcCksYz0kZy5nZXQoYiksdm9pZCAwPT09YykkZy5zZXQoYixhKTtlbHNle2ZvcihiPWM7bnVsbCE9PWIubmV4dDspYj1iLm5leHQ7Yi5uZXh0PWF9ZWxzZXt2YXIgZT1jZygpLGY9JGYuc3VzcGVuc2U7ZT1kZyhlLGEsZik7Zj17ZXhwaXJhdGlvblRpbWU6ZSxzdXNwZW5zZUNvbmZpZzpmLGFjdGlvbjpjLGVhZ2VyUmVkdWNlcjpudWxsLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9O3ZhciBoPWIubGFzdDtpZihudWxsPT09aClmLm5leHQ9ZjtlbHNle3ZhciBnPWgubmV4dDtudWxsIT09ZyYmXG4oZi5uZXh0PWcpO2gubmV4dD1mfWIubGFzdD1mO2lmKDA9PT1hLmV4cGlyYXRpb25UaW1lJiYobnVsbD09PWR8fDA9PT1kLmV4cGlyYXRpb25UaW1lKSYmKGQ9Yi5sYXN0UmVuZGVyZWRSZWR1Y2VyLG51bGwhPT1kKSl0cnl7dmFyIGs9Yi5sYXN0UmVuZGVyZWRTdGF0ZSxsPWQoayxjKTtmLmVhZ2VyUmVkdWNlcj1kO2YuZWFnZXJTdGF0ZT1sO2lmKGhkKGwsaykpcmV0dXJufWNhdGNoKG4pe31maW5hbGx5e31lZyhhLGUpfX1cbnZhciBoaD17cmVhZENvbnRleHQ6TWYsdXNlQ2FsbGJhY2s6YmgsdXNlQ29udGV4dDpiaCx1c2VFZmZlY3Q6YmgsdXNlSW1wZXJhdGl2ZUhhbmRsZTpiaCx1c2VMYXlvdXRFZmZlY3Q6YmgsdXNlTWVtbzpiaCx1c2VSZWR1Y2VyOmJoLHVzZVJlZjpiaCx1c2VTdGF0ZTpiaCx1c2VEZWJ1Z1ZhbHVlOmJoLHVzZVJlc3BvbmRlcjpiaH0sZWg9e3JlYWRDb250ZXh0Ok1mLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGEsYil7amgoKS5tZW1vaXplZFN0YXRlPVthLHZvaWQgMD09PWI/bnVsbDpiXTtyZXR1cm4gYX0sdXNlQ29udGV4dDpNZix1c2VFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gb2goNTE2LFBnfE9nLGEsYil9LHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oYSxiLGMpe2M9bnVsbCE9PWMmJnZvaWQgMCE9PWM/Yy5jb25jYXQoW2FdKTpudWxsO3JldHVybiBvaCg0LEtnfE5nLHFoLmJpbmQobnVsbCxiLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gb2goNCxcbktnfE5nLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1qaCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1qaCgpO2I9dm9pZCAwIT09Yz9jKGIpOmI7ZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWI7YT1kLnF1ZXVlPXtsYXN0Om51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmEsbGFzdFJlbmRlcmVkU3RhdGU6Yn07YT1hLmRpc3BhdGNoPXNoLmJpbmQobnVsbCxTZyxhKTtyZXR1cm5bZC5tZW1vaXplZFN0YXRlLGFdfSx1c2VSZWY6ZnVuY3Rpb24oYSl7dmFyIGI9amgoKTthPXtjdXJyZW50OmF9O3JldHVybiBiLm1lbW9pemVkU3RhdGU9YX0sdXNlU3RhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9amgoKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmKGE9YSgpKTtiLm1lbW9pemVkU3RhdGU9Yi5iYXNlU3RhdGU9YTthPWIucXVldWU9XG57bGFzdDpudWxsLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpsaCxsYXN0UmVuZGVyZWRTdGF0ZTphfTthPWEuZGlzcGF0Y2g9c2guYmluZChudWxsLFNnLGEpO3JldHVybltiLm1lbW9pemVkU3RhdGUsYV19LHVzZURlYnVnVmFsdWU6cmgsdXNlUmVzcG9uZGVyOmtkfSxmaD17cmVhZENvbnRleHQ6TWYsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXt2YXIgYz1raCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7dmFyIGQ9Yy5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kJiZudWxsIT09YiYmY2goYixkWzFdKSlyZXR1cm4gZFswXTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9LHVzZUNvbnRleHQ6TWYsdXNlRWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHBoKDUxNixQZ3xPZyxhLGIpfSx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4gcGgoNCxLZ3xOZyxxaC5iaW5kKG51bGwsXG5iLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gcGgoNCxLZ3xOZyxhLGIpfSx1c2VNZW1vOmZ1bmN0aW9uKGEsYil7dmFyIGM9a2goKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJmNoKGIsZFsxXSkpcmV0dXJuIGRbMF07YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOm1oLHVzZVJlZjpmdW5jdGlvbigpe3JldHVybiBraCgpLm1lbW9pemVkU3RhdGV9LHVzZVN0YXRlOmZ1bmN0aW9uKGEpe3JldHVybiBtaChsaCxhKX0sdXNlRGVidWdWYWx1ZTpyaCx1c2VSZXNwb25kZXI6a2R9LHRoPW51bGwsdWg9bnVsbCx2aD0hMTtcbmZ1bmN0aW9uIHdoKGEsYil7dmFyIGM9eGgoNSxudWxsLG51bGwsMCk7Yy5lbGVtZW50VHlwZT1cIkRFTEVURURcIjtjLnR5cGU9XCJERUxFVEVEXCI7Yy5zdGF0ZU5vZGU9YjtjLnJldHVybj1hO2MuZWZmZWN0VGFnPTg7bnVsbCE9PWEubGFzdEVmZmVjdD8oYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9YyxhLmxhc3RFZmZlY3Q9Yyk6YS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9Y31mdW5jdGlvbiB5aChhLGIpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnZhciBjPWEudHlwZTtiPTEhPT1iLm5vZGVUeXBlfHxjLnRvTG93ZXJDYXNlKCkhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpiO3JldHVybiBudWxsIT09Yj8oYS5zdGF0ZU5vZGU9YiwhMCk6ITE7Y2FzZSA2OnJldHVybiBiPVwiXCI9PT1hLnBlbmRpbmdQcm9wc3x8MyE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLCEwKTohMTtjYXNlIDEzOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gemgoYSl7aWYodmgpe3ZhciBiPXVoO2lmKGIpe3ZhciBjPWI7aWYoIXloKGEsYikpe2I9TmUoYy5uZXh0U2libGluZyk7aWYoIWJ8fCF5aChhLGIpKXthLmVmZmVjdFRhZ3w9Mjt2aD0hMTt0aD1hO3JldHVybn13aCh0aCxjKX10aD1hO3VoPU5lKGIuZmlyc3RDaGlsZCl9ZWxzZSBhLmVmZmVjdFRhZ3w9Mix2aD0hMSx0aD1hfX1mdW5jdGlvbiBBaChhKXtmb3IoYT1hLnJldHVybjtudWxsIT09YSYmNSE9PWEudGFnJiYzIT09YS50YWcmJjE4IT09YS50YWc7KWE9YS5yZXR1cm47dGg9YX1cbmZ1bmN0aW9uIEJoKGEpe2lmKGEhPT10aClyZXR1cm4hMTtpZighdmgpcmV0dXJuIEFoKGEpLHZoPSEwLCExO3ZhciBiPWEudHlwZTtpZig1IT09YS50YWd8fFwiaGVhZFwiIT09YiYmXCJib2R5XCIhPT1iJiYhS2UoYixhLm1lbW9pemVkUHJvcHMpKWZvcihiPXVoO2I7KXdoKGEsYiksYj1OZShiLm5leHRTaWJsaW5nKTtBaChhKTt1aD10aD9OZShhLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBDaCgpe3VoPXRoPW51bGw7dmg9ITF9dmFyIERoPVhiLlJlYWN0Q3VycmVudE93bmVyLExmPSExO2Z1bmN0aW9uIFMoYSxiLGMsZCl7Yi5jaGlsZD1udWxsPT09YT91ZyhiLG51bGwsYyxkKTp0ZyhiLGEuY2hpbGQsYyxkKX1cbmZ1bmN0aW9uIEVoKGEsYixjLGQsZSl7Yz1jLnJlbmRlcjt2YXIgZj1iLnJlZjtLZihiLGUpO2Q9ZGgoYSxiLGMsZCxmLGUpO2lmKG51bGwhPT1hJiYhTGYpcmV0dXJuIGIudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxiLmVmZmVjdFRhZyY9LTUxNyxhLmV4cGlyYXRpb25UaW1lPD1lJiYoYS5leHBpcmF0aW9uVGltZT0wKSxGaChhLGIsZSk7Yi5lZmZlY3RUYWd8PTE7UyhhLGIsZCxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIEdoKGEsYixjLGQsZSxmKXtpZihudWxsPT09YSl7dmFyIGg9Yy50eXBlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoJiYhSGgoaCkmJnZvaWQgMD09PWguZGVmYXVsdFByb3BzJiZudWxsPT09Yy5jb21wYXJlJiZ2b2lkIDA9PT1jLmRlZmF1bHRQcm9wcylyZXR1cm4gYi50YWc9MTUsYi50eXBlPWgsSWgoYSxiLGgsZCxlLGYpO2E9cWcoYy50eXBlLG51bGwsZCxudWxsLGIubW9kZSxmKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9aD1hLmNoaWxkO2lmKGU8ZiYmKGU9aC5tZW1vaXplZFByb3BzLGM9Yy5jb21wYXJlLGM9bnVsbCE9PWM/YzpqZCxjKGUsZCkmJmEucmVmPT09Yi5yZWYpKXJldHVybiBGaChhLGIsZik7Yi5lZmZlY3RUYWd8PTE7YT1vZyhoLGQsZik7YS5yZWY9Yi5yZWY7YS5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1hfVxuZnVuY3Rpb24gSWgoYSxiLGMsZCxlLGYpe3JldHVybiBudWxsIT09YSYmamQoYS5tZW1vaXplZFByb3BzLGQpJiZhLnJlZj09PWIucmVmJiYoTGY9ITEsZTxmKT9GaChhLGIsZik6SmgoYSxiLGMsZCxmKX1mdW5jdGlvbiBLaChhLGIpe3ZhciBjPWIucmVmO2lmKG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YyliLmVmZmVjdFRhZ3w9MTI4fWZ1bmN0aW9uIEpoKGEsYixjLGQsZSl7dmFyIGY9TihjKT9SZTpMLmN1cnJlbnQ7Zj1TZShiLGYpO0tmKGIsZSk7Yz1kaChhLGIsYyxkLGYsZSk7aWYobnVsbCE9PWEmJiFMZilyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZWZmZWN0VGFnJj0tNTE3LGEuZXhwaXJhdGlvblRpbWU8PWUmJihhLmV4cGlyYXRpb25UaW1lPTApLEZoKGEsYixlKTtiLmVmZmVjdFRhZ3w9MTtTKGEsYixjLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gTGgoYSxiLGMsZCxlKXtpZihOKGMpKXt2YXIgZj0hMDtYZShiKX1lbHNlIGY9ITE7S2YoYixlKTtpZihudWxsPT09Yi5zdGF0ZU5vZGUpbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5lZmZlY3RUYWd8PTIpLGhnKGIsYyxkLGUpLGpnKGIsYyxkLGUpLGQ9ITA7ZWxzZSBpZihudWxsPT09YSl7dmFyIGg9Yi5zdGF0ZU5vZGUsZz1iLm1lbW9pemVkUHJvcHM7aC5wcm9wcz1nO3ZhciBrPWguY29udGV4dCxsPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBsJiZudWxsIT09bD9sPU1mKGwpOihsPU4oYyk/UmU6TC5jdXJyZW50LGw9U2UoYixsKSk7dmFyIG49Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsej1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGguZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7enx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlxuXCJmdW5jdGlvblwiIT09dHlwZW9mIGguY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGchPT1kfHxrIT09bCkmJmlnKGIsaCxkLGwpO05mPSExO3ZhciB4PWIubWVtb2l6ZWRTdGF0ZTtrPWguc3RhdGU9eDt2YXIgdj1iLnVwZGF0ZVF1ZXVlO251bGwhPT12JiYoV2YoYix2LGQsaCxlKSxrPWIubWVtb2l6ZWRTdGF0ZSk7ZyE9PWR8fHghPT1rfHxNLmN1cnJlbnR8fE5mPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgbiYmKGJnKGIsYyxuLGQpLGs9Yi5tZW1vaXplZFN0YXRlKSwoZz1OZnx8Z2coYixjLGcsZCx4LGssbCkpPyh6fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5jb21wb25lbnRXaWxsTW91bnR8fChcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnRXaWxsTW91bnQmJmguY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXG5oLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguY29tcG9uZW50RGlkTW91bnQmJihiLmVmZmVjdFRhZ3w9NCkpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnREaWRNb3VudCYmKGIuZWZmZWN0VGFnfD00KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9ayksaC5wcm9wcz1kLGguc3RhdGU9ayxoLmNvbnRleHQ9bCxkPWcpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnREaWRNb3VudCYmKGIuZWZmZWN0VGFnfD00KSxkPSExKX1lbHNlIGg9Yi5zdGF0ZU5vZGUsZz1iLm1lbW9pemVkUHJvcHMsaC5wcm9wcz1iLnR5cGU9PT1iLmVsZW1lbnRUeXBlP2c6QWYoYi50eXBlLGcpLGs9aC5jb250ZXh0LGw9Yy5jb250ZXh0VHlwZSxcIm9iamVjdFwiPT09dHlwZW9mIGwmJm51bGwhPT1sP2w9TWYobCk6KGw9TihjKT9SZTpMLmN1cnJlbnQsbD1TZShiLGwpKSxuPWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLCh6PVxuXCJmdW5jdGlvblwiPT09dHlwZW9mIG58fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChnIT09ZHx8ayE9PWwpJiZpZyhiLGgsZCxsKSxOZj0hMSxrPWIubWVtb2l6ZWRTdGF0ZSx4PWguc3RhdGU9ayx2PWIudXBkYXRlUXVldWUsbnVsbCE9PXYmJihXZihiLHYsZCxoLGUpLHg9Yi5tZW1vaXplZFN0YXRlKSxnIT09ZHx8ayE9PXh8fE0uY3VycmVudHx8TmY/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuJiYoYmcoYixjLG4sZCkseD1iLm1lbW9pemVkU3RhdGUpLChuPU5mfHxnZyhiLGMsZyxkLGsseCxsKSk/KHp8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5jb21wb25lbnRXaWxsVXBkYXRlfHxcbihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnRXaWxsVXBkYXRlJiZoLmNvbXBvbmVudFdpbGxVcGRhdGUoZCx4LGwpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZoLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGQseCxsKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguY29tcG9uZW50RGlkVXBkYXRlJiYoYi5lZmZlY3RUYWd8PTQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoYi5lZmZlY3RUYWd8PTI1NikpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5jb21wb25lbnREaWRVcGRhdGV8fGc9PT1hLm1lbW9pemVkUHJvcHMmJms9PT1hLm1lbW9pemVkU3RhdGV8fChiLmVmZmVjdFRhZ3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGguZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGc9PT1hLm1lbW9pemVkUHJvcHMmJms9PT1hLm1lbW9pemVkU3RhdGV8fChiLmVmZmVjdFRhZ3w9MjU2KSxiLm1lbW9pemVkUHJvcHM9XG5kLGIubWVtb2l6ZWRTdGF0ZT14KSxoLnByb3BzPWQsaC5zdGF0ZT14LGguY29udGV4dD1sLGQ9bik6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmNvbXBvbmVudERpZFVwZGF0ZXx8Zz09PWEubWVtb2l6ZWRQcm9wcyYmaz09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZWZmZWN0VGFnfD00KSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8Zz09PWEubWVtb2l6ZWRQcm9wcyYmaz09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZWZmZWN0VGFnfD0yNTYpLGQ9ITEpO3JldHVybiBNaChhLGIsYyxkLGYsZSl9XG5mdW5jdGlvbiBNaChhLGIsYyxkLGUsZil7S2goYSxiKTt2YXIgaD0wIT09KGIuZWZmZWN0VGFnJjY0KTtpZighZCYmIWgpcmV0dXJuIGUmJlllKGIsYywhMSksRmgoYSxiLGYpO2Q9Yi5zdGF0ZU5vZGU7RGguY3VycmVudD1iO3ZhciBnPWgmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmQucmVuZGVyKCk7Yi5lZmZlY3RUYWd8PTE7bnVsbCE9PWEmJmg/KGIuY2hpbGQ9dGcoYixhLmNoaWxkLG51bGwsZiksYi5jaGlsZD10ZyhiLG51bGwsZyxmKSk6UyhhLGIsZyxmKTtiLm1lbW9pemVkU3RhdGU9ZC5zdGF0ZTtlJiZZZShiLGMsITApO3JldHVybiBiLmNoaWxkfWZ1bmN0aW9uIE5oKGEpe3ZhciBiPWEuc3RhdGVOb2RlO2IucGVuZGluZ0NvbnRleHQ/VmUoYSxiLnBlbmRpbmdDb250ZXh0LGIucGVuZGluZ0NvbnRleHQhPT1iLmNvbnRleHQpOmIuY29udGV4dCYmVmUoYSxiLmNvbnRleHQsITEpO0FnKGEsYi5jb250YWluZXJJbmZvKX1cbnZhciBPaD17fTtcbmZ1bmN0aW9uIFBoKGEsYixjKXt2YXIgZD1iLm1vZGUsZT1iLnBlbmRpbmdQcm9wcyxmPVAuY3VycmVudCxoPW51bGwsZz0hMSxrOyhrPTAhPT0oYi5lZmZlY3RUYWcmNjQpKXx8KGs9MCE9PShmJkdnKSYmKG51bGw9PT1hfHxudWxsIT09YS5tZW1vaXplZFN0YXRlKSk7az8oaD1PaCxnPSEwLGIuZWZmZWN0VGFnJj0tNjUpOm51bGwhPT1hJiZudWxsPT09YS5tZW1vaXplZFN0YXRlfHx2b2lkIDA9PT1lLmZhbGxiYWNrfHwhMD09PWUudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fChmfD1GZyk7ZiY9RWc7SihQLGYsYik7aWYobnVsbD09PWEpaWYoZyl7ZT1lLmZhbGxiYWNrO2E9c2cobnVsbCxkLDAsbnVsbCk7YS5yZXR1cm49YjtpZigwPT09KGIubW9kZSYyKSlmb3IoZz1udWxsIT09Yi5tZW1vaXplZFN0YXRlP2IuY2hpbGQuY2hpbGQ6Yi5jaGlsZCxhLmNoaWxkPWc7bnVsbCE9PWc7KWcucmV0dXJuPWEsZz1nLnNpYmxpbmc7Yz1zZyhlLGQsYyxudWxsKTtjLnJldHVybj1iO2Euc2libGluZz1cbmM7ZD1hfWVsc2UgZD1jPXVnKGIsbnVsbCxlLmNoaWxkcmVuLGMpO2Vsc2V7aWYobnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSlpZihmPWEuY2hpbGQsZD1mLnNpYmxpbmcsZyl7ZT1lLmZhbGxiYWNrO2M9b2coZixmLnBlbmRpbmdQcm9wcywwKTtjLnJldHVybj1iO2lmKDA9PT0oYi5tb2RlJjIpJiYoZz1udWxsIT09Yi5tZW1vaXplZFN0YXRlP2IuY2hpbGQuY2hpbGQ6Yi5jaGlsZCxnIT09Zi5jaGlsZCkpZm9yKGMuY2hpbGQ9ZztudWxsIT09ZzspZy5yZXR1cm49YyxnPWcuc2libGluZztlPW9nKGQsZSxkLmV4cGlyYXRpb25UaW1lKTtlLnJldHVybj1iO2Muc2libGluZz1lO2Q9YztjLmNoaWxkRXhwaXJhdGlvblRpbWU9MDtjPWV9ZWxzZSBkPWM9dGcoYixmLmNoaWxkLGUuY2hpbGRyZW4sYyk7ZWxzZSBpZihmPWEuY2hpbGQsZyl7Zz1lLmZhbGxiYWNrO2U9c2cobnVsbCxkLDAsbnVsbCk7ZS5yZXR1cm49YjtlLmNoaWxkPWY7bnVsbCE9PWYmJihmLnJldHVybj1lKTtpZigwPT09KGIubW9kZSZcbjIpKWZvcihmPW51bGwhPT1iLm1lbW9pemVkU3RhdGU/Yi5jaGlsZC5jaGlsZDpiLmNoaWxkLGUuY2hpbGQ9ZjtudWxsIT09ZjspZi5yZXR1cm49ZSxmPWYuc2libGluZztjPXNnKGcsZCxjLG51bGwpO2MucmV0dXJuPWI7ZS5zaWJsaW5nPWM7Yy5lZmZlY3RUYWd8PTI7ZD1lO2UuY2hpbGRFeHBpcmF0aW9uVGltZT0wfWVsc2UgYz1kPXRnKGIsZixlLmNoaWxkcmVuLGMpO2Iuc3RhdGVOb2RlPWEuc3RhdGVOb2RlfWIubWVtb2l6ZWRTdGF0ZT1oO2IuY2hpbGQ9ZDtyZXR1cm4gY31mdW5jdGlvbiBRaChhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zj9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwsbGFzdDpkLHRhaWw6Yyx0YWlsRXhwaXJhdGlvbjowLHRhaWxNb2RlOmV9OihmLmlzQmFja3dhcmRzPWIsZi5yZW5kZXJpbmc9bnVsbCxmLmxhc3Q9ZCxmLnRhaWw9YyxmLnRhaWxFeHBpcmF0aW9uPTAsZi50YWlsTW9kZT1lKX1cbmZ1bmN0aW9uIFJoKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQucmV2ZWFsT3JkZXIsZj1kLnRhaWw7UyhhLGIsZC5jaGlsZHJlbixjKTtkPVAuY3VycmVudDtpZigwIT09KGQmR2cpKWQ9ZCZFZ3xHZyxiLmVmZmVjdFRhZ3w9NjQ7ZWxzZXtpZihudWxsIT09YSYmMCE9PShhLmVmZmVjdFRhZyY2NCkpYTpmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7aWYoMTM9PT1hLnRhZyl7aWYobnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSl7YS5leHBpcmF0aW9uVGltZTxjJiYoYS5leHBpcmF0aW9uVGltZT1jKTt2YXIgaD1hLmFsdGVybmF0ZTtudWxsIT09aCYmaC5leHBpcmF0aW9uVGltZTxjJiYoaC5leHBpcmF0aW9uVGltZT1jKTtKZihhLnJldHVybixjKX19ZWxzZSBpZihudWxsIT09YS5jaGlsZCl7YS5jaGlsZC5yZXR1cm49YTthPWEuY2hpbGQ7Y29udGludWV9aWYoYT09PWIpYnJlYWsgYTtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fGEucmV0dXJuPT09XG5iKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfWQmPUVnfUooUCxkLGIpO2lmKDA9PT0oYi5tb2RlJjIpKWIubWVtb2l6ZWRTdGF0ZT1udWxsO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgXCJmb3J3YXJkc1wiOmM9Yi5jaGlsZDtmb3IoZT1udWxsO251bGwhPT1jOylkPWMuYWx0ZXJuYXRlLG51bGwhPT1kJiZudWxsPT09SGcoZCkmJihlPWMpLGM9Yy5zaWJsaW5nO2M9ZTtudWxsPT09Yz8oZT1iLmNoaWxkLGIuY2hpbGQ9bnVsbCk6KGU9Yy5zaWJsaW5nLGMuc2libGluZz1udWxsKTtRaChiLCExLGUsYyxmKTticmVhaztjYXNlIFwiYmFja3dhcmRzXCI6Yz1udWxsO2U9Yi5jaGlsZDtmb3IoYi5jaGlsZD1udWxsO251bGwhPT1lOyl7ZD1lLmFsdGVybmF0ZTtpZihudWxsIT09ZCYmbnVsbD09PUhnKGQpKXtiLmNoaWxkPWU7YnJlYWt9ZD1lLnNpYmxpbmc7ZS5zaWJsaW5nPWM7Yz1lO2U9ZH1RaChiLCEwLGMsbnVsbCxmKTticmVhaztjYXNlIFwidG9nZXRoZXJcIjpRaChiLFxuITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDpiLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBGaChhLGIsYyl7bnVsbCE9PWEmJihiLmRlcGVuZGVuY2llcz1hLmRlcGVuZGVuY2llcyk7aWYoYi5jaGlsZEV4cGlyYXRpb25UaW1lPGMpcmV0dXJuIG51bGw7aWYobnVsbCE9PWEmJmIuY2hpbGQhPT1hLmNoaWxkKXRocm93IHQoRXJyb3IoMTUzKSk7aWYobnVsbCE9PWIuY2hpbGQpe2E9Yi5jaGlsZDtjPW9nKGEsYS5wZW5kaW5nUHJvcHMsYS5leHBpcmF0aW9uVGltZSk7Yi5jaGlsZD1jO2ZvcihjLnJldHVybj1iO251bGwhPT1hLnNpYmxpbmc7KWE9YS5zaWJsaW5nLGM9Yy5zaWJsaW5nPW9nKGEsYS5wZW5kaW5nUHJvcHMsYS5leHBpcmF0aW9uVGltZSksYy5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbH1yZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBTaChhKXthLmVmZmVjdFRhZ3w9NH1cbnZhciBUaD12b2lkIDAsVWg9dm9pZCAwLFZoPXZvaWQgMCxXaD12b2lkIDA7VGg9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZDtudWxsIT09Yzspe2lmKDU9PT1jLnRhZ3x8Nj09PWMudGFnKWEuYXBwZW5kQ2hpbGQoYy5zdGF0ZU5vZGUpO2Vsc2UgaWYoMjA9PT1jLnRhZylhLmFwcGVuZENoaWxkKGMuc3RhdGVOb2RlLmluc3RhbmNlKTtlbHNlIGlmKDQhPT1jLnRhZyYmbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1iKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1iKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fTtVaD1mdW5jdGlvbigpe307XG5WaD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRQcm9wcztpZihmIT09ZCl7dmFyIGg9Yi5zdGF0ZU5vZGU7emcod2cuY3VycmVudCk7YT1udWxsO3N3aXRjaChjKXtjYXNlIFwiaW5wdXRcIjpmPUJjKGgsZik7ZD1CYyhoLGQpO2E9W107YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmY9bGUoaCxmKTtkPWxlKGgsZCk7YT1bXTticmVhaztjYXNlIFwic2VsZWN0XCI6Zj1tKHt9LGYse3ZhbHVlOnZvaWQgMH0pO2Q9bSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTthPVtdO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmY9bmUoaCxmKTtkPW5lKGgsZCk7YT1bXTticmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBmLm9uQ2xpY2smJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLm9uQ2xpY2smJihoLm9uY2xpY2s9R2UpfURlKGMsZCk7aD1jPXZvaWQgMDt2YXIgZz1udWxsO2ZvcihjIGluIGYpaWYoIWQuaGFzT3duUHJvcGVydHkoYykmJmYuaGFzT3duUHJvcGVydHkoYykmJm51bGwhPWZbY10paWYoXCJzdHlsZVwiPT09XG5jKXt2YXIgaz1mW2NdO2ZvcihoIGluIGspay5oYXNPd25Qcm9wZXJ0eShoKSYmKGd8fChnPXt9KSxnW2hdPVwiXCIpfWVsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIhPT1jJiZcImNoaWxkcmVuXCIhPT1jJiZcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09YyYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWMmJlwiYXV0b0ZvY3VzXCIhPT1jJiYoaWEuaGFzT3duUHJvcGVydHkoYyk/YXx8KGE9W10pOihhPWF8fFtdKS5wdXNoKGMsbnVsbCkpO2ZvcihjIGluIGQpe3ZhciBsPWRbY107az1udWxsIT1mP2ZbY106dm9pZCAwO2lmKGQuaGFzT3duUHJvcGVydHkoYykmJmwhPT1rJiYobnVsbCE9bHx8bnVsbCE9aykpaWYoXCJzdHlsZVwiPT09YylpZihrKXtmb3IoaCBpbiBrKSFrLmhhc093blByb3BlcnR5KGgpfHxsJiZsLmhhc093blByb3BlcnR5KGgpfHwoZ3x8KGc9e30pLGdbaF09XCJcIik7Zm9yKGggaW4gbClsLmhhc093blByb3BlcnR5KGgpJiZrW2hdIT09bFtoXSYmKGd8fFxuKGc9e30pLGdbaF09bFtoXSl9ZWxzZSBnfHwoYXx8KGE9W10pLGEucHVzaChjLGcpKSxnPWw7ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWM/KGw9bD9sLl9faHRtbDp2b2lkIDAsaz1rP2suX19odG1sOnZvaWQgMCxudWxsIT1sJiZrIT09bCYmKGE9YXx8W10pLnB1c2goYyxcIlwiK2wpKTpcImNoaWxkcmVuXCI9PT1jP2s9PT1sfHxcInN0cmluZ1wiIT09dHlwZW9mIGwmJlwibnVtYmVyXCIhPT10eXBlb2YgbHx8KGE9YXx8W10pLnB1c2goYyxcIlwiK2wpOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1jJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09YyYmKGlhLmhhc093blByb3BlcnR5KGMpPyhudWxsIT1sJiZGZShlLGMpLGF8fGs9PT1sfHwoYT1bXSkpOihhPWF8fFtdKS5wdXNoKGMsbCkpfWcmJihhPWF8fFtdKS5wdXNoKFwic3R5bGVcIixnKTtlPWE7KGIudXBkYXRlUXVldWU9ZSkmJlNoKGIpfX07V2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PWQmJlNoKGIpfTtcbmZ1bmN0aW9uICRoKGEsYil7c3dpdGNoKGEudGFpbE1vZGUpe2Nhc2UgXCJoaWRkZW5cIjpiPWEudGFpbDtmb3IodmFyIGM9bnVsbDtudWxsIT09YjspbnVsbCE9PWIuYWx0ZXJuYXRlJiYoYz1iKSxiPWIuc2libGluZztudWxsPT09Yz9hLnRhaWw9bnVsbDpjLnNpYmxpbmc9bnVsbDticmVhaztjYXNlIFwiY29sbGFwc2VkXCI6Yz1hLnRhaWw7Zm9yKHZhciBkPW51bGw7bnVsbCE9PWM7KW51bGwhPT1jLmFsdGVybmF0ZSYmKGQ9YyksYz1jLnNpYmxpbmc7bnVsbD09PWQ/Ynx8bnVsbD09PWEudGFpbD9hLnRhaWw9bnVsbDphLnRhaWwuc2libGluZz1udWxsOmQuc2libGluZz1udWxsfX1cbmZ1bmN0aW9uIGFpKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAxOk4oYS50eXBlKSYmVGUoYSk7dmFyIGI9YS5lZmZlY3RUYWc7cmV0dXJuIGImMjA0OD8oYS5lZmZlY3RUYWc9YiYtMjA0OXw2NCxhKTpudWxsO2Nhc2UgMzpCZyhhKTtVZShhKTtiPWEuZWZmZWN0VGFnO2lmKDAhPT0oYiY2NCkpdGhyb3cgdChFcnJvcigyODUpKTthLmVmZmVjdFRhZz1iJi0yMDQ5fDY0O3JldHVybiBhO2Nhc2UgNTpyZXR1cm4gRGcoYSksbnVsbDtjYXNlIDEzOnJldHVybiBIKFAsYSksYj1hLmVmZmVjdFRhZyxiJjIwNDg/KGEuZWZmZWN0VGFnPWImLTIwNDl8NjQsYSk6bnVsbDtjYXNlIDE4OnJldHVybiBudWxsO2Nhc2UgMTk6cmV0dXJuIEgoUCxhKSxudWxsO2Nhc2UgNDpyZXR1cm4gQmcoYSksbnVsbDtjYXNlIDEwOnJldHVybiBJZihhKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGJpKGEsYil7cmV0dXJue3ZhbHVlOmEsc291cmNlOmIsc3RhY2s6cGMoYil9fVxudmFyIGNpPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0P1dlYWtTZXQ6U2V0O2Z1bmN0aW9uIGRpKGEsYil7dmFyIGM9Yi5zb3VyY2UsZD1iLnN0YWNrO251bGw9PT1kJiZudWxsIT09YyYmKGQ9cGMoYykpO251bGwhPT1jJiZvYyhjLnR5cGUpO2I9Yi52YWx1ZTtudWxsIT09YSYmMT09PWEudGFnJiZvYyhhLnR5cGUpO3RyeXtjb25zb2xlLmVycm9yKGIpfWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlO30pfX1mdW5jdGlvbiBlaShhLGIpe3RyeXtiLnByb3BzPWEubWVtb2l6ZWRQcm9wcyxiLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSxiLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goYyl7ZmkoYSxjKX19ZnVuY3Rpb24gZ2koYSl7dmFyIGI9YS5yZWY7aWYobnVsbCE9PWIpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpdHJ5e2IobnVsbCl9Y2F0Y2goYyl7ZmkoYSxjKX1lbHNlIGIuY3VycmVudD1udWxsfVxuZnVuY3Rpb24gaGkoYSxiLGMpe2M9Yy51cGRhdGVRdWV1ZTtjPW51bGwhPT1jP2MubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1jKXt2YXIgZD1jPWMubmV4dDtkb3tpZigoZC50YWcmYSkhPT1JZyl7dmFyIGU9ZC5kZXN0cm95O2QuZGVzdHJveT12b2lkIDA7dm9pZCAwIT09ZSYmZSgpfShkLnRhZyZiKSE9PUlnJiYoZT1kLmNyZWF0ZSxkLmRlc3Ryb3k9ZSgpKTtkPWQubmV4dH13aGlsZShkIT09Yyl9fVxuZnVuY3Rpb24gaWkoYSxiKXtcImZ1bmN0aW9uXCI9PT10eXBlb2YgamkmJmppKGEpO3N3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OnZhciBjPWEudXBkYXRlUXVldWU7aWYobnVsbCE9PWMmJihjPWMubGFzdEVmZmVjdCxudWxsIT09Yykpe3ZhciBkPWMubmV4dDt2Zig5NzxiPzk3OmIsZnVuY3Rpb24oKXt2YXIgYj1kO2Rve3ZhciBjPWIuZGVzdHJveTtpZih2b2lkIDAhPT1jKXt2YXIgaD1hO3RyeXtjKCl9Y2F0Y2goZyl7ZmkoaCxnKX19Yj1iLm5leHR9d2hpbGUoYiE9PWQpfSl9YnJlYWs7Y2FzZSAxOmdpKGEpO2I9YS5zdGF0ZU5vZGU7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuY29tcG9uZW50V2lsbFVubW91bnQmJmVpKGEsYik7YnJlYWs7Y2FzZSA1OmdpKGEpO2JyZWFrO2Nhc2UgNDpraShhLGIpfX1cbmZ1bmN0aW9uIGxpKGEsYil7Zm9yKHZhciBjPWE7OylpZihpaShjLGIpLG51bGwhPT1jLmNoaWxkJiY0IT09Yy50YWcpYy5jaGlsZC5yZXR1cm49YyxjPWMuY2hpbGQ7ZWxzZXtpZihjPT09YSlicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YSlyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX1mdW5jdGlvbiBtaShhKXtyZXR1cm4gNT09PWEudGFnfHwzPT09YS50YWd8fDQ9PT1hLnRhZ31cbmZ1bmN0aW9uIG5pKGEpe2E6e2Zvcih2YXIgYj1hLnJldHVybjtudWxsIT09Yjspe2lmKG1pKGIpKXt2YXIgYz1iO2JyZWFrIGF9Yj1iLnJldHVybn10aHJvdyB0KEVycm9yKDE2MCkpO31iPWMuc3RhdGVOb2RlO3N3aXRjaChjLnRhZyl7Y2FzZSA1OnZhciBkPSExO2JyZWFrO2Nhc2UgMzpiPWIuY29udGFpbmVySW5mbztkPSEwO2JyZWFrO2Nhc2UgNDpiPWIuY29udGFpbmVySW5mbztkPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigxNjEpKTt9Yy5lZmZlY3RUYWcmMTYmJih3ZShiLFwiXCIpLGMuZWZmZWN0VGFnJj0tMTcpO2E6Yjpmb3IoYz1hOzspe2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8bWkoYy5yZXR1cm4pKXtjPW51bGw7YnJlYWsgYX1jPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Zm9yKGM9Yy5zaWJsaW5nOzUhPT1jLnRhZyYmNiE9PWMudGFnJiYxOCE9PWMudGFnOyl7aWYoYy5lZmZlY3RUYWcmMiljb250aW51ZSBiO1xuaWYobnVsbD09PWMuY2hpbGR8fDQ9PT1jLnRhZyljb250aW51ZSBiO2Vsc2UgYy5jaGlsZC5yZXR1cm49YyxjPWMuY2hpbGR9aWYoIShjLmVmZmVjdFRhZyYyKSl7Yz1jLnN0YXRlTm9kZTticmVhayBhfX1mb3IodmFyIGU9YTs7KXt2YXIgZj01PT09ZS50YWd8fDY9PT1lLnRhZztpZihmfHwyMD09PWUudGFnKXt2YXIgaD1mP2Uuc3RhdGVOb2RlOmUuc3RhdGVOb2RlLmluc3RhbmNlO2lmKGMpaWYoZCl7Zj1iO3ZhciBnPWg7aD1jOzg9PT1mLm5vZGVUeXBlP2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxoKTpmLmluc2VydEJlZm9yZShnLGgpfWVsc2UgYi5pbnNlcnRCZWZvcmUoaCxjKTtlbHNlIGQ/KGc9Yiw4PT09Zy5ub2RlVHlwZT8oZj1nLnBhcmVudE5vZGUsZi5pbnNlcnRCZWZvcmUoaCxnKSk6KGY9ZyxmLmFwcGVuZENoaWxkKGgpKSxnPWcuX3JlYWN0Um9vdENvbnRhaW5lcixudWxsIT09ZyYmdm9pZCAwIT09Z3x8bnVsbCE9PWYub25jbGlja3x8KGYub25jbGljaz1HZSkpOlxuYi5hcHBlbmRDaGlsZChoKX1lbHNlIGlmKDQhPT1lLnRhZyYmbnVsbCE9PWUuY2hpbGQpe2UuY2hpbGQucmV0dXJuPWU7ZT1lLmNoaWxkO2NvbnRpbnVlfWlmKGU9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWUuc2libGluZzspe2lmKG51bGw9PT1lLnJldHVybnx8ZS5yZXR1cm49PT1hKXJldHVybjtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm47ZT1lLnNpYmxpbmd9fVxuZnVuY3Rpb24ga2koYSxiKXtmb3IodmFyIGM9YSxkPSExLGU9dm9pZCAwLGY9dm9pZCAwOzspe2lmKCFkKXtkPWMucmV0dXJuO2E6Zm9yKDs7KXtpZihudWxsPT09ZCl0aHJvdyB0KEVycm9yKDE2MCkpO2U9ZC5zdGF0ZU5vZGU7c3dpdGNoKGQudGFnKXtjYXNlIDU6Zj0hMTticmVhayBhO2Nhc2UgMzplPWUuY29udGFpbmVySW5mbztmPSEwO2JyZWFrIGE7Y2FzZSA0OmU9ZS5jb250YWluZXJJbmZvO2Y9ITA7YnJlYWsgYX1kPWQucmV0dXJufWQ9ITB9aWYoNT09PWMudGFnfHw2PT09Yy50YWcpaWYobGkoYyxiKSxmKXt2YXIgaD1lLGc9Yy5zdGF0ZU5vZGU7OD09PWgubm9kZVR5cGU/aC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpOmgucmVtb3ZlQ2hpbGQoZyl9ZWxzZSBlLnJlbW92ZUNoaWxkKGMuc3RhdGVOb2RlKTtlbHNlIGlmKDIwPT09Yy50YWcpZz1jLnN0YXRlTm9kZS5pbnN0YW5jZSxsaShjLGIpLGY/KGg9ZSw4PT09aC5ub2RlVHlwZT9oLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyk6XG5oLnJlbW92ZUNoaWxkKGcpKTplLnJlbW92ZUNoaWxkKGcpO2Vsc2UgaWYoND09PWMudGFnKXtpZihudWxsIT09Yy5jaGlsZCl7ZT1jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2Y9ITA7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9fWVsc2UgaWYoaWkoYyxiKSxudWxsIT09Yy5jaGlsZCl7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9aWYoYz09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWEpcmV0dXJuO2M9Yy5yZXR1cm47ND09PWMudGFnJiYoZD0hMSl9Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319XG5mdW5jdGlvbiBvaShhLGIpe3N3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmhpKEtnLExnLGIpO2JyZWFrO2Nhc2UgMTpicmVhaztjYXNlIDU6dmFyIGM9Yi5zdGF0ZU5vZGU7aWYobnVsbCE9Yyl7dmFyIGQ9Yi5tZW1vaXplZFByb3BzLGU9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOmQ7YT1iLnR5cGU7dmFyIGY9Yi51cGRhdGVRdWV1ZTtiLnVwZGF0ZVF1ZXVlPW51bGw7aWYobnVsbCE9PWYpe2NbR2FdPWQ7XCJpbnB1dFwiPT09YSYmXCJyYWRpb1wiPT09ZC50eXBlJiZudWxsIT1kLm5hbWUmJkRjKGMsZCk7RWUoYSxlKTtiPUVlKGEsZCk7Zm9yKGU9MDtlPGYubGVuZ3RoO2UrPTIpe3ZhciBoPWZbZV0sZz1mW2UrMV07XCJzdHlsZVwiPT09aD9BZShjLGcpOlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWg/dmUoYyxnKTpcImNoaWxkcmVuXCI9PT1oP3dlKGMsZyk6emMoYyxoLGcsYil9c3dpdGNoKGEpe2Nhc2UgXCJpbnB1dFwiOkVjKGMsZCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6cGUoYyxcbmQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpiPWMuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSxjLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFkLm11bHRpcGxlLGE9ZC52YWx1ZSxudWxsIT1hP21lKGMsISFkLm11bHRpcGxlLGEsITEpOmIhPT0hIWQubXVsdGlwbGUmJihudWxsIT1kLmRlZmF1bHRWYWx1ZT9tZShjLCEhZC5tdWx0aXBsZSxkLmRlZmF1bHRWYWx1ZSwhMCk6bWUoYywhIWQubXVsdGlwbGUsZC5tdWx0aXBsZT9bXTpcIlwiLCExKSl9fX1icmVhaztjYXNlIDY6aWYobnVsbD09PWIuc3RhdGVOb2RlKXRocm93IHQoRXJyb3IoMTYyKSk7Yi5zdGF0ZU5vZGUubm9kZVZhbHVlPWIubWVtb2l6ZWRQcm9wczticmVhaztjYXNlIDM6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDEzOmM9YjtudWxsPT09Yi5tZW1vaXplZFN0YXRlP2Q9ITE6KGQ9ITAsYz1iLmNoaWxkLHBpPXNmKCkpO2lmKG51bGwhPT1jKWE6Zm9yKGE9Yzs7KXtpZig1PT09YS50YWcpZj1hLnN0YXRlTm9kZSxkPyhmPVxuZi5zdHlsZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5zZXRQcm9wZXJ0eT9mLnNldFByb3BlcnR5KFwiZGlzcGxheVwiLFwibm9uZVwiLFwiaW1wb3J0YW50XCIpOmYuZGlzcGxheT1cIm5vbmVcIik6KGY9YS5zdGF0ZU5vZGUsZT1hLm1lbW9pemVkUHJvcHMuc3R5bGUsZT12b2lkIDAhPT1lJiZudWxsIT09ZSYmZS5oYXNPd25Qcm9wZXJ0eShcImRpc3BsYXlcIik/ZS5kaXNwbGF5Om51bGwsZi5zdHlsZS5kaXNwbGF5PXplKFwiZGlzcGxheVwiLGUpKTtlbHNlIGlmKDY9PT1hLnRhZylhLnN0YXRlTm9kZS5ub2RlVmFsdWU9ZD9cIlwiOmEubWVtb2l6ZWRQcm9wcztlbHNlIGlmKDEzPT09YS50YWcmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUpe2Y9YS5jaGlsZC5zaWJsaW5nO2YucmV0dXJuPWE7YT1mO2NvbnRpbnVlfWVsc2UgaWYobnVsbCE9PWEuY2hpbGQpe2EuY2hpbGQucmV0dXJuPWE7YT1hLmNoaWxkO2NvbnRpbnVlfWlmKGE9PT1jKWJyZWFrIGE7Zm9yKDtudWxsPT09YS5zaWJsaW5nOyl7aWYobnVsbD09PVxuYS5yZXR1cm58fGEucmV0dXJuPT09YylicmVhayBhO2E9YS5yZXR1cm59YS5zaWJsaW5nLnJldHVybj1hLnJldHVybjthPWEuc2libGluZ31xaShiKTticmVhaztjYXNlIDE5OnFpKGIpO2JyZWFrO2Nhc2UgMTc6YnJlYWs7Y2FzZSAyMDpicmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMTYzKSk7fX1mdW5jdGlvbiBxaShhKXt2YXIgYj1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGM9YS5zdGF0ZU5vZGU7bnVsbD09PWMmJihjPWEuc3RhdGVOb2RlPW5ldyBjaSk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPXJpLmJpbmQobnVsbCxhLGIpO2MuaGFzKGIpfHwoYy5hZGQoYiksYi50aGVuKGQsZCkpfSl9fXZhciBzaT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcDtcbmZ1bmN0aW9uIHRpKGEsYixjKXtjPVFmKGMsbnVsbCk7Yy50YWc9MztjLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIGQ9Yi52YWx1ZTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7dWl8fCh1aT0hMCx2aT1kKTtkaShhLGIpfTtyZXR1cm4gY31cbmZ1bmN0aW9uIHdpKGEsYixjKXtjPVFmKGMsbnVsbCk7Yy50YWc9Mzt2YXIgZD1hLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXt2YXIgZT1iLnZhbHVlO2MucGF5bG9hZD1mdW5jdGlvbigpe2RpKGEsYik7cmV0dXJuIGQoZSl9fXZhciBmPWEuc3RhdGVOb2RlO251bGwhPT1mJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5jb21wb25lbnREaWRDYXRjaCYmKGMuY2FsbGJhY2s9ZnVuY3Rpb24oKXtcImZ1bmN0aW9uXCIhPT10eXBlb2YgZCYmKG51bGw9PT14aT94aT1uZXcgU2V0KFt0aGlzXSk6eGkuYWRkKHRoaXMpLGRpKGEsYikpO3ZhciBjPWIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChiLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09Yz9jOlwiXCJ9KX0pO3JldHVybiBjfVxudmFyIHlpPU1hdGguY2VpbCx6aT1YYi5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLEFpPVhiLlJlYWN0Q3VycmVudE93bmVyLFQ9MCxCaT04LENpPTE2LERpPTMyLEVpPTAsRmk9MSxHaT0yLEhpPTMsSWk9NCxVPVQsSmk9bnVsbCxWPW51bGwsVz0wLFg9RWksS2k9MTA3Mzc0MTgyMyxMaT0xMDczNzQxODIzLE1pPW51bGwsTmk9ITEscGk9MCxPaT01MDAsWT1udWxsLHVpPSExLHZpPW51bGwseGk9bnVsbCxQaT0hMSxRaT1udWxsLFJpPTkwLFNpPTAsVGk9bnVsbCxVaT0wLFZpPW51bGwsV2k9MDtmdW5jdGlvbiBjZygpe3JldHVybihVJihDaXxEaSkpIT09VD8xMDczNzQxODIxLShzZigpLzEwfDApOjAhPT1XaT9XaTpXaT0xMDczNzQxODIxLShzZigpLzEwfDApfVxuZnVuY3Rpb24gZGcoYSxiLGMpe2I9Yi5tb2RlO2lmKDA9PT0oYiYyKSlyZXR1cm4gMTA3Mzc0MTgyMzt2YXIgZD10ZigpO2lmKDA9PT0oYiY0KSlyZXR1cm4gOTk9PT1kPzEwNzM3NDE4MjM6MTA3Mzc0MTgyMjtpZigoVSZDaSkhPT1UKXJldHVybiBXO2lmKG51bGwhPT1jKWE9MTA3Mzc0MTgyMS0yNSooKCgxMDczNzQxODIxLWErKGMudGltZW91dE1zfDB8fDVFMykvMTApLzI1fDApKzEpO2Vsc2Ugc3dpdGNoKGQpe2Nhc2UgOTk6YT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgOTg6YT0xMDczNzQxODIxLTEwKigoKDEwNzM3NDE4MjEtYSsxNSkvMTB8MCkrMSk7YnJlYWs7Y2FzZSA5NzpjYXNlIDk2OmE9MTA3Mzc0MTgyMS0yNSooKCgxMDczNzQxODIxLWErNTAwKS8yNXwwKSsxKTticmVhaztjYXNlIDk1OmE9MTticmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMzI2KSk7fW51bGwhPT1KaSYmYT09PVcmJi0tYTtyZXR1cm4gYX12YXIgWGk9MDtcbmZ1bmN0aW9uIGVnKGEsYil7aWYoNTA8VWkpdGhyb3cgVWk9MCxWaT1udWxsLHQoRXJyb3IoMTg1KSk7YT1ZaShhLGIpO2lmKG51bGwhPT1hKXthLnBpbmdUaW1lPTA7dmFyIGM9dGYoKTtpZigxMDczNzQxODIzPT09YilpZigoVSZCaSkhPT1UJiYoVSYoQ2l8RGkpKT09PVQpZm9yKHZhciBkPVooYSwxMDczNzQxODIzLCEwKTtudWxsIT09ZDspZD1kKCEwKTtlbHNlIFppKGEsOTksMTA3Mzc0MTgyMyksVT09PVQmJk8oKTtlbHNlIFppKGEsYyxiKTsoVSY0KT09PVR8fDk4IT09YyYmOTkhPT1jfHwobnVsbD09PVRpP1RpPW5ldyBNYXAoW1thLGJdXSk6KGM9VGkuZ2V0KGEpLCh2b2lkIDA9PT1jfHxjPmIpJiZUaS5zZXQoYSxiKSkpfX1cbmZ1bmN0aW9uIFlpKGEsYil7YS5leHBpcmF0aW9uVGltZTxiJiYoYS5leHBpcmF0aW9uVGltZT1iKTt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmYy5leHBpcmF0aW9uVGltZTxiJiYoYy5leHBpcmF0aW9uVGltZT1iKTt2YXIgZD1hLnJldHVybixlPW51bGw7aWYobnVsbD09PWQmJjM9PT1hLnRhZyllPWEuc3RhdGVOb2RlO2Vsc2UgZm9yKDtudWxsIT09ZDspe2M9ZC5hbHRlcm5hdGU7ZC5jaGlsZEV4cGlyYXRpb25UaW1lPGImJihkLmNoaWxkRXhwaXJhdGlvblRpbWU9Yik7bnVsbCE9PWMmJmMuY2hpbGRFeHBpcmF0aW9uVGltZTxiJiYoYy5jaGlsZEV4cGlyYXRpb25UaW1lPWIpO2lmKG51bGw9PT1kLnJldHVybiYmMz09PWQudGFnKXtlPWQuc3RhdGVOb2RlO2JyZWFrfWQ9ZC5yZXR1cm59bnVsbCE9PWUmJihiPmUuZmlyc3RQZW5kaW5nVGltZSYmKGUuZmlyc3RQZW5kaW5nVGltZT1iKSxhPWUubGFzdFBlbmRpbmdUaW1lLDA9PT1hfHxiPGEpJiYoZS5sYXN0UGVuZGluZ1RpbWU9XG5iKTtyZXR1cm4gZX1mdW5jdGlvbiBaaShhLGIsYyl7aWYoYS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPGMpe3ZhciBkPWEuY2FsbGJhY2tOb2RlO251bGwhPT1kJiZkIT09bWYmJmFmKGQpO2EuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT1jOzEwNzM3NDE4MjM9PT1jP2EuY2FsbGJhY2tOb2RlPXhmKCRpLmJpbmQobnVsbCxhLFouYmluZChudWxsLGEsYykpKTooZD1udWxsLDEhPT1jJiYoZD17dGltZW91dDoxMCooMTA3Mzc0MTgyMS1jKS1zZigpfSksYS5jYWxsYmFja05vZGU9d2YoYiwkaS5iaW5kKG51bGwsYSxaLmJpbmQobnVsbCxhLGMpKSxkKSl9fWZ1bmN0aW9uICRpKGEsYixjKXt2YXIgZD1hLmNhbGxiYWNrTm9kZSxlPW51bGw7dHJ5e3JldHVybiBlPWIoYyksbnVsbCE9PWU/JGkuYmluZChudWxsLGEsZSk6bnVsbH1maW5hbGx5e251bGw9PT1lJiZkPT09YS5jYWxsYmFja05vZGUmJihhLmNhbGxiYWNrTm9kZT1udWxsLGEuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0wKX19XG5mdW5jdGlvbiBhaigpeyhVJigxfENpfERpKSk9PT1UJiYoYmooKSxjaigpKX1mdW5jdGlvbiBkaihhLGIpe3ZhciBjPWEuZmlyc3RCYXRjaDtyZXR1cm4gbnVsbCE9PWMmJmMuX2RlZmVyJiZjLl9leHBpcmF0aW9uVGltZT49Yj8od2YoOTcsZnVuY3Rpb24oKXtjLl9vbkNvbXBsZXRlKCk7cmV0dXJuIG51bGx9KSwhMCk6ITF9ZnVuY3Rpb24gYmooKXtpZihudWxsIT09VGkpe3ZhciBhPVRpO1RpPW51bGw7YS5mb3JFYWNoKGZ1bmN0aW9uKGEsYyl7eGYoWi5iaW5kKG51bGwsYyxhKSl9KTtPKCl9fWZ1bmN0aW9uIGVqKGEsYil7dmFyIGM9VTtVfD0xO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e1U9YyxVPT09VCYmTygpfX1mdW5jdGlvbiBmaihhLGIsYyxkKXt2YXIgZT1VO1V8PTQ7dHJ5e3JldHVybiB2Zig5OCxhLmJpbmQobnVsbCxiLGMsZCkpfWZpbmFsbHl7VT1lLFU9PT1UJiZPKCl9fVxuZnVuY3Rpb24gZ2ooYSxiKXt2YXIgYz1VO1UmPS0yO1V8PUJpO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e1U9YyxVPT09VCYmTygpfX1cbmZ1bmN0aW9uIGhqKGEsYil7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9MDt2YXIgYz1hLnRpbWVvdXRIYW5kbGU7LTEhPT1jJiYoYS50aW1lb3V0SGFuZGxlPS0xLE1lKGMpKTtpZihudWxsIT09Vilmb3IoYz1WLnJldHVybjtudWxsIT09Yzspe3ZhciBkPWM7c3dpdGNoKGQudGFnKXtjYXNlIDE6dmFyIGU9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzO251bGwhPT1lJiZ2b2lkIDAhPT1lJiZUZShkKTticmVhaztjYXNlIDM6QmcoZCk7VWUoZCk7YnJlYWs7Y2FzZSA1OkRnKGQpO2JyZWFrO2Nhc2UgNDpCZyhkKTticmVhaztjYXNlIDEzOkgoUCxkKTticmVhaztjYXNlIDE5OkgoUCxkKTticmVhaztjYXNlIDEwOklmKGQpfWM9Yy5yZXR1cm59Smk9YTtWPW9nKGEuY3VycmVudCxudWxsLGIpO1c9YjtYPUVpO0xpPUtpPTEwNzM3NDE4MjM7TWk9bnVsbDtOaT0hMX1cbmZ1bmN0aW9uIFooYSxiLGMpe2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDMyNykpO2lmKGEuZmlyc3RQZW5kaW5nVGltZTxiKXJldHVybiBudWxsO2lmKGMmJmEuZmluaXNoZWRFeHBpcmF0aW9uVGltZT09PWIpcmV0dXJuIGlqLmJpbmQobnVsbCxhKTtjaigpO2lmKGEhPT1KaXx8YiE9PVcpaGooYSxiKTtlbHNlIGlmKFg9PT1IaSlpZihOaSloaihhLGIpO2Vsc2V7dmFyIGQ9YS5sYXN0UGVuZGluZ1RpbWU7aWYoZDxiKXJldHVybiBaLmJpbmQobnVsbCxhLGQpfWlmKG51bGwhPT1WKXtkPVU7VXw9Q2k7dmFyIGU9emkuY3VycmVudDtudWxsPT09ZSYmKGU9aGgpO3ppLmN1cnJlbnQ9aGg7aWYoYyl7aWYoMTA3Mzc0MTgyMyE9PWIpe3ZhciBmPWNnKCk7aWYoZjxiKXJldHVybiBVPWQsR2YoKSx6aS5jdXJyZW50PWUsWi5iaW5kKG51bGwsYSxmKX19ZWxzZSBXaT0wO2RvIHRyeXtpZihjKWZvcig7bnVsbCE9PVY7KVY9amooVik7ZWxzZSBmb3IoO251bGwhPT1WJiYhYmYoKTspVj1cbmpqKFYpO2JyZWFrfWNhdGNoKHJiKXtHZigpO2loKCk7Zj1WO2lmKG51bGw9PT1mfHxudWxsPT09Zi5yZXR1cm4pdGhyb3cgaGooYSxiKSxVPWQscmI7YTp7dmFyIGg9YSxnPWYucmV0dXJuLGs9ZixsPXJiLG49VztrLmVmZmVjdFRhZ3w9MTAyNDtrLmZpcnN0RWZmZWN0PWsubGFzdEVmZmVjdD1udWxsO2lmKG51bGwhPT1sJiZcIm9iamVjdFwiPT09dHlwZW9mIGwmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBsLnRoZW4pe3ZhciB6PWwseD0wIT09KFAuY3VycmVudCZGZyk7bD1nO2Rve3ZhciB2O2lmKHY9MTM9PT1sLnRhZyludWxsIT09bC5tZW1vaXplZFN0YXRlP3Y9ITE6KHY9bC5tZW1vaXplZFByb3BzLHY9dm9pZCAwPT09di5mYWxsYmFjaz8hMTohMCE9PXYudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2s/ITA6eD8hMTohMCk7aWYodil7Zz1sLnVwZGF0ZVF1ZXVlO251bGw9PT1nPyhnPW5ldyBTZXQsZy5hZGQoeiksbC51cGRhdGVRdWV1ZT1nKTpnLmFkZCh6KTtpZigwPT09KGwubW9kZSZcbjIpKXtsLmVmZmVjdFRhZ3w9NjQ7ay5lZmZlY3RUYWcmPS0xOTU3OzE9PT1rLnRhZyYmKG51bGw9PT1rLmFsdGVybmF0ZT9rLnRhZz0xNzoobj1RZigxMDczNzQxODIzLG51bGwpLG4udGFnPTIsU2YoayxuKSkpO2suZXhwaXJhdGlvblRpbWU9MTA3Mzc0MTgyMzticmVhayBhfWs9aDtoPW47eD1rLnBpbmdDYWNoZTtudWxsPT09eD8oeD1rLnBpbmdDYWNoZT1uZXcgc2ksZz1uZXcgU2V0LHguc2V0KHosZykpOihnPXguZ2V0KHopLHZvaWQgMD09PWcmJihnPW5ldyBTZXQseC5zZXQoeixnKSkpO2cuaGFzKGgpfHwoZy5hZGQoaCksaz1rai5iaW5kKG51bGwsayx6LGgpLHoudGhlbihrLGspKTtsLmVmZmVjdFRhZ3w9MjA0ODtsLmV4cGlyYXRpb25UaW1lPW47YnJlYWsgYX1sPWwucmV0dXJufXdoaWxlKG51bGwhPT1sKTtsPUVycm9yKChvYyhrLnR5cGUpfHxcIkEgUmVhY3QgY29tcG9uZW50XCIpK1wiIHN1c3BlbmRlZCB3aGlsZSByZW5kZXJpbmcsIGJ1dCBubyBmYWxsYmFjayBVSSB3YXMgc3BlY2lmaWVkLlxcblxcbkFkZCBhIDxTdXNwZW5zZSBmYWxsYmFjaz0uLi4+IGNvbXBvbmVudCBoaWdoZXIgaW4gdGhlIHRyZWUgdG8gcHJvdmlkZSBhIGxvYWRpbmcgaW5kaWNhdG9yIG9yIHBsYWNlaG9sZGVyIHRvIGRpc3BsYXkuXCIrXG5wYyhrKSl9WCE9PUlpJiYoWD1GaSk7bD1iaShsLGspO2s9Zztkb3tzd2l0Y2goay50YWcpe2Nhc2UgMzprLmVmZmVjdFRhZ3w9MjA0ODtrLmV4cGlyYXRpb25UaW1lPW47bj10aShrLGwsbik7VGYoayxuKTticmVhayBhO2Nhc2UgMTppZih6PWwsaD1rLnR5cGUsZz1rLnN0YXRlTm9kZSwwPT09KGsuZWZmZWN0VGFnJjY0KSYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PWcmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXhpfHwheGkuaGFzKGcpKSkpe2suZWZmZWN0VGFnfD0yMDQ4O2suZXhwaXJhdGlvblRpbWU9bjtuPXdpKGsseixuKTtUZihrLG4pO2JyZWFrIGF9fWs9ay5yZXR1cm59d2hpbGUobnVsbCE9PWspfVY9bGooZil9d2hpbGUoMSk7VT1kO0dmKCk7emkuY3VycmVudD1lO2lmKG51bGwhPT1WKXJldHVybiBaLmJpbmQobnVsbCxhLGIpfWEuZmluaXNoZWRXb3JrPWEuY3VycmVudC5hbHRlcm5hdGU7XG5hLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9YjtpZihkaihhLGIpKXJldHVybiBudWxsO0ppPW51bGw7c3dpdGNoKFgpe2Nhc2UgRWk6dGhyb3cgdChFcnJvcigzMjgpKTtjYXNlIEZpOnJldHVybiBkPWEubGFzdFBlbmRpbmdUaW1lLGQ8Yj9aLmJpbmQobnVsbCxhLGQpOmM/aWouYmluZChudWxsLGEpOihoaihhLGIpLHhmKFouYmluZChudWxsLGEsYikpLG51bGwpO2Nhc2UgR2k6aWYoMTA3Mzc0MTgyMz09PUtpJiYhYyYmKGM9cGkrT2ktc2YoKSwxMDxjKSl7aWYoTmkpcmV0dXJuIGhqKGEsYiksWi5iaW5kKG51bGwsYSxiKTtkPWEubGFzdFBlbmRpbmdUaW1lO2lmKGQ8YilyZXR1cm4gWi5iaW5kKG51bGwsYSxkKTthLnRpbWVvdXRIYW5kbGU9TGUoaWouYmluZChudWxsLGEpLGMpO3JldHVybiBudWxsfXJldHVybiBpai5iaW5kKG51bGwsYSk7Y2FzZSBIaTppZighYyl7aWYoTmkpcmV0dXJuIGhqKGEsYiksWi5iaW5kKG51bGwsYSxiKTtjPWEubGFzdFBlbmRpbmdUaW1lO2lmKGM8YilyZXR1cm4gWi5iaW5kKG51bGwsXG5hLGMpOzEwNzM3NDE4MjMhPT1MaT9jPTEwKigxMDczNzQxODIxLUxpKS1zZigpOjEwNzM3NDE4MjM9PT1LaT9jPTA6KGM9MTAqKDEwNzM3NDE4MjEtS2kpLTVFMyxkPXNmKCksYj0xMCooMTA3Mzc0MTgyMS1iKS1kLGM9ZC1jLDA+YyYmKGM9MCksYz0oMTIwPmM/MTIwOjQ4MD5jPzQ4MDoxMDgwPmM/MTA4MDoxOTIwPmM/MTkyMDozRTM+Yz8zRTM6NDMyMD5jPzQzMjA6MTk2MCp5aShjLzE5NjApKS1jLGI8YyYmKGM9YikpO2lmKDEwPGMpcmV0dXJuIGEudGltZW91dEhhbmRsZT1MZShpai5iaW5kKG51bGwsYSksYyksbnVsbH1yZXR1cm4gaWouYmluZChudWxsLGEpO2Nhc2UgSWk6cmV0dXJuIWMmJjEwNzM3NDE4MjMhPT1LaSYmbnVsbCE9PU1pJiYoZD1LaSxlPU1pLGI9ZS5idXN5TWluRHVyYXRpb25Nc3wwLDA+PWI/Yj0wOihjPWUuYnVzeURlbGF5TXN8MCxkPXNmKCktKDEwKigxMDczNzQxODIxLWQpLShlLnRpbWVvdXRNc3wwfHw1RTMpKSxiPWQ8PWM/MDpjK2ItZCksMTA8Yik/KGEudGltZW91dEhhbmRsZT1cbkxlKGlqLmJpbmQobnVsbCxhKSxiKSxudWxsKTppai5iaW5kKG51bGwsYSk7ZGVmYXVsdDp0aHJvdyB0KEVycm9yKDMyOSkpO319ZnVuY3Rpb24gWGYoYSxiKXthPEtpJiYxPGEmJihLaT1hKTtudWxsIT09YiYmYTxMaSYmMTxhJiYoTGk9YSxNaT1iKX1mdW5jdGlvbiBqaihhKXt2YXIgYj1taihhLmFsdGVybmF0ZSxhLFcpO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcztudWxsPT09YiYmKGI9bGooYSkpO0FpLmN1cnJlbnQ9bnVsbDtyZXR1cm4gYn1cbmZ1bmN0aW9uIGxqKGEpe1Y9YTtkb3t2YXIgYj1WLmFsdGVybmF0ZTthPVYucmV0dXJuO2lmKDA9PT0oVi5lZmZlY3RUYWcmMTAyNCkpe2E6e3ZhciBjPWI7Yj1WO3ZhciBkPVcsZT1iLnBlbmRpbmdQcm9wcztzd2l0Y2goYi50YWcpe2Nhc2UgMjpicmVhaztjYXNlIDE2OmJyZWFrO2Nhc2UgMTU6Y2FzZSAwOmJyZWFrO2Nhc2UgMTpOKGIudHlwZSkmJlRlKGIpO2JyZWFrO2Nhc2UgMzpCZyhiKTtVZShiKTtkPWIuc3RhdGVOb2RlO2QucGVuZGluZ0NvbnRleHQmJihkLmNvbnRleHQ9ZC5wZW5kaW5nQ29udGV4dCxkLnBlbmRpbmdDb250ZXh0PW51bGwpO2lmKG51bGw9PT1jfHxudWxsPT09Yy5jaGlsZClCaChiKSxiLmVmZmVjdFRhZyY9LTM7VWgoYik7YnJlYWs7Y2FzZSA1OkRnKGIpO2Q9emcoeWcuY3VycmVudCk7dmFyIGY9Yi50eXBlO2lmKG51bGwhPT1jJiZudWxsIT1iLnN0YXRlTm9kZSlWaChjLGIsZixlLGQpLGMucmVmIT09Yi5yZWYmJihiLmVmZmVjdFRhZ3w9MTI4KTtlbHNlIGlmKGUpe3ZhciBoPVxuemcod2cuY3VycmVudCk7aWYoQmgoYikpe2M9YjtlPXZvaWQgMDtmPWMuc3RhdGVOb2RlO3ZhciBnPWMudHlwZSxrPWMubWVtb2l6ZWRQcm9wcztmW0ZhXT1jO2ZbR2FdPWs7c3dpdGNoKGcpe2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixmKTticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IodmFyIGw9MDtsPGJiLmxlbmd0aDtsKyspRyhiYltsXSxmKTticmVhaztjYXNlIFwic291cmNlXCI6RyhcImVycm9yXCIsZik7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RyhcImVycm9yXCIsZik7RyhcImxvYWRcIixmKTticmVhaztjYXNlIFwiZm9ybVwiOkcoXCJyZXNldFwiLGYpO0coXCJzdWJtaXRcIixmKTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixmKTticmVhaztjYXNlIFwiaW5wdXRcIjpDYyhmLGspO0coXCJpbnZhbGlkXCIsZik7RmUoZCxcIm9uQ2hhbmdlXCIpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpmLl93cmFwcGVyU3RhdGU9XG57d2FzTXVsdGlwbGU6ISFrLm11bHRpcGxlfTtHKFwiaW52YWxpZFwiLGYpO0ZlKGQsXCJvbkNoYW5nZVwiKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpvZShmLGspLEcoXCJpbnZhbGlkXCIsZiksRmUoZCxcIm9uQ2hhbmdlXCIpfURlKGcsayk7bD1udWxsO2ZvcihlIGluIGspay5oYXNPd25Qcm9wZXJ0eShlKSYmKGg9a1tlXSxcImNoaWxkcmVuXCI9PT1lP1wic3RyaW5nXCI9PT10eXBlb2YgaD9mLnRleHRDb250ZW50IT09aCYmKGw9W1wiY2hpbGRyZW5cIixoXSk6XCJudW1iZXJcIj09PXR5cGVvZiBoJiZmLnRleHRDb250ZW50IT09XCJcIitoJiYobD1bXCJjaGlsZHJlblwiLFwiXCIraF0pOmlhLmhhc093blByb3BlcnR5KGUpJiZudWxsIT1oJiZGZShkLGUpKTtzd2l0Y2goZyl7Y2FzZSBcImlucHV0XCI6VmIoZik7R2MoZixrLCEwKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYihmKTtxZShmLGspO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpjYXNlIFwib3B0aW9uXCI6YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2Ygay5vbkNsaWNrJiZcbihmLm9uY2xpY2s9R2UpfWQ9bDtjLnVwZGF0ZVF1ZXVlPWQ7bnVsbCE9PWQmJlNoKGIpfWVsc2V7az1mO2M9ZTtnPWI7bD05PT09ZC5ub2RlVHlwZT9kOmQub3duZXJEb2N1bWVudDtoPT09cmUuaHRtbCYmKGg9c2UoaykpO2g9PT1yZS5odG1sP1wic2NyaXB0XCI9PT1rPyhrPWwuY3JlYXRlRWxlbWVudChcImRpdlwiKSxrLmlubmVySFRNTD1cIjxzY3JpcHQ+XFx4M2Mvc2NyaXB0PlwiLGw9ay5yZW1vdmVDaGlsZChrLmZpcnN0Q2hpbGQpKTpcInN0cmluZ1wiPT09dHlwZW9mIGMuaXM/bD1sLmNyZWF0ZUVsZW1lbnQoayx7aXM6Yy5pc30pOihsPWwuY3JlYXRlRWxlbWVudChrKSxcInNlbGVjdFwiPT09ayYmKGs9bCxjLm11bHRpcGxlP2subXVsdGlwbGU9ITA6Yy5zaXplJiYoay5zaXplPWMuc2l6ZSkpKTpsPWwuY3JlYXRlRWxlbWVudE5TKGgsayk7az1sO2tbRmFdPWc7a1tHYV09YztjPWs7VGgoYyxiLCExLCExKTtnPWM7dmFyIG49ZCx6PUVlKGYsZSk7c3dpdGNoKGYpe2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixcbmcpO2Q9ZTticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoZD0wO2Q8YmIubGVuZ3RoO2QrKylHKGJiW2RdLGcpO2Q9ZTticmVhaztjYXNlIFwic291cmNlXCI6RyhcImVycm9yXCIsZyk7ZD1lO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkcoXCJlcnJvclwiLGcpO0coXCJsb2FkXCIsZyk7ZD1lO2JyZWFrO2Nhc2UgXCJmb3JtXCI6RyhcInJlc2V0XCIsZyk7RyhcInN1Ym1pdFwiLGcpO2Q9ZTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixnKTtkPWU7YnJlYWs7Y2FzZSBcImlucHV0XCI6Q2MoZyxlKTtkPUJjKGcsZSk7RyhcImludmFsaWRcIixnKTtGZShuLFwib25DaGFuZ2VcIik7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmQ9bGUoZyxlKTticmVhaztjYXNlIFwic2VsZWN0XCI6Zy5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWUubXVsdGlwbGV9O2Q9bSh7fSxlLHt2YWx1ZTp2b2lkIDB9KTtHKFwiaW52YWxpZFwiLGcpO0ZlKG4sXCJvbkNoYW5nZVwiKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpvZShnLFxuZSk7ZD1uZShnLGUpO0coXCJpbnZhbGlkXCIsZyk7RmUobixcIm9uQ2hhbmdlXCIpO2JyZWFrO2RlZmF1bHQ6ZD1lfURlKGYsZCk7az12b2lkIDA7bD1mO2g9Zzt2YXIgeD1kO2ZvcihrIGluIHgpaWYoeC5oYXNPd25Qcm9wZXJ0eShrKSl7dmFyIHY9eFtrXTtcInN0eWxlXCI9PT1rP0FlKGgsdik6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09az8odj12P3YuX19odG1sOnZvaWQgMCxudWxsIT12JiZ2ZShoLHYpKTpcImNoaWxkcmVuXCI9PT1rP1wic3RyaW5nXCI9PT10eXBlb2Ygdj8oXCJ0ZXh0YXJlYVwiIT09bHx8XCJcIiE9PXYpJiZ3ZShoLHYpOlwibnVtYmVyXCI9PT10eXBlb2YgdiYmd2UoaCxcIlwiK3YpOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1rJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09ayYmXCJhdXRvRm9jdXNcIiE9PWsmJihpYS5oYXNPd25Qcm9wZXJ0eShrKT9udWxsIT12JiZGZShuLGspOm51bGwhPXYmJnpjKGgsayx2LHopKX1zd2l0Y2goZil7Y2FzZSBcImlucHV0XCI6VmIoZyk7XG5HYyhnLGUsITEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZiKGcpO3FlKGcsZSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOm51bGwhPWUudmFsdWUmJmcuc2V0QXR0cmlidXRlKFwidmFsdWVcIixcIlwiK0FjKGUudmFsdWUpKTticmVhaztjYXNlIFwic2VsZWN0XCI6ZD1nO2c9ZTtkLm11bHRpcGxlPSEhZy5tdWx0aXBsZTtrPWcudmFsdWU7bnVsbCE9az9tZShkLCEhZy5tdWx0aXBsZSxrLCExKTpudWxsIT1nLmRlZmF1bHRWYWx1ZSYmbWUoZCwhIWcubXVsdGlwbGUsZy5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGQub25DbGljayYmKGcub25jbGljaz1HZSl9SmUoZixlKSYmU2goYik7Yi5zdGF0ZU5vZGU9Y31udWxsIT09Yi5yZWYmJihiLmVmZmVjdFRhZ3w9MTI4KX1lbHNlIGlmKG51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyB0KEVycm9yKDE2NikpO2JyZWFrO2Nhc2UgNjppZihjJiZudWxsIT1iLnN0YXRlTm9kZSlXaChjLGIsYy5tZW1vaXplZFByb3BzLFxuZSk7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGUmJm51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyB0KEVycm9yKDE2NikpO2M9emcoeWcuY3VycmVudCk7emcod2cuY3VycmVudCk7QmgoYik/KGQ9Yi5zdGF0ZU5vZGUsYz1iLm1lbW9pemVkUHJvcHMsZFtGYV09YixkLm5vZGVWYWx1ZSE9PWMmJlNoKGIpKTooZD1iLGM9KDk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShlKSxjW0ZhXT1iLGQuc3RhdGVOb2RlPWMpfWJyZWFrO2Nhc2UgMTE6YnJlYWs7Y2FzZSAxMzpIKFAsYik7ZT1iLm1lbW9pemVkU3RhdGU7aWYoMCE9PShiLmVmZmVjdFRhZyY2NCkpe2IuZXhwaXJhdGlvblRpbWU9ZDticmVhayBhfWQ9bnVsbCE9PWU7ZT0hMTtudWxsPT09Yz9CaChiKTooZj1jLm1lbW9pemVkU3RhdGUsZT1udWxsIT09ZixkfHxudWxsPT09Znx8KGY9Yy5jaGlsZC5zaWJsaW5nLG51bGwhPT1mJiYoZz1iLmZpcnN0RWZmZWN0LG51bGwhPT1nPyhiLmZpcnN0RWZmZWN0PVxuZixmLm5leHRFZmZlY3Q9Zyk6KGIuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWYsZi5uZXh0RWZmZWN0PW51bGwpLGYuZWZmZWN0VGFnPTgpKSk7aWYoZCYmIWUmJjAhPT0oYi5tb2RlJjIpKWlmKG51bGw9PT1jJiYhMCE9PWIubWVtb2l6ZWRQcm9wcy51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8MCE9PShQLmN1cnJlbnQmRmcpKVg9PT1FaSYmKFg9R2kpO2Vsc2UgaWYoWD09PUVpfHxYPT09R2kpWD1IaTtpZihkfHxlKWIuZWZmZWN0VGFnfD00O2JyZWFrO2Nhc2UgNzpicmVhaztjYXNlIDg6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDQ6QmcoYik7VWgoYik7YnJlYWs7Y2FzZSAxMDpJZihiKTticmVhaztjYXNlIDk6YnJlYWs7Y2FzZSAxNDpicmVhaztjYXNlIDE3Ok4oYi50eXBlKSYmVGUoYik7YnJlYWs7Y2FzZSAxODpicmVhaztjYXNlIDE5OkgoUCxiKTtlPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09ZSlicmVhaztmPTAhPT0oYi5lZmZlY3RUYWcmNjQpO2c9ZS5yZW5kZXJpbmc7XG5pZihudWxsPT09ZylpZihmKSRoKGUsITEpO2Vsc2V7aWYoWCE9PUVpfHxudWxsIT09YyYmMCE9PShjLmVmZmVjdFRhZyY2NCkpZm9yKGM9Yi5jaGlsZDtudWxsIT09Yzspe2c9SGcoYyk7aWYobnVsbCE9PWcpe2IuZWZmZWN0VGFnfD02NDskaChlLCExKTtjPWcudXBkYXRlUXVldWU7bnVsbCE9PWMmJihiLnVwZGF0ZVF1ZXVlPWMsYi5lZmZlY3RUYWd8PTQpO2IuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PW51bGw7Zm9yKGM9Yi5jaGlsZDtudWxsIT09YzspZT1jLGY9ZCxlLmVmZmVjdFRhZyY9MixlLm5leHRFZmZlY3Q9bnVsbCxlLmZpcnN0RWZmZWN0PW51bGwsZS5sYXN0RWZmZWN0PW51bGwsZz1lLmFsdGVybmF0ZSxudWxsPT09Zz8oZS5jaGlsZEV4cGlyYXRpb25UaW1lPTAsZS5leHBpcmF0aW9uVGltZT1mLGUuY2hpbGQ9bnVsbCxlLm1lbW9pemVkUHJvcHM9bnVsbCxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGwsZS5kZXBlbmRlbmNpZXM9bnVsbCk6KGUuY2hpbGRFeHBpcmF0aW9uVGltZT1cbmcuY2hpbGRFeHBpcmF0aW9uVGltZSxlLmV4cGlyYXRpb25UaW1lPWcuZXhwaXJhdGlvblRpbWUsZS5jaGlsZD1nLmNoaWxkLGUubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZS5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxlLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZj1nLmRlcGVuZGVuY2llcyxlLmRlcGVuZGVuY2llcz1udWxsPT09Zj9udWxsOntleHBpcmF0aW9uVGltZTpmLmV4cGlyYXRpb25UaW1lLGZpcnN0Q29udGV4dDpmLmZpcnN0Q29udGV4dCxyZXNwb25kZXJzOmYucmVzcG9uZGVyc30pLGM9Yy5zaWJsaW5nO0ooUCxQLmN1cnJlbnQmRWd8R2csYik7Yj1iLmNoaWxkO2JyZWFrIGF9Yz1jLnNpYmxpbmd9fWVsc2V7aWYoIWYpaWYoYz1IZyhnKSxudWxsIT09Yyl7aWYoYi5lZmZlY3RUYWd8PTY0LGY9ITAsJGgoZSwhMCksbnVsbD09PWUudGFpbCYmXCJoaWRkZW5cIj09PWUudGFpbE1vZGUpe2Q9Yy51cGRhdGVRdWV1ZTtudWxsIT09ZCYmKGIudXBkYXRlUXVldWU9XG5kLGIuZWZmZWN0VGFnfD00KTtiPWIubGFzdEVmZmVjdD1lLmxhc3RFZmZlY3Q7bnVsbCE9PWImJihiLm5leHRFZmZlY3Q9bnVsbCk7YnJlYWt9fWVsc2Ugc2YoKT5lLnRhaWxFeHBpcmF0aW9uJiYxPGQmJihiLmVmZmVjdFRhZ3w9NjQsZj0hMCwkaChlLCExKSxiLmV4cGlyYXRpb25UaW1lPWIuY2hpbGRFeHBpcmF0aW9uVGltZT1kLTEpO2UuaXNCYWNrd2FyZHM/KGcuc2libGluZz1iLmNoaWxkLGIuY2hpbGQ9Zyk6KGQ9ZS5sYXN0LG51bGwhPT1kP2Quc2libGluZz1nOmIuY2hpbGQ9ZyxlLmxhc3Q9Zyl9aWYobnVsbCE9PWUudGFpbCl7MD09PWUudGFpbEV4cGlyYXRpb24mJihlLnRhaWxFeHBpcmF0aW9uPXNmKCkrNTAwKTtkPWUudGFpbDtlLnJlbmRlcmluZz1kO2UudGFpbD1kLnNpYmxpbmc7ZS5sYXN0RWZmZWN0PWIubGFzdEVmZmVjdDtkLnNpYmxpbmc9bnVsbDtjPVAuY3VycmVudDtjPWY/YyZFZ3xHZzpjJkVnO0ooUCxjLGIpO2I9ZDticmVhayBhfWJyZWFrO2Nhc2UgMjA6YnJlYWs7XG5kZWZhdWx0OnRocm93IHQoRXJyb3IoMTU2KSk7fWI9bnVsbH1kPVY7aWYoMT09PVd8fDEhPT1kLmNoaWxkRXhwaXJhdGlvblRpbWUpe2M9MDtmb3IoZT1kLmNoaWxkO251bGwhPT1lOylmPWUuZXhwaXJhdGlvblRpbWUsZz1lLmNoaWxkRXhwaXJhdGlvblRpbWUsZj5jJiYoYz1mKSxnPmMmJihjPWcpLGU9ZS5zaWJsaW5nO2QuY2hpbGRFeHBpcmF0aW9uVGltZT1jfWlmKG51bGwhPT1iKXJldHVybiBiO251bGwhPT1hJiYwPT09KGEuZWZmZWN0VGFnJjEwMjQpJiYobnVsbD09PWEuZmlyc3RFZmZlY3QmJihhLmZpcnN0RWZmZWN0PVYuZmlyc3RFZmZlY3QpLG51bGwhPT1WLmxhc3RFZmZlY3QmJihudWxsIT09YS5sYXN0RWZmZWN0JiYoYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9Vi5maXJzdEVmZmVjdCksYS5sYXN0RWZmZWN0PVYubGFzdEVmZmVjdCksMTxWLmVmZmVjdFRhZyYmKG51bGwhPT1hLmxhc3RFZmZlY3Q/YS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9VjphLmZpcnN0RWZmZWN0PVYsXG5hLmxhc3RFZmZlY3Q9VikpfWVsc2V7Yj1haShWLFcpO2lmKG51bGwhPT1iKXJldHVybiBiLmVmZmVjdFRhZyY9MTAyMyxiO251bGwhPT1hJiYoYS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9bnVsbCxhLmVmZmVjdFRhZ3w9MTAyNCl9Yj1WLnNpYmxpbmc7aWYobnVsbCE9PWIpcmV0dXJuIGI7Vj1hfXdoaWxlKG51bGwhPT1WKTtYPT09RWkmJihYPUlpKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBpaihhKXt2YXIgYj10ZigpO3ZmKDk5LG5qLmJpbmQobnVsbCxhLGIpKTtudWxsIT09UWkmJndmKDk3LGZ1bmN0aW9uKCl7Y2ooKTtyZXR1cm4gbnVsbH0pO3JldHVybiBudWxsfVxuZnVuY3Rpb24gbmooYSxiKXtjaigpO2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDMyNykpO3ZhciBjPWEuZmluaXNoZWRXb3JrLGQ9YS5maW5pc2hlZEV4cGlyYXRpb25UaW1lO2lmKG51bGw9PT1jKXJldHVybiBudWxsO2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPTA7aWYoYz09PWEuY3VycmVudCl0aHJvdyB0KEVycm9yKDE3NykpO2EuY2FsbGJhY2tOb2RlPW51bGw7YS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPTA7dmFyIGU9Yy5leHBpcmF0aW9uVGltZSxmPWMuY2hpbGRFeHBpcmF0aW9uVGltZTtlPWY+ZT9mOmU7YS5maXJzdFBlbmRpbmdUaW1lPWU7ZTxhLmxhc3RQZW5kaW5nVGltZSYmKGEubGFzdFBlbmRpbmdUaW1lPWUpO2E9PT1KaSYmKFY9Smk9bnVsbCxXPTApOzE8Yy5lZmZlY3RUYWc/bnVsbCE9PWMubGFzdEVmZmVjdD8oYy5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9YyxlPWMuZmlyc3RFZmZlY3QpOmU9YzplPWMuZmlyc3RFZmZlY3Q7XG5pZihudWxsIT09ZSl7Zj1VO1V8PURpO0FpLmN1cnJlbnQ9bnVsbDtIZT1RZDt2YXIgaD1hZSgpO2lmKGJlKGgpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBoKXZhciBnPXtzdGFydDpoLnNlbGVjdGlvblN0YXJ0LGVuZDpoLnNlbGVjdGlvbkVuZH07ZWxzZSBhOntnPShnPWgub3duZXJEb2N1bWVudCkmJmcuZGVmYXVsdFZpZXd8fHdpbmRvdzt2YXIgaz1nLmdldFNlbGVjdGlvbiYmZy5nZXRTZWxlY3Rpb24oKTtpZihrJiYwIT09ay5yYW5nZUNvdW50KXtnPWsuYW5jaG9yTm9kZTt2YXIgbD1rLmFuY2hvck9mZnNldCxuPWsuZm9jdXNOb2RlO2s9ay5mb2N1c09mZnNldDt0cnl7Zy5ub2RlVHlwZSxuLm5vZGVUeXBlfWNhdGNoKHpiKXtnPW51bGw7YnJlYWsgYX12YXIgej0wLHg9LTEsdj0tMSxyYj0wLEJlPTAsdT1oLHc9bnVsbDtiOmZvcig7Oyl7Zm9yKHZhciBDOzspe3UhPT1nfHwwIT09bCYmMyE9PXUubm9kZVR5cGV8fCh4PXorbCk7dSE9PW58fDAhPT1rJiYzIT09dS5ub2RlVHlwZXx8XG4odj16K2spOzM9PT11Lm5vZGVUeXBlJiYoeis9dS5ub2RlVmFsdWUubGVuZ3RoKTtpZihudWxsPT09KEM9dS5maXJzdENoaWxkKSlicmVhazt3PXU7dT1DfWZvcig7Oyl7aWYodT09PWgpYnJlYWsgYjt3PT09ZyYmKytyYj09PWwmJih4PXopO3c9PT1uJiYrK0JlPT09ayYmKHY9eik7aWYobnVsbCE9PShDPXUubmV4dFNpYmxpbmcpKWJyZWFrO3U9dzt3PXUucGFyZW50Tm9kZX11PUN9Zz0tMT09PXh8fC0xPT09dj9udWxsOntzdGFydDp4LGVuZDp2fX1lbHNlIGc9bnVsbH1nPWd8fHtzdGFydDowLGVuZDowfX1lbHNlIGc9bnVsbDtJZT17Zm9jdXNlZEVsZW06aCxzZWxlY3Rpb25SYW5nZTpnfTtRZD0hMTtZPWU7ZG8gdHJ5e2Zvcig7bnVsbCE9PVk7KXtpZigwIT09KFkuZWZmZWN0VGFnJjI1Nikpe3ZhciBJPVkuYWx0ZXJuYXRlO2g9WTtzd2l0Y2goaC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aGkoSmcsSWcsaCk7YnJlYWs7Y2FzZSAxOmlmKGguZWZmZWN0VGFnJjI1NiYmbnVsbCE9PVxuSSl7dmFyIEU9SS5tZW1vaXplZFByb3BzLHVhPUkubWVtb2l6ZWRTdGF0ZSxnaD1oLnN0YXRlTm9kZSxvaj1naC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShoLmVsZW1lbnRUeXBlPT09aC50eXBlP0U6QWYoaC50eXBlLEUpLHVhKTtnaC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1van1icmVhaztjYXNlIDM6Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMTYzKSk7fX1ZPVkubmV4dEVmZmVjdH19Y2F0Y2goemIpe2lmKG51bGw9PT1ZKXRocm93IHQoRXJyb3IoMzMwKSk7ZmkoWSx6Yik7WT1ZLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVkpO1k9ZTtkbyB0cnl7Zm9yKEk9YjtudWxsIT09WTspe3ZhciBBPVkuZWZmZWN0VGFnO0EmMTYmJndlKFkuc3RhdGVOb2RlLFwiXCIpO2lmKEEmMTI4KXt2YXIgcD1ZLmFsdGVybmF0ZTtpZihudWxsIT09cCl7dmFyIHI9cC5yZWY7bnVsbCE9PXImJihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygcj9cbnIobnVsbCk6ci5jdXJyZW50PW51bGwpfX1zd2l0Y2goQSYxNCl7Y2FzZSAyOm5pKFkpO1kuZWZmZWN0VGFnJj0tMzticmVhaztjYXNlIDY6bmkoWSk7WS5lZmZlY3RUYWcmPS0zO29pKFkuYWx0ZXJuYXRlLFkpO2JyZWFrO2Nhc2UgNDpvaShZLmFsdGVybmF0ZSxZKTticmVhaztjYXNlIDg6RT1ZO2tpKEUsSSk7RS5yZXR1cm49bnVsbDtFLmNoaWxkPW51bGw7RS5tZW1vaXplZFN0YXRlPW51bGw7RS51cGRhdGVRdWV1ZT1udWxsO0UuZGVwZW5kZW5jaWVzPW51bGw7dmFyIEs9RS5hbHRlcm5hdGU7bnVsbCE9PUsmJihLLnJldHVybj1udWxsLEsuY2hpbGQ9bnVsbCxLLm1lbW9pemVkU3RhdGU9bnVsbCxLLnVwZGF0ZVF1ZXVlPW51bGwsSy5kZXBlbmRlbmNpZXM9bnVsbCl9WT1ZLm5leHRFZmZlY3R9fWNhdGNoKHpiKXtpZihudWxsPT09WSl0aHJvdyB0KEVycm9yKDMzMCkpO2ZpKFksemIpO1k9WS5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1ZKTtyPUllO3A9YWUoKTtBPXIuZm9jdXNlZEVsZW07XG5JPXIuc2VsZWN0aW9uUmFuZ2U7aWYocCE9PUEmJkEmJkEub3duZXJEb2N1bWVudCYmJGQoQS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxBKSl7bnVsbCE9PUkmJmJlKEEpJiYocD1JLnN0YXJ0LHI9SS5lbmQsdm9pZCAwPT09ciYmKHI9cCksXCJzZWxlY3Rpb25TdGFydFwiaW4gQT8oQS5zZWxlY3Rpb25TdGFydD1wLEEuc2VsZWN0aW9uRW5kPU1hdGgubWluKHIsQS52YWx1ZS5sZW5ndGgpKToocj0ocD1BLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KSYmcC5kZWZhdWx0Vmlld3x8d2luZG93LHIuZ2V0U2VsZWN0aW9uJiYocj1yLmdldFNlbGVjdGlvbigpLEU9QS50ZXh0Q29udGVudC5sZW5ndGgsSz1NYXRoLm1pbihJLnN0YXJ0LEUpLEk9dm9pZCAwPT09SS5lbmQ/SzpNYXRoLm1pbihJLmVuZCxFKSwhci5leHRlbmQmJks+SSYmKEU9SSxJPUssSz1FKSxFPVpkKEEsSyksdWE9WmQoQSxJKSxFJiZ1YSYmKDEhPT1yLnJhbmdlQ291bnR8fHIuYW5jaG9yTm9kZSE9PUUubm9kZXx8ci5hbmNob3JPZmZzZXQhPT1cbkUub2Zmc2V0fHxyLmZvY3VzTm9kZSE9PXVhLm5vZGV8fHIuZm9jdXNPZmZzZXQhPT11YS5vZmZzZXQpJiYocD1wLmNyZWF0ZVJhbmdlKCkscC5zZXRTdGFydChFLm5vZGUsRS5vZmZzZXQpLHIucmVtb3ZlQWxsUmFuZ2VzKCksSz5JPyhyLmFkZFJhbmdlKHApLHIuZXh0ZW5kKHVhLm5vZGUsdWEub2Zmc2V0KSk6KHAuc2V0RW5kKHVhLm5vZGUsdWEub2Zmc2V0KSxyLmFkZFJhbmdlKHApKSkpKSk7cD1bXTtmb3Iocj1BO3I9ci5wYXJlbnROb2RlOykxPT09ci5ub2RlVHlwZSYmcC5wdXNoKHtlbGVtZW50OnIsbGVmdDpyLnNjcm9sbExlZnQsdG9wOnIuc2Nyb2xsVG9wfSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIEEuZm9jdXMmJkEuZm9jdXMoKTtmb3IoQT0wO0E8cC5sZW5ndGg7QSsrKXI9cFtBXSxyLmVsZW1lbnQuc2Nyb2xsTGVmdD1yLmxlZnQsci5lbGVtZW50LnNjcm9sbFRvcD1yLnRvcH1JZT1udWxsO1FkPSEhSGU7SGU9bnVsbDthLmN1cnJlbnQ9YztZPWU7ZG8gdHJ5e2ZvcihBPWQ7bnVsbCE9PVxuWTspe3ZhciAkYT1ZLmVmZmVjdFRhZztpZigkYSYzNil7dmFyIG5jPVkuYWx0ZXJuYXRlO3A9WTtyPUE7c3dpdGNoKHAudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmhpKE1nLE5nLHApO2JyZWFrO2Nhc2UgMTp2YXIgbWQ9cC5zdGF0ZU5vZGU7aWYocC5lZmZlY3RUYWcmNClpZihudWxsPT09bmMpbWQuY29tcG9uZW50RGlkTW91bnQoKTtlbHNle3ZhciBGaj1wLmVsZW1lbnRUeXBlPT09cC50eXBlP25jLm1lbW9pemVkUHJvcHM6QWYocC50eXBlLG5jLm1lbW9pemVkUHJvcHMpO21kLmNvbXBvbmVudERpZFVwZGF0ZShGaixuYy5tZW1vaXplZFN0YXRlLG1kLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgWGg9cC51cGRhdGVRdWV1ZTtudWxsIT09WGgmJllmKHAsWGgsbWQscik7YnJlYWs7Y2FzZSAzOnZhciBZaD1wLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1ZaCl7Sz1udWxsO2lmKG51bGwhPT1wLmNoaWxkKXN3aXRjaChwLmNoaWxkLnRhZyl7Y2FzZSA1Oks9XG5wLmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6Sz1wLmNoaWxkLnN0YXRlTm9kZX1ZZihwLFloLEsscil9YnJlYWs7Y2FzZSA1OnZhciBHaj1wLnN0YXRlTm9kZTtudWxsPT09bmMmJnAuZWZmZWN0VGFnJjQmJihyPUdqLEplKHAudHlwZSxwLm1lbW9pemVkUHJvcHMpJiZyLmZvY3VzKCkpO2JyZWFrO2Nhc2UgNjpicmVhaztjYXNlIDQ6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDEzOmNhc2UgMTk6Y2FzZSAxNzpjYXNlIDIwOmJyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigxNjMpKTt9fWlmKCRhJjEyOCl7dmFyIG5kPVkucmVmO2lmKG51bGwhPT1uZCl7dmFyIFpoPVkuc3RhdGVOb2RlO3N3aXRjaChZLnRhZyl7Y2FzZSA1OnZhciBnZj1aaDticmVhaztkZWZhdWx0OmdmPVpofVwiZnVuY3Rpb25cIj09PXR5cGVvZiBuZD9uZChnZik6bmQuY3VycmVudD1nZn19JGEmNTEyJiYoUGk9ITApO1k9WS5uZXh0RWZmZWN0fX1jYXRjaCh6Yil7aWYobnVsbD09PVkpdGhyb3cgdChFcnJvcigzMzApKTtcbmZpKFksemIpO1k9WS5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1ZKTtZPW51bGw7bmYoKTtVPWZ9ZWxzZSBhLmN1cnJlbnQ9YztpZihQaSlQaT0hMSxRaT1hLFNpPWQsUmk9YjtlbHNlIGZvcihZPWU7bnVsbCE9PVk7KWI9WS5uZXh0RWZmZWN0LFkubmV4dEVmZmVjdD1udWxsLFk9YjtiPWEuZmlyc3RQZW5kaW5nVGltZTswIT09Yj8oJGE9Y2coKSwkYT16ZigkYSxiKSxaaShhLCRhLGIpKTp4aT1udWxsO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBwaiYmcGooYy5zdGF0ZU5vZGUsZCk7MTA3Mzc0MTgyMz09PWI/YT09PVZpP1VpKys6KFVpPTAsVmk9YSk6VWk9MDtpZih1aSl0aHJvdyB1aT0hMSxhPXZpLHZpPW51bGwsYTtpZigoVSZCaSkhPT1UKXJldHVybiBudWxsO08oKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGNqKCl7aWYobnVsbD09PVFpKXJldHVybiExO3ZhciBhPVFpLGI9U2ksYz1SaTtRaT1udWxsO1NpPTA7Umk9OTA7cmV0dXJuIHZmKDk3PGM/OTc6Yyxxai5iaW5kKG51bGwsYSxiKSl9ZnVuY3Rpb24gcWooYSl7aWYoKFUmKENpfERpKSkhPT1UKXRocm93IHQoRXJyb3IoMzMxKSk7dmFyIGI9VTtVfD1EaTtmb3IoYT1hLmN1cnJlbnQuZmlyc3RFZmZlY3Q7bnVsbCE9PWE7KXt0cnl7dmFyIGM9YTtpZigwIT09KGMuZWZmZWN0VGFnJjUxMikpc3dpdGNoKGMudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmhpKFBnLElnLGMpLGhpKElnLE9nLGMpfX1jYXRjaChkKXtpZihudWxsPT09YSl0aHJvdyB0KEVycm9yKDMzMCkpO2ZpKGEsZCl9Yz1hLm5leHRFZmZlY3Q7YS5uZXh0RWZmZWN0PW51bGw7YT1jfVU9YjtPKCk7cmV0dXJuITB9XG5mdW5jdGlvbiByaihhLGIsYyl7Yj1iaShjLGIpO2I9dGkoYSxiLDEwNzM3NDE4MjMpO1NmKGEsYik7YT1ZaShhLDEwNzM3NDE4MjMpO251bGwhPT1hJiZaaShhLDk5LDEwNzM3NDE4MjMpfWZ1bmN0aW9uIGZpKGEsYil7aWYoMz09PWEudGFnKXJqKGEsYSxiKTtlbHNlIGZvcih2YXIgYz1hLnJldHVybjtudWxsIT09Yzspe2lmKDM9PT1jLnRhZyl7cmooYyxhLGIpO2JyZWFrfWVsc2UgaWYoMT09PWMudGFnKXt2YXIgZD1jLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09eGl8fCF4aS5oYXMoZCkpKXthPWJpKGIsYSk7YT13aShjLGEsMTA3Mzc0MTgyMyk7U2YoYyxhKTtjPVlpKGMsMTA3Mzc0MTgyMyk7bnVsbCE9PWMmJlppKGMsOTksMTA3Mzc0MTgyMyk7YnJlYWt9fWM9Yy5yZXR1cm59fVxuZnVuY3Rpb24ga2ooYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO251bGwhPT1kJiZkLmRlbGV0ZShiKTtKaT09PWEmJlc9PT1jP1g9PT1IaXx8WD09PUdpJiYxMDczNzQxODIzPT09S2kmJnNmKCktcGk8T2k/aGooYSxXKTpOaT0hMDphLmxhc3RQZW5kaW5nVGltZTxjfHwoYj1hLnBpbmdUaW1lLDAhPT1iJiZiPGN8fChhLnBpbmdUaW1lPWMsYS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPT09YyYmKGEuZmluaXNoZWRFeHBpcmF0aW9uVGltZT0wLGEuZmluaXNoZWRXb3JrPW51bGwpLGI9Y2coKSxiPXpmKGIsYyksWmkoYSxiLGMpKSl9ZnVuY3Rpb24gcmkoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtudWxsIT09YyYmYy5kZWxldGUoYik7Yz1jZygpO2I9ZGcoYyxhLG51bGwpO2M9emYoYyxiKTthPVlpKGEsYik7bnVsbCE9PWEmJlppKGEsYyxiKX12YXIgbWo9dm9pZCAwO1xubWo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuZXhwaXJhdGlvblRpbWU7aWYobnVsbCE9PWEpe3ZhciBlPWIucGVuZGluZ1Byb3BzO2lmKGEubWVtb2l6ZWRQcm9wcyE9PWV8fE0uY3VycmVudClMZj0hMDtlbHNlIGlmKGQ8Yyl7TGY9ITE7c3dpdGNoKGIudGFnKXtjYXNlIDM6TmgoYik7Q2goKTticmVhaztjYXNlIDU6Q2coYik7aWYoYi5tb2RlJjQmJjEhPT1jJiZlLmhpZGRlbilyZXR1cm4gYi5leHBpcmF0aW9uVGltZT1iLmNoaWxkRXhwaXJhdGlvblRpbWU9MSxudWxsO2JyZWFrO2Nhc2UgMTpOKGIudHlwZSkmJlhlKGIpO2JyZWFrO2Nhc2UgNDpBZyhiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6SGYoYixiLm1lbW9pemVkUHJvcHMudmFsdWUpO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSl7ZD1iLmNoaWxkLmNoaWxkRXhwaXJhdGlvblRpbWU7aWYoMCE9PWQmJmQ+PWMpcmV0dXJuIFBoKGEsYixjKTtKKFAsUC5jdXJyZW50JlxuRWcsYik7Yj1GaChhLGIsYyk7cmV0dXJuIG51bGwhPT1iP2Iuc2libGluZzpudWxsfUooUCxQLmN1cnJlbnQmRWcsYik7YnJlYWs7Y2FzZSAxOTpkPWIuY2hpbGRFeHBpcmF0aW9uVGltZT49YztpZigwIT09KGEuZWZmZWN0VGFnJjY0KSl7aWYoZClyZXR1cm4gUmgoYSxiLGMpO2IuZWZmZWN0VGFnfD02NH1lPWIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGUucmVuZGVyaW5nPW51bGwsZS50YWlsPW51bGwpO0ooUCxQLmN1cnJlbnQsYik7aWYoIWQpcmV0dXJuIG51bGx9cmV0dXJuIEZoKGEsYixjKX19ZWxzZSBMZj0hMTtiLmV4cGlyYXRpb25UaW1lPTA7c3dpdGNoKGIudGFnKXtjYXNlIDI6ZD1iLnR5cGU7bnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5lZmZlY3RUYWd8PTIpO2E9Yi5wZW5kaW5nUHJvcHM7ZT1TZShiLEwuY3VycmVudCk7S2YoYixjKTtlPWRoKG51bGwsYixkLGEsZSxjKTtiLmVmZmVjdFRhZ3w9MTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGUmJlxubnVsbCE9PWUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnJlbmRlciYmdm9pZCAwPT09ZS4kJHR5cGVvZil7Yi50YWc9MTtpaCgpO2lmKE4oZCkpe3ZhciBmPSEwO1hlKGIpfWVsc2UgZj0hMTtiLm1lbW9pemVkU3RhdGU9bnVsbCE9PWUuc3RhdGUmJnZvaWQgMCE9PWUuc3RhdGU/ZS5zdGF0ZTpudWxsO3ZhciBoPWQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBoJiZiZyhiLGQsaCxhKTtlLnVwZGF0ZXI9Zmc7Yi5zdGF0ZU5vZGU9ZTtlLl9yZWFjdEludGVybmFsRmliZXI9YjtqZyhiLGQsYSxjKTtiPU1oKG51bGwsYixkLCEwLGYsYyl9ZWxzZSBiLnRhZz0wLFMobnVsbCxiLGUsYyksYj1iLmNoaWxkO3JldHVybiBiO2Nhc2UgMTY6ZT1iLmVsZW1lbnRUeXBlO251bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZWZmZWN0VGFnfD0yKTthPWIucGVuZGluZ1Byb3BzO2U9QmYoZSk7Yi50eXBlPWU7Zj1iLnRhZz1zaihlKTtcbmE9QWYoZSxhKTtzd2l0Y2goZil7Y2FzZSAwOmI9SmgobnVsbCxiLGUsYSxjKTticmVhaztjYXNlIDE6Yj1MaChudWxsLGIsZSxhLGMpO2JyZWFrO2Nhc2UgMTE6Yj1FaChudWxsLGIsZSxhLGMpO2JyZWFrO2Nhc2UgMTQ6Yj1HaChudWxsLGIsZSxBZihlLnR5cGUsYSksZCxjKTticmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMzA2KSxlLFwiXCIpO31yZXR1cm4gYjtjYXNlIDA6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkFmKGQsZSksSmgoYSxiLGQsZSxjKTtjYXNlIDE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkFmKGQsZSksTGgoYSxiLGQsZSxjKTtjYXNlIDM6TmgoYik7ZD1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1kKXRocm93IHQoRXJyb3IoMjgyKSk7ZT1iLm1lbW9pemVkU3RhdGU7ZT1udWxsIT09ZT9lLmVsZW1lbnQ6bnVsbDtXZihiLGQsYi5wZW5kaW5nUHJvcHMsXG5udWxsLGMpO2Q9Yi5tZW1vaXplZFN0YXRlLmVsZW1lbnQ7aWYoZD09PWUpQ2goKSxiPUZoKGEsYixjKTtlbHNle2U9Yi5zdGF0ZU5vZGU7aWYoZT0obnVsbD09PWF8fG51bGw9PT1hLmNoaWxkKSYmZS5oeWRyYXRlKXVoPU5lKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksdGg9YixlPXZoPSEwO2U/KGIuZWZmZWN0VGFnfD0yLGIuY2hpbGQ9dWcoYixudWxsLGQsYykpOihTKGEsYixkLGMpLENoKCkpO2I9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDU6cmV0dXJuIENnKGIpLG51bGw9PT1hJiZ6aChiKSxkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGY9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOm51bGwsaD1lLmNoaWxkcmVuLEtlKGQsZSk/aD1udWxsOm51bGwhPT1mJiZLZShkLGYpJiYoYi5lZmZlY3RUYWd8PTE2KSxLaChhLGIpLGIubW9kZSY0JiYxIT09YyYmZS5oaWRkZW4/KGIuZXhwaXJhdGlvblRpbWU9Yi5jaGlsZEV4cGlyYXRpb25UaW1lPTEsYj1udWxsKTpcbihTKGEsYixoLGMpLGI9Yi5jaGlsZCksYjtjYXNlIDY6cmV0dXJuIG51bGw9PT1hJiZ6aChiKSxudWxsO2Nhc2UgMTM6cmV0dXJuIFBoKGEsYixjKTtjYXNlIDQ6cmV0dXJuIEFnKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksZD1iLnBlbmRpbmdQcm9wcyxudWxsPT09YT9iLmNoaWxkPXRnKGIsbnVsbCxkLGMpOlMoYSxiLGQsYyksYi5jaGlsZDtjYXNlIDExOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpBZihkLGUpLEVoKGEsYixkLGUsYyk7Y2FzZSA3OnJldHVybiBTKGEsYixiLnBlbmRpbmdQcm9wcyxjKSxiLmNoaWxkO2Nhc2UgODpyZXR1cm4gUyhhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYyksYi5jaGlsZDtjYXNlIDEyOnJldHVybiBTKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTA6YTp7ZD1iLnR5cGUuX2NvbnRleHQ7ZT1iLnBlbmRpbmdQcm9wcztoPWIubWVtb2l6ZWRQcm9wcztcbmY9ZS52YWx1ZTtIZihiLGYpO2lmKG51bGwhPT1oKXt2YXIgZz1oLnZhbHVlO2Y9aGQoZyxmKT8wOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHM/ZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHMoZyxmKToxMDczNzQxODIzKXwwO2lmKDA9PT1mKXtpZihoLmNoaWxkcmVuPT09ZS5jaGlsZHJlbiYmIU0uY3VycmVudCl7Yj1GaChhLGIsYyk7YnJlYWsgYX19ZWxzZSBmb3IoZz1iLmNoaWxkLG51bGwhPT1nJiYoZy5yZXR1cm49Yik7bnVsbCE9PWc7KXt2YXIgaz1nLmRlcGVuZGVuY2llcztpZihudWxsIT09ayl7aD1nLmNoaWxkO2Zvcih2YXIgbD1rLmZpcnN0Q29udGV4dDtudWxsIT09bDspe2lmKGwuY29udGV4dD09PWQmJjAhPT0obC5vYnNlcnZlZEJpdHMmZikpezE9PT1nLnRhZyYmKGw9UWYoYyxudWxsKSxsLnRhZz0yLFNmKGcsbCkpO2cuZXhwaXJhdGlvblRpbWU8YyYmKGcuZXhwaXJhdGlvblRpbWU9Yyk7bD1nLmFsdGVybmF0ZTtudWxsIT09bCYmbC5leHBpcmF0aW9uVGltZTxcbmMmJihsLmV4cGlyYXRpb25UaW1lPWMpO0pmKGcucmV0dXJuLGMpO2suZXhwaXJhdGlvblRpbWU8YyYmKGsuZXhwaXJhdGlvblRpbWU9Yyk7YnJlYWt9bD1sLm5leHR9fWVsc2UgaD0xMD09PWcudGFnP2cudHlwZT09PWIudHlwZT9udWxsOmcuY2hpbGQ6Zy5jaGlsZDtpZihudWxsIT09aCloLnJldHVybj1nO2Vsc2UgZm9yKGg9ZztudWxsIT09aDspe2lmKGg9PT1iKXtoPW51bGw7YnJlYWt9Zz1oLnNpYmxpbmc7aWYobnVsbCE9PWcpe2cucmV0dXJuPWgucmV0dXJuO2g9ZzticmVha31oPWgucmV0dXJufWc9aH19UyhhLGIsZS5jaGlsZHJlbixjKTtiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA5OnJldHVybiBlPWIudHlwZSxmPWIucGVuZGluZ1Byb3BzLGQ9Zi5jaGlsZHJlbixLZihiLGMpLGU9TWYoZSxmLnVuc3RhYmxlX29ic2VydmVkQml0cyksZD1kKGUpLGIuZWZmZWN0VGFnfD0xLFMoYSxiLGQsYyksYi5jaGlsZDtjYXNlIDE0OnJldHVybiBlPWIudHlwZSxmPUFmKGUsYi5wZW5kaW5nUHJvcHMpLFxuZj1BZihlLnR5cGUsZiksR2goYSxiLGUsZixkLGMpO2Nhc2UgMTU6cmV0dXJuIEloKGEsYixiLnR5cGUsYi5wZW5kaW5nUHJvcHMsZCxjKTtjYXNlIDE3OnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpBZihkLGUpLG51bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZWZmZWN0VGFnfD0yKSxiLnRhZz0xLE4oZCk/KGE9ITAsWGUoYikpOmE9ITEsS2YoYixjKSxoZyhiLGQsZSxjKSxqZyhiLGQsZSxjKSxNaChudWxsLGIsZCwhMCxhLGMpO2Nhc2UgMTk6cmV0dXJuIFJoKGEsYixjKX10aHJvdyB0KEVycm9yKDE1NikpO307dmFyIHBqPW51bGwsamk9bnVsbDtcbmZ1bmN0aW9uIHRqKGEpe2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKXJldHVybiExO3ZhciBiPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZihiLmlzRGlzYWJsZWR8fCFiLnN1cHBvcnRzRmliZXIpcmV0dXJuITA7dHJ5e3ZhciBjPWIuaW5qZWN0KGEpO3BqPWZ1bmN0aW9uKGEpe3RyeXtiLm9uQ29tbWl0RmliZXJSb290KGMsYSx2b2lkIDAsNjQ9PT0oYS5jdXJyZW50LmVmZmVjdFRhZyY2NCkpfWNhdGNoKGUpe319O2ppPWZ1bmN0aW9uKGEpe3RyeXtiLm9uQ29tbWl0RmliZXJVbm1vdW50KGMsYSl9Y2F0Y2goZSl7fX19Y2F0Y2goZCl7fXJldHVybiEwfVxuZnVuY3Rpb24gdWooYSxiLGMsZCl7dGhpcy50YWc9YTt0aGlzLmtleT1jO3RoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGw7dGhpcy5pbmRleD0wO3RoaXMucmVmPW51bGw7dGhpcy5wZW5kaW5nUHJvcHM9Yjt0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbDt0aGlzLm1vZGU9ZDt0aGlzLmVmZmVjdFRhZz0wO3RoaXMubGFzdEVmZmVjdD10aGlzLmZpcnN0RWZmZWN0PXRoaXMubmV4dEVmZmVjdD1udWxsO3RoaXMuY2hpbGRFeHBpcmF0aW9uVGltZT10aGlzLmV4cGlyYXRpb25UaW1lPTA7dGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiB4aChhLGIsYyxkKXtyZXR1cm4gbmV3IHVqKGEsYixjLGQpfVxuZnVuY3Rpb24gSGgoYSl7YT1hLnByb3RvdHlwZTtyZXR1cm4hKCFhfHwhYS5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiBzaihhKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gSGgoYSk/MTowO2lmKHZvaWQgMCE9PWEmJm51bGwhPT1hKXthPWEuJCR0eXBlb2Y7aWYoYT09PWdjKXJldHVybiAxMTtpZihhPT09amMpcmV0dXJuIDE0fXJldHVybiAyfVxuZnVuY3Rpb24gb2coYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtudWxsPT09Yz8oYz14aChhLnRhZyxiLGEua2V5LGEubW9kZSksYy5lbGVtZW50VHlwZT1hLmVsZW1lbnRUeXBlLGMudHlwZT1hLnR5cGUsYy5zdGF0ZU5vZGU9YS5zdGF0ZU5vZGUsYy5hbHRlcm5hdGU9YSxhLmFsdGVybmF0ZT1jKTooYy5wZW5kaW5nUHJvcHM9YixjLmVmZmVjdFRhZz0wLGMubmV4dEVmZmVjdD1udWxsLGMuZmlyc3RFZmZlY3Q9bnVsbCxjLmxhc3RFZmZlY3Q9bnVsbCk7Yy5jaGlsZEV4cGlyYXRpb25UaW1lPWEuY2hpbGRFeHBpcmF0aW9uVGltZTtjLmV4cGlyYXRpb25UaW1lPWEuZXhwaXJhdGlvblRpbWU7Yy5jaGlsZD1hLmNoaWxkO2MubWVtb2l6ZWRQcm9wcz1hLm1lbW9pemVkUHJvcHM7Yy5tZW1vaXplZFN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtjLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWU7Yj1hLmRlcGVuZGVuY2llcztjLmRlcGVuZGVuY2llcz1udWxsPT09Yj9udWxsOntleHBpcmF0aW9uVGltZTpiLmV4cGlyYXRpb25UaW1lLFxuZmlyc3RDb250ZXh0OmIuZmlyc3RDb250ZXh0LHJlc3BvbmRlcnM6Yi5yZXNwb25kZXJzfTtjLnNpYmxpbmc9YS5zaWJsaW5nO2MuaW5kZXg9YS5pbmRleDtjLnJlZj1hLnJlZjtyZXR1cm4gY31cbmZ1bmN0aW9uIHFnKGEsYixjLGQsZSxmKXt2YXIgaD0yO2Q9YTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlIaChhKSYmKGg9MSk7ZWxzZSBpZihcInN0cmluZ1wiPT09dHlwZW9mIGEpaD01O2Vsc2UgYTpzd2l0Y2goYSl7Y2FzZSBhYzpyZXR1cm4gc2coYy5jaGlsZHJlbixlLGYsYik7Y2FzZSBmYzpoPTg7ZXw9NzticmVhaztjYXNlIGJjOmg9ODtlfD0xO2JyZWFrO2Nhc2UgY2M6cmV0dXJuIGE9eGgoMTIsYyxiLGV8OCksYS5lbGVtZW50VHlwZT1jYyxhLnR5cGU9Y2MsYS5leHBpcmF0aW9uVGltZT1mLGE7Y2FzZSBoYzpyZXR1cm4gYT14aCgxMyxjLGIsZSksYS50eXBlPWhjLGEuZWxlbWVudFR5cGU9aGMsYS5leHBpcmF0aW9uVGltZT1mLGE7Y2FzZSBpYzpyZXR1cm4gYT14aCgxOSxjLGIsZSksYS5lbGVtZW50VHlwZT1pYyxhLmV4cGlyYXRpb25UaW1lPWYsYTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgZGM6aD1cbjEwO2JyZWFrIGE7Y2FzZSBlYzpoPTk7YnJlYWsgYTtjYXNlIGdjOmg9MTE7YnJlYWsgYTtjYXNlIGpjOmg9MTQ7YnJlYWsgYTtjYXNlIGtjOmg9MTY7ZD1udWxsO2JyZWFrIGF9dGhyb3cgdChFcnJvcigxMzApLG51bGw9PWE/YTp0eXBlb2YgYSxcIlwiKTt9Yj14aChoLGMsYixlKTtiLmVsZW1lbnRUeXBlPWE7Yi50eXBlPWQ7Yi5leHBpcmF0aW9uVGltZT1mO3JldHVybiBifWZ1bmN0aW9uIHNnKGEsYixjLGQpe2E9eGgoNyxhLGQsYik7YS5leHBpcmF0aW9uVGltZT1jO3JldHVybiBhfWZ1bmN0aW9uIHBnKGEsYixjKXthPXhoKDYsYSxudWxsLGIpO2EuZXhwaXJhdGlvblRpbWU9YztyZXR1cm4gYX1cbmZ1bmN0aW9uIHJnKGEsYixjKXtiPXhoKDQsbnVsbCE9PWEuY2hpbGRyZW4/YS5jaGlsZHJlbjpbXSxhLmtleSxiKTtiLmV4cGlyYXRpb25UaW1lPWM7Yi5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86YS5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOmEuaW1wbGVtZW50YXRpb259O3JldHVybiBifVxuZnVuY3Rpb24gdmooYSxiLGMpe3RoaXMudGFnPWI7dGhpcy5jdXJyZW50PW51bGw7dGhpcy5jb250YWluZXJJbmZvPWE7dGhpcy5waW5nQ2FjaGU9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbDt0aGlzLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9MDt0aGlzLmZpbmlzaGVkV29yaz1udWxsO3RoaXMudGltZW91dEhhbmRsZT0tMTt0aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsO3RoaXMuaHlkcmF0ZT1jO3RoaXMuY2FsbGJhY2tOb2RlPXRoaXMuZmlyc3RCYXRjaD1udWxsO3RoaXMucGluZ1RpbWU9dGhpcy5sYXN0UGVuZGluZ1RpbWU9dGhpcy5maXJzdFBlbmRpbmdUaW1lPXRoaXMuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0wfWZ1bmN0aW9uIHdqKGEsYixjKXthPW5ldyB2aihhLGIsYyk7Yj14aCgzLG51bGwsbnVsbCwyPT09Yj83OjE9PT1iPzM6MCk7YS5jdXJyZW50PWI7cmV0dXJuIGIuc3RhdGVOb2RlPWF9XG5mdW5jdGlvbiB4aihhLGIsYyxkLGUsZil7dmFyIGg9Yi5jdXJyZW50O2E6aWYoYyl7Yz1jLl9yZWFjdEludGVybmFsRmliZXI7Yjp7aWYoMiE9PWxkKGMpfHwxIT09Yy50YWcpdGhyb3cgdChFcnJvcigxNzApKTt2YXIgZz1jO2Rve3N3aXRjaChnLnRhZyl7Y2FzZSAzOmc9Zy5zdGF0ZU5vZGUuY29udGV4dDticmVhayBiO2Nhc2UgMTppZihOKGcudHlwZSkpe2c9Zy5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ7YnJlYWsgYn19Zz1nLnJldHVybn13aGlsZShudWxsIT09Zyk7dGhyb3cgdChFcnJvcigxNzEpKTt9aWYoMT09PWMudGFnKXt2YXIgaz1jLnR5cGU7aWYoTihrKSl7Yz1XZShjLGssZyk7YnJlYWsgYX19Yz1nfWVsc2UgYz1RZTtudWxsPT09Yi5jb250ZXh0P2IuY29udGV4dD1jOmIucGVuZGluZ0NvbnRleHQ9YztiPWY7ZT1RZihkLGUpO2UucGF5bG9hZD17ZWxlbWVudDphfTtiPXZvaWQgMD09PWI/bnVsbDpiO251bGwhPT1iJiZcbihlLmNhbGxiYWNrPWIpO1NmKGgsZSk7ZWcoaCxkKTtyZXR1cm4gZH1mdW5jdGlvbiB5aihhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1jZygpLGg9JGYuc3VzcGVuc2U7ZT1kZyhmLGUsaCk7cmV0dXJuIHhqKGEsYixjLGUsaCxkKX1mdW5jdGlvbiB6aihhKXthPWEuY3VycmVudDtpZighYS5jaGlsZClyZXR1cm4gbnVsbDtzd2l0Y2goYS5jaGlsZC50YWcpe2Nhc2UgNTpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGU7ZGVmYXVsdDpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uIEFqKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6JGIsa2V5Om51bGw9PWQ/bnVsbDpcIlwiK2QsY2hpbGRyZW46YSxjb250YWluZXJJbmZvOmIsaW1wbGVtZW50YXRpb246Y319XG5EYj1mdW5jdGlvbihhLGIsYyl7c3dpdGNoKGIpe2Nhc2UgXCJpbnB1dFwiOkVjKGEsYyk7Yj1jLm5hbWU7aWYoXCJyYWRpb1wiPT09Yy50eXBlJiZudWxsIT1iKXtmb3IoYz1hO2MucGFyZW50Tm9kZTspYz1jLnBhcmVudE5vZGU7Yz1jLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFtuYW1lPVwiK0pTT04uc3RyaW5naWZ5KFwiXCIrYikrJ11bdHlwZT1cInJhZGlvXCJdJyk7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKyl7dmFyIGQ9Y1tiXTtpZihkIT09YSYmZC5mb3JtPT09YS5mb3JtKXt2YXIgZT1LYShkKTtpZighZSl0aHJvdyB0KEVycm9yKDkwKSk7V2IoZCk7RWMoZCxlKX19fWJyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOnBlKGEsYyk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmI9Yy52YWx1ZSxudWxsIT1iJiZtZShhLCEhYy5tdWx0aXBsZSxiLCExKX19O1xuZnVuY3Rpb24gQmooYSl7dmFyIGI9MTA3Mzc0MTgyMS0yNSooKCgxMDczNzQxODIxLWNnKCkrNTAwKS8yNXwwKSsxKTtiPD1YaSYmLS1iO3RoaXMuX2V4cGlyYXRpb25UaW1lPVhpPWI7dGhpcy5fcm9vdD1hO3RoaXMuX2NhbGxiYWNrcz10aGlzLl9uZXh0PW51bGw7dGhpcy5faGFzQ2hpbGRyZW49dGhpcy5fZGlkQ29tcGxldGU9ITE7dGhpcy5fY2hpbGRyZW49bnVsbDt0aGlzLl9kZWZlcj0hMH1Cai5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe2lmKCF0aGlzLl9kZWZlcil0aHJvdyB0KEVycm9yKDI1MCkpO3RoaXMuX2hhc0NoaWxkcmVuPSEwO3RoaXMuX2NoaWxkcmVuPWE7dmFyIGI9dGhpcy5fcm9vdC5faW50ZXJuYWxSb290LGM9dGhpcy5fZXhwaXJhdGlvblRpbWUsZD1uZXcgQ2o7eGooYSxiLG51bGwsYyxudWxsLGQuX29uQ29tbWl0KTtyZXR1cm4gZH07XG5Cai5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihhKXtpZih0aGlzLl9kaWRDb21wbGV0ZSlhKCk7ZWxzZXt2YXIgYj10aGlzLl9jYWxsYmFja3M7bnVsbD09PWImJihiPXRoaXMuX2NhbGxiYWNrcz1bXSk7Yi5wdXNoKGEpfX07XG5Cai5wcm90b3R5cGUuY29tbWl0PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fcm9vdC5faW50ZXJuYWxSb290LGI9YS5maXJzdEJhdGNoO2lmKCF0aGlzLl9kZWZlcnx8bnVsbD09PWIpdGhyb3cgdChFcnJvcigyNTEpKTtpZih0aGlzLl9oYXNDaGlsZHJlbil7dmFyIGM9dGhpcy5fZXhwaXJhdGlvblRpbWU7aWYoYiE9PXRoaXMpe3RoaXMuX2hhc0NoaWxkcmVuJiYoYz10aGlzLl9leHBpcmF0aW9uVGltZT1iLl9leHBpcmF0aW9uVGltZSx0aGlzLnJlbmRlcih0aGlzLl9jaGlsZHJlbikpO2Zvcih2YXIgZD1udWxsLGU9YjtlIT09dGhpczspZD1lLGU9ZS5fbmV4dDtpZihudWxsPT09ZCl0aHJvdyB0KEVycm9yKDI1MSkpO2QuX25leHQ9ZS5fbmV4dDt0aGlzLl9uZXh0PWI7YS5maXJzdEJhdGNoPXRoaXN9dGhpcy5fZGVmZXI9ITE7Yj1jO2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDI1MykpO3hmKFouYmluZChudWxsLGEsYikpO08oKTtiPXRoaXMuX25leHQ7dGhpcy5fbmV4dD1cbm51bGw7Yj1hLmZpcnN0QmF0Y2g9YjtudWxsIT09YiYmYi5faGFzQ2hpbGRyZW4mJmIucmVuZGVyKGIuX2NoaWxkcmVuKX1lbHNlIHRoaXMuX25leHQ9bnVsbCx0aGlzLl9kZWZlcj0hMX07QmoucHJvdG90eXBlLl9vbkNvbXBsZXRlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2RpZENvbXBsZXRlKXt0aGlzLl9kaWRDb21wbGV0ZT0hMDt2YXIgYT10aGlzLl9jYWxsYmFja3M7aWYobnVsbCE9PWEpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspKDAsYVtiXSkoKX19O2Z1bmN0aW9uIENqKCl7dGhpcy5fY2FsbGJhY2tzPW51bGw7dGhpcy5fZGlkQ29tbWl0PSExO3RoaXMuX29uQ29tbWl0PXRoaXMuX29uQ29tbWl0LmJpbmQodGhpcyl9Q2oucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSl7aWYodGhpcy5fZGlkQ29tbWl0KWEoKTtlbHNle3ZhciBiPXRoaXMuX2NhbGxiYWNrcztudWxsPT09YiYmKGI9dGhpcy5fY2FsbGJhY2tzPVtdKTtiLnB1c2goYSl9fTtcbkNqLnByb3RvdHlwZS5fb25Db21taXQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fZGlkQ29tbWl0KXt0aGlzLl9kaWRDb21taXQ9ITA7dmFyIGE9dGhpcy5fY2FsbGJhY2tzO2lmKG51bGwhPT1hKWZvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz1hW2JdO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjKXRocm93IHQoRXJyb3IoMTkxKSxjKTtjKCl9fX07ZnVuY3Rpb24gRGooYSxiLGMpe3RoaXMuX2ludGVybmFsUm9vdD13aihhLGIsYyl9ZnVuY3Rpb24gRWooYSxiKXt0aGlzLl9pbnRlcm5hbFJvb3Q9d2ooYSwyLGIpfUVqLnByb3RvdHlwZS5yZW5kZXI9RGoucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX2ludGVybmFsUm9vdCxkPW5ldyBDajtiPXZvaWQgMD09PWI/bnVsbDpiO251bGwhPT1iJiZkLnRoZW4oYik7eWooYSxjLG51bGwsZC5fb25Db21taXQpO3JldHVybiBkfTtcbkVqLnByb3RvdHlwZS51bm1vdW50PURqLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX2ludGVybmFsUm9vdCxjPW5ldyBDajthPXZvaWQgMD09PWE/bnVsbDphO251bGwhPT1hJiZjLnRoZW4oYSk7eWoobnVsbCxiLG51bGwsYy5fb25Db21taXQpO3JldHVybiBjfTtFai5wcm90b3R5cGUuY3JlYXRlQmF0Y2g9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgQmoodGhpcyksYj1hLl9leHBpcmF0aW9uVGltZSxjPXRoaXMuX2ludGVybmFsUm9vdCxkPWMuZmlyc3RCYXRjaDtpZihudWxsPT09ZCljLmZpcnN0QmF0Y2g9YSxhLl9uZXh0PW51bGw7ZWxzZXtmb3IoYz1udWxsO251bGwhPT1kJiZkLl9leHBpcmF0aW9uVGltZT49YjspYz1kLGQ9ZC5fbmV4dDthLl9uZXh0PWQ7bnVsbCE9PWMmJihjLl9uZXh0PWEpfXJldHVybiBhfTtcbmZ1bmN0aW9uIEhqKGEpe3JldHVybiEoIWF8fDEhPT1hLm5vZGVUeXBlJiY5IT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlJiYoOCE9PWEubm9kZVR5cGV8fFwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlIFwiIT09YS5ub2RlVmFsdWUpKX1KYj1lajtLYj1majtMYj1hajtNYj1mdW5jdGlvbihhLGIpe3ZhciBjPVU7VXw9Mjt0cnl7cmV0dXJuIGEoYil9ZmluYWxseXtVPWMsVT09PVQmJk8oKX19O2Z1bmN0aW9uIElqKGEsYil7Ynx8KGI9YT85PT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVudDphLmZpcnN0Q2hpbGQ6bnVsbCxiPSEoIWJ8fDEhPT1iLm5vZGVUeXBlfHwhYi5oYXNBdHRyaWJ1dGUoXCJkYXRhLXJlYWN0cm9vdFwiKSkpO2lmKCFiKWZvcih2YXIgYztjPWEubGFzdENoaWxkOylhLnJlbW92ZUNoaWxkKGMpO3JldHVybiBuZXcgRGooYSwwLGIpfVxuZnVuY3Rpb24gSmooYSxiLGMsZCxlKXt2YXIgZj1jLl9yZWFjdFJvb3RDb250YWluZXIsaD12b2lkIDA7aWYoZil7aD1mLl9pbnRlcm5hbFJvb3Q7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBnPWU7ZT1mdW5jdGlvbigpe3ZhciBhPXpqKGgpO2cuY2FsbChhKX19eWooYixoLGEsZSl9ZWxzZXtmPWMuX3JlYWN0Um9vdENvbnRhaW5lcj1JaihjLGQpO2g9Zi5faW50ZXJuYWxSb290O2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXt2YXIgaz1lO2U9ZnVuY3Rpb24oKXt2YXIgYT16aihoKTtrLmNhbGwoYSl9fWdqKGZ1bmN0aW9uKCl7eWooYixoLGEsZSl9KX1yZXR1cm4gemooaCl9ZnVuY3Rpb24gS2ooYSxiKXt2YXIgYz0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighSGooYikpdGhyb3cgdChFcnJvcigyMDApKTtyZXR1cm4gQWooYSxiLG51bGwsYyl9XG52YXIgTmo9e2NyZWF0ZVBvcnRhbDpLaixmaW5kRE9NTm9kZTpmdW5jdGlvbihhKXtpZihudWxsPT1hKWE9bnVsbDtlbHNlIGlmKDEhPT1hLm5vZGVUeXBlKXt2YXIgYj1hLl9yZWFjdEludGVybmFsRmliZXI7aWYodm9pZCAwPT09Yil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEucmVuZGVyKXRocm93IHQoRXJyb3IoMTg4KSk7dGhyb3cgdChFcnJvcigyNjgpLE9iamVjdC5rZXlzKGEpKTt9YT1xZChiKTthPW51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGV9cmV0dXJuIGF9LGh5ZHJhdGU6ZnVuY3Rpb24oYSxiLGMpe2lmKCFIaihiKSl0aHJvdyB0KEVycm9yKDIwMCkpO3JldHVybiBKaihudWxsLGEsYiwhMCxjKX0scmVuZGVyOmZ1bmN0aW9uKGEsYixjKXtpZighSGooYikpdGhyb3cgdChFcnJvcigyMDApKTtyZXR1cm4gSmoobnVsbCxhLGIsITEsYyl9LHVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyOmZ1bmN0aW9uKGEsYixjLGQpe2lmKCFIaihjKSl0aHJvdyB0KEVycm9yKDIwMCkpO1xuaWYobnVsbD09YXx8dm9pZCAwPT09YS5fcmVhY3RJbnRlcm5hbEZpYmVyKXRocm93IHQoRXJyb3IoMzgpKTtyZXR1cm4gSmooYSxiLGMsITEsZCl9LHVubW91bnRDb21wb25lbnRBdE5vZGU6ZnVuY3Rpb24oYSl7aWYoIUhqKGEpKXRocm93IHQoRXJyb3IoNDApKTtyZXR1cm4gYS5fcmVhY3RSb290Q29udGFpbmVyPyhnaihmdW5jdGlvbigpe0pqKG51bGwsbnVsbCxhLCExLGZ1bmN0aW9uKCl7YS5fcmVhY3RSb290Q29udGFpbmVyPW51bGx9KX0pLCEwKTohMX0sdW5zdGFibGVfY3JlYXRlUG9ydGFsOmZ1bmN0aW9uKCl7cmV0dXJuIEtqLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSx1bnN0YWJsZV9iYXRjaGVkVXBkYXRlczplaix1bnN0YWJsZV9pbnRlcmFjdGl2ZVVwZGF0ZXM6ZnVuY3Rpb24oYSxiLGMsZCl7YWooKTtyZXR1cm4gZmooYSxiLGMsZCl9LHVuc3RhYmxlX2Rpc2NyZXRlVXBkYXRlczpmaix1bnN0YWJsZV9mbHVzaERpc2NyZXRlVXBkYXRlczphaixmbHVzaFN5bmM6ZnVuY3Rpb24oYSxcbmIpe2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDE4NykpO3ZhciBjPVU7VXw9MTt0cnl7cmV0dXJuIHZmKDk5LGEuYmluZChudWxsLGIpKX1maW5hbGx5e1U9YyxPKCl9fSx1bnN0YWJsZV9jcmVhdGVSb290OkxqLHVuc3RhYmxlX2NyZWF0ZVN5bmNSb290Ok1qLHVuc3RhYmxlX2ZsdXNoQ29udHJvbGxlZDpmdW5jdGlvbihhKXt2YXIgYj1VO1V8PTE7dHJ5e3ZmKDk5LGEpfWZpbmFsbHl7VT1iLFU9PT1UJiZPKCl9fSxfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDp7RXZlbnRzOltJYSxKYSxLYSxDYS5pbmplY3RFdmVudFBsdWdpbnNCeU5hbWUsZmEsUWEsZnVuY3Rpb24oYSl7eWEoYSxQYSl9LEhiLEliLFVkLEJhLGNqLHtjdXJyZW50OiExfV19fTtcbmZ1bmN0aW9uIExqKGEsYil7aWYoIUhqKGEpKXRocm93IHQoRXJyb3IoMjk5KSxcInVuc3RhYmxlX2NyZWF0ZVJvb3RcIik7cmV0dXJuIG5ldyBFaihhLG51bGwhPWImJiEwPT09Yi5oeWRyYXRlKX1mdW5jdGlvbiBNaihhLGIpe2lmKCFIaihhKSl0aHJvdyB0KEVycm9yKDI5OSksXCJ1bnN0YWJsZV9jcmVhdGVSb290XCIpO3JldHVybiBuZXcgRGooYSwxLG51bGwhPWImJiEwPT09Yi5oeWRyYXRlKX1cbihmdW5jdGlvbihhKXt2YXIgYj1hLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlO3JldHVybiB0aihtKHt9LGEse292ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6WGIuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihhKXthPXFkKGEpO3JldHVybiBudWxsPT09YT9udWxsOmEuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTpmdW5jdGlvbihhKXtyZXR1cm4gYj9iKGEpOm51bGx9LGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGx9KSl9KSh7ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6SGEsYnVuZGxlVHlwZTowLHZlcnNpb246XCIxNi45LjBcIixcbnJlbmRlcmVyUGFja2FnZU5hbWU6XCJyZWFjdC1kb21cIn0pO3ZhciBPaj17ZGVmYXVsdDpOan0sUGo9T2omJk5qfHxPajttb2R1bGUuZXhwb3J0cz1Qai5kZWZhdWx0fHxQajtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjAuMTUuMFxuICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBkPXZvaWQgMCxlPXZvaWQgMCxnPXZvaWQgMCxtPXZvaWQgMCxuPXZvaWQgMDtleHBvcnRzLnVuc3RhYmxlX25vdz12b2lkIDA7ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT12b2lkIDA7XG5pZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJmdW5jdGlvblwiIT09dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgcD1udWxsLHE9bnVsbCxyPWZ1bmN0aW9uKCl7aWYobnVsbCE9PXApdHJ5e3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7cCghMCxhKTtwPW51bGx9Y2F0Y2goYil7dGhyb3cgc2V0VGltZW91dChyLDApLGI7fX07ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKX07ZD1mdW5jdGlvbihhKXtudWxsIT09cD9zZXRUaW1lb3V0KGQsMCxhKToocD1hLHNldFRpbWVvdXQociwwKSl9O2U9ZnVuY3Rpb24oYSxiKXtxPXNldFRpbWVvdXQoYSxiKX07Zz1mdW5jdGlvbigpe2NsZWFyVGltZW91dChxKX07bT1mdW5jdGlvbigpe3JldHVybiExfTtuPWV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oKXt9fWVsc2V7dmFyIHQ9d2luZG93LnBlcmZvcm1hbmNlLHU9d2luZG93LkRhdGUsdj13aW5kb3cuc2V0VGltZW91dCxcbnc9d2luZG93LmNsZWFyVGltZW91dCx4PXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUseT13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjb25zb2xlJiYoXCJmdW5jdGlvblwiIT09dHlwZW9mIHgmJmNvbnNvbGUuZXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IHJlcXVlc3RBbmltYXRpb25GcmFtZS4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9mYi5tZS9yZWFjdC1wb2x5ZmlsbHNcIiksXCJmdW5jdGlvblwiIT09dHlwZW9mIHkmJmNvbnNvbGUuZXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGNhbmNlbEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL2ZiLm1lL3JlYWN0LXBvbHlmaWxsc1wiKSk7ZXhwb3J0cy51bnN0YWJsZV9ub3c9XCJvYmplY3RcIj09PXR5cGVvZiB0JiZcblwiZnVuY3Rpb25cIj09PXR5cGVvZiB0Lm5vdz9mdW5jdGlvbigpe3JldHVybiB0Lm5vdygpfTpmdW5jdGlvbigpe3JldHVybiB1Lm5vdygpfTt2YXIgej0hMSxBPW51bGwsQj0tMSxDPS0xLEQ9MzMuMzMsRT0tMSxGPS0xLEc9MCxIPSExO209ZnVuY3Rpb24oKXtyZXR1cm4gZXhwb3J0cy51bnN0YWJsZV9ub3coKT49R307bj1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihhKXswPmF8fDEyNTxhP2NvbnNvbGUuZXJyb3IoXCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZXJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHVuc3VwcG9ydGVkXCIpOjA8YT8oRD1NYXRoLmZsb29yKDFFMy9hKSxIPSEwKTooRD0zMy4zMyxIPSExKX07dmFyIEo9ZnVuY3Rpb24oKXtpZihudWxsIT09QSl7dmFyIGE9ZXhwb3J0cy51bnN0YWJsZV9ub3coKSxiPTA8Ry1hO3RyeXtBKGIsXG5hKXx8KEE9bnVsbCl9Y2F0Y2goYyl7dGhyb3cgSS5wb3N0TWVzc2FnZShudWxsKSxjO319fSxLPW5ldyBNZXNzYWdlQ2hhbm5lbCxJPUsucG9ydDI7Sy5wb3J0MS5vbm1lc3NhZ2U9Sjt2YXIgTD1mdW5jdGlvbihhKXtpZihudWxsPT09QSlGPUU9LTEsej0hMTtlbHNle3o9ITA7eChmdW5jdGlvbihhKXt3KEIpO0woYSl9KTt2YXIgYj1mdW5jdGlvbigpe0c9ZXhwb3J0cy51bnN0YWJsZV9ub3coKStELzI7SigpO0I9dihiLDMqRCl9O0I9dihiLDMqRCk7aWYoLTEhPT1FJiYuMTxhLUUpe3ZhciBjPWEtRTshSCYmLTEhPT1GJiZjPEQmJkY8RCYmKEQ9YzxGP0Y6Yyw4LjMzPkQmJihEPTguMzMpKTtGPWN9RT1hO0c9YStEO0kucG9zdE1lc3NhZ2UobnVsbCl9fTtkPWZ1bmN0aW9uKGEpe0E9YTt6fHwoej0hMCx4KGZ1bmN0aW9uKGEpe0woYSl9KSl9O2U9ZnVuY3Rpb24oYSxiKXtDPXYoZnVuY3Rpb24oKXthKGV4cG9ydHMudW5zdGFibGVfbm93KCkpfSxiKX07Zz1mdW5jdGlvbigpe3coQyk7XG5DPS0xfX12YXIgTT1udWxsLE49bnVsbCxPPW51bGwsUD0zLFE9ITEsUj0hMSxTPSExO1xuZnVuY3Rpb24gVChhLGIpe3ZhciBjPWEubmV4dDtpZihjPT09YSlNPW51bGw7ZWxzZXthPT09TSYmKE09Yyk7dmFyIGY9YS5wcmV2aW91cztmLm5leHQ9YztjLnByZXZpb3VzPWZ9YS5uZXh0PWEucHJldmlvdXM9bnVsbDtjPWEuY2FsbGJhY2s7Zj1QO3ZhciBsPU87UD1hLnByaW9yaXR5TGV2ZWw7Tz1hO3RyeXt2YXIgaD1hLmV4cGlyYXRpb25UaW1lPD1iO3N3aXRjaChQKXtjYXNlIDE6dmFyIGs9YyhoKTticmVhaztjYXNlIDI6az1jKGgpO2JyZWFrO2Nhc2UgMzprPWMoaCk7YnJlYWs7Y2FzZSA0Oms9YyhoKTticmVhaztjYXNlIDU6az1jKGgpfX1jYXRjaChaKXt0aHJvdyBaO31maW5hbGx5e1A9ZixPPWx9aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGspaWYoYj1hLmV4cGlyYXRpb25UaW1lLGEuY2FsbGJhY2s9ayxudWxsPT09TSlNPWEubmV4dD1hLnByZXZpb3VzPWE7ZWxzZXtrPW51bGw7aD1NO2Rve2lmKGI8PWguZXhwaXJhdGlvblRpbWUpe2s9aDticmVha31oPWgubmV4dH13aGlsZShoIT09XG5NKTtudWxsPT09az9rPU06az09PU0mJihNPWEpO2I9ay5wcmV2aW91cztiLm5leHQ9ay5wcmV2aW91cz1hO2EubmV4dD1rO2EucHJldmlvdXM9Yn19ZnVuY3Rpb24gVShhKXtpZihudWxsIT09TiYmTi5zdGFydFRpbWU8PWEpe2Rve3ZhciBiPU4sYz1iLm5leHQ7aWYoYj09PWMpTj1udWxsO2Vsc2V7Tj1jO3ZhciBmPWIucHJldmlvdXM7Zi5uZXh0PWM7Yy5wcmV2aW91cz1mfWIubmV4dD1iLnByZXZpb3VzPW51bGw7VihiLGIuZXhwaXJhdGlvblRpbWUpfXdoaWxlKG51bGwhPT1OJiZOLnN0YXJ0VGltZTw9YSl9fWZ1bmN0aW9uIFcoYSl7Uz0hMTtVKGEpO1J8fChudWxsIT09TT8oUj0hMCxkKFgpKTpudWxsIT09TiYmZShXLE4uc3RhcnRUaW1lLWEpKX1cbmZ1bmN0aW9uIFgoYSxiKXtSPSExO1MmJihTPSExLGcoKSk7VShiKTtRPSEwO3RyeXtpZighYSlmb3IoO251bGwhPT1NJiZNLmV4cGlyYXRpb25UaW1lPD1iOylUKE0sYiksYj1leHBvcnRzLnVuc3RhYmxlX25vdygpLFUoYik7ZWxzZSBpZihudWxsIT09TSl7ZG8gVChNLGIpLGI9ZXhwb3J0cy51bnN0YWJsZV9ub3coKSxVKGIpO3doaWxlKG51bGwhPT1NJiYhbSgpKX1pZihudWxsIT09TSlyZXR1cm4hMDtudWxsIT09TiYmZShXLE4uc3RhcnRUaW1lLWIpO3JldHVybiExfWZpbmFsbHl7UT0hMX19ZnVuY3Rpb24gWShhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybi0xO2Nhc2UgMjpyZXR1cm4gMjUwO2Nhc2UgNTpyZXR1cm4gMTA3Mzc0MTgyMztjYXNlIDQ6cmV0dXJuIDFFNDtkZWZhdWx0OnJldHVybiA1RTN9fVxuZnVuY3Rpb24gVihhLGIpe2lmKG51bGw9PT1NKU09YS5uZXh0PWEucHJldmlvdXM9YTtlbHNle3ZhciBjPW51bGwsZj1NO2Rve2lmKGI8Zi5leHBpcmF0aW9uVGltZSl7Yz1mO2JyZWFrfWY9Zi5uZXh0fXdoaWxlKGYhPT1NKTtudWxsPT09Yz9jPU06Yz09PU0mJihNPWEpO2I9Yy5wcmV2aW91cztiLm5leHQ9Yy5wcmV2aW91cz1hO2EubmV4dD1jO2EucHJldmlvdXM9Yn19dmFyIGFhPW47ZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xO2V4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MjtleHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTM7ZXhwb3J0cy51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NTtleHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQ7XG5leHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6YT0zfXZhciBjPVA7UD1hO3RyeXtyZXR1cm4gYigpfWZpbmFsbHl7UD1jfX07ZXhwb3J0cy51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGEpe3N3aXRjaChQKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgYj0zO2JyZWFrO2RlZmF1bHQ6Yj1QfXZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7UD1jfX07XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBmPWV4cG9ydHMudW5zdGFibGVfbm93KCk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yyl7dmFyIGw9Yy5kZWxheTtsPVwibnVtYmVyXCI9PT10eXBlb2YgbCYmMDxsP2YrbDpmO2M9XCJudW1iZXJcIj09PXR5cGVvZiBjLnRpbWVvdXQ/Yy50aW1lb3V0OlkoYSl9ZWxzZSBjPVkoYSksbD1mO2M9bCtjO2E9e2NhbGxiYWNrOmIscHJpb3JpdHlMZXZlbDphLHN0YXJ0VGltZTpsLGV4cGlyYXRpb25UaW1lOmMsbmV4dDpudWxsLHByZXZpb3VzOm51bGx9O2lmKGw+Zil7Yz1sO2lmKG51bGw9PT1OKU49YS5uZXh0PWEucHJldmlvdXM9YTtlbHNle2I9bnVsbDt2YXIgaD1OO2Rve2lmKGM8aC5zdGFydFRpbWUpe2I9aDticmVha31oPWgubmV4dH13aGlsZShoIT09Tik7bnVsbD09PWI/Yj1OOmI9PT1OJiYoTj1hKTtjPWIucHJldmlvdXM7Yy5uZXh0PWIucHJldmlvdXM9YTthLm5leHQ9YjthLnByZXZpb3VzPVxuY31udWxsPT09TSYmTj09PWEmJihTP2coKTpTPSEwLGUoVyxsLWYpKX1lbHNlIFYoYSxjKSxSfHxRfHwoUj0hMCxkKFgpKTtyZXR1cm4gYX07ZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1hLm5leHQ7aWYobnVsbCE9PWIpe2lmKGE9PT1iKWE9PT1NP009bnVsbDphPT09TiYmKE49bnVsbCk7ZWxzZXthPT09TT9NPWI6YT09PU4mJihOPWIpO3ZhciBjPWEucHJldmlvdXM7Yy5uZXh0PWI7Yi5wcmV2aW91cz1jfWEubmV4dD1hLnByZXZpb3VzPW51bGx9fTtleHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1QO3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtQPWN9fX07ZXhwb3J0cy51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBQfTtcbmV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQ9ZnVuY3Rpb24oKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpO1UoYSk7cmV0dXJuIG51bGwhPT1PJiZudWxsIT09TSYmTS5zdGFydFRpbWU8PWEmJk0uZXhwaXJhdGlvblRpbWU8Ty5leHBpcmF0aW9uVGltZXx8bSgpfTtleHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludD1hYTtleHBvcnRzLnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7Unx8UXx8KFI9ITAsZChYKSl9O2V4cG9ydHMudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9O2V4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gTX07XG4iLCJmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5V2l0aEhvbGVzO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHtcbiAgdmFyIF9pID0gYXJyICYmICh0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGFycltTeW1ib2wuaXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl0pO1xuXG4gIGlmIChfaSA9PSBudWxsKSByZXR1cm47XG4gIHZhciBfYXJyID0gW107XG4gIHZhciBfbiA9IHRydWU7XG4gIHZhciBfZCA9IGZhbHNlO1xuXG4gIHZhciBfcywgX2U7XG5cbiAgdHJ5IHtcbiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaXRlcmFibGVUb0FycmF5TGltaXQ7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCIpO1xuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5TGlrZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfQ2hlY2tib3ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0NoZWNrYm94XCIpKTtcblxudmFyIF9Hcm91cCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vR3JvdXBcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuX0NoZWNrYm94W1wiZGVmYXVsdFwiXS5Hcm91cCA9IF9Hcm91cFtcImRlZmF1bHRcIl07XG52YXIgX2RlZmF1bHQgPSBfQ2hlY2tib3hbXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcblxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbigpIHt9XG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0KCkge31cbmVtcHR5RnVuY3Rpb25XaXRoUmVzZXQucmVzZXRXYXJuaW5nQ2FjaGUgPSBlbXB0eUZ1bmN0aW9uO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBzaGltKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgaWYgKHNlY3JldCA9PT0gUmVhY3RQcm9wVHlwZXNTZWNyZXQpIHtcbiAgICAgIC8vIEl0IGlzIHN0aWxsIHNhZmUgd2hlbiBjYWxsZWQgZnJvbSBSZWFjdC5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcihcbiAgICAgICdDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiAnICtcbiAgICAgICdVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICk7XG4gICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgdGhyb3cgZXJyO1xuICB9O1xuICBzaGltLmlzUmVxdWlyZWQgPSBzaGltO1xuICBmdW5jdGlvbiBnZXRTaGltKCkge1xuICAgIHJldHVybiBzaGltO1xuICB9O1xuICAvLyBJbXBvcnRhbnQhXG4gIC8vIEtlZXAgdGhpcyBsaXN0IGluIHN5bmMgd2l0aCBwcm9kdWN0aW9uIHZlcnNpb24gaW4gYC4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMuanNgLlxuICB2YXIgUmVhY3RQcm9wVHlwZXMgPSB7XG4gICAgYXJyYXk6IHNoaW0sXG4gICAgYm9vbDogc2hpbSxcbiAgICBmdW5jOiBzaGltLFxuICAgIG51bWJlcjogc2hpbSxcbiAgICBvYmplY3Q6IHNoaW0sXG4gICAgc3RyaW5nOiBzaGltLFxuICAgIHN5bWJvbDogc2hpbSxcblxuICAgIGFueTogc2hpbSxcbiAgICBhcnJheU9mOiBnZXRTaGltLFxuICAgIGVsZW1lbnQ6IHNoaW0sXG4gICAgZWxlbWVudFR5cGU6IHNoaW0sXG4gICAgaW5zdGFuY2VPZjogZ2V0U2hpbSxcbiAgICBub2RlOiBzaGltLFxuICAgIG9iamVjdE9mOiBnZXRTaGltLFxuICAgIG9uZU9mOiBnZXRTaGltLFxuICAgIG9uZU9mVHlwZTogZ2V0U2hpbSxcbiAgICBzaGFwZTogZ2V0U2hpbSxcbiAgICBleGFjdDogZ2V0U2hpbSxcblxuICAgIGNoZWNrUHJvcFR5cGVzOiBlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LFxuICAgIHJlc2V0V2FybmluZ0NhY2hlOiBlbXB0eUZ1bmN0aW9uXG4gIH07XG5cbiAgUmVhY3RQcm9wVHlwZXMuUHJvcFR5cGVzID0gUmVhY3RQcm9wVHlwZXM7XG5cbiAgcmV0dXJuIFJlYWN0UHJvcFR5cGVzO1xufTtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ25cIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuYXNzaWduJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3QuYXNzaWduO1xuIiwiLy8gMTkuMS4zLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSlcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GLCAnT2JqZWN0JywgeyBhc3NpZ246IHJlcXVpcmUoJy4vX29iamVjdC1hc3NpZ24nKSB9KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIDE5LjEuMi4xIE9iamVjdC5hc3NpZ24odGFyZ2V0LCBzb3VyY2UsIC4uLilcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciAkYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gc2hvdWxkIHdvcmsgd2l0aCBzeW1ib2xzIGFuZCBzaG91bGQgaGF2ZSBkZXRlcm1pbmlzdGljIHByb3BlcnR5IG9yZGVyIChWOCBidWcpXG5tb2R1bGUuZXhwb3J0cyA9ICEkYXNzaWduIHx8IHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICB2YXIgQSA9IHt9O1xuICB2YXIgQiA9IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgdmFyIFMgPSBTeW1ib2woKTtcbiAgdmFyIEsgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3QnO1xuICBBW1NdID0gNztcbiAgSy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAoaykgeyBCW2tdID0gazsgfSk7XG4gIHJldHVybiAkYXNzaWduKHt9LCBBKVtTXSAhPSA3IHx8IE9iamVjdC5rZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBLO1xufSkgPyBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCBzb3VyY2UpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICB2YXIgVCA9IHRvT2JqZWN0KHRhcmdldCk7XG4gIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgd2hpbGUgKGFMZW4gPiBpbmRleCkge1xuICAgIHZhciBTID0gSU9iamVjdChhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHZhciBrZXlzID0gZ2V0U3ltYm9scyA/IGdldEtleXMoUykuY29uY2F0KGdldFN5bWJvbHMoUykpIDogZ2V0S2V5cyhTKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGogPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGopIHtcbiAgICAgIGtleSA9IGtleXNbaisrXTtcbiAgICAgIGlmICghREVTQ1JJUFRPUlMgfHwgaXNFbnVtLmNhbGwoUywga2V5KSkgVFtrZXldID0gU1trZXldO1xuICAgIH1cbiAgfSByZXR1cm4gVDtcbn0gOiAkYXNzaWduO1xuIiwiLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gdHJ1ZSAgLT4gQXJyYXkjaW5jbHVkZXNcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pIHtcbiAgICAgIGlmIChPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG4iLCIvLyA3LjEuMTUgVG9MZW5ndGhcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPiAwID8gbWluKHRvSW50ZWdlcihpdCksIDB4MWZmZmZmZmZmZmZmZmYpIDogMDsgLy8gcG93KDIsIDUzKSAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIGluZGV4ID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvclwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX3drcy1leHQnKS5mKCdpdGVyYXRvcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRhdCA9IHJlcXVpcmUoJy4vX3N0cmluZy1hdCcpKHRydWUpO1xuXG4vLyAyMS4xLjMuMjcgU3RyaW5nLnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5yZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKFN0cmluZywgJ1N0cmluZycsIGZ1bmN0aW9uIChpdGVyYXRlZCkge1xuICB0aGlzLl90ID0gU3RyaW5nKGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4vLyAyMS4xLjUuMi4xICVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGluZGV4ID0gdGhpcy5faTtcbiAgdmFyIHBvaW50O1xuICBpZiAoaW5kZXggPj0gTy5sZW5ndGgpIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgcG9pbnQgPSAkYXQoTywgaW5kZXgpO1xuICB0aGlzLl9pICs9IHBvaW50Lmxlbmd0aDtcbiAgcmV0dXJuIHsgdmFsdWU6IHBvaW50LCBkb25lOiBmYWxzZSB9O1xufSk7XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG4vLyB0cnVlICAtPiBTdHJpbmcjYXRcbi8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhhdCwgcG9zKSB7XG4gICAgdmFyIHMgPSBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG4gICAgdmFyIGkgPSB0b0ludGVnZXIocG9zKTtcbiAgICB2YXIgbCA9IHMubGVuZ3RoO1xuICAgIHZhciBhLCBiO1xuICAgIGlmIChpIDwgMCB8fCBpID49IGwpIHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDtcbiAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG4gICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG4iLCJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIFA7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkUC5mKE8sIFAgPSBrZXlzW2krK10sIFByb3BlcnRpZXNbUF0pO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbm1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuIiwiLy8gMTkuMS4yLjkgLyAxNS4yLjMuMiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTylcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xudmFyIE9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gKE8pIHtcbiAgTyA9IHRvT2JqZWN0KE8pO1xuICBpZiAoaGFzKE8sIElFX1BST1RPKSkgcmV0dXJuIE9bSUVfUFJPVE9dO1xuICBpZiAodHlwZW9mIE8uY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBPIGluc3RhbmNlb2YgTy5jb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBPLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtcbiAgfSByZXR1cm4gTyBpbnN0YW5jZW9mIE9iamVjdCA/IE9iamVjdFByb3RvIDogbnVsbDtcbn07XG4iLCJyZXF1aXJlKCcuL2VzNi5hcnJheS5pdGVyYXRvcicpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgVE9fU1RSSU5HX1RBRyA9IHJlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpO1xuXG52YXIgRE9NSXRlcmFibGVzID0gKCdDU1NSdWxlTGlzdCxDU1NTdHlsZURlY2xhcmF0aW9uLENTU1ZhbHVlTGlzdCxDbGllbnRSZWN0TGlzdCxET01SZWN0TGlzdCxET01TdHJpbmdMaXN0LCcgK1xuICAnRE9NVG9rZW5MaXN0LERhdGFUcmFuc2Zlckl0ZW1MaXN0LEZpbGVMaXN0LEhUTUxBbGxDb2xsZWN0aW9uLEhUTUxDb2xsZWN0aW9uLEhUTUxGb3JtRWxlbWVudCxIVE1MU2VsZWN0RWxlbWVudCwnICtcbiAgJ01lZGlhTGlzdCxNaW1lVHlwZUFycmF5LE5hbWVkTm9kZU1hcCxOb2RlTGlzdCxQYWludFJlcXVlc3RMaXN0LFBsdWdpbixQbHVnaW5BcnJheSxTVkdMZW5ndGhMaXN0LFNWR051bWJlckxpc3QsJyArXG4gICdTVkdQYXRoU2VnTGlzdCxTVkdQb2ludExpc3QsU1ZHU3RyaW5nTGlzdCxTVkdUcmFuc2Zvcm1MaXN0LFNvdXJjZUJ1ZmZlckxpc3QsU3R5bGVTaGVldExpc3QsVGV4dFRyYWNrQ3VlTGlzdCwnICtcbiAgJ1RleHRUcmFja0xpc3QsVG91Y2hMaXN0Jykuc3BsaXQoJywnKTtcblxuZm9yICh2YXIgaSA9IDA7IGkgPCBET01JdGVyYWJsZXMubGVuZ3RoOyBpKyspIHtcbiAgdmFyIE5BTUUgPSBET01JdGVyYWJsZXNbaV07XG4gIHZhciBDb2xsZWN0aW9uID0gZ2xvYmFsW05BTUVdO1xuICB2YXIgcHJvdG8gPSBDb2xsZWN0aW9uICYmIENvbGxlY3Rpb24ucHJvdG90eXBlO1xuICBpZiAocHJvdG8gJiYgIXByb3RvW1RPX1NUUklOR19UQUddKSBoaWRlKHByb3RvLCBUT19TVFJJTkdfVEFHLCBOQU1FKTtcbiAgSXRlcmF0b3JzW05BTUVdID0gSXRlcmF0b3JzLkFycmF5O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBzdGVwID0gcmVxdWlyZSgnLi9faXRlci1zdGVwJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xuXG4vLyAyMi4xLjMuNCBBcnJheS5wcm90b3R5cGUuZW50cmllcygpXG4vLyAyMi4xLjMuMTMgQXJyYXkucHJvdG90eXBlLmtleXMoKVxuLy8gMjIuMS4zLjI5IEFycmF5LnByb3RvdHlwZS52YWx1ZXMoKVxuLy8gMjIuMS4zLjMwIEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICB0aGlzLl90ID0gdG9JT2JqZWN0KGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gIHRoaXMuX2sgPSBraW5kOyAgICAgICAgICAgICAgICAvLyBraW5kXG4vLyAyMi4xLjUuMi4xICVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIga2luZCA9IHRoaXMuX2s7XG4gIHZhciBpbmRleCA9IHRoaXMuX2krKztcbiAgaWYgKCFPIHx8IGluZGV4ID49IE8ubGVuZ3RoKSB7XG4gICAgdGhpcy5fdCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc3RlcCgxKTtcbiAgfVxuICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiBzdGVwKDAsIGluZGV4KTtcbiAgaWYgKGtpbmQgPT0gJ3ZhbHVlcycpIHJldHVybiBzdGVwKDAsIE9baW5kZXhdKTtcbiAgcmV0dXJuIHN0ZXAoMCwgW2luZGV4LCBPW2luZGV4XV0pO1xufSwgJ3ZhbHVlcycpO1xuXG4vLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyUgKDkuNC40LjYsIDkuNC40LjcpXG5JdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZG9uZSwgdmFsdWUpIHtcbiAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkb25lOiAhIWRvbmUgfTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuc3ltYm9sJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QudG8tc3RyaW5nJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wuYXN5bmMtaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5TeW1ib2w7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBFQ01BU2NyaXB0IDYgc3ltYm9scyBzaGltXG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgTUVUQSA9IHJlcXVpcmUoJy4vX21ldGEnKS5LRVk7XG52YXIgJGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgd2tzID0gcmVxdWlyZSgnLi9fd2tzJyk7XG52YXIgd2tzRXh0ID0gcmVxdWlyZSgnLi9fd2tzLWV4dCcpO1xudmFyIHdrc0RlZmluZSA9IHJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKTtcbnZhciBlbnVtS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0ta2V5cycpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL19pcy1hcnJheScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgX2NyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBnT1BORXh0ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4tZXh0Jyk7XG52YXIgJEdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xudmFyICRHT1BTID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcHMnKTtcbnZhciAkRFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QRCA9ICRHT1BELmY7XG52YXIgZFAgPSAkRFAuZjtcbnZhciBnT1BOID0gZ09QTkV4dC5mO1xudmFyICRTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyICRKU09OID0gZ2xvYmFsLkpTT047XG52YXIgX3N0cmluZ2lmeSA9ICRKU09OICYmICRKU09OLnN0cmluZ2lmeTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBISURERU4gPSB3a3MoJ19oaWRkZW4nKTtcbnZhciBUT19QUklNSVRJVkUgPSB3a3MoJ3RvUHJpbWl0aXZlJyk7XG52YXIgaXNFbnVtID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgU3ltYm9sUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC1yZWdpc3RyeScpO1xudmFyIEFsbFN5bWJvbHMgPSBzaGFyZWQoJ3N5bWJvbHMnKTtcbnZhciBPUFN5bWJvbHMgPSBzaGFyZWQoJ29wLXN5bWJvbHMnKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdFtQUk9UT1RZUEVdO1xudmFyIFVTRV9OQVRJVkUgPSB0eXBlb2YgJFN5bWJvbCA9PSAnZnVuY3Rpb24nICYmICEhJEdPUFMuZjtcbnZhciBRT2JqZWN0ID0gZ2xvYmFsLlFPYmplY3Q7XG4vLyBEb24ndCB1c2Ugc2V0dGVycyBpbiBRdCBTY3JpcHQsIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8xNzNcbnZhciBzZXR0ZXIgPSAhUU9iamVjdCB8fCAhUU9iamVjdFtQUk9UT1RZUEVdIHx8ICFRT2JqZWN0W1BST1RPVFlQRV0uZmluZENoaWxkO1xuXG4vLyBmYWxsYmFjayBmb3Igb2xkIEFuZHJvaWQsIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD02ODdcbnZhciBzZXRTeW1ib2xEZXNjID0gREVTQ1JJUFRPUlMgJiYgJGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIF9jcmVhdGUoZFAoe30sICdhJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZFAodGhpcywgJ2EnLCB7IHZhbHVlOiA3IH0pLmE7IH1cbiAgfSkpLmEgIT0gNztcbn0pID8gZnVuY3Rpb24gKGl0LCBrZXksIEQpIHtcbiAgdmFyIHByb3RvRGVzYyA9IGdPUEQoT2JqZWN0UHJvdG8sIGtleSk7XG4gIGlmIChwcm90b0Rlc2MpIGRlbGV0ZSBPYmplY3RQcm90b1trZXldO1xuICBkUChpdCwga2V5LCBEKTtcbiAgaWYgKHByb3RvRGVzYyAmJiBpdCAhPT0gT2JqZWN0UHJvdG8pIGRQKE9iamVjdFByb3RvLCBrZXksIHByb3RvRGVzYyk7XG59IDogZFA7XG5cbnZhciB3cmFwID0gZnVuY3Rpb24gKHRhZykge1xuICB2YXIgc3ltID0gQWxsU3ltYm9sc1t0YWddID0gX2NyZWF0ZSgkU3ltYm9sW1BST1RPVFlQRV0pO1xuICBzeW0uX2sgPSB0YWc7XG4gIHJldHVybiBzeW07XG59O1xuXG52YXIgaXNTeW1ib2wgPSBVU0VfTkFUSVZFICYmIHR5cGVvZiAkU3ltYm9sLml0ZXJhdG9yID09ICdzeW1ib2wnID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N5bWJvbCc7XG59IDogZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCBpbnN0YW5jZW9mICRTeW1ib2w7XG59O1xuXG52YXIgJGRlZmluZVByb3BlcnR5ID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgRCkge1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvKSAkZGVmaW5lUHJvcGVydHkoT1BTeW1ib2xzLCBrZXksIEQpO1xuICBhbk9iamVjdChpdCk7XG4gIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEQpO1xuICBpZiAoaGFzKEFsbFN5bWJvbHMsIGtleSkpIHtcbiAgICBpZiAoIUQuZW51bWVyYWJsZSkge1xuICAgICAgaWYgKCFoYXMoaXQsIEhJRERFTikpIGRQKGl0LCBISURERU4sIGNyZWF0ZURlc2MoMSwge30pKTtcbiAgICAgIGl0W0hJRERFTl1ba2V5XSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSBpdFtISURERU5dW2tleV0gPSBmYWxzZTtcbiAgICAgIEQgPSBfY3JlYXRlKEQsIHsgZW51bWVyYWJsZTogY3JlYXRlRGVzYygwLCBmYWxzZSkgfSk7XG4gICAgfSByZXR1cm4gc2V0U3ltYm9sRGVzYyhpdCwga2V5LCBEKTtcbiAgfSByZXR1cm4gZFAoaXQsIGtleSwgRCk7XG59O1xudmFyICRkZWZpbmVQcm9wZXJ0aWVzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhpdCwgUCkge1xuICBhbk9iamVjdChpdCk7XG4gIHZhciBrZXlzID0gZW51bUtleXMoUCA9IHRvSU9iamVjdChQKSk7XG4gIHZhciBpID0gMDtcbiAgdmFyIGwgPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKGwgPiBpKSAkZGVmaW5lUHJvcGVydHkoaXQsIGtleSA9IGtleXNbaSsrXSwgUFtrZXldKTtcbiAgcmV0dXJuIGl0O1xufTtcbnZhciAkY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKGl0LCBQKSB7XG4gIHJldHVybiBQID09PSB1bmRlZmluZWQgPyBfY3JlYXRlKGl0KSA6ICRkZWZpbmVQcm9wZXJ0aWVzKF9jcmVhdGUoaXQpLCBQKTtcbn07XG52YXIgJHByb3BlcnR5SXNFbnVtZXJhYmxlID0gZnVuY3Rpb24gcHJvcGVydHlJc0VudW1lcmFibGUoa2V5KSB7XG4gIHZhciBFID0gaXNFbnVtLmNhbGwodGhpcywga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKSk7XG4gIGlmICh0aGlzID09PSBPYmplY3RQcm90byAmJiBoYXMoQWxsU3ltYm9scywga2V5KSAmJiAhaGFzKE9QU3ltYm9scywga2V5KSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gRSB8fCAhaGFzKHRoaXMsIGtleSkgfHwgIWhhcyhBbGxTeW1ib2xzLCBrZXkpIHx8IGhhcyh0aGlzLCBISURERU4pICYmIHRoaXNbSElEREVOXVtrZXldID8gRSA6IHRydWU7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkge1xuICBpdCA9IHRvSU9iamVjdChpdCk7XG4gIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSk7XG4gIGlmIChpdCA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybjtcbiAgdmFyIEQgPSBnT1BEKGl0LCBrZXkpO1xuICBpZiAoRCAmJiBoYXMoQWxsU3ltYm9scywga2V5KSAmJiAhKGhhcyhpdCwgSElEREVOKSAmJiBpdFtISURERU5dW2tleV0pKSBELmVudW1lcmFibGUgPSB0cnVlO1xuICByZXR1cm4gRDtcbn07XG52YXIgJGdldE93blByb3BlcnR5TmFtZXMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKGl0KSB7XG4gIHZhciBuYW1lcyA9IGdPUE4odG9JT2JqZWN0KGl0KSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkge1xuICAgIGlmICghaGFzKEFsbFN5bWJvbHMsIGtleSA9IG5hbWVzW2krK10pICYmIGtleSAhPSBISURERU4gJiYga2V5ICE9IE1FVEEpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgJGdldE93blByb3BlcnR5U3ltYm9scyA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5U3ltYm9scyhpdCkge1xuICB2YXIgSVNfT1AgPSBpdCA9PT0gT2JqZWN0UHJvdG87XG4gIHZhciBuYW1lcyA9IGdPUE4oSVNfT1AgPyBPUFN5bWJvbHMgOiB0b0lPYmplY3QoaXQpKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgaSA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSB7XG4gICAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkgPSBuYW1lc1tpKytdKSAmJiAoSVNfT1AgPyBoYXMoT2JqZWN0UHJvdG8sIGtleSkgOiB0cnVlKSkgcmVzdWx0LnB1c2goQWxsU3ltYm9sc1trZXldKTtcbiAgfSByZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gMTkuNC4xLjEgU3ltYm9sKFtkZXNjcmlwdGlvbl0pXG5pZiAoIVVTRV9OQVRJVkUpIHtcbiAgJFN5bWJvbCA9IGZ1bmN0aW9uIFN5bWJvbCgpIHtcbiAgICBpZiAodGhpcyBpbnN0YW5jZW9mICRTeW1ib2wpIHRocm93IFR5cGVFcnJvcignU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIScpO1xuICAgIHZhciB0YWcgPSB1aWQoYXJndW1lbnRzLmxlbmd0aCA+IDAgPyBhcmd1bWVudHNbMF0gOiB1bmRlZmluZWQpO1xuICAgIHZhciAkc2V0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8pICRzZXQuY2FsbChPUFN5bWJvbHMsIHZhbHVlKTtcbiAgICAgIGlmIChoYXModGhpcywgSElEREVOKSAmJiBoYXModGhpc1tISURERU5dLCB0YWcpKSB0aGlzW0hJRERFTl1bdGFnXSA9IGZhbHNlO1xuICAgICAgc2V0U3ltYm9sRGVzYyh0aGlzLCB0YWcsIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbiAgICB9O1xuICAgIGlmIChERVNDUklQVE9SUyAmJiBzZXR0ZXIpIHNldFN5bWJvbERlc2MoT2JqZWN0UHJvdG8sIHRhZywgeyBjb25maWd1cmFibGU6IHRydWUsIHNldDogJHNldCB9KTtcbiAgICByZXR1cm4gd3JhcCh0YWcpO1xuICB9O1xuICByZWRlZmluZSgkU3ltYm9sW1BST1RPVFlQRV0sICd0b1N0cmluZycsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9rO1xuICB9KTtcblxuICAkR09QRC5mID0gJGdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgJERQLmYgPSAkZGVmaW5lUHJvcGVydHk7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZiA9IGdPUE5FeHQuZiA9ICRnZXRPd25Qcm9wZXJ0eU5hbWVzO1xuICByZXF1aXJlKCcuL19vYmplY3QtcGllJykuZiA9ICRwcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiAgJEdPUFMuZiA9ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbiAgaWYgKERFU0NSSVBUT1JTICYmICFyZXF1aXJlKCcuL19saWJyYXJ5JykpIHtcbiAgICByZWRlZmluZShPYmplY3RQcm90bywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB0cnVlKTtcbiAgfVxuXG4gIHdrc0V4dC5mID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gd3JhcCh3a3MobmFtZSkpO1xuICB9O1xufVxuXG4kZXhwb3J0KCRleHBvcnQuRyArICRleHBvcnQuVyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCB7IFN5bWJvbDogJFN5bWJvbCB9KTtcblxuZm9yICh2YXIgZXM2U3ltYm9scyA9IChcbiAgLy8gMTkuNC4yLjIsIDE5LjQuMi4zLCAxOS40LjIuNCwgMTkuNC4yLjYsIDE5LjQuMi44LCAxOS40LjIuOSwgMTkuNC4yLjEwLCAxOS40LjIuMTEsIDE5LjQuMi4xMiwgMTkuNC4yLjEzLCAxOS40LjIuMTRcbiAgJ2hhc0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzJ1xuKS5zcGxpdCgnLCcpLCBqID0gMDsgZXM2U3ltYm9scy5sZW5ndGggPiBqOyl3a3MoZXM2U3ltYm9sc1tqKytdKTtcblxuZm9yICh2YXIgd2VsbEtub3duU3ltYm9scyA9ICRrZXlzKHdrcy5zdG9yZSksIGsgPSAwOyB3ZWxsS25vd25TeW1ib2xzLmxlbmd0aCA+IGs7KSB3a3NEZWZpbmUod2VsbEtub3duU3ltYm9sc1trKytdKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ1N5bWJvbCcsIHtcbiAgLy8gMTkuNC4yLjEgU3ltYm9sLmZvcihrZXkpXG4gICdmb3InOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmV0dXJuIGhhcyhTeW1ib2xSZWdpc3RyeSwga2V5ICs9ICcnKVxuICAgICAgPyBTeW1ib2xSZWdpc3RyeVtrZXldXG4gICAgICA6IFN5bWJvbFJlZ2lzdHJ5W2tleV0gPSAkU3ltYm9sKGtleSk7XG4gIH0sXG4gIC8vIDE5LjQuMi41IFN5bWJvbC5rZXlGb3Ioc3ltKVxuICBrZXlGb3I6IGZ1bmN0aW9uIGtleUZvcihzeW0pIHtcbiAgICBpZiAoIWlzU3ltYm9sKHN5bSkpIHRocm93IFR5cGVFcnJvcihzeW0gKyAnIGlzIG5vdCBhIHN5bWJvbCEnKTtcbiAgICBmb3IgKHZhciBrZXkgaW4gU3ltYm9sUmVnaXN0cnkpIGlmIChTeW1ib2xSZWdpc3RyeVtrZXldID09PSBzeW0pIHJldHVybiBrZXk7XG4gIH0sXG4gIHVzZVNldHRlcjogZnVuY3Rpb24gKCkgeyBzZXR0ZXIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gZmFsc2U7IH1cbn0pO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCAnT2JqZWN0Jywge1xuICAvLyAxOS4xLjIuMiBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gMTkuMS4yLjQgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIDE5LjEuMi4zIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpXG4gIGRlZmluZVByb3BlcnRpZXM6ICRkZWZpbmVQcm9wZXJ0aWVzLFxuICAvLyAxOS4xLjIuNiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogJGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgLy8gMTkuMS4yLjcgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXMsXG4gIC8vIDE5LjEuMi44IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoTylcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzXG59KTtcblxuLy8gQ2hyb21lIDM4IGFuZCAzOSBgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc2AgZmFpbHMgb24gcHJpbWl0aXZlc1xuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzQ0M1xudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSAkZmFpbHMoZnVuY3Rpb24gKCkgeyAkR09QUy5mKDEpOyB9KTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiBGQUlMU19PTl9QUklNSVRJVkVTLCAnT2JqZWN0Jywge1xuICBnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5U3ltYm9scyhpdCkge1xuICAgIHJldHVybiAkR09QUy5mKHRvT2JqZWN0KGl0KSk7XG4gIH1cbn0pO1xuXG4vLyAyNC4zLjIgSlNPTi5zdHJpbmdpZnkodmFsdWUgWywgcmVwbGFjZXIgWywgc3BhY2VdXSlcbiRKU09OICYmICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogKCFVU0VfTkFUSVZFIHx8ICRmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBTID0gJFN5bWJvbCgpO1xuICAvLyBNUyBFZGdlIGNvbnZlcnRzIHN5bWJvbCB2YWx1ZXMgdG8gSlNPTiBhcyB7fVxuICAvLyBXZWJLaXQgY29udmVydHMgc3ltYm9sIHZhbHVlcyB0byBKU09OIGFzIG51bGxcbiAgLy8gVjggdGhyb3dzIG9uIGJveGVkIHN5bWJvbHNcbiAgcmV0dXJuIF9zdHJpbmdpZnkoW1NdKSAhPSAnW251bGxdJyB8fCBfc3RyaW5naWZ5KHsgYTogUyB9KSAhPSAne30nIHx8IF9zdHJpbmdpZnkoT2JqZWN0KFMpKSAhPSAne30nO1xufSkpLCAnSlNPTicsIHtcbiAgc3RyaW5naWZ5OiBmdW5jdGlvbiBzdHJpbmdpZnkoaXQpIHtcbiAgICB2YXIgYXJncyA9IFtpdF07XG4gICAgdmFyIGkgPSAxO1xuICAgIHZhciByZXBsYWNlciwgJHJlcGxhY2VyO1xuICAgIHdoaWxlIChhcmd1bWVudHMubGVuZ3RoID4gaSkgYXJncy5wdXNoKGFyZ3VtZW50c1tpKytdKTtcbiAgICAkcmVwbGFjZXIgPSByZXBsYWNlciA9IGFyZ3NbMV07XG4gICAgaWYgKCFpc09iamVjdChyZXBsYWNlcikgJiYgaXQgPT09IHVuZGVmaW5lZCB8fCBpc1N5bWJvbChpdCkpIHJldHVybjsgLy8gSUU4IHJldHVybnMgc3RyaW5nIG9uIHVuZGVmaW5lZFxuICAgIGlmICghaXNBcnJheShyZXBsYWNlcikpIHJlcGxhY2VyID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgJHJlcGxhY2VyID09ICdmdW5jdGlvbicpIHZhbHVlID0gJHJlcGxhY2VyLmNhbGwodGhpcywga2V5LCB2YWx1ZSk7XG4gICAgICBpZiAoIWlzU3ltYm9sKHZhbHVlKSkgcmV0dXJuIHZhbHVlO1xuICAgIH07XG4gICAgYXJnc1sxXSA9IHJlcGxhY2VyO1xuICAgIHJldHVybiBfc3RyaW5naWZ5LmFwcGx5KCRKU09OLCBhcmdzKTtcbiAgfVxufSk7XG5cbi8vIDE5LjQuMy40IFN5bWJvbC5wcm90b3R5cGVbQEB0b1ByaW1pdGl2ZV0oaGludClcbiRTeW1ib2xbUFJPVE9UWVBFXVtUT19QUklNSVRJVkVdIHx8IHJlcXVpcmUoJy4vX2hpZGUnKSgkU3ltYm9sW1BST1RPVFlQRV0sIFRPX1BSSU1JVElWRSwgJFN5bWJvbFtQUk9UT1RZUEVdLnZhbHVlT2YpO1xuLy8gMTkuNC4zLjUgU3ltYm9sLnByb3RvdHlwZVtAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoJFN5bWJvbCwgJ1N5bWJvbCcpO1xuLy8gMjAuMi4xLjkgTWF0aFtAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoTWF0aCwgJ01hdGgnLCB0cnVlKTtcbi8vIDI0LjMuMyBKU09OW0BAdG9TdHJpbmdUYWddXG5zZXRUb1N0cmluZ1RhZyhnbG9iYWwuSlNPTiwgJ0pTT04nLCB0cnVlKTtcbiIsInZhciBNRVRBID0gcmVxdWlyZSgnLi9fdWlkJykoJ21ldGEnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHNldERlc2MgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mO1xudmFyIGlkID0gMDtcbnZhciBpc0V4dGVuc2libGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlIHx8IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRydWU7XG59O1xudmFyIEZSRUVaRSA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGlzRXh0ZW5zaWJsZShPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pKTtcbn0pO1xudmFyIHNldE1ldGEgPSBmdW5jdGlvbiAoaXQpIHtcbiAgc2V0RGVzYyhpdCwgTUVUQSwgeyB2YWx1ZToge1xuICAgIGk6ICdPJyArICsraWQsIC8vIG9iamVjdCBJRFxuICAgIHc6IHt9ICAgICAgICAgIC8vIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gfSk7XG59O1xudmFyIGZhc3RLZXkgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICAvLyByZXR1cm4gcHJpbWl0aXZlIHdpdGggcHJlZml4XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnID8gaXQgOiAodHlwZW9mIGl0ID09ICdzdHJpbmcnID8gJ1MnIDogJ1AnKSArIGl0O1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuICdGJztcbiAgICAvLyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBtZXRhZGF0YVxuICAgIGlmICghY3JlYXRlKSByZXR1cm4gJ0UnO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBvYmplY3QgSURcbiAgfSByZXR1cm4gaXRbTUVUQV0uaTtcbn07XG52YXIgZ2V0V2VhayA9IGZ1bmN0aW9uIChpdCwgY3JlYXRlKSB7XG4gIGlmICghaGFzKGl0LCBNRVRBKSkge1xuICAgIC8vIGNhbid0IHNldCBtZXRhZGF0YSB0byB1bmNhdWdodCBmcm96ZW4gb2JqZWN0XG4gICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBtZXRhZGF0YVxuICAgIGlmICghY3JlYXRlKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGFcbiAgICBzZXRNZXRhKGl0KTtcbiAgLy8gcmV0dXJuIGhhc2ggd2VhayBjb2xsZWN0aW9ucyBJRHNcbiAgfSByZXR1cm4gaXRbTUVUQV0udztcbn07XG4vLyBhZGQgbWV0YWRhdGEgb24gZnJlZXplLWZhbWlseSBtZXRob2RzIGNhbGxpbmdcbnZhciBvbkZyZWV6ZSA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoRlJFRVpFICYmIG1ldGEuTkVFRCAmJiBpc0V4dGVuc2libGUoaXQpICYmICFoYXMoaXQsIE1FVEEpKSBzZXRNZXRhKGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbnZhciBtZXRhID0gbW9kdWxlLmV4cG9ydHMgPSB7XG4gIEtFWTogTUVUQSxcbiAgTkVFRDogZmFsc2UsXG4gIGZhc3RLZXk6IGZhc3RLZXksXG4gIGdldFdlYWs6IGdldFdlYWssXG4gIG9uRnJlZXplOiBvbkZyZWV6ZVxufTtcbiIsIi8vIGFsbCBlbnVtZXJhYmxlIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBzeW1ib2xzXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGdldEtleXMoaXQpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgaWYgKGdldFN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IGdldFN5bWJvbHMoaXQpO1xuICAgIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIvLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KVxudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjb2YoYXJnKSA9PSAnQXJyYXknO1xufTtcbiIsIi8vIGZhbGxiYWNrIGZvciBJRTExIGJ1Z2d5IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHdpdGggaWZyYW1lIGFuZCB3aW5kb3dcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZjtcbnZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG52YXIgd2luZG93TmFtZXMgPSB0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdyAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc1xuICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdykgOiBbXTtcblxudmFyIGdldFdpbmRvd05hbWVzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGdPUE4oaXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHdpbmRvd05hbWVzLnNsaWNlKCk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzLmYgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKGl0KSB7XG4gIHJldHVybiB3aW5kb3dOYW1lcyAmJiB0b1N0cmluZy5jYWxsKGl0KSA9PSAnW29iamVjdCBXaW5kb3ddJyA/IGdldFdpbmRvd05hbWVzKGl0KSA6IGdPUE4odG9JT2JqZWN0KGl0KSk7XG59O1xuIiwicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdhc3luY0l0ZXJhdG9yJyk7XG4iLCJyZXF1aXJlKCcuL193a3MtZGVmaW5lJykoJ29ic2VydmFibGUnKTtcbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5zZXQtcHJvdG90eXBlLW9mJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Quc2V0UHJvdG90eXBlT2Y7XG4iLCIvLyAxOS4xLjMuMTkgT2JqZWN0LnNldFByb3RvdHlwZU9mKE8sIHByb3RvKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbiRleHBvcnQoJGV4cG9ydC5TLCAnT2JqZWN0JywgeyBzZXRQcm90b3R5cGVPZjogcmVxdWlyZSgnLi9fc2V0LXByb3RvJykuc2V0IH0pO1xuIiwiLy8gV29ya3Mgd2l0aCBfX3Byb3RvX18gb25seS4gT2xkIHY4IGNhbid0IHdvcmsgd2l0aCBudWxsIHByb3RvIG9iamVjdHMuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBjaGVjayA9IGZ1bmN0aW9uIChPLCBwcm90bykge1xuICBhbk9iamVjdChPKTtcbiAgaWYgKCFpc09iamVjdChwcm90bykgJiYgcHJvdG8gIT09IG51bGwpIHRocm93IFR5cGVFcnJvcihwcm90byArIFwiOiBjYW4ndCBzZXQgYXMgcHJvdG90eXBlIVwiKTtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgKCdfX3Byb3RvX18nIGluIHt9ID8gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIGZ1bmN0aW9uICh0ZXN0LCBidWdneSwgc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzZXQgPSByZXF1aXJlKCcuL19jdHgnKShGdW5jdGlvbi5jYWxsLCByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpLmYoT2JqZWN0LnByb3RvdHlwZSwgJ19fcHJvdG9fXycpLnNldCwgMik7XG4gICAgICAgIHNldCh0ZXN0LCBbXSk7XG4gICAgICAgIGJ1Z2d5ID0gISh0ZXN0IGluc3RhbmNlb2YgQXJyYXkpO1xuICAgICAgfSBjYXRjaCAoZSkgeyBidWdneSA9IHRydWU7IH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgICAgICBjaGVjayhPLCBwcm90byk7XG4gICAgICAgIGlmIChidWdneSkgTy5fX3Byb3RvX18gPSBwcm90bztcbiAgICAgICAgZWxzZSBzZXQoTywgcHJvdG8pO1xuICAgICAgICByZXR1cm4gTztcbiAgICAgIH07XG4gICAgfSh7fSwgZmFsc2UpIDogdW5kZWZpbmVkKSxcbiAgY2hlY2s6IGNoZWNrXG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGVcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuY3JlYXRlJyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZShQLCBEKSB7XG4gIHJldHVybiAkT2JqZWN0LmNyZWF0ZShQLCBEKTtcbn07XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gZXhwb3J0cy5BTlRfTUFSSyA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIG1vbWVudCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJtb21lbnRcIikpO1xuXG52YXIgX2ludGVyb3BEZWZhdWx0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvaW50ZXJvcERlZmF1bHRcIikpO1xuXG52YXIgX2xvY2FsZSA9IHJlcXVpcmUoXCIuLi9tb2RhbC9sb2NhbGVcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgQU5UX01BUksgPSAnaW50ZXJuYWxNYXJrJztcbmV4cG9ydHMuQU5UX01BUksgPSBBTlRfTUFSSztcblxuZnVuY3Rpb24gc2V0TW9tZW50TG9jYWxlKGxvY2FsZSkge1xuICBpZiAobG9jYWxlICYmIGxvY2FsZS5sb2NhbGUpIHtcbiAgICAoMCwgX2ludGVyb3BEZWZhdWx0W1wiZGVmYXVsdFwiXSkobW9tZW50KS5sb2NhbGUobG9jYWxlLmxvY2FsZSk7XG4gIH0gZWxzZSB7XG4gICAgKDAsIF9pbnRlcm9wRGVmYXVsdFtcImRlZmF1bHRcIl0pKG1vbWVudCkubG9jYWxlKCdlbicpO1xuICB9XG59XG5cbnZhciBMb2NhbGVQcm92aWRlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTG9jYWxlUHJvdmlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoTG9jYWxlUHJvdmlkZXIpO1xuXG4gIGZ1bmN0aW9uIExvY2FsZVByb3ZpZGVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExvY2FsZVByb3ZpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuICAgIHNldE1vbWVudExvY2FsZShwcm9wcy5sb2NhbGUpO1xuICAgICgwLCBfbG9jYWxlLmNoYW5nZUNvbmZpcm1Mb2NhbGUpKHByb3BzLmxvY2FsZSAmJiBwcm9wcy5sb2NhbGUuTW9kYWwpO1xuICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKHByb3BzLl9BTlRfTUFSS19fID09PSBBTlRfTUFSSywgJ0xvY2FsZVByb3ZpZGVyJywgJ2BMb2NhbGVQcm92aWRlcmAgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBgbG9jYWxlYCB3aXRoIGBDb25maWdQcm92aWRlcmAgaW5zdGVhZDogaHR0cDovL3UuYW50LmRlc2lnbi9sb2NhbGUnKTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTG9jYWxlUHJvdmlkZXIsIFt7XG4gICAga2V5OiBcImdldENoaWxkQ29udGV4dFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRDaGlsZENvbnRleHQoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbnRMb2NhbGU6IF9leHRlbmRzKF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLmxvY2FsZSksIHtcbiAgICAgICAgICBleGlzdDogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIHZhciBsb2NhbGUgPSB0aGlzLnByb3BzLmxvY2FsZTtcblxuICAgICAgaWYgKHByZXZQcm9wcy5sb2NhbGUgIT09IGxvY2FsZSkge1xuICAgICAgICBzZXRNb21lbnRMb2NhbGUobG9jYWxlKTtcbiAgICAgICAgKDAsIF9sb2NhbGUuY2hhbmdlQ29uZmlybUxvY2FsZSkobG9jYWxlICYmIGxvY2FsZS5Nb2RhbCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgKDAsIF9sb2NhbGUuY2hhbmdlQ29uZmlybUxvY2FsZSkoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMb2NhbGVQcm92aWRlcjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBMb2NhbGVQcm92aWRlcjtcbkxvY2FsZVByb3ZpZGVyLnByb3BUeXBlcyA9IHtcbiAgbG9jYWxlOiBQcm9wVHlwZXMub2JqZWN0XG59O1xuTG9jYWxlUHJvdmlkZXIuZGVmYXVsdFByb3BzID0ge1xuICBsb2NhbGU6IHt9XG59O1xuTG9jYWxlUHJvdmlkZXIuY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gIGFudExvY2FsZTogUHJvcFR5cGVzLm9iamVjdFxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRpZiAoIW1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcblx0XHRtb2R1bGUuZGVwcmVjYXRlID0gZnVuY3Rpb24oKSB7fTtcblx0XHRtb2R1bGUucGF0aHMgPSBbXTtcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcblx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XG5cdH1cblx0cmV0dXJuIG1vZHVsZTtcbn07XG4iLCJ2YXIgbWFwID0ge1xuXHRcIi4vYWZcIjogODUsXG5cdFwiLi9hZi5qc1wiOiA4NSxcblx0XCIuL2FyXCI6IDg2LFxuXHRcIi4vYXItZHpcIjogODcsXG5cdFwiLi9hci1kei5qc1wiOiA4Nyxcblx0XCIuL2FyLWt3XCI6IDg4LFxuXHRcIi4vYXIta3cuanNcIjogODgsXG5cdFwiLi9hci1seVwiOiA4OSxcblx0XCIuL2FyLWx5LmpzXCI6IDg5LFxuXHRcIi4vYXItbWFcIjogOTAsXG5cdFwiLi9hci1tYS5qc1wiOiA5MCxcblx0XCIuL2FyLXNhXCI6IDkxLFxuXHRcIi4vYXItc2EuanNcIjogOTEsXG5cdFwiLi9hci10blwiOiA5Mixcblx0XCIuL2FyLXRuLmpzXCI6IDkyLFxuXHRcIi4vYXIuanNcIjogODYsXG5cdFwiLi9helwiOiA5Myxcblx0XCIuL2F6LmpzXCI6IDkzLFxuXHRcIi4vYmVcIjogOTQsXG5cdFwiLi9iZS5qc1wiOiA5NCxcblx0XCIuL2JnXCI6IDk1LFxuXHRcIi4vYmcuanNcIjogOTUsXG5cdFwiLi9ibVwiOiA5Nixcblx0XCIuL2JtLmpzXCI6IDk2LFxuXHRcIi4vYm5cIjogOTcsXG5cdFwiLi9ibi5qc1wiOiA5Nyxcblx0XCIuL2JvXCI6IDk4LFxuXHRcIi4vYm8uanNcIjogOTgsXG5cdFwiLi9iclwiOiA5OSxcblx0XCIuL2JyLmpzXCI6IDk5LFxuXHRcIi4vYnNcIjogMTAwLFxuXHRcIi4vYnMuanNcIjogMTAwLFxuXHRcIi4vY2FcIjogMTAxLFxuXHRcIi4vY2EuanNcIjogMTAxLFxuXHRcIi4vY3NcIjogMTAyLFxuXHRcIi4vY3MuanNcIjogMTAyLFxuXHRcIi4vY3ZcIjogMTAzLFxuXHRcIi4vY3YuanNcIjogMTAzLFxuXHRcIi4vY3lcIjogMTA0LFxuXHRcIi4vY3kuanNcIjogMTA0LFxuXHRcIi4vZGFcIjogMTA1LFxuXHRcIi4vZGEuanNcIjogMTA1LFxuXHRcIi4vZGVcIjogMTA2LFxuXHRcIi4vZGUtYXRcIjogMTA3LFxuXHRcIi4vZGUtYXQuanNcIjogMTA3LFxuXHRcIi4vZGUtY2hcIjogMTA4LFxuXHRcIi4vZGUtY2guanNcIjogMTA4LFxuXHRcIi4vZGUuanNcIjogMTA2LFxuXHRcIi4vZHZcIjogMTA5LFxuXHRcIi4vZHYuanNcIjogMTA5LFxuXHRcIi4vZWxcIjogMTEwLFxuXHRcIi4vZWwuanNcIjogMTEwLFxuXHRcIi4vZW4tYXVcIjogMTExLFxuXHRcIi4vZW4tYXUuanNcIjogMTExLFxuXHRcIi4vZW4tY2FcIjogMTEyLFxuXHRcIi4vZW4tY2EuanNcIjogMTEyLFxuXHRcIi4vZW4tZ2JcIjogMTEzLFxuXHRcIi4vZW4tZ2IuanNcIjogMTEzLFxuXHRcIi4vZW4taWVcIjogMTE0LFxuXHRcIi4vZW4taWUuanNcIjogMTE0LFxuXHRcIi4vZW4taWxcIjogMTE1LFxuXHRcIi4vZW4taWwuanNcIjogMTE1LFxuXHRcIi4vZW4taW5cIjogMTE2LFxuXHRcIi4vZW4taW4uanNcIjogMTE2LFxuXHRcIi4vZW4tbnpcIjogMTE3LFxuXHRcIi4vZW4tbnouanNcIjogMTE3LFxuXHRcIi4vZW4tc2dcIjogMTE4LFxuXHRcIi4vZW4tc2cuanNcIjogMTE4LFxuXHRcIi4vZW9cIjogMTE5LFxuXHRcIi4vZW8uanNcIjogMTE5LFxuXHRcIi4vZXNcIjogMTIwLFxuXHRcIi4vZXMtZG9cIjogMTIxLFxuXHRcIi4vZXMtZG8uanNcIjogMTIxLFxuXHRcIi4vZXMtdXNcIjogMTIyLFxuXHRcIi4vZXMtdXMuanNcIjogMTIyLFxuXHRcIi4vZXMuanNcIjogMTIwLFxuXHRcIi4vZXRcIjogMTIzLFxuXHRcIi4vZXQuanNcIjogMTIzLFxuXHRcIi4vZXVcIjogMTI0LFxuXHRcIi4vZXUuanNcIjogMTI0LFxuXHRcIi4vZmFcIjogMTI1LFxuXHRcIi4vZmEuanNcIjogMTI1LFxuXHRcIi4vZmlcIjogMTI2LFxuXHRcIi4vZmkuanNcIjogMTI2LFxuXHRcIi4vZmlsXCI6IDEyNyxcblx0XCIuL2ZpbC5qc1wiOiAxMjcsXG5cdFwiLi9mb1wiOiAxMjgsXG5cdFwiLi9mby5qc1wiOiAxMjgsXG5cdFwiLi9mclwiOiAxMjksXG5cdFwiLi9mci1jYVwiOiAxMzAsXG5cdFwiLi9mci1jYS5qc1wiOiAxMzAsXG5cdFwiLi9mci1jaFwiOiAxMzEsXG5cdFwiLi9mci1jaC5qc1wiOiAxMzEsXG5cdFwiLi9mci5qc1wiOiAxMjksXG5cdFwiLi9meVwiOiAxMzIsXG5cdFwiLi9meS5qc1wiOiAxMzIsXG5cdFwiLi9nYVwiOiAxMzMsXG5cdFwiLi9nYS5qc1wiOiAxMzMsXG5cdFwiLi9nZFwiOiAxMzQsXG5cdFwiLi9nZC5qc1wiOiAxMzQsXG5cdFwiLi9nbFwiOiAxMzUsXG5cdFwiLi9nbC5qc1wiOiAxMzUsXG5cdFwiLi9nb20tZGV2YVwiOiAxMzYsXG5cdFwiLi9nb20tZGV2YS5qc1wiOiAxMzYsXG5cdFwiLi9nb20tbGF0blwiOiAxMzcsXG5cdFwiLi9nb20tbGF0bi5qc1wiOiAxMzcsXG5cdFwiLi9ndVwiOiAxMzgsXG5cdFwiLi9ndS5qc1wiOiAxMzgsXG5cdFwiLi9oZVwiOiAxMzksXG5cdFwiLi9oZS5qc1wiOiAxMzksXG5cdFwiLi9oaVwiOiAxNDAsXG5cdFwiLi9oaS5qc1wiOiAxNDAsXG5cdFwiLi9oclwiOiAxNDEsXG5cdFwiLi9oci5qc1wiOiAxNDEsXG5cdFwiLi9odVwiOiAxNDIsXG5cdFwiLi9odS5qc1wiOiAxNDIsXG5cdFwiLi9oeS1hbVwiOiAxNDMsXG5cdFwiLi9oeS1hbS5qc1wiOiAxNDMsXG5cdFwiLi9pZFwiOiAxNDQsXG5cdFwiLi9pZC5qc1wiOiAxNDQsXG5cdFwiLi9pc1wiOiAxNDUsXG5cdFwiLi9pcy5qc1wiOiAxNDUsXG5cdFwiLi9pdFwiOiAxNDYsXG5cdFwiLi9pdC1jaFwiOiAxNDcsXG5cdFwiLi9pdC1jaC5qc1wiOiAxNDcsXG5cdFwiLi9pdC5qc1wiOiAxNDYsXG5cdFwiLi9qYVwiOiAxNDgsXG5cdFwiLi9qYS5qc1wiOiAxNDgsXG5cdFwiLi9qdlwiOiAxNDksXG5cdFwiLi9qdi5qc1wiOiAxNDksXG5cdFwiLi9rYVwiOiAxNTAsXG5cdFwiLi9rYS5qc1wiOiAxNTAsXG5cdFwiLi9ra1wiOiAxNTEsXG5cdFwiLi9ray5qc1wiOiAxNTEsXG5cdFwiLi9rbVwiOiAxNTIsXG5cdFwiLi9rbS5qc1wiOiAxNTIsXG5cdFwiLi9rblwiOiAxNTMsXG5cdFwiLi9rbi5qc1wiOiAxNTMsXG5cdFwiLi9rb1wiOiAxNTQsXG5cdFwiLi9rby5qc1wiOiAxNTQsXG5cdFwiLi9rdVwiOiAxNTUsXG5cdFwiLi9rdS5qc1wiOiAxNTUsXG5cdFwiLi9reVwiOiAxNTYsXG5cdFwiLi9reS5qc1wiOiAxNTYsXG5cdFwiLi9sYlwiOiAxNTcsXG5cdFwiLi9sYi5qc1wiOiAxNTcsXG5cdFwiLi9sb1wiOiAxNTgsXG5cdFwiLi9sby5qc1wiOiAxNTgsXG5cdFwiLi9sdFwiOiAxNTksXG5cdFwiLi9sdC5qc1wiOiAxNTksXG5cdFwiLi9sdlwiOiAxNjAsXG5cdFwiLi9sdi5qc1wiOiAxNjAsXG5cdFwiLi9tZVwiOiAxNjEsXG5cdFwiLi9tZS5qc1wiOiAxNjEsXG5cdFwiLi9taVwiOiAxNjIsXG5cdFwiLi9taS5qc1wiOiAxNjIsXG5cdFwiLi9ta1wiOiAxNjMsXG5cdFwiLi9tay5qc1wiOiAxNjMsXG5cdFwiLi9tbFwiOiAxNjQsXG5cdFwiLi9tbC5qc1wiOiAxNjQsXG5cdFwiLi9tblwiOiAxNjUsXG5cdFwiLi9tbi5qc1wiOiAxNjUsXG5cdFwiLi9tclwiOiAxNjYsXG5cdFwiLi9tci5qc1wiOiAxNjYsXG5cdFwiLi9tc1wiOiAxNjcsXG5cdFwiLi9tcy1teVwiOiAxNjgsXG5cdFwiLi9tcy1teS5qc1wiOiAxNjgsXG5cdFwiLi9tcy5qc1wiOiAxNjcsXG5cdFwiLi9tdFwiOiAxNjksXG5cdFwiLi9tdC5qc1wiOiAxNjksXG5cdFwiLi9teVwiOiAxNzAsXG5cdFwiLi9teS5qc1wiOiAxNzAsXG5cdFwiLi9uYlwiOiAxNzEsXG5cdFwiLi9uYi5qc1wiOiAxNzEsXG5cdFwiLi9uZVwiOiAxNzIsXG5cdFwiLi9uZS5qc1wiOiAxNzIsXG5cdFwiLi9ubFwiOiAxNzMsXG5cdFwiLi9ubC1iZVwiOiAxNzQsXG5cdFwiLi9ubC1iZS5qc1wiOiAxNzQsXG5cdFwiLi9ubC5qc1wiOiAxNzMsXG5cdFwiLi9ublwiOiAxNzUsXG5cdFwiLi9ubi5qc1wiOiAxNzUsXG5cdFwiLi9vYy1sbmNcIjogMTc2LFxuXHRcIi4vb2MtbG5jLmpzXCI6IDE3Nixcblx0XCIuL3BhLWluXCI6IDE3Nyxcblx0XCIuL3BhLWluLmpzXCI6IDE3Nyxcblx0XCIuL3BsXCI6IDE3OCxcblx0XCIuL3BsLmpzXCI6IDE3OCxcblx0XCIuL3B0XCI6IDE3OSxcblx0XCIuL3B0LWJyXCI6IDE4MCxcblx0XCIuL3B0LWJyLmpzXCI6IDE4MCxcblx0XCIuL3B0LmpzXCI6IDE3OSxcblx0XCIuL3JvXCI6IDE4MSxcblx0XCIuL3JvLmpzXCI6IDE4MSxcblx0XCIuL3J1XCI6IDE4Mixcblx0XCIuL3J1LmpzXCI6IDE4Mixcblx0XCIuL3NkXCI6IDE4Myxcblx0XCIuL3NkLmpzXCI6IDE4Myxcblx0XCIuL3NlXCI6IDE4NCxcblx0XCIuL3NlLmpzXCI6IDE4NCxcblx0XCIuL3NpXCI6IDE4NSxcblx0XCIuL3NpLmpzXCI6IDE4NSxcblx0XCIuL3NrXCI6IDE4Nixcblx0XCIuL3NrLmpzXCI6IDE4Nixcblx0XCIuL3NsXCI6IDE4Nyxcblx0XCIuL3NsLmpzXCI6IDE4Nyxcblx0XCIuL3NxXCI6IDE4OCxcblx0XCIuL3NxLmpzXCI6IDE4OCxcblx0XCIuL3NyXCI6IDE4OSxcblx0XCIuL3NyLWN5cmxcIjogMTkwLFxuXHRcIi4vc3ItY3lybC5qc1wiOiAxOTAsXG5cdFwiLi9zci5qc1wiOiAxODksXG5cdFwiLi9zc1wiOiAxOTEsXG5cdFwiLi9zcy5qc1wiOiAxOTEsXG5cdFwiLi9zdlwiOiAxOTIsXG5cdFwiLi9zdi5qc1wiOiAxOTIsXG5cdFwiLi9zd1wiOiAxOTMsXG5cdFwiLi9zdy5qc1wiOiAxOTMsXG5cdFwiLi90YVwiOiAxOTQsXG5cdFwiLi90YS5qc1wiOiAxOTQsXG5cdFwiLi90ZVwiOiAxOTUsXG5cdFwiLi90ZS5qc1wiOiAxOTUsXG5cdFwiLi90ZXRcIjogMTk2LFxuXHRcIi4vdGV0LmpzXCI6IDE5Nixcblx0XCIuL3RnXCI6IDE5Nyxcblx0XCIuL3RnLmpzXCI6IDE5Nyxcblx0XCIuL3RoXCI6IDE5OCxcblx0XCIuL3RoLmpzXCI6IDE5OCxcblx0XCIuL3RrXCI6IDE5OSxcblx0XCIuL3RrLmpzXCI6IDE5OSxcblx0XCIuL3RsLXBoXCI6IDIwMCxcblx0XCIuL3RsLXBoLmpzXCI6IDIwMCxcblx0XCIuL3RsaFwiOiAyMDEsXG5cdFwiLi90bGguanNcIjogMjAxLFxuXHRcIi4vdHJcIjogMjAyLFxuXHRcIi4vdHIuanNcIjogMjAyLFxuXHRcIi4vdHpsXCI6IDIwMyxcblx0XCIuL3R6bC5qc1wiOiAyMDMsXG5cdFwiLi90em1cIjogMjA0LFxuXHRcIi4vdHptLWxhdG5cIjogMjA1LFxuXHRcIi4vdHptLWxhdG4uanNcIjogMjA1LFxuXHRcIi4vdHptLmpzXCI6IDIwNCxcblx0XCIuL3VnLWNuXCI6IDIwNixcblx0XCIuL3VnLWNuLmpzXCI6IDIwNixcblx0XCIuL3VrXCI6IDIwNyxcblx0XCIuL3VrLmpzXCI6IDIwNyxcblx0XCIuL3VyXCI6IDIwOCxcblx0XCIuL3VyLmpzXCI6IDIwOCxcblx0XCIuL3V6XCI6IDIwOSxcblx0XCIuL3V6LWxhdG5cIjogMjEwLFxuXHRcIi4vdXotbGF0bi5qc1wiOiAyMTAsXG5cdFwiLi91ei5qc1wiOiAyMDksXG5cdFwiLi92aVwiOiAyMTEsXG5cdFwiLi92aS5qc1wiOiAyMTEsXG5cdFwiLi94LXBzZXVkb1wiOiAyMTIsXG5cdFwiLi94LXBzZXVkby5qc1wiOiAyMTIsXG5cdFwiLi95b1wiOiAyMTMsXG5cdFwiLi95by5qc1wiOiAyMTMsXG5cdFwiLi96aC1jblwiOiAyMTQsXG5cdFwiLi96aC1jbi5qc1wiOiAyMTQsXG5cdFwiLi96aC1oa1wiOiAyMTUsXG5cdFwiLi96aC1oay5qc1wiOiAyMTUsXG5cdFwiLi96aC1tb1wiOiAyMTYsXG5cdFwiLi96aC1tby5qc1wiOiAyMTYsXG5cdFwiLi96aC10d1wiOiAyMTcsXG5cdFwiLi96aC10dy5qc1wiOiAyMTdcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHR0aHJvdyBlO1xuXHR9XG5cdHJldHVybiBtYXBbcmVxXTtcbn1cbndlYnBhY2tDb250ZXh0LmtleXMgPSBmdW5jdGlvbiB3ZWJwYWNrQ29udGV4dEtleXMoKSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhtYXApO1xufTtcbndlYnBhY2tDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmU7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tDb250ZXh0O1xud2VicGFja0NvbnRleHQuaWQgPSAzMDQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGludGVyb3BEZWZhdWx0O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMzY1MFxuLy8gc2luY2Ugd2UgYXJlIHVzaW5nIHRzIDMuNS4xLCBpdCBzaG91bGQgYmUgc2FmZSB0byByZW1vdmUuXG5mdW5jdGlvbiBpbnRlcm9wRGVmYXVsdChtKSB7XG4gIHJldHVybiBtW1wiZGVmYXVsdFwiXSB8fCBtO1xufSIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHBhZ2UnLFxuICBqdW1wX3RvOiAnR28gdG8nLFxuICBqdW1wX3RvX2NvbmZpcm06ICdjb25maXJtJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUHJldmlvdXMgUGFnZScsXG4gIG5leHRfcGFnZTogJ05leHQgUGFnZScsXG4gIHByZXZfNTogJ1ByZXZpb3VzIDUgUGFnZXMnLFxuICBuZXh0XzU6ICdOZXh0IDUgUGFnZXMnLFxuICBwcmV2XzM6ICdQcmV2aW91cyAzIFBhZ2VzJyxcbiAgbmV4dF8zOiAnTmV4dCAzIFBhZ2VzJ1xufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHtcbiAgdG9kYXk6ICdUb2RheScsXG4gIG5vdzogJ05vdycsXG4gIGJhY2tUb1RvZGF5OiAnQmFjayB0byB0b2RheScsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ0NsZWFyJyxcbiAgbW9udGg6ICdNb250aCcsXG4gIHllYXI6ICdZZWFyJyxcbiAgdGltZVNlbGVjdDogJ3NlbGVjdCB0aW1lJyxcbiAgZGF0ZVNlbGVjdDogJ3NlbGVjdCBkYXRlJyxcbiAgd2Vla1NlbGVjdDogJ0Nob29zZSBhIHdlZWsnLFxuICBtb250aFNlbGVjdDogJ0Nob29zZSBhIG1vbnRoJyxcbiAgeWVhclNlbGVjdDogJ0Nob29zZSBhIHllYXInLFxuICBkZWNhZGVTZWxlY3Q6ICdDaG9vc2UgYSBkZWNhZGUnLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdNL0QvWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ00vRC9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgbW9udGggKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOZXh0IG1vbnRoIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdMYXN0IHllYXIgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTmV4dCB5ZWFyIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdMYXN0IGRlY2FkZScsXG4gIG5leHREZWNhZGU6ICdOZXh0IGRlY2FkZScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ0xhc3QgY2VudHVyeScsXG4gIG5leHRDZW50dXJ5OiAnTmV4dCBjZW50dXJ5J1xufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZW5fVVMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9kYXRlLXBpY2tlci9sb2NhbGUvZW5fVVNcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIF9kZWZhdWx0ID0gX2VuX1VTW1wiZGVmYXVsdFwiXTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLndhcm5pbmcgPSB3YXJuaW5nO1xuZXhwb3J0cy5ub3RlID0gbm90ZTtcbmV4cG9ydHMucmVzZXRXYXJuZWQgPSByZXNldFdhcm5lZDtcbmV4cG9ydHMuY2FsbCA9IGNhbGw7XG5leHBvcnRzLndhcm5pbmdPbmNlID0gd2FybmluZ09uY2U7XG5leHBvcnRzLm5vdGVPbmNlID0gbm90ZU9uY2U7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbnZhciB3YXJuZWQgPSB7fTtcblxuZnVuY3Rpb24gd2FybmluZyh2YWxpZCwgbWVzc2FnZSkge1xuICAvLyBTdXBwb3J0IHVnbGlmeVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdmFsaWQgJiYgY29uc29sZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc29sZS5lcnJvcihcIldhcm5pbmc6IFwiLmNvbmNhdChtZXNzYWdlKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm90ZSh2YWxpZCwgbWVzc2FnZSkge1xuICAvLyBTdXBwb3J0IHVnbGlmeVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdmFsaWQgJiYgY29uc29sZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc29sZS53YXJuKFwiTm90ZTogXCIuY29uY2F0KG1lc3NhZ2UpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldFdhcm5lZCgpIHtcbiAgd2FybmVkID0ge307XG59XG5cbmZ1bmN0aW9uIGNhbGwobWV0aG9kLCB2YWxpZCwgbWVzc2FnZSkge1xuICBpZiAoIXZhbGlkICYmICF3YXJuZWRbbWVzc2FnZV0pIHtcbiAgICBtZXRob2QoZmFsc2UsIG1lc3NhZ2UpO1xuICAgIHdhcm5lZFttZXNzYWdlXSA9IHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gd2FybmluZ09uY2UodmFsaWQsIG1lc3NhZ2UpIHtcbiAgY2FsbCh3YXJuaW5nLCB2YWxpZCwgbWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIG5vdGVPbmNlKHZhbGlkLCBtZXNzYWdlKSB7XG4gIGNhbGwobm90ZSwgdmFsaWQsIG1lc3NhZ2UpO1xufVxuXG52YXIgX2RlZmF1bHQgPSB3YXJuaW5nT25jZTtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9kZWZhdWx0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS9kZWZhdWx0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9kZWZhdWx0MltcImRlZmF1bHRcIl07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLndpdGhDb25maWdDb25zdW1lciA9IHdpdGhDb25maWdDb25zdW1lcjtcbmV4cG9ydHMuQ29uZmlnQ29uc3VtZXIgPSBleHBvcnRzLkNvbmZpZ0NvbnRleHQgPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY3JlYXRlUmVhY3RDb250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vY3JlYXRlLXJlYWN0LWNvbnRleHRcIikpO1xuXG52YXIgX3JlbmRlckVtcHR5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9yZW5kZXJFbXB0eVwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG52YXIgQ29uZmlnQ29udGV4dCA9ICgwLCBfY3JlYXRlUmVhY3RDb250ZXh0W1wiZGVmYXVsdFwiXSkoe1xuICAvLyBXZSBwcm92aWRlIGEgZGVmYXVsdCBmdW5jdGlvbiBmb3IgQ29udGV4dCB3aXRob3V0IHByb3ZpZGVyXG4gIGdldFByZWZpeENsczogZnVuY3Rpb24gZ2V0UHJlZml4Q2xzKHN1ZmZpeENscywgY3VzdG9taXplUHJlZml4Q2xzKSB7XG4gICAgaWYgKGN1c3RvbWl6ZVByZWZpeENscykgcmV0dXJuIGN1c3RvbWl6ZVByZWZpeENscztcbiAgICByZXR1cm4gXCJhbnQtXCIuY29uY2F0KHN1ZmZpeENscyk7XG4gIH0sXG4gIHJlbmRlckVtcHR5OiBfcmVuZGVyRW1wdHlbXCJkZWZhdWx0XCJdXG59KTtcbmV4cG9ydHMuQ29uZmlnQ29udGV4dCA9IENvbmZpZ0NvbnRleHQ7XG52YXIgQ29uZmlnQ29uc3VtZXIgPSBDb25maWdDb250ZXh0LkNvbnN1bWVyO1xuZXhwb3J0cy5Db25maWdDb25zdW1lciA9IENvbmZpZ0NvbnN1bWVyO1xuXG5mdW5jdGlvbiB3aXRoQ29uZmlnQ29uc3VtZXIoY29uZmlnKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3aXRoQ29uZmlnQ29uc3VtZXJGdW5jKENvbXBvbmVudCkge1xuICAgIC8vIFdyYXAgd2l0aCBDb25maWdDb25zdW1lci4gU2luY2Ugd2UgbmVlZCBjb21wYXRpYmxlIHdpdGggcmVhY3QgMTUsIGJlIGNhcmUgd2hlbiB1c2luZyByZWYgbWV0aG9kc1xuICAgIHZhciBTRkMgPSBmdW5jdGlvbiBTRkMocHJvcHMpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKGNvbmZpZ1Byb3BzKSB7XG4gICAgICAgIHZhciBiYXNpY1ByZWZpeENscyA9IGNvbmZpZy5wcmVmaXhDbHM7XG4gICAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBjb25maWdQcm9wcy5nZXRQcmVmaXhDbHM7XG4gICAgICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHM7XG4gICAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoYmFzaWNQcmVmaXhDbHMsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIF9leHRlbmRzKHt9LCBjb25maWdQcm9wcywgcHJvcHMsIHtcbiAgICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENsc1xuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgdmFyIGNvbnMgPSBDb21wb25lbnQuY29uc3RydWN0b3I7XG4gICAgdmFyIG5hbWUgPSBjb25zICYmIGNvbnMuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG4gICAgU0ZDLmRpc3BsYXlOYW1lID0gXCJ3aXRoQ29uZmlnQ29uc3VtZXIoXCIuY29uY2F0KG5hbWUsIFwiKVwiKTtcbiAgICByZXR1cm4gU0ZDO1xuICB9O1xufSIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3Byb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9ndWQgPSByZXF1aXJlKCdndWQnKTtcblxudmFyIF9ndWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ3VkKTtcblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIE1BWF9TSUdORURfMzFfQklUX0lOVCA9IDEwNzM3NDE4MjM7XG5cbi8vIElubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsLlxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG5mdW5jdGlvbiBvYmplY3RJcyh4LCB5KSB7XG4gIGlmICh4ID09PSB5KSB7XG4gICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRXZlbnRFbWl0dGVyKHZhbHVlKSB7XG4gIHZhciBoYW5kbGVycyA9IFtdO1xuICByZXR1cm4ge1xuICAgIG9uOiBmdW5jdGlvbiBvbihoYW5kbGVyKSB7XG4gICAgICBoYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xuICAgIH0sXG4gICAgb2ZmOiBmdW5jdGlvbiBvZmYoaGFuZGxlcikge1xuICAgICAgaGFuZGxlcnMgPSBoYW5kbGVycy5maWx0ZXIoZnVuY3Rpb24gKGgpIHtcbiAgICAgICAgcmV0dXJuIGggIT09IGhhbmRsZXI7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiBzZXQobmV3VmFsdWUsIGNoYW5nZWRCaXRzKSB7XG4gICAgICB2YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgaGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbiAoaGFuZGxlcikge1xuICAgICAgICByZXR1cm4gaGFuZGxlcih2YWx1ZSwgY2hhbmdlZEJpdHMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW5bMF0gOiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUmVhY3RDb250ZXh0KGRlZmF1bHRWYWx1ZSwgY2FsY3VsYXRlQ2hhbmdlZEJpdHMpIHtcbiAgdmFyIF9Qcm92aWRlciRjaGlsZENvbnRleCwgX0NvbnN1bWVyJGNvbnRleHRUeXBlO1xuXG4gIHZhciBjb250ZXh0UHJvcCA9ICdfX2NyZWF0ZS1yZWFjdC1jb250ZXh0LScgKyAoMCwgX2d1ZDIuZGVmYXVsdCkoKSArICdfXyc7XG5cbiAgdmFyIFByb3ZpZGVyID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoUHJvdmlkZXIsIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gUHJvdmlkZXIoKSB7XG4gICAgICB2YXIgX3RlbXAsIF90aGlzLCBfcmV0O1xuXG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHJvdmlkZXIpO1xuXG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9Db21wb25lbnQuY2FsbC5hcHBseShfQ29tcG9uZW50LCBbdGhpc10uY29uY2F0KGFyZ3MpKSksIF90aGlzKSwgX3RoaXMuZW1pdHRlciA9IGNyZWF0ZUV2ZW50RW1pdHRlcihfdGhpcy5wcm9wcy52YWx1ZSksIF90ZW1wKSwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsIF9yZXQpO1xuICAgIH1cblxuICAgIFByb3ZpZGVyLnByb3RvdHlwZS5nZXRDaGlsZENvbnRleHQgPSBmdW5jdGlvbiBnZXRDaGlsZENvbnRleHQoKSB7XG4gICAgICB2YXIgX3JlZjtcblxuICAgICAgcmV0dXJuIF9yZWYgPSB7fSwgX3JlZltjb250ZXh0UHJvcF0gPSB0aGlzLmVtaXR0ZXIsIF9yZWY7XG4gICAgfTtcblxuICAgIFByb3ZpZGVyLnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUpIHtcbiAgICAgICAgdmFyIG9sZFZhbHVlID0gdGhpcy5wcm9wcy52YWx1ZTtcbiAgICAgICAgdmFyIG5ld1ZhbHVlID0gbmV4dFByb3BzLnZhbHVlO1xuICAgICAgICB2YXIgY2hhbmdlZEJpdHMgPSB2b2lkIDA7XG5cbiAgICAgICAgaWYgKG9iamVjdElzKG9sZFZhbHVlLCBuZXdWYWx1ZSkpIHtcbiAgICAgICAgICBjaGFuZ2VkQml0cyA9IDA7IC8vIE5vIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNoYW5nZWRCaXRzID0gdHlwZW9mIGNhbGN1bGF0ZUNoYW5nZWRCaXRzID09PSAnZnVuY3Rpb24nID8gY2FsY3VsYXRlQ2hhbmdlZEJpdHMob2xkVmFsdWUsIG5ld1ZhbHVlKSA6IE1BWF9TSUdORURfMzFfQklUX0lOVDtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgKDAsIF93YXJuaW5nMi5kZWZhdWx0KSgoY2hhbmdlZEJpdHMgJiBNQVhfU0lHTkVEXzMxX0JJVF9JTlQpID09PSBjaGFuZ2VkQml0cywgJ2NhbGN1bGF0ZUNoYW5nZWRCaXRzOiBFeHBlY3RlZCB0aGUgcmV0dXJuIHZhbHVlIHRvIGJlIGEgJyArICczMS1iaXQgaW50ZWdlci4gSW5zdGVhZCByZWNlaXZlZDogJXMnLCBjaGFuZ2VkQml0cyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2hhbmdlZEJpdHMgfD0gMDtcblxuICAgICAgICAgIGlmIChjaGFuZ2VkQml0cyAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0dGVyLnNldChuZXh0UHJvcHMudmFsdWUsIGNoYW5nZWRCaXRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgUHJvdmlkZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgIH07XG5cbiAgICByZXR1cm4gUHJvdmlkZXI7XG4gIH0oX3JlYWN0LkNvbXBvbmVudCk7XG5cbiAgUHJvdmlkZXIuY2hpbGRDb250ZXh0VHlwZXMgPSAoX1Byb3ZpZGVyJGNoaWxkQ29udGV4ID0ge30sIF9Qcm92aWRlciRjaGlsZENvbnRleFtjb250ZXh0UHJvcF0gPSBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdC5pc1JlcXVpcmVkLCBfUHJvdmlkZXIkY2hpbGRDb250ZXgpO1xuXG4gIHZhciBDb25zdW1lciA9IGZ1bmN0aW9uIChfQ29tcG9uZW50Mikge1xuICAgIF9pbmhlcml0cyhDb25zdW1lciwgX0NvbXBvbmVudDIpO1xuXG4gICAgZnVuY3Rpb24gQ29uc3VtZXIoKSB7XG4gICAgICB2YXIgX3RlbXAyLCBfdGhpczIsIF9yZXQyO1xuXG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29uc3VtZXIpO1xuXG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfcmV0MiA9IChfdGVtcDIgPSAoX3RoaXMyID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0NvbXBvbmVudDIuY2FsbC5hcHBseShfQ29tcG9uZW50MiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpczIpLCBfdGhpczIuc3RhdGUgPSB7XG4gICAgICAgIHZhbHVlOiBfdGhpczIuZ2V0VmFsdWUoKVxuICAgICAgfSwgX3RoaXMyLm9uVXBkYXRlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBjaGFuZ2VkQml0cykge1xuICAgICAgICB2YXIgb2JzZXJ2ZWRCaXRzID0gX3RoaXMyLm9ic2VydmVkQml0cyB8IDA7XG4gICAgICAgIGlmICgob2JzZXJ2ZWRCaXRzICYgY2hhbmdlZEJpdHMpICE9PSAwKSB7XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgdmFsdWU6IF90aGlzMi5nZXRWYWx1ZSgpIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBfdGVtcDIpLCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihfdGhpczIsIF9yZXQyKTtcbiAgICB9XG5cbiAgICBDb25zdW1lci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICB2YXIgb2JzZXJ2ZWRCaXRzID0gbmV4dFByb3BzLm9ic2VydmVkQml0cztcblxuICAgICAgdGhpcy5vYnNlcnZlZEJpdHMgPSBvYnNlcnZlZEJpdHMgPT09IHVuZGVmaW5lZCB8fCBvYnNlcnZlZEJpdHMgPT09IG51bGwgPyBNQVhfU0lHTkVEXzMxX0JJVF9JTlQgLy8gU3Vic2NyaWJlIHRvIGFsbCBjaGFuZ2VzIGJ5IGRlZmF1bHRcbiAgICAgIDogb2JzZXJ2ZWRCaXRzO1xuICAgIH07XG5cbiAgICBDb25zdW1lci5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbnRleHRbY29udGV4dFByb3BdKSB7XG4gICAgICAgIHRoaXMuY29udGV4dFtjb250ZXh0UHJvcF0ub24odGhpcy5vblVwZGF0ZSk7XG4gICAgICB9XG4gICAgICB2YXIgb2JzZXJ2ZWRCaXRzID0gdGhpcy5wcm9wcy5vYnNlcnZlZEJpdHM7XG5cbiAgICAgIHRoaXMub2JzZXJ2ZWRCaXRzID0gb2JzZXJ2ZWRCaXRzID09PSB1bmRlZmluZWQgfHwgb2JzZXJ2ZWRCaXRzID09PSBudWxsID8gTUFYX1NJR05FRF8zMV9CSVRfSU5UIC8vIFN1YnNjcmliZSB0byBhbGwgY2hhbmdlcyBieSBkZWZhdWx0XG4gICAgICA6IG9ic2VydmVkQml0cztcbiAgICB9O1xuXG4gICAgQ29uc3VtZXIucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXSkge1xuICAgICAgICB0aGlzLmNvbnRleHRbY29udGV4dFByb3BdLm9mZih0aGlzLm9uVXBkYXRlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgQ29uc3VtZXIucHJvdG90eXBlLmdldFZhbHVlID0gZnVuY3Rpb24gZ2V0VmFsdWUoKSB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXS5nZXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIENvbnN1bWVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gb25seUNoaWxkKHRoaXMucHJvcHMuY2hpbGRyZW4pKHRoaXMuc3RhdGUudmFsdWUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gQ29uc3VtZXI7XG4gIH0oX3JlYWN0LkNvbXBvbmVudCk7XG5cbiAgQ29uc3VtZXIuY29udGV4dFR5cGVzID0gKF9Db25zdW1lciRjb250ZXh0VHlwZSA9IHt9LCBfQ29uc3VtZXIkY29udGV4dFR5cGVbY29udGV4dFByb3BdID0gX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QsIF9Db25zdW1lciRjb250ZXh0VHlwZSk7XG5cblxuICByZXR1cm4ge1xuICAgIFByb3ZpZGVyOiBQcm92aWRlcixcbiAgICBDb25zdW1lcjogQ29uc3VtZXJcbiAgfTtcbn1cblxuZXhwb3J0cy5kZWZhdWx0ID0gY3JlYXRlUmVhY3RDb250ZXh0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiLy8gQGZsb3dcbid1c2Ugc3RyaWN0JztcblxudmFyIGtleSA9ICdfX2dsb2JhbF91bmlxdWVfaWRfXyc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBnbG9iYWxba2V5XSA9IChnbG9iYWxba2V5XSB8fCAwKSArIDE7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2VtcHR5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vZW1wdHlcIikpO1xuXG52YXIgXyA9IHJlcXVpcmUoXCIuXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIHJlbmRlckVtcHR5ID0gZnVuY3Rpb24gcmVuZGVyRW1wdHkoY29tcG9uZW50TmFtZSkge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXy5Db25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHM7XG4gICAgdmFyIHByZWZpeCA9IGdldFByZWZpeENscygnZW1wdHknKTtcblxuICAgIHN3aXRjaCAoY29tcG9uZW50TmFtZSkge1xuICAgICAgY2FzZSAnVGFibGUnOlxuICAgICAgY2FzZSAnTGlzdCc6XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfZW1wdHlbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgICAgaW1hZ2U6IF9lbXB0eVtcImRlZmF1bHRcIl0uUFJFU0VOVEVEX0lNQUdFX1NJTVBMRVxuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAnU2VsZWN0JzpcbiAgICAgIGNhc2UgJ1RyZWVTZWxlY3QnOlxuICAgICAgY2FzZSAnQ2FzY2FkZXInOlxuICAgICAgY2FzZSAnVHJhbnNmZXInOlxuICAgICAgY2FzZSAnTWVudGlvbnMnOlxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2VtcHR5W1wiZGVmYXVsdFwiXSwge1xuICAgICAgICAgIGltYWdlOiBfZW1wdHlbXCJkZWZhdWx0XCJdLlBSRVNFTlRFRF9JTUFHRV9TSU1QTEUsXG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLXNtYWxsXCIpXG4gICAgICAgIH0pO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2VtcHR5W1wiZGVmYXVsdFwiXSwgbnVsbCk7XG4gICAgfVxuICB9KTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IHJlbmRlckVtcHR5O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF9Mb2NhbGVSZWNlaXZlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS1wcm92aWRlci9Mb2NhbGVSZWNlaXZlclwiKSk7XG5cbnZhciBfZW1wdHkgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2VtcHR5XCIpKTtcblxudmFyIF9zaW1wbGUgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3NpbXBsZVwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIGRlZmF1bHRFbXB0eUltZyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9lbXB0eVtcImRlZmF1bHRcIl0sIG51bGwpO1xudmFyIHNpbXBsZUVtcHR5SW1nID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3NpbXBsZVtcImRlZmF1bHRcIl0sIG51bGwpO1xuXG52YXIgRW1wdHkgPSBmdW5jdGlvbiBFbXB0eShwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgIGN1c3RvbWl6ZVByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgICAgX3Byb3BzJGltYWdlID0gcHJvcHMuaW1hZ2UsXG4gICAgICAgIGltYWdlID0gX3Byb3BzJGltYWdlID09PSB2b2lkIDAgPyBkZWZhdWx0RW1wdHlJbWcgOiBfcHJvcHMkaW1hZ2UsXG4gICAgICAgIGRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIGltYWdlU3R5bGUgPSBwcm9wcy5pbWFnZVN0eWxlLFxuICAgICAgICByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcImltYWdlXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJjaGlsZHJlblwiLCBcImltYWdlU3R5bGVcIl0pO1xuXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9Mb2NhbGVSZWNlaXZlcltcImRlZmF1bHRcIl0sIHtcbiAgICAgIGNvbXBvbmVudE5hbWU6IFwiRW1wdHlcIlxuICAgIH0sIGZ1bmN0aW9uIChsb2NhbGUpIHtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2VtcHR5JywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgICAgIHZhciBkZXMgPSB0eXBlb2YgZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnID8gZGVzY3JpcHRpb24gOiBsb2NhbGUuZGVzY3JpcHRpb247XG4gICAgICB2YXIgYWx0ID0gdHlwZW9mIGRlcyA9PT0gJ3N0cmluZycgPyBkZXMgOiAnZW1wdHknO1xuICAgICAgdmFyIGltYWdlTm9kZSA9IG51bGw7XG5cbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGltYWdlTm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHtcbiAgICAgICAgICBhbHQ6IGFsdCxcbiAgICAgICAgICBzcmM6IGltYWdlXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW1hZ2VOb2RlID0gaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkocHJlZml4Q2xzLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbm9ybWFsXCIpLCBpbWFnZSA9PT0gc2ltcGxlRW1wdHlJbWcpLCBjbGFzc05hbWUpXG4gICAgICB9LCByZXN0UHJvcHMpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pbWFnZVwiKSxcbiAgICAgICAgc3R5bGU6IGltYWdlU3R5bGVcbiAgICAgIH0sIGltYWdlTm9kZSksIGRlcyAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZGVzY3JpcHRpb25cIilcbiAgICAgIH0sIGRlcyksIGNoaWxkcmVuICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWZvb3RlclwiKVxuICAgICAgfSwgY2hpbGRyZW4pKTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5FbXB0eS5QUkVTRU5URURfSU1BR0VfREVGQVVMVCA9IGRlZmF1bHRFbXB0eUltZztcbkVtcHR5LlBSRVNFTlRFRF9JTUFHRV9TSU1QTEUgPSBzaW1wbGVFbXB0eUltZztcbnZhciBfZGVmYXVsdCA9IEVtcHR5O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBFbXB0eSA9IGZ1bmN0aW9uIEVtcHR5KCkge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwge1xuICAgIHdpZHRoOiBcIjE4NFwiLFxuICAgIGhlaWdodDogXCIxNTJcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAxODQgMTUyXCIsXG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIGZpbGw6IFwibm9uZVwiLFxuICAgIGZpbGxSdWxlOiBcImV2ZW5vZGRcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMjQgMzEuNjcpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJlbGxpcHNlXCIsIHtcbiAgICBmaWxsT3BhY2l0eTogXCIuOFwiLFxuICAgIGZpbGw6IFwiI0Y1RjVGN1wiLFxuICAgIGN4OiBcIjY3Ljc5N1wiLFxuICAgIGN5OiBcIjEwNi44OVwiLFxuICAgIHJ4OiBcIjY3Ljc5N1wiLFxuICAgIHJ5OiBcIjEyLjY2OFwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTEyMi4wMzQgNjkuNjc0TDk4LjEwOSA0MC4yMjljLTEuMTQ4LTEuMzg2LTIuODI2LTIuMjI1LTQuNTkzLTIuMjI1aC01MS40NGMtMS43NjYgMC0zLjQ0NC44MzktNC41OTIgMi4yMjVMMTMuNTYgNjkuNjc0djE1LjM4M2gxMDguNDc1VjY5LjY3NHpcIixcbiAgICBmaWxsOiBcIiNBRUI4QzJcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xMDEuNTM3IDg2LjIxNEw4MC42MyA2MS4xMDJjLTEuMDAxLTEuMjA3LTIuNTA3LTEuODY3LTQuMDQ4LTEuODY3SDMxLjcyNGMtMS41NCAwLTMuMDQ3LjY2LTQuMDQ4IDEuODY3TDYuNzY5IDg2LjIxNHYxMy43OTJoOTQuNzY4Vjg2LjIxNHpcIixcbiAgICBmaWxsOiBcInVybCgjbGluZWFyR3JhZGllbnQtMSlcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDEzLjU2KVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTMzLjgzIDBoNjcuOTMzYTQgNCAwIDAgMSA0IDR2OTMuMzQ0YTQgNCAwIDAgMS00IDRIMzMuODNhNCA0IDAgMCAxLTQtNFY0YTQgNCAwIDAgMSA0LTR6XCIsXG4gICAgZmlsbDogXCIjRjVGNUY3XCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNNDIuNjc4IDkuOTUzaDUwLjIzN2EyIDIgMCAwIDEgMiAyVjM2LjkxYTIgMiAwIDAgMS0yIDJINDIuNjc4YTIgMiAwIDAgMS0yLTJWMTEuOTUzYTIgMiAwIDAgMSAyLTJ6TTQyLjk0IDQ5Ljc2N2g0OS43MTNhMi4yNjIgMi4yNjIgMCAxIDEgMCA0LjUyNEg0Mi45NGEyLjI2MiAyLjI2MiAwIDAgMSAwLTQuNTI0ek00Mi45NCA2MS41M2g0OS43MTNhMi4yNjIgMi4yNjIgMCAxIDEgMCA0LjUyNUg0Mi45NGEyLjI2MiAyLjI2MiAwIDAgMSAwLTQuNTI1ek0xMjEuODEzIDEwNS4wMzJjLS43NzUgMy4wNzEtMy40OTcgNS4zNi02LjczNSA1LjM2SDIwLjUxNWMtMy4yMzggMC01Ljk2LTIuMjktNi43MzQtNS4zNmE3LjMwOSA3LjMwOSAwIDAgMS0uMjIyLTEuNzlWNjkuNjc1aDI2LjMxOGMyLjkwNyAwIDUuMjUgMi40NDggNS4yNSA1LjQydi4wNGMwIDIuOTcxIDIuMzcgNS4zNyA1LjI3NyA1LjM3aDM0Ljc4NWMyLjkwNyAwIDUuMjc3LTIuNDIxIDUuMjc3LTUuMzkzVjc1LjFjMC0yLjk3MiAyLjM0My01LjQyNiA1LjI1LTUuNDI2aDI2LjMxOHYzMy41NjljMCAuNjE3LS4wNzcgMS4yMTYtLjIyMSAxLjc4OXpcIixcbiAgICBmaWxsOiBcIiNEQ0UwRTZcIlxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMTQ5LjEyMSAzMy4yOTJsLTYuODMgMi42NWExIDEgMCAwIDEtMS4zMTctMS4yM2wxLjkzNy02LjIwN2MtMi41ODktMi45NDQtNC4xMDktNi41MzQtNC4xMDktMTAuNDA4QzEzOC44MDIgOC4xMDIgMTQ4LjkyIDAgMTYxLjQwMiAwIDE3My44ODEgMCAxODQgOC4xMDIgMTg0IDE4LjA5N2MwIDkuOTk1LTEwLjExOCAxOC4wOTctMjIuNTk5IDE4LjA5Ny00LjUyOCAwLTguNzQ0LTEuMDY2LTEyLjI4LTIuOTAyelwiLFxuICAgIGZpbGw6IFwiI0RDRTBFNlwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMTQ5LjY1IDE1LjM4MylcIixcbiAgICBmaWxsOiBcIiNGRkZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImVsbGlwc2VcIiwge1xuICAgIGN4OiBcIjIwLjY1NFwiLFxuICAgIGN5OiBcIjMuMTY3XCIsXG4gICAgcng6IFwiMi44NDlcIixcbiAgICByeTogXCIyLjgxNVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTUuNjk4IDUuNjNIMEwyLjg5OC43MDR6TTkuMjU5LjcwNGg0Ljk4NVY1LjYzSDkuMjU5elwiXG4gIH0pKSkpO1xufTtcblxudmFyIF9kZWZhdWx0ID0gRW1wdHk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIFNpbXBsZSA9IGZ1bmN0aW9uIFNpbXBsZSgpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIHtcbiAgICB3aWR0aDogXCI2NFwiLFxuICAgIGhlaWdodDogXCI0MVwiLFxuICAgIHZpZXdCb3g6IFwiMCAwIDY0IDQxXCIsXG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMCAxKVwiLFxuICAgIGZpbGw6IFwibm9uZVwiLFxuICAgIGZpbGxSdWxlOiBcImV2ZW5vZGRcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImVsbGlwc2VcIiwge1xuICAgIGZpbGw6IFwiI0Y1RjVGNVwiLFxuICAgIGN4OiBcIjMyXCIsXG4gICAgY3k6IFwiMzNcIixcbiAgICByeDogXCIzMlwiLFxuICAgIHJ5OiBcIjdcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBmaWxsUnVsZTogXCJub256ZXJvXCIsXG4gICAgc3Ryb2tlOiBcIiNEOUQ5RDlcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTU1IDEyLjc2TDQ0Ljg1NCAxLjI1OEM0NC4zNjcuNDc0IDQzLjY1NiAwIDQyLjkwNyAwSDIxLjA5M2MtLjc0OSAwLTEuNDYuNDc0LTEuOTQ3IDEuMjU3TDkgMTIuNzYxVjIyaDQ2di05LjI0elwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTQxLjYxMyAxNS45MzFjMC0xLjYwNS45OTQtMi45MyAyLjIyNy0yLjkzMUg1NXYxOC4xMzdDNTUgMzMuMjYgNTMuNjggMzUgNTIuMDUgMzVoLTQwLjFDMTAuMzIgMzUgOSAzMy4yNTkgOSAzMS4xMzdWMTNoMTEuMTZjMS4yMzMgMCAyLjIyNyAxLjMyMyAyLjIyNyAyLjkyOHYuMDIyYzAgMS42MDUgMS4wMDUgMi45MDEgMi4yMzcgMi45MDFoMTQuNzUyYzEuMjMyIDAgMi4yMzctMS4zMDggMi4yMzctMi45MTN2LS4wMDd6XCIsXG4gICAgZmlsbDogXCIjRkFGQUZBXCJcbiAgfSkpKSk7XG59O1xuXG52YXIgX2RlZmF1bHQgPSBTaW1wbGU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0ID0gcmVxdWlyZShcInJlYWN0LWxpZmVjeWNsZXMtY29tcGF0XCIpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9zaGFsbG93ZXF1YWwgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJzaGFsbG93ZXF1YWxcIikpO1xuXG52YXIgX29taXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJvbWl0LmpzXCIpKTtcblxudmFyIF9DaGVja2JveCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vQ2hlY2tib3hcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikgeyByZXR1cm4gX2FycmF5V2l0aG91dEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF9ub25JdGVyYWJsZVNwcmVhZCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikgeyBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXIpKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShhcnIpOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIENoZWNrYm94R3JvdXAgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKENoZWNrYm94R3JvdXAsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoQ2hlY2tib3hHcm91cCk7XG5cbiAgZnVuY3Rpb24gQ2hlY2tib3hHcm91cChwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDaGVja2JveEdyb3VwKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX3RoaXMuY2FuY2VsVmFsdWUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICAgIHZhciByZWdpc3RlcmVkVmFsdWVzID0gX3JlZi5yZWdpc3RlcmVkVmFsdWVzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZ2lzdGVyZWRWYWx1ZXM6IHJlZ2lzdGVyZWRWYWx1ZXMuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWwgIT09IHZhbHVlO1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVnaXN0ZXJWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgX3RoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgIHZhciByZWdpc3RlcmVkVmFsdWVzID0gX3JlZjIucmVnaXN0ZXJlZFZhbHVlcztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWdpc3RlcmVkVmFsdWVzOiBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHJlZ2lzdGVyZWRWYWx1ZXMpLCBbdmFsdWVdKVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzLnRvZ2dsZU9wdGlvbiA9IGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgIHZhciByZWdpc3RlcmVkVmFsdWVzID0gX3RoaXMuc3RhdGUucmVnaXN0ZXJlZFZhbHVlcztcblxuICAgICAgdmFyIG9wdGlvbkluZGV4ID0gX3RoaXMuc3RhdGUudmFsdWUuaW5kZXhPZihvcHRpb24udmFsdWUpO1xuXG4gICAgICB2YXIgdmFsdWUgPSBfdG9Db25zdW1hYmxlQXJyYXkoX3RoaXMuc3RhdGUudmFsdWUpO1xuXG4gICAgICBpZiAob3B0aW9uSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHZhbHVlLnB1c2gob3B0aW9uLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlLnNwbGljZShvcHRpb25JbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghKCd2YWx1ZScgaW4gX3RoaXMucHJvcHMpKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBvbkNoYW5nZSA9IF90aGlzLnByb3BzLm9uQ2hhbmdlO1xuXG4gICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSBfdGhpcy5nZXRPcHRpb25zKCk7XG5cbiAgICAgICAgb25DaGFuZ2UodmFsdWUuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJlZFZhbHVlcy5pbmRleE9mKHZhbCkgIT09IC0xO1xuICAgICAgICB9KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgdmFyIGluZGV4QSA9IG9wdGlvbnMuZmluZEluZGV4KGZ1bmN0aW9uIChvcHQpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHQudmFsdWUgPT09IGE7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdmFyIGluZGV4QiA9IG9wdGlvbnMuZmluZEluZGV4KGZ1bmN0aW9uIChvcHQpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHQudmFsdWUgPT09IGI7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJHcm91cCA9IGZ1bmN0aW9uIChfcmVmMykge1xuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYzLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLFxuICAgICAgICAgIHByb3BzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplLnByb3BzLFxuICAgICAgICAgIHN0YXRlID0gX2Fzc2VydFRoaXNJbml0aWFsaXplLnN0YXRlO1xuXG4gICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBzdHlsZSA9IHByb3BzLnN0eWxlLFxuICAgICAgICAgIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zLFxuICAgICAgICAgIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJvcHRpb25zXCJdKTtcblxuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnY2hlY2tib3gnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIGdyb3VwUHJlZml4Q2xzID0gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ncm91cFwiKTtcbiAgICAgIHZhciBkb21Qcm9wcyA9ICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHJlc3RQcm9wcywgWydjaGlsZHJlbicsICdkZWZhdWx0VmFsdWUnLCAndmFsdWUnLCAnb25DaGFuZ2UnLCAnZGlzYWJsZWQnXSk7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcblxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNoaWxkcmVuID0gX3RoaXMuZ2V0T3B0aW9ucygpLm1hcChmdW5jdGlvbiAob3B0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9DaGVja2JveFtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICAgICAga2V5OiBvcHRpb24udmFsdWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiAnZGlzYWJsZWQnIGluIG9wdGlvbiA/IG9wdGlvbi5kaXNhYmxlZCA6IHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgIGNoZWNrZWQ6IHN0YXRlLnZhbHVlLmluZGV4T2Yob3B0aW9uLnZhbHVlKSAhPT0gLTEsXG4gICAgICAgICAgICBvbkNoYW5nZTogb3B0aW9uLm9uQ2hhbmdlLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChncm91cFByZWZpeENscywgXCItaXRlbVwiKVxuICAgICAgICAgIH0sIG9wdGlvbi5sYWJlbCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB2YXIgY2xhc3NTdHJpbmcgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShncm91cFByZWZpeENscywgY2xhc3NOYW1lKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NTdHJpbmcsXG4gICAgICAgIHN0eWxlOiBzdHlsZVxuICAgICAgfSwgZG9tUHJvcHMpLCBjaGlsZHJlbik7XG4gICAgfTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgdmFsdWU6IHByb3BzLnZhbHVlIHx8IHByb3BzLmRlZmF1bHRWYWx1ZSB8fCBbXSxcbiAgICAgIHJlZ2lzdGVyZWRWYWx1ZXM6IFtdXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ2hlY2tib3hHcm91cCwgW3tcbiAgICBrZXk6IFwiZ2V0Q2hpbGRDb250ZXh0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNoZWNrYm94R3JvdXA6IHtcbiAgICAgICAgICB0b2dnbGVPcHRpb246IHRoaXMudG9nZ2xlT3B0aW9uLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLnN0YXRlLnZhbHVlLFxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnByb3BzLmRpc2FibGVkLFxuICAgICAgICAgIG5hbWU6IHRoaXMucHJvcHMubmFtZSxcbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xNjM3NlxuICAgICAgICAgIHJlZ2lzdGVyVmFsdWU6IHRoaXMucmVnaXN0ZXJWYWx1ZSxcbiAgICAgICAgICBjYW5jZWxWYWx1ZTogdGhpcy5jYW5jZWxWYWx1ZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzaG91bGRDb21wb25lbnRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlKSB7XG4gICAgICByZXR1cm4gISgwLCBfc2hhbGxvd2VxdWFsW1wiZGVmYXVsdFwiXSkodGhpcy5wcm9wcywgbmV4dFByb3BzKSB8fCAhKDAsIF9zaGFsbG93ZXF1YWxbXCJkZWZhdWx0XCJdKSh0aGlzLnN0YXRlLCBuZXh0U3RhdGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRPcHRpb25zXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldE9wdGlvbnMoKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IHRoaXMucHJvcHMub3B0aW9uczsgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy83OTYwXG5cbiAgICAgIHJldHVybiBvcHRpb25zLm1hcChmdW5jdGlvbiAob3B0aW9uKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogb3B0aW9uLFxuICAgICAgICAgICAgdmFsdWU6IG9wdGlvblxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlckdyb3VwKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogXCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcykge1xuICAgICAgaWYgKCd2YWx1ZScgaW4gbmV4dFByb3BzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IG5leHRQcm9wcy52YWx1ZSB8fCBbXVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ2hlY2tib3hHcm91cDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuQ2hlY2tib3hHcm91cC5kZWZhdWx0UHJvcHMgPSB7XG4gIG9wdGlvbnM6IFtdXG59O1xuQ2hlY2tib3hHcm91cC5wcm9wVHlwZXMgPSB7XG4gIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLmFycmF5LFxuICB2YWx1ZTogUHJvcFR5cGVzLmFycmF5LFxuICBvcHRpb25zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jXG59O1xuQ2hlY2tib3hHcm91cC5jaGlsZENvbnRleHRUeXBlcyA9IHtcbiAgY2hlY2tib3hHcm91cDogUHJvcFR5cGVzLmFueVxufTtcbigwLCBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0LnBvbHlmaWxsKShDaGVja2JveEdyb3VwKTtcbnZhciBfZGVmYXVsdCA9IENoZWNrYm94R3JvdXA7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF9Sb3dDb250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9Sb3dDb250ZXh0XCIpKTtcblxudmFyIF90eXBlID0gcmVxdWlyZShcIi4uL191dGlsL3R5cGVcIik7XG5cbnZhciBfcmVzcG9uc2l2ZU9ic2VydmUgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi4vX3V0aWwvcmVzcG9uc2l2ZU9ic2VydmVcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIFJvd0FsaWducyA9ICgwLCBfdHlwZS50dXBsZSkoJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJywgJ3N0cmV0Y2gnKTtcbnZhciBSb3dKdXN0aWZ5ID0gKDAsIF90eXBlLnR1cGxlKSgnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzcGFjZS1hcm91bmQnLCAnc3BhY2UtYmV0d2VlbicpO1xuXG52YXIgUm93ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhSb3csIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoUm93KTtcblxuICBmdW5jdGlvbiBSb3coKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJvdyk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgc2NyZWVuczoge31cbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyUm93ID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgICB2YXIgX2EgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICAgICAgdHlwZSA9IF9hLnR5cGUsXG4gICAgICAgICAganVzdGlmeSA9IF9hLmp1c3RpZnksXG4gICAgICAgICAgYWxpZ24gPSBfYS5hbGlnbixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsXG4gICAgICAgICAgc3R5bGUgPSBfYS5zdHlsZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLFxuICAgICAgICAgIG90aGVycyA9IF9fcmVzdChfYSwgW1wicHJlZml4Q2xzXCIsIFwidHlwZVwiLCBcImp1c3RpZnlcIiwgXCJhbGlnblwiLCBcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwiY2hpbGRyZW5cIl0pO1xuXG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdyb3cnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuXG4gICAgICB2YXIgZ3V0dGVyID0gX3RoaXMuZ2V0R3V0dGVyKCk7XG5cbiAgICAgIHZhciBjbGFzc2VzID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgcHJlZml4Q2xzLCAhdHlwZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHR5cGUpLCB0eXBlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodHlwZSwgXCItXCIpLmNvbmNhdChqdXN0aWZ5KSwgdHlwZSAmJiBqdXN0aWZ5KSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodHlwZSwgXCItXCIpLmNvbmNhdChhbGlnbiksIHR5cGUgJiYgYWxpZ24pLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG5cbiAgICAgIHZhciByb3dTdHlsZSA9IF9leHRlbmRzKF9leHRlbmRzKF9leHRlbmRzKHt9LCBndXR0ZXJbMF0gPiAwID8ge1xuICAgICAgICBtYXJnaW5MZWZ0OiBndXR0ZXJbMF0gLyAtMixcbiAgICAgICAgbWFyZ2luUmlnaHQ6IGd1dHRlclswXSAvIC0yXG4gICAgICB9IDoge30pLCBndXR0ZXJbMV0gPiAwID8ge1xuICAgICAgICBtYXJnaW5Ub3A6IGd1dHRlclsxXSAvIC0yLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGd1dHRlclsxXSAvIC0yXG4gICAgICB9IDoge30pLCBzdHlsZSk7XG5cbiAgICAgIHZhciBvdGhlclByb3BzID0gX2V4dGVuZHMoe30sIG90aGVycyk7XG5cbiAgICAgIGRlbGV0ZSBvdGhlclByb3BzLmd1dHRlcjtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfUm93Q29udGV4dFtcImRlZmF1bHRcIl0uUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBndXR0ZXI6IGd1dHRlclxuICAgICAgICB9XG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgb3RoZXJQcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMsXG4gICAgICAgIHN0eWxlOiByb3dTdHlsZVxuICAgICAgfSksIGNoaWxkcmVuKSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhSb3csIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHRoaXMudG9rZW4gPSBfcmVzcG9uc2l2ZU9ic2VydmVbXCJkZWZhdWx0XCJdLnN1YnNjcmliZShmdW5jdGlvbiAoc2NyZWVucykge1xuICAgICAgICB2YXIgZ3V0dGVyID0gX3RoaXMyLnByb3BzLmd1dHRlcjtcblxuICAgICAgICBpZiAoX3R5cGVvZihndXR0ZXIpID09PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGd1dHRlcikgJiYgKF90eXBlb2YoZ3V0dGVyWzBdKSA9PT0gJ29iamVjdCcgfHwgX3R5cGVvZihndXR0ZXJbMV0pID09PSAnb2JqZWN0JykpIHtcbiAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2NyZWVuczogc2NyZWVuc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBfcmVzcG9uc2l2ZU9ic2VydmVbXCJkZWZhdWx0XCJdLnVuc3Vic2NyaWJlKHRoaXMudG9rZW4pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRHdXR0ZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0R3V0dGVyKCkge1xuICAgICAgdmFyIHJlc3VsdHMgPSBbMCwgMF07XG4gICAgICB2YXIgZ3V0dGVyID0gdGhpcy5wcm9wcy5ndXR0ZXI7XG4gICAgICB2YXIgc2NyZWVucyA9IHRoaXMuc3RhdGUuc2NyZWVucztcbiAgICAgIHZhciBub3JtYWxpemVkR3V0dGVyID0gQXJyYXkuaXNBcnJheShndXR0ZXIpID8gZ3V0dGVyIDogW2d1dHRlciwgMF07XG4gICAgICBub3JtYWxpemVkR3V0dGVyLmZvckVhY2goZnVuY3Rpb24gKGcsIGluZGV4KSB7XG4gICAgICAgIGlmIChfdHlwZW9mKGcpID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX3Jlc3BvbnNpdmVPYnNlcnZlLnJlc3BvbnNpdmVBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBfcmVzcG9uc2l2ZU9ic2VydmUucmVzcG9uc2l2ZUFycmF5W2ldO1xuXG4gICAgICAgICAgICBpZiAoc2NyZWVuc1ticmVha3BvaW50XSAmJiBnW2JyZWFrcG9pbnRdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgcmVzdWx0c1tpbmRleF0gPSBnW2JyZWFrcG9pbnRdO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0c1tpbmRleF0gPSBnIHx8IDA7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlclJvdyk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFJvdztcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBSb3c7XG5Sb3cuZGVmYXVsdFByb3BzID0ge1xuICBndXR0ZXI6IDBcbn07XG5Sb3cucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMub25lT2YoWydmbGV4J10pLFxuICBhbGlnbjogUHJvcFR5cGVzLm9uZU9mKFJvd0FsaWducyksXG4gIGp1c3RpZnk6IFByb3BUeXBlcy5vbmVPZihSb3dKdXN0aWZ5KSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIGd1dHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLmFycmF5XSksXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZ1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gZXhwb3J0cy5yZXNwb25zaXZlTWFwID0gZXhwb3J0cy5yZXNwb25zaXZlQXJyYXkgPSB2b2lkIDA7XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbi8vIG1hdGNoTWVkaWEgcG9seWZpbGwgZm9yXG4vLyBodHRwczovL2dpdGh1Yi5jb20vV2lja3lOaWxsaWFtcy9lbnF1aXJlLmpzL2lzc3Vlcy84MlxudmFyIGVucXVpcmU7IC8vIFRPRE86IFdpbGwgYmUgcmVtb3ZlZCBpbiBhbnRkIDQuMCBiZWNhdXNlIHdlIHdpbGwgbm8gbG9uZ2VyIHN1cHBvcnQgaWU5XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICB2YXIgbWF0Y2hNZWRpYVBvbHlmaWxsID0gZnVuY3Rpb24gbWF0Y2hNZWRpYVBvbHlmaWxsKG1lZGlhUXVlcnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVkaWE6IG1lZGlhUXVlcnksXG4gICAgICBtYXRjaGVzOiBmYWxzZSxcbiAgICAgIGFkZExpc3RlbmVyOiBmdW5jdGlvbiBhZGRMaXN0ZW5lcigpIHt9LFxuICAgICAgcmVtb3ZlTGlzdGVuZXI6IGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKCkge31cbiAgICB9O1xuICB9OyAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE4Nzc0XG5cblxuICBpZiAoIXdpbmRvdy5tYXRjaE1lZGlhKSB3aW5kb3cubWF0Y2hNZWRpYSA9IG1hdGNoTWVkaWFQb2x5ZmlsbDsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdsb2JhbC1yZXF1aXJlXG5cbiAgZW5xdWlyZSA9IHJlcXVpcmUoJ2VucXVpcmUuanMnKTtcbn1cblxudmFyIHJlc3BvbnNpdmVBcnJheSA9IFsneHhsJywgJ3hsJywgJ2xnJywgJ21kJywgJ3NtJywgJ3hzJ107XG5leHBvcnRzLnJlc3BvbnNpdmVBcnJheSA9IHJlc3BvbnNpdmVBcnJheTtcbnZhciByZXNwb25zaXZlTWFwID0ge1xuICB4czogJyhtYXgtd2lkdGg6IDU3NXB4KScsXG4gIHNtOiAnKG1pbi13aWR0aDogNTc2cHgpJyxcbiAgbWQ6ICcobWluLXdpZHRoOiA3NjhweCknLFxuICBsZzogJyhtaW4td2lkdGg6IDk5MnB4KScsXG4gIHhsOiAnKG1pbi13aWR0aDogMTIwMHB4KScsXG4gIHh4bDogJyhtaW4td2lkdGg6IDE2MDBweCknXG59O1xuZXhwb3J0cy5yZXNwb25zaXZlTWFwID0gcmVzcG9uc2l2ZU1hcDtcbnZhciBzdWJzY3JpYmVycyA9IFtdO1xudmFyIHN1YlVpZCA9IC0xO1xudmFyIHNjcmVlbnMgPSB7fTtcbnZhciByZXNwb25zaXZlT2JzZXJ2ZSA9IHtcbiAgZGlzcGF0Y2g6IGZ1bmN0aW9uIGRpc3BhdGNoKHBvaW50TWFwKSB7XG4gICAgc2NyZWVucyA9IHBvaW50TWFwO1xuXG4gICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzdWJzY3JpYmVycy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICBpdGVtLmZ1bmMoc2NyZWVucyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIHN1YnNjcmliZTogZnVuY3Rpb24gc3Vic2NyaWJlKGZ1bmMpIHtcbiAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKCk7XG4gICAgfVxuXG4gICAgdmFyIHRva2VuID0gKCsrc3ViVWlkKS50b1N0cmluZygpO1xuICAgIHN1YnNjcmliZXJzLnB1c2goe1xuICAgICAgdG9rZW46IHRva2VuLFxuICAgICAgZnVuYzogZnVuY1xuICAgIH0pO1xuICAgIGZ1bmMoc2NyZWVucyk7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9LFxuICB1bnN1YnNjcmliZTogZnVuY3Rpb24gdW5zdWJzY3JpYmUodG9rZW4pIHtcbiAgICBzdWJzY3JpYmVycyA9IHN1YnNjcmliZXJzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW0udG9rZW4gIT09IHRva2VuO1xuICAgIH0pO1xuXG4gICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy51bnJlZ2lzdGVyKCk7XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyOiBmdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xuICAgIE9iamVjdC5rZXlzKHJlc3BvbnNpdmVNYXApLm1hcChmdW5jdGlvbiAoc2NyZWVuKSB7XG4gICAgICByZXR1cm4gZW5xdWlyZS51bnJlZ2lzdGVyKHJlc3BvbnNpdmVNYXBbc2NyZWVuXSk7XG4gICAgfSk7XG4gIH0sXG4gIHJlZ2lzdGVyOiBmdW5jdGlvbiByZWdpc3RlcigpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgT2JqZWN0LmtleXMocmVzcG9uc2l2ZU1hcCkubWFwKGZ1bmN0aW9uIChzY3JlZW4pIHtcbiAgICAgIHJldHVybiBlbnF1aXJlLnJlZ2lzdGVyKHJlc3BvbnNpdmVNYXBbc2NyZWVuXSwge1xuICAgICAgICBtYXRjaDogZnVuY3Rpb24gbWF0Y2goKSB7XG4gICAgICAgICAgdmFyIHBvaW50TWFwID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIHNjcmVlbnMpLCBfZGVmaW5lUHJvcGVydHkoe30sIHNjcmVlbiwgdHJ1ZSkpO1xuXG4gICAgICAgICAgX3RoaXMuZGlzcGF0Y2gocG9pbnRNYXApO1xuICAgICAgICB9LFxuICAgICAgICB1bm1hdGNoOiBmdW5jdGlvbiB1bm1hdGNoKCkge1xuICAgICAgICAgIHZhciBwb2ludE1hcCA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCBzY3JlZW5zKSwgX2RlZmluZVByb3BlcnR5KHt9LCBzY3JlZW4sIGZhbHNlKSk7XG5cbiAgICAgICAgICBfdGhpcy5kaXNwYXRjaChwb2ludE1hcCk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIEtlZXAgYSBlbXB0eSBkZXN0b3J5IHRvIGF2b2lkIHRyaWdnZXJpbmcgdW5tYXRjaCB3aGVuIHVucmVnaXN0ZXJcbiAgICAgICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHt9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufTtcbnZhciBfZGVmYXVsdCA9IHJlc3BvbnNpdmVPYnNlcnZlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJ2YXIgTWVkaWFRdWVyeURpc3BhdGNoID0gcmVxdWlyZSgnLi9NZWRpYVF1ZXJ5RGlzcGF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gbmV3IE1lZGlhUXVlcnlEaXNwYXRjaCgpO1xuIiwidmFyIE1lZGlhUXVlcnkgPSByZXF1aXJlKCcuL01lZGlhUXVlcnknKTtcbnZhciBVdGlsID0gcmVxdWlyZSgnLi9VdGlsJyk7XG52YXIgZWFjaCA9IFV0aWwuZWFjaDtcbnZhciBpc0Z1bmN0aW9uID0gVXRpbC5pc0Z1bmN0aW9uO1xudmFyIGlzQXJyYXkgPSBVdGlsLmlzQXJyYXk7XG5cbi8qKlxuICogQWxsb3dzIGZvciByZWdpc3RyYXRpb24gb2YgcXVlcnkgaGFuZGxlcnMuXG4gKiBNYW5hZ2VzIHRoZSBxdWVyeSBoYW5kbGVyJ3Mgc3RhdGUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciB3aXJpbmcgdXAgYnJvd3NlciBldmVudHNcbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gTWVkaWFRdWVyeURpc3BhdGNoICgpIHtcbiAgICBpZighd2luZG93Lm1hdGNoTWVkaWEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYXRjaE1lZGlhIG5vdCBwcmVzZW50LCBsZWdhY3kgYnJvd3NlcnMgcmVxdWlyZSBhIHBvbHlmaWxsJyk7XG4gICAgfVxuXG4gICAgdGhpcy5xdWVyaWVzID0ge307XG4gICAgdGhpcy5icm93c2VySXNJbmNhcGFibGUgPSAhd2luZG93Lm1hdGNoTWVkaWEoJ29ubHkgYWxsJykubWF0Y2hlcztcbn1cblxuTWVkaWFRdWVyeURpc3BhdGNoLnByb3RvdHlwZSA9IHtcblxuICAgIGNvbnN0cnVjdG9yIDogTWVkaWFRdWVyeURpc3BhdGNoLFxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgaGFuZGxlciBmb3IgdGhlIGdpdmVuIG1lZGlhIHF1ZXJ5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcSB0aGUgbWVkaWEgcXVlcnlcbiAgICAgKiBAcGFyYW0ge29iamVjdCB8fCBBcnJheSB8fCBGdW5jdGlvbn0gb3B0aW9ucyBlaXRoZXIgYSBzaW5nbGUgcXVlcnkgaGFuZGxlciBvYmplY3QsIGEgZnVuY3Rpb24sIG9yIGFuIGFycmF5IG9mIHF1ZXJ5IGhhbmRsZXJzXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucy5tYXRjaCBmaXJlZCB3aGVuIHF1ZXJ5IG1hdGNoZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy51bm1hdGNoXSBmaXJlZCB3aGVuIGEgcXVlcnkgaXMgbm8gbG9uZ2VyIG1hdGNoZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5zZXR1cF0gZmlyZWQgd2hlbiBoYW5kbGVyIGZpcnN0IHRyaWdnZXJlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVmZXJTZXR1cD1mYWxzZV0gd2hldGhlciBzZXR1cCBzaG91bGQgYmUgcnVuIGltbWVkaWF0ZWx5IG9yIGRlZmVycmVkIHVudGlsIHF1ZXJ5IGlzIGZpcnN0IG1hdGNoZWRcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzaG91bGREZWdyYWRlPWZhbHNlXSB3aGV0aGVyIHRoaXMgcGFydGljdWxhciBtZWRpYSBxdWVyeSBzaG91bGQgYWx3YXlzIHJ1biBvbiBpbmNhcGFibGUgYnJvd3NlcnNcbiAgICAgKi9cbiAgICByZWdpc3RlciA6IGZ1bmN0aW9uKHEsIG9wdGlvbnMsIHNob3VsZERlZ3JhZGUpIHtcbiAgICAgICAgdmFyIHF1ZXJpZXMgICAgICAgICA9IHRoaXMucXVlcmllcyxcbiAgICAgICAgICAgIGlzVW5jb25kaXRpb25hbCA9IHNob3VsZERlZ3JhZGUgJiYgdGhpcy5icm93c2VySXNJbmNhcGFibGU7XG5cbiAgICAgICAgaWYoIXF1ZXJpZXNbcV0pIHtcbiAgICAgICAgICAgIHF1ZXJpZXNbcV0gPSBuZXcgTWVkaWFRdWVyeShxLCBpc1VuY29uZGl0aW9uYWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9ub3JtYWxpc2UgdG8gb2JqZWN0IGluIGFuIGFycmF5XG4gICAgICAgIGlmKGlzRnVuY3Rpb24ob3B0aW9ucykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IG1hdGNoIDogb3B0aW9ucyB9O1xuICAgICAgICB9XG4gICAgICAgIGlmKCFpc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gW29wdGlvbnNdO1xuICAgICAgICB9XG4gICAgICAgIGVhY2gob3B0aW9ucywgZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oaGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyID0geyBtYXRjaCA6IGhhbmRsZXIgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHF1ZXJpZXNbcV0uYWRkSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHVucmVnaXN0ZXJzIGEgcXVlcnkgYW5kIGFsbCBpdCdzIGhhbmRsZXJzLCBvciBhIHNwZWNpZmljIGhhbmRsZXIgZm9yIGEgcXVlcnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxIHRoZSBtZWRpYSBxdWVyeSB0byB0YXJnZXRcbiAgICAgKiBAcGFyYW0ge29iamVjdCB8fCBmdW5jdGlvbn0gW2hhbmRsZXJdIHNwZWNpZmljIGhhbmRsZXIgdG8gdW5yZWdpc3RlclxuICAgICAqL1xuICAgIHVucmVnaXN0ZXIgOiBmdW5jdGlvbihxLCBoYW5kbGVyKSB7XG4gICAgICAgIHZhciBxdWVyeSA9IHRoaXMucXVlcmllc1txXTtcblxuICAgICAgICBpZihxdWVyeSkge1xuICAgICAgICAgICAgaWYoaGFuZGxlcikge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LnJlbW92ZUhhbmRsZXIoaGFuZGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWVyeS5jbGVhcigpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnF1ZXJpZXNbcV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lZGlhUXVlcnlEaXNwYXRjaDtcbiIsInZhciBRdWVyeUhhbmRsZXIgPSByZXF1aXJlKCcuL1F1ZXJ5SGFuZGxlcicpO1xudmFyIGVhY2ggPSByZXF1aXJlKCcuL1V0aWwnKS5lYWNoO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgbWVkaWEgcXVlcnksIG1hbmFnZXMgaXQncyBzdGF0ZSBhbmQgcmVnaXN0ZXJlZCBoYW5kbGVycyBmb3IgdGhpcyBxdWVyeVxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5IHRoZSBtZWRpYSBxdWVyeSBzdHJpbmdcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzVW5jb25kaXRpb25hbD1mYWxzZV0gd2hldGhlciB0aGUgbWVkaWEgcXVlcnkgc2hvdWxkIHJ1biByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGNvbmRpdGlvbnMgYXJlIG1ldC4gUHJpbWFyaWx5IGZvciBoZWxwaW5nIG9sZGVyIGJyb3dzZXJzIGRlYWwgd2l0aCBtb2JpbGUtZmlyc3QgZGVzaWduXG4gKi9cbmZ1bmN0aW9uIE1lZGlhUXVlcnkocXVlcnksIGlzVW5jb25kaXRpb25hbCkge1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLmlzVW5jb25kaXRpb25hbCA9IGlzVW5jb25kaXRpb25hbDtcbiAgICB0aGlzLmhhbmRsZXJzID0gW107XG4gICAgdGhpcy5tcWwgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSk7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5saXN0ZW5lciA9IGZ1bmN0aW9uKG1xbCkge1xuICAgICAgICAvLyBDaHJvbWUgcGFzc2VzIGFuIE1lZGlhUXVlcnlMaXN0RXZlbnQgb2JqZWN0LCB3aGlsZSBvdGhlciBicm93c2VycyBwYXNzIE1lZGlhUXVlcnlMaXN0IGRpcmVjdGx5XG4gICAgICAgIHNlbGYubXFsID0gbXFsLmN1cnJlbnRUYXJnZXQgfHwgbXFsO1xuICAgICAgICBzZWxmLmFzc2VzcygpO1xuICAgIH07XG4gICAgdGhpcy5tcWwuYWRkTGlzdGVuZXIodGhpcy5saXN0ZW5lcik7XG59XG5cbk1lZGlhUXVlcnkucHJvdG90eXBlID0ge1xuXG4gICAgY29uc3R1Y3RvciA6IE1lZGlhUXVlcnksXG5cbiAgICAvKipcbiAgICAgKiBhZGQgYSBoYW5kbGVyIGZvciB0aGlzIHF1ZXJ5LCB0cmlnZ2VyaW5nIGlmIGFscmVhZHkgYWN0aXZlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gaGFuZGxlclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGhhbmRsZXIubWF0Y2ggY2FsbGJhY2sgZm9yIHdoZW4gcXVlcnkgaXMgYWN0aXZhdGVkXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2hhbmRsZXIudW5tYXRjaF0gY2FsbGJhY2sgZm9yIHdoZW4gcXVlcnkgaXMgZGVhY3RpdmF0ZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbaGFuZGxlci5zZXR1cF0gY2FsbGJhY2sgZm9yIGltbWVkaWF0ZSBleGVjdXRpb24gd2hlbiBhIHF1ZXJ5IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2hhbmRsZXIuZGVmZXJTZXR1cD1mYWxzZV0gc2hvdWxkIHRoZSBzZXR1cCBjYWxsYmFjayBiZSBkZWZlcnJlZCB1bnRpbCB0aGUgZmlyc3QgdGltZSB0aGUgaGFuZGxlciBpcyBtYXRjaGVkP1xuICAgICAqL1xuICAgIGFkZEhhbmRsZXIgOiBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgIHZhciBxaCA9IG5ldyBRdWVyeUhhbmRsZXIoaGFuZGxlcik7XG4gICAgICAgIHRoaXMuaGFuZGxlcnMucHVzaChxaCk7XG5cbiAgICAgICAgdGhpcy5tYXRjaGVzKCkgJiYgcWgub24oKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogcmVtb3ZlcyB0aGUgZ2l2ZW4gaGFuZGxlciBmcm9tIHRoZSBjb2xsZWN0aW9uLCBhbmQgY2FsbHMgaXQncyBkZXN0cm95IG1ldGhvZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IGZ1bmN0aW9ufSBoYW5kbGVyIHRoZSBoYW5kbGVyIHRvIHJlbW92ZVxuICAgICAqL1xuICAgIHJlbW92ZUhhbmRsZXIgOiBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgIHZhciBoYW5kbGVycyA9IHRoaXMuaGFuZGxlcnM7XG4gICAgICAgIGVhY2goaGFuZGxlcnMsIGZ1bmN0aW9uKGgsIGkpIHtcbiAgICAgICAgICAgIGlmKGguZXF1YWxzKGhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgaC5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFoYW5kbGVycy5zcGxpY2UoaSwxKTsgLy9yZW1vdmUgZnJvbSBhcnJheSBhbmQgZXhpdCBlYWNoIGVhcmx5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgbWVkaWEgcXVlcnkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSBtYXRjaFxuICAgICAqXG4gICAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBtZWRpYSBxdWVyeSBjYW4gYmUgY29uc2lkZXJlZCBhIG1hdGNoLCBmYWxzZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBtYXRjaGVzIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1xbC5tYXRjaGVzIHx8IHRoaXMuaXNVbmNvbmRpdGlvbmFsO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGhhbmRsZXJzIGFuZCB1bmJpbmRzIGV2ZW50c1xuICAgICAqL1xuICAgIGNsZWFyIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGVhY2godGhpcy5oYW5kbGVycywgZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgaGFuZGxlci5kZXN0cm95KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1xbC5yZW1vdmVMaXN0ZW5lcih0aGlzLmxpc3RlbmVyKTtcbiAgICAgICAgdGhpcy5oYW5kbGVycy5sZW5ndGggPSAwOyAvL2NsZWFyIGFycmF5XG4gICAgfSxcblxuICAgIC8qXG4gICAgICAgICogQXNzZXNzZXMgdGhlIHF1ZXJ5LCB0dXJuaW5nIG9uIGFsbCBoYW5kbGVycyBpZiBpdCBtYXRjaGVzLCB0dXJuaW5nIHRoZW0gb2ZmIGlmIGl0IGRvZXNuJ3QgbWF0Y2hcbiAgICAgICAgKi9cbiAgICBhc3Nlc3MgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFjdGlvbiA9IHRoaXMubWF0Y2hlcygpID8gJ29uJyA6ICdvZmYnO1xuXG4gICAgICAgIGVhY2godGhpcy5oYW5kbGVycywgZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgaGFuZGxlclthY3Rpb25dKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTWVkaWFRdWVyeTtcbiIsIi8qKlxuICogRGVsZWdhdGUgdG8gaGFuZGxlIGEgbWVkaWEgcXVlcnkgYmVpbmcgbWF0Y2hlZCBhbmQgdW5tYXRjaGVkLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLm1hdGNoIGNhbGxiYWNrIGZvciB3aGVuIHRoZSBtZWRpYSBxdWVyeSBpcyBtYXRjaGVkXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy51bm1hdGNoXSBjYWxsYmFjayBmb3Igd2hlbiB0aGUgbWVkaWEgcXVlcnkgaXMgdW5tYXRjaGVkXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5zZXR1cF0gb25lLXRpbWUgY2FsbGJhY2sgdHJpZ2dlcmVkIHRoZSBmaXJzdCB0aW1lIGEgcXVlcnkgaXMgbWF0Y2hlZFxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kZWZlclNldHVwPWZhbHNlXSBzaG91bGQgdGhlIHNldHVwIGNhbGxiYWNrIGJlIHJ1biBpbW1lZGlhdGVseSwgcmF0aGVyIHRoYW4gZmlyc3QgdGltZSBxdWVyeSBpcyBtYXRjaGVkP1xuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFF1ZXJ5SGFuZGxlcihvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAhb3B0aW9ucy5kZWZlclNldHVwICYmIHRoaXMuc2V0dXAoKTtcbn1cblxuUXVlcnlIYW5kbGVyLnByb3RvdHlwZSA9IHtcblxuICAgIGNvbnN0cnVjdG9yIDogUXVlcnlIYW5kbGVyLFxuXG4gICAgLyoqXG4gICAgICogY29vcmRpbmF0ZXMgc2V0dXAgb2YgdGhlIGhhbmRsZXJcbiAgICAgKlxuICAgICAqIEBmdW5jdGlvblxuICAgICAqL1xuICAgIHNldHVwIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmKHRoaXMub3B0aW9ucy5zZXR1cCkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnNldHVwKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHNldHVwIGFuZCB0cmlnZ2VyaW5nIG9mIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBvbiA6IGZ1bmN0aW9uKCkge1xuICAgICAgICAhdGhpcy5pbml0aWFsaXNlZCAmJiB0aGlzLnNldHVwKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucy5tYXRjaCAmJiB0aGlzLm9wdGlvbnMubWF0Y2goKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogY29vcmRpbmF0ZXMgdGhlIHVubWF0Y2ggZXZlbnQgZm9yIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBvZmYgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLnVubWF0Y2ggJiYgdGhpcy5vcHRpb25zLnVubWF0Y2goKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogY2FsbGVkIHdoZW4gYSBoYW5kbGVyIGlzIHRvIGJlIGRlc3Ryb3llZC5cbiAgICAgKiBkZWxlZ2F0ZXMgdG8gdGhlIGRlc3Ryb3kgb3IgdW5tYXRjaCBjYWxsYmFja3MsIGRlcGVuZGluZyBvbiBhdmFpbGFiaWxpdHkuXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBkZXN0cm95IDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5kZXN0cm95ID8gdGhpcy5vcHRpb25zLmRlc3Ryb3koKSA6IHRoaXMub2ZmKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGRldGVybWluZXMgZXF1YWxpdHkgYnkgcmVmZXJlbmNlLlxuICAgICAqIGlmIG9iamVjdCBpcyBzdXBwbGllZCBjb21wYXJlIG9wdGlvbnMsIGlmIGZ1bmN0aW9uLCBjb21wYXJlIG1hdGNoIGNhbGxiYWNrXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge29iamVjdCB8fCBmdW5jdGlvbn0gW3RhcmdldF0gdGhlIHRhcmdldCBmb3IgY29tcGFyaXNvblxuICAgICAqL1xuICAgIGVxdWFscyA6IGZ1bmN0aW9uKHRhcmdldCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zID09PSB0YXJnZXQgfHwgdGhpcy5vcHRpb25zLm1hdGNoID09PSB0YXJnZXQ7XG4gICAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFF1ZXJ5SGFuZGxlcjtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX1Jvd0NvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL1Jvd0NvbnRleHRcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBvYmplY3RPck51bWJlciA9IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5udW1iZXJdKTtcblxudmFyIENvbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ29sLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKENvbCk7XG5cbiAgZnVuY3Rpb24gQ29sKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb2wpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIF90aGlzLnJlbmRlckNvbCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLFxuICAgICAgICAgIHByb3BzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplLnByb3BzO1xuXG4gICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIHNwYW4gPSBwcm9wcy5zcGFuLFxuICAgICAgICAgIG9yZGVyID0gcHJvcHMub3JkZXIsXG4gICAgICAgICAgb2Zmc2V0ID0gcHJvcHMub2Zmc2V0LFxuICAgICAgICAgIHB1c2ggPSBwcm9wcy5wdXNoLFxuICAgICAgICAgIHB1bGwgPSBwcm9wcy5wdWxsLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIG90aGVycyA9IF9fcmVzdChwcm9wcywgW1wicHJlZml4Q2xzXCIsIFwic3BhblwiLCBcIm9yZGVyXCIsIFwib2Zmc2V0XCIsIFwicHVzaFwiLCBcInB1bGxcIiwgXCJjbGFzc05hbWVcIiwgXCJjaGlsZHJlblwiXSk7XG5cbiAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2NvbCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgc2l6ZUNsYXNzT2JqID0ge307XG4gICAgICBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJywgJ3h4bCddLmZvckVhY2goZnVuY3Rpb24gKHNpemUpIHtcbiAgICAgICAgdmFyIF9leHRlbmRzMjtcblxuICAgICAgICB2YXIgc2l6ZVByb3BzID0ge307XG4gICAgICAgIHZhciBwcm9wU2l6ZSA9IHByb3BzW3NpemVdO1xuXG4gICAgICAgIGlmICh0eXBlb2YgcHJvcFNpemUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgc2l6ZVByb3BzLnNwYW4gPSBwcm9wU2l6ZTtcbiAgICAgICAgfSBlbHNlIGlmIChfdHlwZW9mKHByb3BTaXplKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBzaXplUHJvcHMgPSBwcm9wU2l6ZSB8fCB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBvdGhlcnNbc2l6ZV07XG4gICAgICAgIHNpemVDbGFzc09iaiA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCBzaXplQ2xhc3NPYmopLCAoX2V4dGVuZHMyID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1cIikuY29uY2F0KHNpemVQcm9wcy5zcGFuKSwgc2l6ZVByb3BzLnNwYW4gIT09IHVuZGVmaW5lZCksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1vcmRlci1cIikuY29uY2F0KHNpemVQcm9wcy5vcmRlciksIHNpemVQcm9wcy5vcmRlciB8fCBzaXplUHJvcHMub3JkZXIgPT09IDApLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQoc2l6ZSwgXCItb2Zmc2V0LVwiKS5jb25jYXQoc2l6ZVByb3BzLm9mZnNldCksIHNpemVQcm9wcy5vZmZzZXQgfHwgc2l6ZVByb3BzLm9mZnNldCA9PT0gMCksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1wdXNoLVwiKS5jb25jYXQoc2l6ZVByb3BzLnB1c2gpLCBzaXplUHJvcHMucHVzaCB8fCBzaXplUHJvcHMucHVzaCA9PT0gMCksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1wdWxsLVwiKS5jb25jYXQoc2l6ZVByb3BzLnB1bGwpLCBzaXplUHJvcHMucHVsbCB8fCBzaXplUHJvcHMucHVsbCA9PT0gMCksIF9leHRlbmRzMikpO1xuICAgICAgfSk7XG4gICAgICB2YXIgY2xhc3NlcyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNwYW4pLCBzcGFuICE9PSB1bmRlZmluZWQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItb3JkZXItXCIpLmNvbmNhdChvcmRlciksIG9yZGVyKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW9mZnNldC1cIikuY29uY2F0KG9mZnNldCksIG9mZnNldCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1wdXNoLVwiKS5jb25jYXQocHVzaCksIHB1c2gpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcHVsbC1cIikuY29uY2F0KHB1bGwpLCBwdWxsKSwgX2NsYXNzTmFtZXMpLCBjbGFzc05hbWUsIHNpemVDbGFzc09iaik7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX1Jvd0NvbnRleHRbXCJkZWZhdWx0XCJdLkNvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgdmFyIGd1dHRlciA9IF9yZWYyLmd1dHRlcjtcbiAgICAgICAgdmFyIHN0eWxlID0gb3RoZXJzLnN0eWxlO1xuXG4gICAgICAgIGlmIChndXR0ZXIpIHtcbiAgICAgICAgICBzdHlsZSA9IF9leHRlbmRzKF9leHRlbmRzKF9leHRlbmRzKHt9LCBndXR0ZXJbMF0gPiAwID8ge1xuICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IGd1dHRlclswXSAvIDIsXG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IGd1dHRlclswXSAvIDJcbiAgICAgICAgICB9IDoge30pLCBndXR0ZXJbMV0gPiAwID8ge1xuICAgICAgICAgICAgcGFkZGluZ1RvcDogZ3V0dGVyWzFdIC8gMixcbiAgICAgICAgICAgIHBhZGRpbmdCb3R0b206IGd1dHRlclsxXSAvIDJcbiAgICAgICAgICB9IDoge30pLCBzdHlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe30sIG90aGVycywge1xuICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXNcbiAgICAgICAgfSksIGNoaWxkcmVuKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ29sLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJDb2wpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDb2w7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gQ29sO1xuQ29sLnByb3BUeXBlcyA9IHtcbiAgc3BhbjogUHJvcFR5cGVzLm51bWJlcixcbiAgb3JkZXI6IFByb3BUeXBlcy5udW1iZXIsXG4gIG9mZnNldDogUHJvcFR5cGVzLm51bWJlcixcbiAgcHVzaDogUHJvcFR5cGVzLm51bWJlcixcbiAgcHVsbDogUHJvcFR5cGVzLm51bWJlcixcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIHhzOiBvYmplY3RPck51bWJlcixcbiAgc206IG9iamVjdE9yTnVtYmVyLFxuICBtZDogb2JqZWN0T3JOdW1iZXIsXG4gIGxnOiBvYmplY3RPck51bWJlcixcbiAgeGw6IG9iamVjdE9yTnVtYmVyLFxuICB4eGw6IG9iamVjdE9yTnVtYmVyXG59OyIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBub3cgPSByZXF1aXJlKCcuL25vdycpLFxuICAgIHRvTnVtYmVyID0gcmVxdWlyZSgnLi90b051bWJlcicpO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXgsXG4gICAgbmF0aXZlTWluID0gTWF0aC5taW47XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRlYm91bmNlZCBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyBgZnVuY2AgdW50aWwgYWZ0ZXIgYHdhaXRgXG4gKiBtaWxsaXNlY29uZHMgaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiB3YXNcbiAqIGludm9rZWQuIFRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgIG1ldGhvZCB0byBjYW5jZWxcbiAqIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLlxuICogUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2Agc2hvdWxkIGJlIGludm9rZWQgb24gdGhlXG4gKiBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGAgdGltZW91dC4gVGhlIGBmdW5jYCBpcyBpbnZva2VkXG4gKiB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50XG4gKiBjYWxscyB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYFxuICogaW52b2NhdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXG4gKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIGRlYm91bmNlZCBmdW5jdGlvblxuICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICpcbiAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxuICpcbiAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy5kZWJvdW5jZWAgYW5kIGBfLnRocm90dGxlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlYm91bmNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9ZmFsc2VdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFdhaXRdXG4gKiAgVGhlIG1heGltdW0gdGltZSBgZnVuY2AgaXMgYWxsb3dlZCB0byBiZSBkZWxheWVkIGJlZm9yZSBpdCdzIGludm9rZWQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGRlYm91bmNlZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogLy8gQXZvaWQgY29zdGx5IGNhbGN1bGF0aW9ucyB3aGlsZSB0aGUgd2luZG93IHNpemUgaXMgaW4gZmx1eC5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLCBfLmRlYm91bmNlKGNhbGN1bGF0ZUxheW91dCwgMTUwKSk7XG4gKlxuICogLy8gSW52b2tlIGBzZW5kTWFpbGAgd2hlbiBjbGlja2VkLCBkZWJvdW5jaW5nIHN1YnNlcXVlbnQgY2FsbHMuXG4gKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgXy5kZWJvdW5jZShzZW5kTWFpbCwgMzAwLCB7XG4gKiAgICdsZWFkaW5nJzogdHJ1ZSxcbiAqICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAqIH0pKTtcbiAqXG4gKiAvLyBFbnN1cmUgYGJhdGNoTG9nYCBpcyBpbnZva2VkIG9uY2UgYWZ0ZXIgMSBzZWNvbmQgb2YgZGVib3VuY2VkIGNhbGxzLlxuICogdmFyIGRlYm91bmNlZCA9IF8uZGVib3VuY2UoYmF0Y2hMb2csIDI1MCwgeyAnbWF4V2FpdCc6IDEwMDAgfSk7XG4gKiB2YXIgc291cmNlID0gbmV3IEV2ZW50U291cmNlKCcvc3RyZWFtJyk7XG4gKiBqUXVlcnkoc291cmNlKS5vbignbWVzc2FnZScsIGRlYm91bmNlZCk7XG4gKlxuICogLy8gQ2FuY2VsIHRoZSB0cmFpbGluZyBkZWJvdW5jZWQgaW52b2NhdGlvbi5cbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIGRlYm91bmNlZC5jYW5jZWwpO1xuICovXG5mdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XG4gIHZhciBsYXN0QXJncyxcbiAgICAgIGxhc3RUaGlzLFxuICAgICAgbWF4V2FpdCxcbiAgICAgIHJlc3VsdCxcbiAgICAgIHRpbWVySWQsXG4gICAgICBsYXN0Q2FsbFRpbWUsXG4gICAgICBsYXN0SW52b2tlVGltZSA9IDAsXG4gICAgICBsZWFkaW5nID0gZmFsc2UsXG4gICAgICBtYXhpbmcgPSBmYWxzZSxcbiAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgfVxuICB3YWl0ID0gdG9OdW1iZXIod2FpdCkgfHwgMDtcbiAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5nO1xuICAgIG1heGluZyA9ICdtYXhXYWl0JyBpbiBvcHRpb25zO1xuICAgIG1heFdhaXQgPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0KSA6IG1heFdhaXQ7XG4gICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZUZ1bmModGltZSkge1xuICAgIHZhciBhcmdzID0gbGFzdEFyZ3MsXG4gICAgICAgIHRoaXNBcmcgPSBsYXN0VGhpcztcblxuICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XG4gICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxlYWRpbmdFZGdlKHRpbWUpIHtcbiAgICAvLyBSZXNldCBhbnkgYG1heFdhaXRgIHRpbWVyLlxuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAvLyBTdGFydCB0aGUgdGltZXIgZm9yIHRoZSB0cmFpbGluZyBlZGdlLlxuICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgLy8gSW52b2tlIHRoZSBsZWFkaW5nIGVkZ2UuXG4gICAgcmV0dXJuIGxlYWRpbmcgPyBpbnZva2VGdW5jKHRpbWUpIDogcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtYWluaW5nV2FpdCh0aW1lKSB7XG4gICAgdmFyIHRpbWVTaW5jZUxhc3RDYWxsID0gdGltZSAtIGxhc3RDYWxsVGltZSxcbiAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZSxcbiAgICAgICAgdGltZVdhaXRpbmcgPSB3YWl0IC0gdGltZVNpbmNlTGFzdENhbGw7XG5cbiAgICByZXR1cm4gbWF4aW5nXG4gICAgICA/IG5hdGl2ZU1pbih0aW1lV2FpdGluZywgbWF4V2FpdCAtIHRpbWVTaW5jZUxhc3RJbnZva2UpXG4gICAgICA6IHRpbWVXYWl0aW5nO1xuICB9XG5cbiAgZnVuY3Rpb24gc2hvdWxkSW52b2tlKHRpbWUpIHtcbiAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lO1xuXG4gICAgLy8gRWl0aGVyIHRoaXMgaXMgdGhlIGZpcnN0IGNhbGwsIGFjdGl2aXR5IGhhcyBzdG9wcGVkIGFuZCB3ZSdyZSBhdCB0aGVcbiAgICAvLyB0cmFpbGluZyBlZGdlLCB0aGUgc3lzdGVtIHRpbWUgaGFzIGdvbmUgYmFja3dhcmRzIGFuZCB3ZSdyZSB0cmVhdGluZ1xuICAgIC8vIGl0IGFzIHRoZSB0cmFpbGluZyBlZGdlLCBvciB3ZSd2ZSBoaXQgdGhlIGBtYXhXYWl0YCBsaW1pdC5cbiAgICByZXR1cm4gKGxhc3RDYWxsVGltZSA9PT0gdW5kZWZpbmVkIHx8ICh0aW1lU2luY2VMYXN0Q2FsbCA+PSB3YWl0KSB8fFxuICAgICAgKHRpbWVTaW5jZUxhc3RDYWxsIDwgMCkgfHwgKG1heGluZyAmJiB0aW1lU2luY2VMYXN0SW52b2tlID49IG1heFdhaXQpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpO1xuICAgIGlmIChzaG91bGRJbnZva2UodGltZSkpIHtcbiAgICAgIHJldHVybiB0cmFpbGluZ0VkZ2UodGltZSk7XG4gICAgfVxuICAgIC8vIFJlc3RhcnQgdGhlIHRpbWVyLlxuICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgcmVtYWluaW5nV2FpdCh0aW1lKSk7XG4gIH1cblxuICBmdW5jdGlvbiB0cmFpbGluZ0VkZ2UodGltZSkge1xuICAgIHRpbWVySWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBPbmx5IGludm9rZSBpZiB3ZSBoYXZlIGBsYXN0QXJnc2Agd2hpY2ggbWVhbnMgYGZ1bmNgIGhhcyBiZWVuXG4gICAgLy8gZGVib3VuY2VkIGF0IGxlYXN0IG9uY2UuXG4gICAgaWYgKHRyYWlsaW5nICYmIGxhc3RBcmdzKSB7XG4gICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgIGlmICh0aW1lcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICB9XG4gICAgbGFzdEludm9rZVRpbWUgPSAwO1xuICAgIGxhc3RBcmdzID0gbGFzdENhbGxUaW1lID0gbGFzdFRoaXMgPSB0aW1lcklkID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgcmV0dXJuIHRpbWVySWQgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IHRyYWlsaW5nRWRnZShub3coKSk7XG4gIH1cblxuICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XG4gICAgdmFyIHRpbWUgPSBub3coKSxcbiAgICAgICAgaXNJbnZva2luZyA9IHNob3VsZEludm9rZSh0aW1lKTtcblxuICAgIGxhc3RBcmdzID0gYXJndW1lbnRzO1xuICAgIGxhc3RUaGlzID0gdGhpcztcbiAgICBsYXN0Q2FsbFRpbWUgPSB0aW1lO1xuXG4gICAgaWYgKGlzSW52b2tpbmcpIHtcbiAgICAgIGlmICh0aW1lcklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGxlYWRpbmdFZGdlKGxhc3RDYWxsVGltZSk7XG4gICAgICB9XG4gICAgICBpZiAobWF4aW5nKSB7XG4gICAgICAgIC8vIEhhbmRsZSBpbnZvY2F0aW9ucyBpbiBhIHRpZ2h0IGxvb3AuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkZWJvdW5jZTtcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vdztcbiIsIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbm1vZHVsZS5leHBvcnRzID0gZnJlZUdsb2JhbDtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTkFOID0gMCAvIDA7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgbnVtYmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvTnVtYmVyKDMuMik7XG4gKiAvLyA9PiAzLjJcbiAqXG4gKiBfLnRvTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gNWUtMzI0XG4gKlxuICogXy50b051bWJlcihJbmZpbml0eSk7XG4gKiAvLyA9PiBJbmZpbml0eVxuICpcbiAqIF8udG9OdW1iZXIoJzMuMicpO1xuICogLy8gPT4gMy4yXG4gKi9cbmZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBOQU47XG4gIH1cbiAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHZhciBvdGhlciA9IHR5cGVvZiB2YWx1ZS52YWx1ZU9mID09ICdmdW5jdGlvbicgPyB2YWx1ZS52YWx1ZU9mKCkgOiB2YWx1ZTtcbiAgICB2YWx1ZSA9IGlzT2JqZWN0KG90aGVyKSA/IChvdGhlciArICcnKSA6IG90aGVyO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgfVxuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UocmVUcmltLCAnJyk7XG4gIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gIHJldHVybiAoaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpKVxuICAgID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KVxuICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvTnVtYmVyO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzU3ltYm9sO1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpLFxuICAgIGdldFJhd1RhZyA9IHJlcXVpcmUoJy4vX2dldFJhd1RhZycpLFxuICAgIG9iamVjdFRvU3RyaW5nID0gcmVxdWlyZSgnLi9fb2JqZWN0VG9TdHJpbmcnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldFRhZztcbiIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFJhd1RhZztcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9iamVjdFRvU3RyaW5nO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3RMaWtlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfb21pdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIm9taXQuanNcIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfdHlwZSA9IHJlcXVpcmUoXCIuLi9fdXRpbC90eXBlXCIpO1xuXG52YXIgX0xpbmUgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0xpbmVcIikpO1xuXG52YXIgX0NpcmNsZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vQ2lyY2xlXCIpKTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIFByb2dyZXNzVHlwZXMgPSAoMCwgX3R5cGUudHVwbGUpKCdsaW5lJywgJ2NpcmNsZScsICdkYXNoYm9hcmQnKTtcbnZhciBQcm9ncmVzc1N0YXR1c2VzID0gKDAsIF90eXBlLnR1cGxlKSgnbm9ybWFsJywgJ2V4Y2VwdGlvbicsICdhY3RpdmUnLCAnc3VjY2VzcycpO1xuXG52YXIgUHJvZ3Jlc3MgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFByb2dyZXNzLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFByb2dyZXNzKTtcblxuICBmdW5jdGlvbiBQcm9ncmVzcygpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHJvZ3Jlc3MpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIF90aGlzLnJlbmRlclByb2dyZXNzID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUucHJvcHM7XG5cbiAgICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIHNpemUgPSBwcm9wcy5zaXplLFxuICAgICAgICAgIHR5cGUgPSBwcm9wcy50eXBlLFxuICAgICAgICAgIHNob3dJbmZvID0gcHJvcHMuc2hvd0luZm8sXG4gICAgICAgICAgcmVzdFByb3BzID0gX19yZXN0KHByb3BzLCBbXCJwcmVmaXhDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJzaXplXCIsIFwidHlwZVwiLCBcInNob3dJbmZvXCJdKTtcblxuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygncHJvZ3Jlc3MnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuXG4gICAgICB2YXIgcHJvZ3Jlc3NTdGF0dXMgPSBfdGhpcy5nZXRQcm9ncmVzc1N0YXR1cygpO1xuXG4gICAgICB2YXIgcHJvZ3Jlc3NJbmZvID0gX3RoaXMucmVuZGVyUHJvY2Vzc0luZm8ocHJlZml4Q2xzLCBwcm9ncmVzc1N0YXR1cyk7XG5cbiAgICAgIHZhciBwcm9ncmVzczsgLy8gUmVuZGVyIHByb2dyZXNzIHNoYXBlXG5cbiAgICAgIGlmICh0eXBlID09PSAnbGluZScpIHtcbiAgICAgICAgcHJvZ3Jlc3MgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfTGluZVtcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCBfdGhpcy5wcm9wcywge1xuICAgICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzXG4gICAgICAgIH0pLCBwcm9ncmVzc0luZm8pO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnY2lyY2xlJyB8fCB0eXBlID09PSAnZGFzaGJvYXJkJykge1xuICAgICAgICBwcm9ncmVzcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9DaXJjbGVbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgX3RoaXMucHJvcHMsIHtcbiAgICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgICBwcm9ncmVzc1N0YXR1czogcHJvZ3Jlc3NTdGF0dXNcbiAgICAgICAgfSksIHByb2dyZXNzSW5mbyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBjbGFzc1N0cmluZyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHR5cGUgPT09ICdkYXNoYm9hcmQnICYmICdjaXJjbGUnIHx8IHR5cGUpLCB0cnVlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXN0YXR1cy1cIikuY29uY2F0KHByb2dyZXNzU3RhdHVzKSwgdHJ1ZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zaG93LWluZm9cIiksIHNob3dJbmZvKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQoc2l6ZSksIHNpemUpLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe30sICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHJlc3RQcm9wcywgWydzdGF0dXMnLCAnZm9ybWF0JywgJ3RyYWlsQ29sb3InLCAnc3VjY2Vzc1BlcmNlbnQnLCAnc3Ryb2tlV2lkdGgnLCAnd2lkdGgnLCAnZ2FwRGVncmVlJywgJ2dhcFBvc2l0aW9uJywgJ3N0cm9rZUNvbG9yJywgJ3N0cm9rZUxpbmVjYXAnLCAncGVyY2VudCddKSwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzU3RyaW5nXG4gICAgICB9KSwgcHJvZ3Jlc3MpO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUHJvZ3Jlc3MsIFt7XG4gICAga2V5OiBcImdldFBlcmNlbnROdW1iZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UGVyY2VudE51bWJlcigpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgc3VjY2Vzc1BlcmNlbnQgPSBfdGhpcyRwcm9wcy5zdWNjZXNzUGVyY2VudCxcbiAgICAgICAgICBfdGhpcyRwcm9wcyRwZXJjZW50ID0gX3RoaXMkcHJvcHMucGVyY2VudCxcbiAgICAgICAgICBwZXJjZW50ID0gX3RoaXMkcHJvcHMkcGVyY2VudCA9PT0gdm9pZCAwID8gMCA6IF90aGlzJHByb3BzJHBlcmNlbnQ7XG4gICAgICByZXR1cm4gcGFyc2VJbnQoc3VjY2Vzc1BlcmNlbnQgIT09IHVuZGVmaW5lZCA/IHN1Y2Nlc3NQZXJjZW50LnRvU3RyaW5nKCkgOiBwZXJjZW50LnRvU3RyaW5nKCksIDEwKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UHJvZ3Jlc3NTdGF0dXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UHJvZ3Jlc3NTdGF0dXMoKSB7XG4gICAgICB2YXIgc3RhdHVzID0gdGhpcy5wcm9wcy5zdGF0dXM7XG5cbiAgICAgIGlmIChQcm9ncmVzc1N0YXR1c2VzLmluZGV4T2Yoc3RhdHVzKSA8IDAgJiYgdGhpcy5nZXRQZXJjZW50TnVtYmVyKCkgPj0gMTAwKSB7XG4gICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdGF0dXMgfHwgJ25vcm1hbCc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclByb2Nlc3NJbmZvXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlclByb2Nlc3NJbmZvKHByZWZpeENscywgcHJvZ3Jlc3NTdGF0dXMpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHNob3dJbmZvID0gX3RoaXMkcHJvcHMyLnNob3dJbmZvLFxuICAgICAgICAgIGZvcm1hdCA9IF90aGlzJHByb3BzMi5mb3JtYXQsXG4gICAgICAgICAgdHlwZSA9IF90aGlzJHByb3BzMi50eXBlLFxuICAgICAgICAgIHBlcmNlbnQgPSBfdGhpcyRwcm9wczIucGVyY2VudCxcbiAgICAgICAgICBzdWNjZXNzUGVyY2VudCA9IF90aGlzJHByb3BzMi5zdWNjZXNzUGVyY2VudDtcbiAgICAgIGlmICghc2hvd0luZm8pIHJldHVybiBudWxsO1xuICAgICAgdmFyIHRleHQ7XG5cbiAgICAgIHZhciB0ZXh0Rm9ybWF0dGVyID0gZm9ybWF0IHx8IGZ1bmN0aW9uIChwZXJjZW50TnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChwZXJjZW50TnVtYmVyLCBcIiVcIik7XG4gICAgICB9O1xuXG4gICAgICB2YXIgaWNvblR5cGUgPSB0eXBlID09PSAnY2lyY2xlJyB8fCB0eXBlID09PSAnZGFzaGJvYXJkJyA/ICcnIDogJy1jaXJjbGUnO1xuXG4gICAgICBpZiAoZm9ybWF0IHx8IHByb2dyZXNzU3RhdHVzICE9PSAnZXhjZXB0aW9uJyAmJiBwcm9ncmVzc1N0YXR1cyAhPT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgIHRleHQgPSB0ZXh0Rm9ybWF0dGVyKCgwLCBfdXRpbHMudmFsaWRQcm9ncmVzcykocGVyY2VudCksICgwLCBfdXRpbHMudmFsaWRQcm9ncmVzcykoc3VjY2Vzc1BlcmNlbnQpKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvZ3Jlc3NTdGF0dXMgPT09ICdleGNlcHRpb24nKSB7XG4gICAgICAgIHRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgICB0eXBlOiBcImNsb3NlXCIuY29uY2F0KGljb25UeXBlKSxcbiAgICAgICAgICB0aGVtZTogdHlwZSA9PT0gJ2xpbmUnID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChwcm9ncmVzc1N0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgIHRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgICB0eXBlOiBcImNoZWNrXCIuY29uY2F0KGljb25UeXBlKSxcbiAgICAgICAgICB0aGVtZTogdHlwZSA9PT0gJ2xpbmUnID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXRleHRcIiksXG4gICAgICAgIHRpdGxlOiB0eXBlb2YgdGV4dCA9PT0gJ3N0cmluZycgPyB0ZXh0IDogdW5kZWZpbmVkXG4gICAgICB9LCB0ZXh0KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyUHJvZ3Jlc3MpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBQcm9ncmVzcztcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBQcm9ncmVzcztcblByb2dyZXNzLmRlZmF1bHRQcm9wcyA9IHtcbiAgdHlwZTogJ2xpbmUnLFxuICBwZXJjZW50OiAwLFxuICBzaG93SW5mbzogdHJ1ZSxcbiAgdHJhaWxDb2xvcjogJyNmM2YzZjMnLFxuICBzaXplOiAnZGVmYXVsdCcsXG4gIGdhcERlZ3JlZTogMCxcbiAgc3Ryb2tlTGluZWNhcDogJ3JvdW5kJ1xufTtcblByb2dyZXNzLnByb3BUeXBlcyA9IHtcbiAgc3RhdHVzOiBQcm9wVHlwZXMub25lT2YoUHJvZ3Jlc3NTdGF0dXNlcyksXG4gIHR5cGU6IFByb3BUeXBlcy5vbmVPZihQcm9ncmVzc1R5cGVzKSxcbiAgc2hvd0luZm86IFByb3BUeXBlcy5ib29sLFxuICBwZXJjZW50OiBQcm9wVHlwZXMubnVtYmVyLFxuICB3aWR0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgc3Ryb2tlV2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHN0cm9rZUxpbmVjYXA6IFByb3BUeXBlcy5vbmVPZihbJ3JvdW5kJywgJ3NxdWFyZSddKSxcbiAgc3Ryb2tlQ29sb3I6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgdHJhaWxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgZm9ybWF0OiBQcm9wVHlwZXMuZnVuYyxcbiAgZ2FwRGVncmVlOiBQcm9wVHlwZXMubnVtYmVyXG59OyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIG5vcm1hbFZpZXdCb3ggPSAnMCAwIDEwMjQgMTAyNCc7XG52YXIgbmV3Vmlld0JveCA9ICc2NCA2NCA4OTYgODk2JztcbnZhciBmaWxsID0gJ2ZpbGwnO1xudmFyIG91dGxpbmUgPSAnb3V0bGluZSc7XG52YXIgdHdvdG9uZSA9ICd0d290b25lJztcbmZ1bmN0aW9uIGdldE5vZGUodmlld0JveCkge1xuICAgIHZhciBwYXRocyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHBhdGhzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB0YWc6ICdzdmcnLFxuICAgICAgICBhdHRyczogeyB2aWV3Qm94OiB2aWV3Qm94LCBmb2N1c2FibGU6IGZhbHNlIH0sXG4gICAgICAgIGNoaWxkcmVuOiBwYXRocy5tYXAoZnVuY3Rpb24gKHBhdGgpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBwYXRoWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZDogcGF0aFsxXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgZDogcGF0aFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldEljb24obmFtZSwgdGhlbWUsIGljb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICB0aGVtZTogdGhlbWUsXG4gICAgICAgIGljb246IGljb25cbiAgICB9O1xufVxuZXhwb3J0cy5BY2NvdW50Qm9va0ZpbGwgPSBnZXRJY29uKCdhY2NvdW50LWJvb2snLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NDguMyA0MjYuOGwtODcuNyAxNjEuMWg0NS43YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNHYyOS43aDYzLjRjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40Vjc1MmMwIDUuNS00LjUgMTAtMTAgMTBoLTQxLjNjLTUuNSAwLTEwLTQuNS0xMC0xMHYtNTEuOGgtNjMuMWMtNS41IDAtMTAtNC41LTEwLTEwdi0yMS4zYzAtNS41IDQuNS0xMCAxMC0xMGg2My4xdi0yOS43aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjMgNzMuMi0xNDQuM2ExMCAxMCAwIDAgMSA4LjktNS41aDQ1YzUuNSAwIDEwIDQuNSAxMCAxMCAuMSAxLjctLjMgMy4zLTEuMSA0Ljh6JykpO1xuZXhwb3J0cy5BbGVydEZpbGwgPSBnZXRJY29uKCdhbGVydCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgMjQ0YzE3Ni4xOCAwIDMxOSAxNDIuODIgMzE5IDMxOXYyMzNhMzIgMzIgMCAwIDEtMzIgMzJIMjI1YTMyIDMyIDAgMCAxLTMyLTMyVjU2M2MwLTE3Ni4xOCAxNDIuODItMzE5IDMxOS0zMTl6TTQ4NCA2OGg1NmE4IDggMCAwIDEgOCA4djk2YTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThWNzZhOCA4IDAgMCAxIDgtOHpNMTc3LjI1IDE5MS42NmE4IDggMCAwIDEgMTEuMzIgMGw2Ny44OCA2Ny44OGE4IDggMCAwIDEgMCAxMS4zMWwtMzkuNiAzOS42YTggOCAwIDAgMS0xMS4zMSAwbC02Ny44OC02Ny44OGE4IDggMCAwIDEgMC0xMS4zMWwzOS42LTM5LjZ6bTY2OS42IDBsMzkuNiAzOS42YTggOCAwIDAgMSAwIDExLjNsLTY3Ljg4IDY3LjlhOCA4IDAgMCAxLTExLjMyIDBsLTM5LjYtMzkuNmE4IDggMCAwIDEgMC0xMS4zMmw2Ny44OS02Ny44OGE4IDggMCAwIDEgMTEuMzEgMHpNMTkyIDg5Mmg2NDBhMzIgMzIgMCAwIDEgMzIgMzJ2MjRhOCA4IDAgMCAxLTggOEgxNjhhOCA4IDAgMCAxLTgtOHYtMjRhMzIgMzIgMCAwIDEgMzItMzJ6bTE0OC0zMTd2MjUzaDY0VjU3NWgtNjR6JykpO1xuZXhwb3J0cy5BbGlwYXlTcXVhcmVGaWxsID0gZ2V0SWNvbignYWxpcGF5LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDguNiA1NDUuN2MtMTkuOCAyLTU3LjEgMTAuNy03Ny40IDI4LjYtNjEgNTMtMjQuNSAxNTAgOTkgMTUwIDcxLjggMCAxNDMuNS00NS43IDE5OS44LTExOS04MC4yLTM4LjktMTQ4LjEtNjYuOC0yMjEuNC01OS42ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTI5LjQgNjYzLjJTNzAzIDY4OS40IDU5OC43IDYzOS41QzUyOC44IDcyNS4yIDQzOC42IDc3Ny4zIDM0NSA3NzcuM2MtMTU4LjQgMC0yMTIuMS0xMzguMS0xMzcuMi0yMjkgMTYuMy0xOS44IDQ0LjItMzguNyA4Ny4zLTQ5LjQgNjcuNS0xNi41IDE3NSAxMC4zIDI3NS43IDQzLjQgMTguMS0zMy4zIDMzLjQtNjkuOSA0NC43LTEwOC45SDMwNS4xVjQwMmgxNjB2LTU2LjJIMjcxLjN2LTMxLjNoMTkzLjh2LTgwLjFzMC0xMy41IDEzLjctMTMuNUg1NTd2OTMuNmgxOTEuN3YzMS4zSDU1Ny4xVjQwMmgxNTYuNGMtMTUgNjEuMS0zNy43IDExNy40LTY2LjIgMTY2LjggNDcuNSAxNy4xIDkwLjEgMzMuMyAxMjEuOCA0My45IDExNC4zIDM4LjIgMTQwLjIgNDAuMiAxNDAuMiA0MC4ydjEyMi4zeicpKTtcbmV4cG9ydHMuQWxpd2FuZ3dhbmdGaWxsID0gZ2V0SWNvbignYWxpd2FuZ3dhbmcnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4LjIgMzc3LjRjLTE4LjktNDUuMS00Ni4zLTg1LjYtODEuMi0xMjAuNmEzNzcuMjYgMzc3LjI2IDAgMCAwLTEyMC41LTgxLjJBMzc1LjY1IDM3NS42NSAwIDAgMCA1MTkgMTQ1LjhjLTQxLjkgMC04Mi45IDYuNy0xMjEuOSAyMEMzMDYgMTIzLjMgMjAwLjggMTIwIDE3MC42IDEyMGMtMi4yIDAtNy40IDAtOS40LjItMTEuOS40LTIyLjggNi41LTI5LjIgMTYuNC02LjUgOS45LTcuNyAyMi40LTMuNCAzMy41bDY0LjMgMTYxLjZhMzc4LjU5IDM3OC41OSAwIDAgMC01Mi44IDE5My4yYzAgNTEuNCAxMCAxMDEgMjkuOCAxNDcuNiAxOC45IDQ1IDQ2LjIgODUuNiA4MS4yIDEyMC41IDM0LjcgMzQuOCA3NS40IDYyLjEgMTIwLjUgODEuMkM0MTguMyA4OTQgNDY3LjkgOTA0IDUxOSA5MDRjNTEuMyAwIDEwMC45LTEwIDE0Ny43LTI5LjggNDQuOS0xOC45IDg1LjUtNDYuMyAxMjAuNC04MS4yIDM0LjctMzQuOCA2Mi4xLTc1LjQgODEuMi0xMjAuNmEzNzYuNSAzNzYuNSAwIDAgMCAyOS44LTE0Ny42Yy0uMi01MS4yLTEwLjEtMTAwLjgtMjkuOS0xNDcuNHptLTMyNS4yIDc5YzAgMjAuNC0xNi42IDM3LjEtMzcuMSAzNy4xLTIwLjQgMC0zNy4xLTE2LjctMzcuMS0zNy4xdi01NS4xYzAtMjAuNCAxNi42LTM3LjEgMzcuMS0zNy4xIDIwLjQgMCAzNy4xIDE2LjYgMzcuMSAzNy4xdjU1LjF6bTE3NS4yIDBjMCAyMC40LTE2LjYgMzcuMS0zNy4xIDM3LjFTNjQ0IDQ3Ni44IDY0NCA0NTYuNHYtNTUuMWMwLTIwLjQgMTYuNy0zNy4xIDM3LjEtMzcuMSAyMC40IDAgMzcuMSAxNi42IDM3LjEgMzcuMXY1NS4xeicpKTtcbmV4cG9ydHMuQWxpcGF5Q2lyY2xlRmlsbCA9IGdldEljb24oJ2FsaXBheS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzA4LjYgNTQ1LjdjLTE5LjggMi01Ny4xIDEwLjctNzcuNCAyOC42LTYxIDUzLTI0LjUgMTUwIDk5IDE1MCA3MS44IDAgMTQzLjUtNDUuNyAxOTkuOC0xMTktODAuMi0zOC45LTE0OC4xLTY2LjgtMjIxLjQtNTkuNnptNDYwLjUgNjdjMTAwLjEgMzMuNCAxNTQuNyA0MyAxNjYuNyA0NC44QTQ0NS45IDQ0NS45IDAgMCAwIDk2MCA1MTJjMC0yNDcuNC0yMDAuNi00NDgtNDQ4LTQ0OFM2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDhjMTU1LjkgMCAyOTMuMi03OS43IDM3My41LTIwMC41LTc1LjYtMjkuOC0yMTMuNi04NS0yODYuOC0xMjAuMS02OS45IDg1LjctMTYwLjEgMTM3LjgtMjUzLjcgMTM3LjgtMTU4LjQgMC0yMTIuMS0xMzguMS0xMzcuMi0yMjkgMTYuMy0xOS44IDQ0LjItMzguNyA4Ny4zLTQ5LjQgNjcuNS0xNi41IDE3NSAxMC4zIDI3NS43IDQzLjQgMTguMS0zMy4zIDMzLjQtNjkuOSA0NC43LTEwOC45SDMwNS4xVjQwMmgxNjB2LTU2LjJIMjcxLjN2LTMxLjNoMTkzLjh2LTgwLjFzMC0xMy41IDEzLjctMTMuNUg1NTd2OTMuNmgxOTEuN3YzMS4zSDU1Ny4xVjQwMmgxNTYuNGMtMTUgNjEuMS0zNy43IDExNy40LTY2LjIgMTY2LjggNDcuNSAxNy4xIDkwLjEgMzMuMyAxMjEuOCA0My45eicpKTtcbmV4cG9ydHMuQW1hem9uQ2lyY2xlRmlsbCA9IGdldEljb24oJ2FtYXpvbi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDg1IDQ2Ny41Yy0xMS42IDQuOS0yMC45IDEyLjItMjcuOCAyMi02LjkgOS44LTEwLjQgMjEuNi0xMC40IDM1LjUgMCAxNy44IDcuNSAzMS41IDIyLjQgNDEuMiAxNC4xIDkuMSAyOC45IDExLjQgNDQuNCA2LjggMTcuOS01LjIgMzAtMTcuOSAzNi40LTM4LjEgMy05LjMgNC41LTE5LjcgNC41LTMxLjN2LTUwLjJjLTEyLjYuNC0yNC40IDEuNi0zNS41IDMuNy0xMS4xIDIuMS0yMi40IDUuNi0zNCAxMC40ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMzUuOCAyNjIuN2MtNy4yLTEwLjktMjAuMS0xNi40LTM4LjctMTYuNC0xLjMgMC0zIC4xLTUuMy4zLTIuMi4yLTYuNiAxLjUtMTIuOSAzLjdhNzkuNCA3OS40IDAgMCAwLTE3LjkgOS4xYy01LjUgMy44LTExLjUgMTAtMTggMTguNC02LjQgOC41LTExLjUgMTguNC0xNS4zIDI5LjhsLTk0LTguNGMwLTEyLjQgMi40LTI0LjcgNy0zNi45IDQuNy0xMi4yIDExLjgtMjMuOSAyMS40LTM1IDkuNi0xMS4yIDIxLjEtMjEgMzQuNS0yOS40IDEzLjQtOC41IDI5LjYtMTUuMiA0OC40LTIwLjMgMTguOS01LjEgMzkuMS03LjYgNjAuOS03LjYgMjEuMyAwIDQwLjYgMi42IDU3LjggNy43IDE3LjIgNS4yIDMxLjEgMTEuNSA0MS40IDE5LjFhMTE3IDExNyAwIDAgMSAyNS45IDI1LjdjNi45IDkuNiAxMS43IDE4LjUgMTQuNCAyNi43IDIuNyA4LjIgNCAxNS43IDQgMjIuOHYxODIuNWMwIDYuNCAxLjQgMTMgNC4zIDE5LjggMi45IDYuOCA2LjMgMTIuOCAxMC4yIDE4IDMuOSA1LjIgNy45IDkuOSAxMiAxNC4zIDQuMSA0LjMgNy42IDcuNyAxMC42IDkuOWw0LjEgMy40LTcyLjUgNjkuNGMtOC41LTcuNy0xNi45LTE1LjQtMjUuMi0yMy40LTguMy04LTE0LjUtMTQtMTguNS0xOC4xbC02LjEtNi4yYy0yLjQtMi4zLTUtNS43LTgtMTAuMi04LjEgMTIuMi0xOC41IDIyLjgtMzEuMSAzMS44LTEyLjcgOS0yNi4zIDE1LjYtNDAuNyAxOS43LTE0LjUgNC4xLTI5LjQgNi41LTQ0LjcgNy4xLTE1LjMuNi0zMC0xLjUtNDMuOS02LjUtMTMuOS01LTI2LjUtMTEuNy0zNy42LTIwLjMtMTEuMS04LjYtMTkuOS0yMC4yLTI2LjUtMzUtNi42LTE0LjgtOS45LTMxLjUtOS45LTUwLjQgMC0xNy40IDMtMzMuMyA4LjktNDcuNyA2LTE0LjUgMTMuNi0yNi41IDIzLTM2LjEgOS40LTkuNiAyMC43LTE4LjIgMzQtMjUuN3MyNi40LTEzLjQgMzkuMi0xNy43YzEyLjgtNC4yIDI2LjYtNy44IDQxLjUtMTAuNyAxNC45LTIuOSAyNy42LTQuOCAzOC4yLTUuNyAxMC42LS45IDIxLjItMS42IDMxLjgtMnYtMzkuNGMwLTEzLjUtMi4zLTIzLjUtNi43LTMwLjF6bTE4MC41IDM3OS42Yy0yLjggMy4zLTcuNSA3LjgtMTQuMSAxMy41cy0xNi44IDEyLjctMzAuNSAyMS4xYy0xMy43IDguNC0yOC44IDE2LTQ1IDIyLjktMTYuMyA2LjktMzYuMyAxMi45LTYwLjEgMTgtMjMuNyA1LjEtNDguMiA3LjYtNzMuMyA3LjYtMjUuNCAwLTUwLjctMy4yLTc2LjEtOS42LTI1LjQtNi40LTQ3LjYtMTQuMy02Ni44LTIzLjctMTkuMS05LjQtMzcuNi0yMC4yLTU1LjEtMzIuMi0xNy42LTEyLjEtMzEuNy0yMi45LTQyLjQtMzIuNS0xMC42LTkuNi0xOS42LTE4LjctMjYuOC0yNy4xLTEuNy0xLjktMi44LTMuNi0zLjItNS4xLS40LTEuNS0uMy0yLjguMy0zLjcuNi0uOSAxLjUtMS42IDIuNi0yLjJhNy40MiA3LjQyIDAgMCAxIDcuNC44YzQwLjkgMjQuMiA3Mi45IDQxLjMgOTUuOSA1MS40IDgyLjkgMzYuNCAxNjggNDUuNyAyNTUuMyAyNy45IDQwLjUtOC4zIDgyLjEtMjIuMiAxMjQuOS00MS44IDMuMi0xLjIgNi0xLjUgOC4zLS45IDIuMy42IDMuNSAyLjQgMy41IDUuNCAwIDIuOC0xLjYgNi4zLTQuOCAxMC4yem01OS45LTI5Yy0xLjggMTEuMS00LjkgMjEuNi05LjEgMzEuOC03LjIgMTcuMS0xNi4zIDMwLTI3LjEgMzguNC0zLjYgMi45LTYuNCAzLjgtOC4zIDIuOC0xLjktMS0xLjktMy41IDAtNy40IDQuNS05LjMgOS4yLTIxLjggMTQuMi0zNy43IDUtMTUuOCA1LjctMjYgMi4xLTMwLjUtMS4xLTEuNS0yLjctMi42LTUtMy42LTIuMi0uOS01LjEtMS41LTguNi0xLjlzLTYuNy0uNi05LjQtLjhjLTIuOC0uMi02LjUtLjItMTEuMiAwLTQuNy4yLTggLjQtMTAuMS42YTg3NC40IDg3NC40IDAgMCAxLTE3LjEgMS41Yy0xLjMuMi0yLjcuNC00LjEuNS0xLjUuMS0yLjcuMi0zLjUuM2wtMi43LjNjLTEgLjEtMS43LjItMi4yLjJoLTMuMmwtMS0uMi0uNi0uNS0uNS0uOWMtMS4zLTMuMyAzLjctNy40IDE1LTEyLjRzMjIuMy04LjEgMzIuOS05LjNjOS44LTEuNSAyMS4zLTEuNSAzNC41LS4zczIxLjMgMy43IDI0LjMgNy40YzIuMyAzLjUgMi41IDEwLjcuNyAyMS43eicpKTtcbmV4cG9ydHMuQW5kcm9pZEZpbGwgPSBnZXRJY29uKCdhbmRyb2lkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI3MC4xIDc0MS43YzAgMjMuNCAxOS4xIDQyLjUgNDIuNiA0Mi41aDQ4Ljd2MTIwLjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNzg0LjFoODV2MTIwLjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNzg0LjFoNDguN2MyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNVYzNDYuNGgtNDg2djM5NS4zem0zNTcuMS02MDAuMWw0NC45LTY1YzIuNi0zLjggMi04LjktMS41LTExLjQtMy41LTIuNC04LjUtMS4yLTExLjEgMi42bC00Ni42IDY3LjZjLTMwLjctMTIuMS02NC45LTE4LjgtMTAwLjgtMTguOC0zNS45IDAtNzAuMSA2LjctMTAwLjggMTguOGwtNDYuNi02Ny41Yy0yLjYtMy44LTcuNi01LjEtMTEuMS0yLjYtMy41IDIuNC00LjEgNy40LTEuNSAxMS40bDQ0LjkgNjVjLTcxLjQgMzMuMi0xMjEuNCA5Ni4xLTEyNy44IDE2OS42aDQ4NmMtNi42LTczLjYtNTYuNy0xMzYuNS0xMjgtMTY5Ljd6TTQwOS41IDI0NC4xYTI2LjkgMjYuOSAwIDEgMSAyNi45LTI2LjkgMjYuOTcgMjYuOTcgMCAwIDEtMjYuOSAyNi45em0yMDguNCAwYTI2LjkgMjYuOSAwIDEgMSAyNi45LTI2LjkgMjYuOTcgMjYuOTcgMCAwIDEtMjYuOSAyNi45em0yMjMuNCAxMDAuN2MtMzAuMiAwLTU0LjYgMjQuOC01NC42IDU1LjR2MjE2LjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNDAwLjFjLjEtMzAuNi0yNC4zLTU1LjMtNTQuNi01NS4zem0tNjU4LjYgMGMtMzAuMiAwLTU0LjYgMjQuOC01NC42IDU1LjR2MjE2LjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNDAwLjFjMC0zMC42LTI0LjUtNTUuMy01NC42LTU1LjN6JykpO1xuZXhwb3J0cy5BbWF6b25TcXVhcmVGaWxsID0gZ2V0SWNvbignYW1hem9uLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0Ny44IDMyNi43Yy03LjItMTAuOS0yMC4xLTE2LjQtMzguNy0xNi40LTEuMyAwLTMgLjEtNS4zLjMtMi4yLjItNi42IDEuNS0xMi45IDMuN2E3OS40IDc5LjQgMCAwIDAtMTcuOSA5LjFjLTUuNSAzLjgtMTEuNSAxMC0xOCAxOC40LTYuNCA4LjUtMTEuNSAxOC40LTE1LjMgMjkuOGwtOTQtOC40YzAtMTIuNCAyLjQtMjQuNyA3LTM2LjlzMTEuOC0yMy45IDIxLjQtMzVjOS42LTExLjIgMjEuMS0yMSAzNC41LTI5LjQgMTMuNC04LjUgMjkuNi0xNS4yIDQ4LjQtMjAuMyAxOC45LTUuMSAzOS4xLTcuNiA2MC45LTcuNiAyMS4zIDAgNDAuNiAyLjYgNTcuOCA3LjcgMTcuMiA1LjIgMzEuMSAxMS41IDQxLjQgMTkuMWExMTcgMTE3IDAgMCAxIDI1LjkgMjUuN2M2LjkgOS42IDExLjcgMTguNSAxNC40IDI2LjcgMi43IDguMiA0IDE1LjcgNCAyMi44djE4Mi41YzAgNi40IDEuNCAxMyA0LjMgMTkuOCAyLjkgNi44IDYuMyAxMi44IDEwLjIgMTggMy45IDUuMiA3LjkgOS45IDEyIDE0LjMgNC4xIDQuMyA3LjYgNy43IDEwLjYgOS45bDQuMSAzLjQtNzIuNSA2OS40Yy04LjUtNy43LTE2LjktMTUuNC0yNS4yLTIzLjQtOC4zLTgtMTQuNS0xNC0xOC41LTE4LjFsLTYuMS02LjJjLTIuNC0yLjMtNS01LjctOC0xMC4yLTguMSAxMi4yLTE4LjUgMjIuOC0zMS4xIDMxLjgtMTIuNyA5LTI2LjMgMTUuNi00MC43IDE5LjctMTQuNSA0LjEtMjkuNCA2LjUtNDQuNyA3LjEtMTUuMy42LTMwLTEuNS00My45LTYuNS0xMy45LTUtMjYuNS0xMS43LTM3LjYtMjAuMy0xMS4xLTguNi0xOS45LTIwLjItMjYuNS0zNS02LjYtMTQuOC05LjktMzEuNS05LjktNTAuNCAwLTE3LjQgMy0zMy4zIDguOS00Ny43IDYtMTQuNSAxMy42LTI2LjUgMjMtMzYuMSA5LjQtOS42IDIwLjctMTguMiAzNC0yNS43czI2LjQtMTMuNCAzOS4yLTE3LjdjMTIuOC00LjIgMjYuNi03LjggNDEuNS0xMC43IDE0LjktMi45IDI3LjYtNC44IDM4LjItNS43IDEwLjYtLjkgMjEuMi0xLjYgMzEuOC0ydi0zOS40YzAtMTMuNS0yLjMtMjMuNS02LjctMzAuMXptMTgwLjUgMzc5LjZjLTIuOCAzLjMtNy41IDcuOC0xNC4xIDEzLjVzLTE2LjggMTIuNy0zMC41IDIxLjFjLTEzLjcgOC40LTI4LjggMTYtNDUgMjIuOS0xNi4zIDYuOS0zNi4zIDEyLjktNjAuMSAxOC0yMy43IDUuMS00OC4yIDcuNi03My4zIDcuNi0yNS40IDAtNTAuNy0zLjItNzYuMS05LjYtMjUuNC02LjQtNDcuNi0xNC4zLTY2LjgtMjMuNy0xOS4xLTkuNC0zNy42LTIwLjItNTUuMS0zMi4yLTE3LjYtMTIuMS0zMS43LTIyLjktNDIuNC0zMi41LTEwLjYtOS42LTE5LjYtMTguNy0yNi44LTI3LjEtMS43LTEuOS0yLjgtMy42LTMuMi01LjEtLjQtMS41LS4zLTIuOC4zLTMuNy42LS45IDEuNS0xLjYgMi42LTIuMmE3LjQyIDcuNDIgMCAwIDEgNy40LjhjNDAuOSAyNC4yIDcyLjkgNDEuMyA5NS45IDUxLjQgODIuOSAzNi40IDE2OCA0NS43IDI1NS4zIDI3LjkgNDAuNS04LjMgODIuMS0yMi4yIDEyNC45LTQxLjggMy4yLTEuMiA2LTEuNSA4LjMtLjkgMi4zLjYgMy41IDIuNCAzLjUgNS40IDAgMi44LTEuNiA2LjMtNC44IDEwLjJ6bTU5LjktMjljLTEuOCAxMS4xLTQuOSAyMS42LTkuMSAzMS44LTcuMiAxNy4xLTE2LjMgMzAtMjcuMSAzOC40LTMuNiAyLjktNi40IDMuOC04LjMgMi44LTEuOS0xLTEuOS0zLjUgMC03LjQgNC41LTkuMyA5LjItMjEuOCAxNC4yLTM3LjcgNS0xNS44IDUuNy0yNiAyLjEtMzAuNS0xLjEtMS41LTIuNy0yLjYtNS0zLjYtMi4yLS45LTUuMS0xLjUtOC42LTEuOXMtNi43LS42LTkuNC0uOGMtMi44LS4yLTYuNS0uMi0xMS4yIDAtNC43LjItOCAuNC0xMC4xLjZhODc0LjQgODc0LjQgMCAwIDEtMTcuMSAxLjVjLTEuMy4yLTIuNy40LTQuMS41LTEuNS4xLTIuNy4yLTMuNS4zbC0yLjcuM2MtMSAuMS0xLjcuMi0yLjIuMmgtMy4ybC0xLS4yLS42LS41LS41LS45Yy0xLjMtMy4zIDMuNy03LjQgMTUtMTIuNHMyMi4zLTguMSAzMi45LTkuM2M5LjgtMS41IDIxLjMtMS41IDM0LjUtLjNzMjEuMyAzLjcgMjQuMyA3LjRjMi4zIDMuNSAyLjUgMTAuNy43IDIxLjd6TTQ4NSA0NjcuNWMtMTEuNiA0LjktMjAuOSAxMi4yLTI3LjggMjItNi45IDkuOC0xMC40IDIxLjYtMTAuNCAzNS41IDAgMTcuOCA3LjUgMzEuNSAyMi40IDQxLjIgMTQuMSA5LjEgMjguOSAxMS40IDQ0LjQgNi44IDE3LjktNS4yIDMwLTE3LjkgMzYuNC0zOC4xIDMtOS4zIDQuNS0xOS43IDQuNS0zMS4zdi01MC4yYy0xMi42LjQtMjQuNCAxLjYtMzUuNSAzLjctMTEuMSAyLjEtMjIuNCA1LjYtMzQgMTAuNHonKSk7XG5leHBvcnRzLkFwaUZpbGwgPSBnZXRJY29uKCdhcGknLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTE3LjcgMTQ4LjhsLTQyLjQtNDIuNGMtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTc2LjEgNzYuMWExOTkuMjcgMTk5LjI3IDAgMCAwLTExMi4xLTM0LjNjLTUxLjIgMC0xMDIuNCAxOS41LTE0MS41IDU4LjZMNDMyLjMgMzA4LjdhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w3MDQgNTkxLjdjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjMgMiAwIDQuMS0uOCA1LjctMi4zbDEwMS45LTEwMS45YzY4LjktNjkgNzctMTc1LjcgMjQuMy0yNTMuNWw3Ni4xLTc2LjFjMy4xLTMuMiAzLjEtOC4zIDAtMTEuNHpNNTc4LjkgNTQ2LjdhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MDEgNjEzLjMgNDEwLjcgNTIzbDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDQ0MSA0MDguNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMCAwLTUuNy0yLjNjLTIgMC00LjEuOC01LjcgMi4zTDIwNi44IDUzNC4yYy02OC45IDY4LjktNzcgMTc1LjctMjQuMyAyNTMuNWwtNzYuMSA3Ni4xYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuNCA0Mi40YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zczQuMS0uOCA1LjctMi4zbDc2LjEtNzYuMWMzMy43IDIyLjkgNzIuOSAzNC4zIDExMi4xIDM0LjMgNTEuMiAwIDEwMi40LTE5LjUgMTQxLjUtNTguNmwxMDEuOS0xMDEuOWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00My00MyA2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuNi0zNi4yeicpKTtcbmV4cG9ydHMuQXBwc3RvcmVGaWxsID0gZ2V0SWNvbignYXBwc3RvcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY0IDE0NEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptMCA0MDBINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6TTQ2NCAxNDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bTAgNDAwSDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2eicpKTtcbmV4cG9ydHMuQXVkaW9GaWxsID0gZ2V0SWNvbignYXVkaW8nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0zMzAtMTcwYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6JykpO1xuZXhwb3J0cy5BcHBsZUZpbGwgPSBnZXRJY29uKCdhcHBsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NDcuNCA1MzUuN2MtLjQtNjguMiAzMC41LTExOS42IDkyLjktMTU3LjUtMzQuOS01MC04Ny43LTc3LjUtMTU3LjMtODIuOC02NS45LTUuMi0xMzggMzguNC0xNjQuNCAzOC40LTI3LjkgMC05MS43LTM2LjYtMTQxLjktMzYuNkMyNzMuMSAyOTguOCAxNjMgMzc5LjggMTYzIDU0NC42YzAgNDguNyA4LjkgOTkgMjYuNyAxNTAuOCAyMy44IDY4LjIgMTA5LjYgMjM1LjMgMTk5LjEgMjMyLjYgNDYuOC0xLjEgNzkuOS0zMy4yIDE0MC44LTMzLjIgNTkuMSAwIDg5LjcgMzMuMiAxNDEuOSAzMy4yIDkwLjMtMS4zIDE2Ny45LTE1My4yIDE5MC41LTIyMS42LTEyMS4xLTU3LjEtMTE0LjYtMTY3LjItMTE0LjYtMTcwLjd6bS0xMDUuMS0zMDVjNTAuNy02MC4yIDQ2LjEtMTE1IDQ0LjYtMTM0LjctNDQuOCAyLjYtOTYuNiAzMC41LTEyNi4xIDY0LjgtMzIuNSAzNi44LTUxLjYgODIuMy00Ny41IDEzMy42IDQ4LjQgMy43IDkyLjYtMjEuMiAxMjktNjMuN3onKSk7XG5leHBvcnRzLkJhY2t3YXJkRmlsbCA9IGdldEljb24oJ2JhY2t3YXJkJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTQ4NS42IDI0OS45TDE5OC4yIDQ5OGMtOC4zIDcuMS04LjMgMjAuOCAwIDI3LjlsMjg3LjQgMjQ4LjJjMTAuNyA5LjIgMjYuNC45IDI2LjQtMTRWMjYzLjhjMC0xNC44LTE1LjctMjMuMi0yNi40LTEzLjl6bTMyMCAwTDUxOC4yIDQ5OGExOC42IDE4LjYgMCAwIDAtNi4yIDE0YzAgNS4yIDIuMSAxMC40IDYuMiAxNGwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXonKSk7XG5leHBvcnRzLkJhbmtGaWxsID0gZ2V0SWNvbignYmFuaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004OTQgNDYyYzMwLjkgMCA0My44LTM5LjcgMTguNy01OEw1MzAuOCAxMjYuMmEzMS44MSAzMS44MSAwIDAgMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek0zODEgODM2SDI2NFY0NjJoMTE3djM3NHptMTg5IDBINDUzVjQ2MmgxMTd2Mzc0em0xOTAgMEg2NDJWNDYyaDExOHYzNzR6JykpO1xuZXhwb3J0cy5CZWhhbmNlQ2lyY2xlRmlsbCA9IGdldEljb24oJ2JlaGFuY2UtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQyMC4zIDQ3MC4zYzguNy02LjMgMTIuOS0xNi43IDEyLjktMzEgLjMtNi44LTEuMS0xMy41LTQuMS0xOS42LTIuNy00LjktNi43LTktMTEuNi0xMS45YTQ0LjggNDQuOCAwIDAgMC0xNi42LTZjLTYuNC0xLjItMTIuOS0xLjgtMTkuMy0xLjdoLTcwLjN2NzkuN2g3Ni4xYzEzLjEuMSAyNC4yLTMuMSAzMi45LTkuNXptMTEuOCA3MmMtOS44LTcuNS0yMi45LTExLjItMzkuMi0xMS4yaC04MS44djk0aDgwLjJjNy41IDAgMTQuNC0uNyAyMS4xLTIuMWE1MC41IDUwLjUgMCAwIDAgMTcuOC03LjJjNS4xLTMuMyA5LjItNy44IDEyLjMtMTMuNiAzLTUuOCA0LjUtMTMuMiA0LjUtMjIuMSAwLTE3LjctNS0zMC4yLTE0LjktMzcuOHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTg2LjUgMjg2LjloMTM4LjR2MzMuN0g1OTguNXYtMzMuN3pNNTEyIDYyOC44YTg5LjUyIDg5LjUyIDAgMCAxLTI3IDMxYy0xMS44IDguMi0yNC45IDE0LjItMzguOCAxNy43YTE2Ny40IDE2Ny40IDAgMCAxLTQ0LjYgNS43SDIzNlYzNDIuMWgxNjFjMTYuMyAwIDMxLjEgMS41IDQ0LjYgNC4zIDEzLjQgMi44IDI0LjggNy42IDM0LjQgMTQuMSA5LjUgNi41IDE3IDE1LjIgMjIuMyAyNiA1LjIgMTAuNyA3LjkgMjQuMSA3LjkgNDAgMCAxNy4yLTMuOSAzMS40LTExLjcgNDIuOS03LjkgMTEuNS0xOS4zIDIwLjgtMzQuOCAyOC4xIDIxLjEgNiAzNi42IDE2LjcgNDYuOCAzMS43IDEwLjQgMTUuMiAxNS41IDMzLjQgMTUuNSA1NC44IDAgMTcuNC0zLjMgMzIuMy0xMCA0NC44ek03OTAuOCA1NzZINjEyLjRjMCAxOS40IDYuNyAzOCAxNi44IDQ4IDEwLjIgOS45IDI0LjggMTQuOSA0My45IDE0LjkgMTMuOCAwIDI1LjUtMy41IDM1LjUtMTAuNCA5LjktNi45IDE1LjktMTQuMiAxOC4xLTIxLjhoNTkuOGMtOS42IDI5LjctMjQuMiA1MC45LTQ0IDYzLjctMTkuNiAxMi44LTQzLjYgMTkuMi03MS41IDE5LjItMTkuNSAwLTM3LTMuMi01Mi43LTkuMy0xNS4xLTUuOS0yOC43LTE0LjktMzkuOS0yNi41YTEyMS4yIDEyMS4yIDAgMCAxLTI1LjEtNDEuMmMtNi4xLTE2LjktOS4xLTM0LjctOC45LTUyLjYgMC0xOC41IDMuMS0zNS43IDkuMS01MS43IDExLjUtMzEuMSAzNS40LTU2IDY1LjktNjguOSAxNi4zLTYuOCAzMy44LTEwLjIgNTEuNS0xMCAyMSAwIDM5LjIgNCA1NSAxMi4yYTExMS42IDExMS42IDAgMCAxIDM4LjYgMzIuOGMxMC4xIDEzLjcgMTcuMiAyOS4zIDIxLjcgNDYuOSA0LjMgMTcuMyA1LjggMzUuNSA0LjYgNTQuN3ptLTEyMi05NS42Yy0xMC44IDAtMTkuOSAxLjktMjYuOSA1LjYtNyAzLjctMTIuOCA4LjMtMTcuMiAxMy42YTQ4LjQgNDguNCAwIDAgMC05LjEgMTcuNGMtMS42IDUuMy0yLjcgMTAuNy0zLjEgMTYuMkg3MjNjLTEuNi0xNy4zLTcuNi0zMC4xLTE1LjYtMzkuMS04LjQtOC45LTIxLjktMTMuNy0zOC42LTEzLjd6JykpO1xuZXhwb3J0cy5CZWxsRmlsbCA9IGdldEljb24oJ2JlbGwnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjgtMjQwLTI3Ny4yVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC44QzMzNi4zIDE3MC4yIDIzMiAyODYuOSAyMzIgNDI4djM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6JykpO1xuZXhwb3J0cy5CZWhhbmNlU3F1YXJlRmlsbCA9IGdldEljb24oJ2JlaGFuY2Utc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTk4LjUgMzUwLjloMTM4LjR2MzMuN0g1OTguNXYtMzMuN3pNNTEyIDYyOC44YTg5LjUyIDg5LjUyIDAgMCAxLTI3IDMxYy0xMS44IDguMi0yNC45IDE0LjItMzguOCAxNy43YTE2Ny40IDE2Ny40IDAgMCAxLTQ0LjYgNS43SDIzNlYzNDIuMWgxNjFjMTYuMyAwIDMxLjEgMS41IDQ0LjYgNC4zIDEzLjQgMi44IDI0LjggNy42IDM0LjQgMTQuMSA5LjUgNi41IDE3IDE1LjIgMjIuMyAyNiA1LjIgMTAuNyA3LjkgMjQuMSA3LjkgNDAgMCAxNy4yLTMuOSAzMS40LTExLjcgNDIuOS03LjkgMTEuNS0xOS4zIDIwLjgtMzQuOCAyOC4xIDIxLjEgNiAzNi42IDE2LjcgNDYuOCAzMS43IDEwLjQgMTUuMiAxNS41IDMzLjQgMTUuNSA1NC44IDAgMTcuNC0zLjMgMzIuMy0xMCA0NC44ek03OTAuOCA1NzZINjEyLjRjMCAxOS40IDYuNyAzOCAxNi44IDQ4IDEwLjIgOS45IDI0LjggMTQuOSA0My45IDE0LjkgMTMuOCAwIDI1LjUtMy41IDM1LjUtMTAuNCA5LjktNi45IDE1LjktMTQuMiAxOC4xLTIxLjhoNTkuOGMtOS42IDI5LjctMjQuMiA1MC45LTQ0IDYzLjctMTkuNiAxMi44LTQzLjYgMTkuMi03MS41IDE5LjItMTkuNSAwLTM3LTMuMi01Mi43LTkuMy0xNS4xLTUuOS0yOC43LTE0LjktMzkuOS0yNi41YTEyMS4yIDEyMS4yIDAgMCAxLTI1LjEtNDEuMmMtNi4xLTE2LjktOS4xLTM0LjctOC45LTUyLjYgMC0xOC41IDMuMS0zNS43IDkuMS01MS43IDExLjUtMzEuMSAzNS40LTU2IDY1LjktNjguOSAxNi4zLTYuOCAzMy44LTEwLjIgNTEuNS0xMCAyMSAwIDM5LjIgNCA1NSAxMi4yYTExMS42IDExMS42IDAgMCAxIDM4LjYgMzIuOGMxMC4xIDEzLjcgMTcuMiAyOS4zIDIxLjcgNDYuOSA0LjMgMTcuMyA1LjggMzUuNSA0LjYgNTQuN3ptLTEyMi05NS42Yy0xMC44IDAtMTkuOSAxLjktMjYuOSA1LjYtNyAzLjctMTIuOCA4LjMtMTcuMiAxMy42YTQ4LjQgNDguNCAwIDAgMC05LjEgMTcuNGMtMS42IDUuMy0yLjcgMTAuNy0zLjEgMTYuMkg3MjNjLTEuNi0xNy4zLTcuNi0zMC4xLTE1LjYtMzkuMS04LjQtOC45LTIxLjktMTMuNy0zOC42LTEzLjd6bS0yNDguNS0xMC4xYzguNy02LjMgMTIuOS0xNi43IDEyLjktMzEgLjMtNi44LTEuMS0xMy41LTQuMS0xOS42LTIuNy00LjktNi43LTktMTEuNi0xMS45YTQ0LjggNDQuOCAwIDAgMC0xNi42LTZjLTYuNC0xLjItMTIuOS0xLjgtMTkuMy0xLjdoLTcwLjN2NzkuN2g3Ni4xYzEzLjEuMSAyNC4yLTMuMSAzMi45LTkuNXptMTEuOCA3MmMtOS44LTcuNS0yMi45LTExLjItMzkuMi0xMS4yaC04MS44djk0aDgwLjJjNy41IDAgMTQuNC0uNyAyMS4xLTIuMXMxMi43LTMuOCAxNy44LTcuMmM1LjEtMy4zIDkuMi03LjggMTIuMy0xMy42IDMtNS44IDQuNS0xMy4yIDQuNS0yMi4xIDAtMTcuNy01LTMwLjItMTQuOS0zNy44eicpKTtcbmV4cG9ydHMuQm9va0ZpbGwgPSBnZXRJY29uKCdib29rJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2OCAzNDUuOUw2MjEuNSAzMTIgNTcyIDM0Ny40VjEyNGg5NnYyMjEuOXonKSk7XG5leHBvcnRzLkJveFBsb3RGaWxsID0gZ2V0SWNvbignYm94LXBsb3QnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTUyIDIyNGgtNTJjLTQuNCAwLTggMy42LTggOHYyNDhoLTkyVjMwNGMwLTQuNC0zLjYtOC04LThINDQ4djQzMmgzNDRjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYyNDRjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0tNzI4IDgwdjE3NmgtOTJWMjMyYzAtNC40LTMuNi04LTgtOEg3MmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYxNzJjMCA0LjQgMy42IDggOCA4aDE1MlYyOTZIMjMyYy00LjQgMC04IDMuNi04IDh6JykpO1xuZXhwb3J0cy5CdWdGaWxsID0gZ2V0SWNvbignYnVnJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMwNCAyODBoNDE2YzQuNCAwIDgtMy42IDgtOCAwLTQwLTguOC03Ni43LTI1LjktMTA4LjFhMTg0LjMxIDE4NC4zMSAwIDAgMC03NC03NEM1OTYuNyA3Mi44IDU2MCA2NCA1MjAgNjRoLTE2Yy00MCAwLTc2LjcgOC44LTEwOC4xIDI1LjlhMTg0LjMxIDE4NC4zMSAwIDAgMC03NCA3NEMzMDQuOCAxOTUuMyAyOTYgMjMyIDI5NiAyNzJjMCA0LjQgMy42IDggOCA4eicsICdNOTQwIDUxMkg3OTJWNDEyYzc2LjggMCAxMzktNjIuMiAxMzktMTM5IDAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOGE2MyA2MyAwIDAgMS02MyA2M0gyMzJhNjMgNjMgMCAwIDEtNjMtNjNjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgNzYuOCA2Mi4yIDEzOSAxMzkgMTM5djEwMEg4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNDh2OTZjMCA2LjUuMiAxMyAuNyAxOS4zQzE2NC4xIDcyOC42IDExNiA3OTYuNyAxMTYgODc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC00NC4yIDIzLjktODIuOSA1OS42LTEwMy43YTI3MyAyNzMgMCAwIDAgMjIuNyA0OWMyNC4zIDQxLjUgNTkgNzYuMiAxMDAuNSAxMDAuNSAyOC45IDE2LjkgNjEgMjguOCA5NS4zIDM0LjUgNC40IDAgOC0zLjYgOC04VjQ4NGMwLTQuNCAzLjYtOCA4LThoNjBjNC40IDAgOCAzLjYgOCA4djQ2NC4yYzAgNC40IDMuNiA4IDggOCAzNC4zLTUuNyA2Ni40LTE3LjYgOTUuMy0zNC41YTI4MS4zOCAyODEuMzggMCAwIDAgMTIzLjItMTQ5LjVBMTIwLjQgMTIwLjQgMCAwIDEgODM2IDg3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04IDAtNzkuMy00OC4xLTE0Ny40LTExNi43LTE3Ni43LjQtNi40LjctMTIuOC43LTE5LjN2LTk2aDE0OGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkNhbGN1bGF0b3JGaWxsID0gZ2V0SWNvbignY2FsY3VsYXRvcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ0MC4yIDc2NWgtNTAuOGMtMi4yIDAtNC41LTEuMS01LjktMi45TDM0OCA3MTguNmwtMzUuNSA0My41YTcuMzggNy4zOCAwIDAgMS01LjkgMi45aC01MC44Yy02LjYgMC0xMC4yLTcuOS01LjgtMTMuMWw2Mi43LTc2LjgtNjEuMi03NC45Yy00LjMtNS4yLS43LTEzLjEgNS45LTEzLjFoNTAuOWMyLjIgMCA0LjUgMS4xIDUuOSAyLjlsMzQgNDEuNiAzNC00MS42YzEuNS0xLjkgMy42LTIuOSA1LjktMi45aDUwLjhjNi42IDAgMTAuMiA3LjkgNS45IDEzLjFMMzgzLjUgNjc1bDYyLjcgNzYuOGM0LjIgNS4zLjYgMTMuMi02IDEzLjJ6bTcuOC0zODJjMCAyLjItMS40IDQtMy4yIDRIMzc2djY4LjdjMCAxLjktMS44IDMuMy00IDMuM2gtNDhjLTIuMiAwLTQtMS40LTQtMy4yVjM4N2gtNjguOGMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRIMzIwdi02OC44YzAtMS44IDEuOC0zLjIgNC0zLjJoNDhjMi4yIDAgNCAxLjQgNCAzLjJWMzMxaDY4LjdjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHptMzI4IDM2OWMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHptMC0xMDRjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDh6bTAtMjY1YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OGMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4eicpKTtcbmV4cG9ydHMuQnVsYkZpbGwgPSBnZXRJY29uKCdidWxiJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM0OCA2NzYuMUMyNTAgNjE5LjQgMTg0IDUxMy40IDE4NCAzOTJjMC0xODEuMSAxNDYuOS0zMjggMzI4LTMyOHMzMjggMTQ2LjkgMzI4IDMyOGMwIDEyMS40LTY2IDIyNy40LTE2NCAyODQuMVY3OTJjMCAxNy43LTE0LjMgMzItMzIgMzJIMzgwYy0xNy43IDAtMzItMTQuMy0zMi0zMlY2NzYuMXpNMzkyIDg4OGgyNDBjNC40IDAgOCAzLjYgOCA4djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ2LTMyYzAtNC40IDMuNi04IDgtOHonKSk7XG5leHBvcnRzLkJ1aWxkRmlsbCA9IGdldEljb24oJ2J1aWxkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxNiAyMTBIMzc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMzZIMTA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU0NmgyMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek02MTIgNzQ2SDQxMlY1NDZoMjAwdjIwMHptMjY4LTI2OEg2ODBWMjc4aDIwMHYyMDB6JykpO1xuZXhwb3J0cy5DYWxlbmRhckZpbGwgPSBnZXRJY29uKCdjYWxlbmRhcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xMTIgODgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlY0NjBIMTEydjQyMHptNzY4LTY5Nkg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE3Nmg4MDBWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeicpKTtcbmV4cG9ydHMuQ2FtZXJhRmlsbCA9IGdldEljb24oJ2NhbWVyYScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgMjYwSDcyOGwtMzIuNC05MC44YTMyLjA3IDMyLjA3IDAgMCAwLTMwLjItMjEuMkgzNTguNmMtMTMuNSAwLTI1LjYgOC41LTMwLjEgMjEuMkwyOTYgMjYwSDE2MGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDU2YzAgNDQuMiAzNS44IDgwIDgwIDgwaDcwNGM0NC4yIDAgODAtMzUuOCA4MC04MFYzNDBjMC00NC4yLTM1LjgtODAtODAtODB6TTUxMiA3MTZjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwczcxLjYtMTYwIDE2MC0xNjAgMTYwIDcxLjYgMTYwIDE2MC03MS42IDE2MC0xNjAgMTYwem0tOTYtMTYwYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwLTE5MiAweicpKTtcbmV4cG9ydHMuQ2FyRmlsbCA9IGdldEljb24oJ2NhcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTkgNDEzLjRMOTM1LjMgMzcyYTggOCAwIDAgMC0xMC45LTIuOWwtNTAuNyAyOS42LTc4LjMtMjE2LjJhNjMuOSA2My45IDAgMCAwLTYwLjktNDQuNEgzMDEuMmMtMzQuNyAwLTY1LjUgMjIuNC03Ni4yIDU1LjVsLTc0LjYgMjA1LjItNTAuOC0yOS42YTggOCAwIDAgMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAgMCAzLTEwLjh6TTI2NCA2MjFjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0zODggNzVjMCA0LjQtMy42IDgtOCA4SDM4MGMtNC40IDAtOC0zLjYtOC04di04NGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djM2aDE2OHYtMzZjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHY4NHptMTA4LTc1Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHpNMjIwIDQxOGw3Mi43LTE5OS45LjUtMS4zLjQtMS4zYzEuMS0zLjMgNC4xLTUuNSA3LjYtNS41aDQyNy42bDc1LjQgMjA4SDIyMHonKSk7XG5leHBvcnRzLkNhcmV0RG93bkZpbGwgPSBnZXRJY29uKCdjYXJldC1kb3duJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6JykpO1xuZXhwb3J0cy5DYXJldExlZnRGaWxsID0gZ2V0SWNvbignY2FyZXQtbGVmdCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ002ODkgMTY1LjFMMzA4LjIgNDkzLjVjLTEwLjkgOS40LTEwLjkgMjcuNSAwIDM3TDY4OSA4NTguOWMxNC4yIDEyLjIgMzUgMS4yIDM1LTE4LjVWMTgzLjZjMC0xOS43LTIwLjgtMzAuNy0zNS0xOC41eicpKTtcbmV4cG9ydHMuQ2FyZXRSaWdodEZpbGwgPSBnZXRJY29uKCdjYXJldC1yaWdodCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ003MTUuOCA0OTMuNUwzMzUgMTY1LjFjLTE0LjItMTIuMi0zNS0xLjItMzUgMTguNXY2NTYuOGMwIDE5LjcgMjAuOCAzMC43IDM1IDE4LjVsMzgwLjgtMzI4LjRjMTAuOS05LjQgMTAuOS0yNy42IDAtMzd6JykpO1xuZXhwb3J0cy5DYXJyeU91dEZpbGwgPSBnZXRJY29uKCdjYXJyeS1vdXQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02OTQuNSA0MzIuN0w0ODEuOSA3MjUuNGExNi4xIDE2LjEgMCAwIDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMSAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OSAxNTAuOS0yMDcuOGMzLTQuMSA3LjgtNi42IDEzLTYuNkg2ODhjNi41LjEgMTAuMyA3LjUgNi41IDEyLjh6JykpO1xuZXhwb3J0cy5DYXJldFVwRmlsbCA9IGdldEljb24oJ2NhcmV0LXVwJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eicpKTtcbmV4cG9ydHMuQ2hlY2tDaXJjbGVGaWxsID0gZ2V0SWNvbignY2hlY2stY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTMuNSAzMDEuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAgMS01MS43IDBMMzE4LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDQ2LjljMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuM2w3MS4yIDk4LjggMTU3LjItMjE4YzYtOC4zIDE1LjYtMTMuMyAyNS45LTEzLjNINjk5YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eicpKTtcbmV4cG9ydHMuQ2hlY2tTcXVhcmVGaWxsID0gZ2V0SWNvbignY2hlY2stc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjk1LjUgMzY1LjdsLTIxMC42IDI5MmEzMS44IDMxLjggMCAwIDEtNTEuNyAwTDMwOC41IDQ4NC45Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g0Ni45YzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguMyAxNS42LTEzLjMgMjUuOS0xMy4zSDY4OWM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3onKSk7XG5leHBvcnRzLkNocm9tZUZpbGwgPSBnZXRJY29uKCdjaHJvbWUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzcxLjggNTEyYzAgNzcuNSA2Mi43IDE0MC4yIDE0MC4yIDE0MC4yUzY1Mi4yIDU4OS41IDY1Mi4yIDUxMiA1ODkuNSAzNzEuOCA1MTIgMzcxLjggMzcxLjggNDM0LjQgMzcxLjggNTEyek05MDAgMzYyLjRsLTIzNC4zIDEyLjFjNjMuNiA3NC4zIDY0LjYgMTgxLjUgMTEuMSAyNjMuN2wtMTg4IDI4OS4yYzc4IDQuMiAxNTguNC0xMi45IDIzMS4yLTU1LjIgMTgwLTEwNCAyNTMtMzIyLjEgMTgwLTUwOS44ek0zMjAuMyA1OTEuOUwxNjMuOCAyODQuMUE0MTUuMzUgNDE1LjM1IDAgMCAwIDk2IDUxMmMwIDIwOCAxNTIuMyAzODAuMyAzNTEuNCA0MTAuOGwxMDYuOS0yMDkuNGMtOTYuNiAxOC4yLTE4OS45LTM0LjgtMjM0LTEyMS41em0yMTguNS0yODUuNWwzNDQuNCAxOC4xQzg0OCAyNTQuNyA3OTIuNiAxOTQgNzE5LjggMTUxLjcgNjUzLjkgMTEzLjYgNTgxLjUgOTUuNSA1MTAuNSA5NmMtMTIyLjUuNS0yNDIuMiA1NS4yLTMyMi4xIDE1NC41bDEyOC4yIDE5Ni45YzMyLTkxLjkgMTI0LjgtMTQ2LjcgMjIyLjItMTQxeicpKTtcbmV4cG9ydHMuQ2lDaXJjbGVGaWxsID0gZ2V0SWNvbignY2ktY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNjMuNiA2NTZjLTEwMyAwLTE2Mi40LTY4LjYtMTYyLjQtMTgyLjZ2LTQ5QzI4NiAzNzMuNSAzNDUuNCAzMDQgNDQ4LjMgMzA0Yzg4LjMgMCAxNTIuMyA1Ni45IDE1Mi4zIDEzOC4xIDAgMi40LTIgNC40LTQuNCA0LjRoLTUyLjZjLTQuMiAwLTcuNi0zLjItOC03LjQtNC00Ni4xLTM3LjYtNzcuNi04Ny03Ny42LTYxLjEgMC05NS42IDQ1LjQtOTUuNiAxMjYuOXY0OS4zYzAgODAuMyAzNC41IDEyNS4xIDk1LjYgMTI1LjEgNDkuMyAwIDgyLjgtMjkuNSA4Ny03Mi40LjQtNC4xIDMuOC03LjMgOC03LjNoNTIuN2MyLjQgMCA0LjQgMiA0LjQgNC40IDAgNzcuNC02NC4zIDEzMi41LTE1Mi4zIDEzMi41ek03MzggNzA0LjFjMCA0LjQtMy42IDgtOCA4aC01MC40Yy00LjQgMC04LTMuNi04LThWMzE5LjljMC00LjQgMy42LTggOC04SDczMGM0LjQgMCA4IDMuNiA4IDh2Mzg0LjJ6JykpO1xuZXhwb3J0cy5DbG9ja0NpcmNsZUZpbGwgPSBnZXRJY29uKCdjbG9jay1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE3Ni41IDU4NS43bC0yOC42IDM5YTcuOTkgNy45OSAwIDAgMS0xMS4yIDEuN0w0ODMuMyA1NjkuOGE3LjkyIDcuOTIgMCAwIDEtMy4zLTYuNVYyODhjMC00LjQgMy42LTggOC04aDQ4LjFjNC40IDAgOCAzLjYgOCA4djI0Ny41bDE0Mi42IDEwMy4xYzMuNiAyLjUgNC40IDcuNSAxLjggMTEuMXonKSk7XG5leHBvcnRzLkNsb3NlQ2lyY2xlRmlsbCA9IGdldEljb24oJ2Nsb3NlLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY1LjQgNjE4LjJsLTY2LS4zTDUxMiA1NjMuNGwtOTkuMyAxMTguNC02Ni4xLjNjLTQuNCAwLTgtMy41LTgtOCAwLTEuOS43LTMuNyAxLjktNS4ybDEzMC4xLTE1NUwzNDAuNSAzNTlhOC4zMiA4LjMyIDAgMCAxLTEuOS01LjJjMC00LjQgMy42LTggOC04bDY2LjEuM0w1MTIgNDY0LjZsOTkuMy0xMTguNCA2Ni0uM2M0LjQgMCA4IDMuNSA4IDggMCAxLjktLjcgMy43LTEuOSA1LjJMNTUzLjUgNTE0bDEzMCAxNTVjMS4yIDEuNSAxLjkgMy4zIDEuOSA1LjIgMCA0LjQtMy42IDgtOCA4eicpKTtcbmV4cG9ydHMuQ2xvdWRGaWxsID0gZ2V0SWNvbignY2xvdWQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODExLjQgNDE4LjdDNzY1LjYgMjk3LjkgNjQ4LjkgMjEyIDUxMi4yIDIxMlMyNTguOCAyOTcuOCAyMTMgNDE4LjZDMTI3LjMgNDQxLjEgNjQgNTE5LjEgNjQgNjEyYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwaDQ5Ni4yQzg3MC41IDgxMiA5NjAgNzIyLjUgOTYwIDYxMmMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3onKSk7XG5leHBvcnRzLkNsb3NlU3F1YXJlRmlsbCA9IGdldEljb24oJ2Nsb3NlLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY3Ni4xIDY1Ny45YzQuNCA1LjIuNyAxMy4xLTYuMSAxMy4xaC01OC45Yy00LjcgMC05LjItMi4xLTEyLjMtNS43TDUxMiA1NjEuOGwtODYuOCAxMDMuNWMtMyAzLjYtNy41IDUuNy0xMi4zIDUuN0gzNTRjLTYuOCAwLTEwLjUtNy45LTYuMS0xMy4xTDQ3MC4yIDUxMiAzNDcuOSAzNjYuMUE3Ljk1IDcuOTUgMCAwIDEgMzU0IDM1M2g1OC45YzQuNyAwIDkuMiAyLjEgMTIuMyA1LjdMNTEyIDQ2Mi4ybDg2LjgtMTAzLjVjMy0zLjYgNy41LTUuNyAxMi4zLTUuN0g2NzBjNi44IDAgMTAuNSA3LjkgNi4xIDEzLjFMNTUzLjggNTEybDEyMi4zIDE0NS45eicpKTtcbmV4cG9ydHMuQ29kZVNhbmRib3hTcXVhcmVGaWxsID0gZ2V0SWNvbignY29kZS1zYW5kYm94LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDcuOSA1MzYuN2w4Ny42IDQ5LjlWNjgxbDk2LjcgNTUuOVY1MjQuOEwzMDcuOSA0MTguNHpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NTUuNyA2NTMuMkw1MTIgNzk0IDI2OC4zIDY1My4yVjM3MS44bDExMC02My42LS40LS4yaC4yTDUxMiAyMzFsMTM0IDc3aC0uMmwtLjMuMiAxMTAuMSA2My42djI4MS40em0tMjIzLjkgODMuN2w5Ny4zLTU2LjJ2LTk0LjFsODctNDkuNVY0MTguNUw1MzEuOCA1MjV6bS0yMC0zNTJMNDE4IDMzMWwtOTEuMSA1Mi42IDE4NS4yIDEwNyAxODUuMi0xMDYuOS05MS40LTUyLjh6JykpO1xuZXhwb3J0cy5Db2RlU2FuZGJveENpcmNsZUZpbGwgPSBnZXRJY29uKCdjb2RlLXNhbmRib3gtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNDMuNyA1ODkuMkw1MTIgNzk0IDI2OC4zIDY1My4yVjM3MS44bDExMC02My42LS40LS4yaC4yTDUxMiAyMzFsMTM0IDc3aC0uMmwtLjMuMiAxMTAuMSA2My42djI4MS40ek0zMDcuOSA1MzYuN2w4Ny42IDQ5LjlWNjgxbDk2LjcgNTUuOVY1MjQuOEwzMDcuOSA0MTguNHptMjAzLjktMTUxLjhMNDE4IDMzMWwtOTEuMSA1Mi42IDE4NS4yIDEwNyAxODUuMi0xMDYuOS05MS40LTUyLjh6bTIwIDM1Mmw5Ny4zLTU2LjJ2LTk0LjFsODctNDkuNVY0MTguNUw1MzEuOCA1MjV6JykpO1xuZXhwb3J0cy5Db2RlRmlsbCA9IGdldEljb24oJ2NvZGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MTMuMSA1MTguMWwtMTkyIDE2MWMtNS4yIDQuNC0xMy4xLjctMTMuMS02LjF2LTYyLjdjMC0yLjMgMS4xLTQuNiAyLjktNi4xTDQyMC43IDUxMmwtMTA5LjgtOTIuMmE3LjYzIDcuNjMgMCAwIDEtMi45LTYuMVYzNTFjMC02LjggNy45LTEwLjUgMTMuMS02LjFsMTkyIDE2MC45YzMuOSAzLjIgMy45IDkuMSAwIDEyLjN6TTcxNiA2NzNjMCA0LjQtMy40IDgtNy41IDhoLTE4NWMtNC4xIDAtNy41LTMuNi03LjUtOHYtNDhjMC00LjQgMy40LTggNy41LThoMTg1YzQuMSAwIDcuNSAzLjYgNy41IDh2NDh6JykpO1xuZXhwb3J0cy5Db21wYXNzRmlsbCA9IGdldEljb24oJ2NvbXBhc3MnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTMyNy4zIDcwMi40Yy0yIC45LTQuNCAwLTUuMy0yLjEtLjQtMS0uNC0yLjIgMC0zLjJsOTguNy0yMjUuNSAxMzIuMSAxMzIuMS0yMjUuNSA5OC43em0zNzUuMS0zNzUuMWwtOTguNyAyMjUuNS0xMzIuMS0xMzIuMUw2OTcuMSAzMjJjMi0uOSA0LjQgMCA1LjMgMi4xLjQgMSAuNCAyLjEgMCAzLjJ6JykpO1xuZXhwb3J0cy5Db2RlcGVuQ2lyY2xlRmlsbCA9IGdldEljb24oJ2NvZGVwZW4tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ4OC4xIDQxNC43VjMwMy40TDMwMC45IDQyOGw4My42IDU1Ljh6bTI1NC4xIDEzNy43di03OS44bC01OS44IDM5Ljl6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNzggNTMzYzAgMS4xLS4xIDIuMS0uMiAzLjEgMCAuNC0uMS43LS4yIDFhMTQuMTYgMTQuMTYgMCAwIDEtLjggMy4yYy0uMi42LS40IDEuMi0uNiAxLjctLjIuNC0uNC44LS41IDEuMi0uMy41LS41IDEuMS0uOCAxLjYtLjIuNC0uNC43LS43IDEuMS0uMy41LS43IDEtMSAxLjUtLjMuNC0uNS43LS44IDEtLjQuNC0uOC45LTEuMiAxLjMtLjMuMy0uNi42LTEgLjktLjQuNC0uOS44LTEuNCAxLjEtLjQuMy0uNy42LTEuMS44LS4xLjEtLjMuMi0uNC4zTDUyNS4yIDc4NmMtNCAyLjctOC42IDQtMTMuMiA0LTQuNyAwLTkuMy0xLjQtMTMuMy00TDI0NC42IDYxNi45Yy0uMS0uMS0uMy0uMi0uNC0uM2wtMS4xLS44Yy0uNS0uNC0uOS0uNy0xLjMtMS4xLS4zLS4zLS42LS42LTEtLjktLjQtLjQtLjgtLjgtMS4yLTEuM2E3IDcgMCAwIDEtLjgtMWMtLjQtLjUtLjctMS0xLTEuNS0uMi0uNC0uNS0uNy0uNy0xLjEtLjMtLjUtLjYtMS4xLS44LTEuNi0uMi0uNC0uNC0uOC0uNS0xLjItLjItLjYtLjQtMS4yLS42LTEuNy0uMS0uNC0uMy0uOC0uNC0xLjItLjItLjctLjMtMS4zLS40LTItLjEtLjMtLjEtLjctLjItMS0uMS0xLS4yLTIuMS0uMi0zLjFWNDI3LjljMC0xIC4xLTIuMS4yLTMuMS4xLS4zLjEtLjcuMi0xYTE0LjE2IDE0LjE2IDAgMCAxIC44LTMuMmMuMi0uNi40LTEuMi42LTEuNy4yLS40LjQtLjguNS0xLjIuMi0uNS41LTEuMS44LTEuNi4yLS40LjQtLjcuNy0xLjEuNi0uOSAxLjItMS43IDEuOC0yLjUuNC0uNC44LS45IDEuMi0xLjMuMy0uMy42LS42IDEtLjkuNC0uNC45LS44IDEuMy0xLjEuNC0uMy43LS42IDEuMS0uOC4xLS4xLjMtLjIuNC0uM0w0OTguNyAyMzljOC01LjMgMTguNS01LjMgMjYuNSAwbDI1NC4xIDE2OS4xYy4xLjEuMy4yLjQuM2wxLjEuOCAxLjQgMS4xYy4zLjMuNi42IDEgLjkuNC40LjguOCAxLjIgMS4zLjcuOCAxLjMgMS42IDEuOCAyLjUuMi40LjUuNy43IDEuMS4zLjUuNiAxIC44IDEuNi4yLjQuNC44LjUgMS4yLjIuNi40IDEuMi42IDEuNy4xLjQuMy44LjQgMS4yLjIuNy4zIDEuMy40IDIgLjEuMy4xLjcuMiAxIC4xIDEgLjIgMi4xLjIgMy4xVjU5N3ptLTI1NC4xIDEzLjN2MTExLjNMNzIzLjEgNTk3bC04My42LTU1Ljh6TTI4MS44IDQ3Mi42djc5LjhsNTkuOC0zOS45ek01MTIgNDU2LjFsLTg0LjUgNTYuNCA4NC41IDU2LjQgODQuNS01Ni40ek03MjMuMSA0MjhMNTM1LjkgMzAzLjR2MTExLjNsMTAzLjYgNjkuMXpNMzg0LjUgNTQxLjJMMzAwLjkgNTk3bDE4Ny4yIDEyNC42VjYxMC4zbC0xMDMuNi02OS4xeicpKTtcbmV4cG9ydHMuQ29kZXBlblNxdWFyZUZpbGwgPSBnZXRJY29uKCdjb2RlcGVuLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MjMuMSA0MjhMNTM1LjkgMzAzLjR2MTExLjNsMTAzLjYgNjkuMXpNNTEyIDQ1Ni4xbC04NC41IDU2LjQgODQuNSA1Ni40IDg0LjUtNTYuNHptMjMuOSAxNTQuMnYxMTEuM0w3MjMuMSA1OTdsLTgzLjYtNTUuOHptLTE1MS40LTY5LjFMMzAwLjkgNTk3bDE4Ny4yIDEyNC42VjYxMC4zbC0xMDMuNi02OS4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05MCA0ODVjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAgMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAgMS0uOC0xYy0uNC0uNS0uNy0xLTEtMS41LS4yLS40LS41LS43LS43LTEuMS0uMy0uNS0uNi0xLjEtLjgtMS42LS4yLS40LS40LS44LS41LTEuMi0uMi0uNi0uNC0xLjItLjYtMS43LS4xLS40LS4zLS44LS40LTEuMi0uMi0uNy0uMy0xLjMtLjQtMi0uMS0uMy0uMS0uNy0uMi0xLS4xLTEtLjItMi4xLS4yLTMuMVY0MjcuOWMwLTEgLjEtMi4xLjItMy4xLjEtLjMuMS0uNy4yLTFhMTQuMTYgMTQuMTYgMCAwIDEgLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tNDcuOC00NC42di03OS44bC01OS44IDM5Ljl6bS00NjAuNC03OS44djc5LjhsNTkuOC0zOS45em0yMDYuMy01Ny45VjMwMy40TDMwMC45IDQyOGw4My42IDU1Ljh6JykpO1xuZXhwb3J0cy5Db250YWN0c0ZpbGwgPSBnZXRJY29uKCdjb250YWN0cycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMjI0SDc2OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDU0OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDMyOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjYxIDczNmgtNDMuOWMtNC4yIDAtNy42LTMuMy03LjktNy41LTMuOC01MC42LTQ2LTkwLjUtOTcuMi05MC41cy05My40IDQwLTk3LjIgOTAuNWMtLjMgNC4yLTMuNyA3LjUtNy45IDcuNUgzNjNhOCA4IDAgMCAxLTgtOC40YzIuOC01My4zIDMyLTk5LjcgNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMS0yOS4xLTc1LjVjMC02MS45IDQ5LjktMTEyIDExMS40LTExMiA2MS41IDAgMTExLjQgNTAuMSAxMTEuNCAxMTIgMCAyOS4xLTExIDU1LjUtMjkuMSA3NS41IDQyLjcgMjYuNSA3MS44IDcyLjggNzQuNiAxMjYuMS40IDQuNi0zLjIgOC40LTcuOCA4LjR6TTUxMiA0NzRjLTI4LjUgMC01MS43IDIzLjMtNTEuNyA1MnMyMy4yIDUyIDUxLjcgNTJjMjguNSAwIDUxLjctMjMuMyA1MS43LTUycy0yMy4yLTUyLTUxLjctNTJ6JykpO1xuZXhwb3J0cy5Db250cm9sRmlsbCA9IGdldEljb24oJ2NvbnRyb2wnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDQgNjgzdjc3YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNzdjLTQxLjctMTMuNi03Mi01Mi44LTcyLTk5czMwLjMtODUuNSA3Mi05OVYyNjRjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyMjFjNDEuNyAxMy42IDcyIDUyLjggNzIgOTlzLTMwLjMgODUuNS03MiA5OXptMjc5LjYtMTQzLjljLjIgMCAuMy0uMS40LS4xdjIyMWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTM5Yy4yIDAgLjMuMS40LjEtNDItMTMuNC03Mi40LTUyLjctNzIuNC05OS4xIDAtNDYuNCAzMC40LTg1LjcgNzIuNC05OS4xLS4yIDAtLjMuMS0uNC4xdi03N2MwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djc3Yy0uMiAwLS4zLS4xLS40LS4xIDQyIDEzLjQgNzIuNCA1Mi43IDcyLjQgOTkuMSAwIDQ2LjQtMzAuNCA4NS43LTcyLjQgOTkuMXpNNjE2IDQ0MGEzNiAzNiAwIDEgMCA3MiAwIDM2IDM2IDAgMSAwLTcyIDB6TTQwMy40IDU2Ni41bC0xLjUtMi40YzAtLjEtLjEtLjEtLjEtLjJsLS45LTEuMmMtLjEtLjEtLjItLjItLjItLjMtMS0xLjMtMi0yLjUtMy4yLTMuNmwtLjItLjJjLS40LS40LS44LS44LTEuMi0xLjEtLjgtLjgtMS43LTEuNS0yLjYtMi4xaC0uMWwtMS4yLS45Yy0uMS0uMS0uMy0uMi0uNC0uMy0xLjItLjgtMi41LTEuNi0zLjktMi4yLS4yLS4xLS41LS4yLS43LS40LS40LS4yLS43LS4zLTEuMS0uNS0uMy0uMS0uNy0uMy0xLS40LS41LS4yLTEtLjQtMS41LS41LS40LS4xLS45LS4zLTEuMy0uNGwtLjktLjMtMS40LS4zYy0uMi0uMS0uNS0uMS0uNy0uMi0uNy0uMS0xLjQtLjMtMi4xLS40LS4yIDAtLjQgMC0uNi0uMS0uNi0uMS0xLjEtLjEtMS43LS4yLS4yIDAtLjQgMC0uNy0uMS0uOCAwLTEuNS0uMS0yLjMtLjFzLTEuNSAwLTIuMy4xYy0uMiAwLS40IDAtLjcuMS0uNiAwLTEuMi4xLTEuNy4yLS4yIDAtLjQgMC0uNi4xLS43LjEtMS40LjItMi4xLjQtLjIuMS0uNS4xLS43LjJsLTEuNC4zLS45LjNjLS40LjEtLjkuMy0xLjMuNC0uNS4yLTEgLjQtMS41LjUtLjMuMS0uNy4zLTEgLjQtLjQuMi0uNy4zLTEuMS41LS4yLjEtLjUuMi0uNy40LTEuMy43LTIuNiAxLjQtMy45IDIuMi0uMS4xLS4zLjItLjQuM2wtMS4yLjloLS4xYy0uOS43LTEuOCAxLjQtMi42IDIuMS0uNC40LS44LjctMS4yIDEuMWwtLjIuMmE1NC44IDU0LjggMCAwIDAtMy4yIDMuNmMtLjEuMS0uMi4yLS4yLjNsLS45IDEuMmMwIC4xLS4xLjEtLjEuMmwtMS41IDIuNGMtLjEuMi0uMi4zLS4zLjUtMi43IDUuMS00LjMgMTAuOS00LjMgMTdzMS42IDEyIDQuMyAxN2MuMS4yLjIuMy4zLjVsMS41IDIuNGMwIC4xLjEuMS4xLjJsLjkgMS4yYy4xLjEuMi4yLjIuMyAxIDEuMyAyIDIuNSAzLjIgMy42bC4yLjJjLjQuNC44LjggMS4yIDEuMS44LjggMS43IDEuNSAyLjYgMi4xaC4xbDEuMi45Yy4xLjEuMy4yLjQuMyAxLjIuOCAyLjUgMS42IDMuOSAyLjIuMi4xLjUuMi43LjQuNC4yLjcuMyAxLjEuNS4zLjEuNy4zIDEgLjQuNS4yIDEgLjQgMS41LjUuNC4xLjkuMyAxLjMuNGwuOS4zIDEuNC4zYy4yLjEuNS4xLjcuMi43LjEgMS40LjMgMi4xLjQuMiAwIC40IDAgLjYuMS42LjEgMS4xLjEgMS43LjIuMiAwIC40IDAgLjcuMS44IDAgMS41LjEgMi4zLjFzMS41IDAgMi4zLS4xYy4yIDAgLjQgMCAuNy0uMS42IDAgMS4yLS4xIDEuNy0uMi4yIDAgLjQgMCAuNi0uMS43LS4xIDEuNC0uMiAyLjEtLjQuMi0uMS41LS4xLjctLjJsMS40LS4zLjktLjNjLjQtLjEuOS0uMyAxLjMtLjQuNS0uMiAxLS40IDEuNS0uNS4zLS4xLjctLjMgMS0uNC40LS4yLjctLjMgMS4xLS41LjItLjEuNS0uMi43LS40IDEuMy0uNyAyLjYtMS40IDMuOS0yLjIuMS0uMS4zLS4yLjQtLjNsMS4yLS45aC4xYy45LS43IDEuOC0xLjQgMi42LTIuMS40LS40LjgtLjcgMS4yLTEuMWwuMi0uMmMxLjEtMS4xIDIuMi0yLjQgMy4yLTMuNi4xLS4xLjItLjIuMi0uM2wuOS0xLjJjMC0uMS4xLS4xLjEtLjJsMS41LTIuNGMuMS0uMi4yLS4zLjMtLjUgMi43LTUuMSA0LjMtMTAuOSA0LjMtMTdzLTEuNi0xMi00LjMtMTdjLS4xLS4yLS4yLS40LS4zLS41eicpKTtcbmV4cG9ydHMuQ29udGFpbmVyRmlsbCA9IGdldEljb24oJ2NvbnRhaW5lcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MjljMC0uNi40LTEgMS0xaDIxOS4zbDUuMiAyNC43QzM5Ny42IDcwOC41IDQ1MC44IDc1MiA1MTIgNzUyczExNC40LTQzLjUgMTI2LjQtMTAzLjNsNS4yLTI0LjdIODYzYy42IDAgMSAuNCAxIDFWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcxMiA0OTNjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHY0OHptMC0xNjBjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHY0OHptMTUxIDM1NEg2OTQuMWMtMTEuNiAzMi44LTMyIDYyLjMtNTkuMSA4NC43LTM0LjUgMjguNi03OC4yIDQ0LjMtMTIzIDQ0LjNzLTg4LjUtMTUuOC0xMjMtNDQuM2ExOTQuMDIgMTk0LjAyIDAgMCAxLTU5LjEtODQuN0gxNjFjLS42IDAtMS0uNC0xLTF2MjQyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY2ODZjMCAuNi0uNCAxLTEgMXonKSk7XG5leHBvcnRzLkNvcHlGaWxsID0gZ2V0SWNvbignY29weScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMjk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDQ5NnY2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzA0IDE5MkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUzMC43YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDE3My4zIDE3My4zYzIuMiAyLjIgNC43IDQgNy40IDUuNXYxLjloNC4yYzMuNSAxLjMgNy4yIDIgMTEgMkg3MDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zODIgODk2aC0uMkwyMzIgNzQ2LjJ2LS4yaDE1MHYxNTB6JykpO1xuZXhwb3J0cy5Db3B5cmlnaHRDaXJjbGVGaWxsID0gZ2V0SWNvbignY29weXJpZ2h0LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptNS40IDY3MGMtMTEwIDAtMTczLjQtNzMuMi0xNzMuNC0xOTQuOXYtNTIuM0MzNDQgMzY0LjIgNDA3LjQgMjkwIDUxNy4zIDI5MGM5NC4zIDAgMTYyLjcgNjAuNyAxNjIuNyAxNDcuNCAwIDIuNi0yLjEgNC43LTQuNyA0LjdoLTU2LjdjLTQuMiAwLTcuNi0zLjItOC03LjQtNC00OS41LTQwLTgzLjQtOTMtODMuNC02NS4zIDAtMTAyLjEgNDguNS0xMDIuMSAxMzUuNXY1Mi42YzAgODUuNyAzNi45IDEzMy42IDEwMi4xIDEzMy42IDUyLjggMCA4OC43LTMxLjcgOTMtNzcuOC40LTQuMSAzLjgtNy4zIDgtNy4zaDU2LjhjMi42IDAgNC43IDIuMSA0LjcgNC43IDAgODIuNi02OC43IDE0MS40LTE2Mi43IDE0MS40eicpKTtcbmV4cG9ydHMuQ3JlZGl0Q2FyZEZpbGwgPSBnZXRJY29uKCdjcmVkaXQtY2FyZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxNjBoODk2VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjQgODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlY0NDBINjR2Mzkyem01NzktMTg0YzAtNC40IDMuNi04IDgtOGgxNjVjNC40IDAgOCAzLjYgOCA4djcyYzAgNC40LTMuNiA4LTggOEg2NTFjLTQuNCAwLTgtMy42LTgtOHYtNzJ6JykpO1xuZXhwb3J0cy5Dcm93bkZpbGwgPSBnZXRJY29uKCdjcm93bicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004OTkuNiAyNzYuNUw3MDUgMzk2LjQgNTE4LjQgMTQ3LjVhOC4wNiA4LjA2IDAgMCAwLTEyLjkgMEwzMTkgMzk2LjQgMTI0LjMgMjc2LjVjLTUuNy0zLjUtMTMuMSAxLjItMTIuMiA3LjlMMTg4LjUgODY1YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42Yy44LTYuNy02LjUtMTEuNC0xMi4zLTcuOXpNNTEyIDczNC4yYy02Mi4xIDAtMTEyLjYtNTAuNS0xMTIuNi0xMTIuNlM0NDkuOSA1MDkgNTEyIDUwOXMxMTIuNiA1MC41IDExMi42IDExMi42UzU3NC4xIDczNC4yIDUxMiA3MzQuMnptMC0xNjAuOWMtMjYuNiAwLTQ4LjIgMjEuNi00OC4yIDQ4LjMgMCAyNi42IDIxLjYgNDguMyA0OC4yIDQ4LjNzNDguMi0yMS42IDQ4LjItNDguM2MwLTI2LjYtMjEuNi00OC4zLTQ4LjItNDguM3onKSk7XG5leHBvcnRzLkN1c3RvbWVyU2VydmljZUZpbGwgPSBnZXRJY29uKCdjdXN0b21lci1zZXJ2aWNlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHonKSk7XG5leHBvcnRzLkRhc2hib2FyZEZpbGwgPSBnZXRJY29uKCdkYXNoYm9hcmQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjggMzg1LjZhNDQ2LjcgNDQ2LjcgMCAwIDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwIDAtMTQyLjQtOTZDNjMxLjEgMTIzLjggNTcyLjUgMTEyIDUxMiAxMTJzLTExOS4xIDExLjgtMTc0LjQgMzUuMmE0NDYuNyA0NDYuNyAwIDAgMC0xNDIuNCA5NiA0NDYuNyA0NDYuNyAwIDAgMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNDgyIDIzMmMwLTQuNCAzLjYtOCA4LThoNDRjNC40IDAgOCAzLjYgOCA4djgwYzAgNC40LTMuNiA4LTggOGgtNDRjLTQuNCAwLTgtMy42LTgtOHYtODB6TTI3MCA1ODJjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ0em05MC43LTIwNC41bC0zMS4xIDMxLjFhOC4wMyA4LjAzIDAgMCAxLTExLjMgMEwyNjEuNyAzNTJhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM2wzMS4xLTMxLjFjMy4xLTMuMSA4LjItMy4xIDExLjMgMGw1Ni42IDU2LjZjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM3ptMjkxLjEgODMuNmwtODQuNSA4NC41YzUgMTguNy4yIDM5LjQtMTQuNSA1NC4xYTU1Ljk1IDU1Ljk1IDAgMCAxLTc5LjIgMCA1NS45NSA1NS45NSAwIDAgMSAwLTc5LjIgNTUuODcgNTUuODcgMCAwIDEgNTQuMS0xNC41bDg0LjUtODQuNWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjEgMCAxMS4zem00My01Mi40bC0zMS4xLTMxLjFhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM2w1Ni42LTU2LjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwzMS4xIDMxLjFjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtNTYuNiA1Ni42YTguMDMgOC4wMyAwIDAgMS0xMS4zIDB6TTg0NiA1ODJjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ0eicpKTtcbmV4cG9ydHMuRGVsZXRlRmlsbCA9IGdldEljb24oJ2RlbGV0ZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgMjU2SDczNnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMjAwIDBIMzYwdi03MmgzMDR2NzJ6JykpO1xuZXhwb3J0cy5EaWZmRmlsbCA9IGdldEljb24oJ2RpZmYnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjIgMzA2LjZMNjExLjMgNzIuOWMtNi01LjctMTMuOS04LjktMjIuMi04LjlIMjk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI3N2wyMTkgMjEwLjZWODI0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMzI5LjZjMC04LjctMy41LTE3LTkuOC0yM3pNNTUzLjQgMjAxLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjcwNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzk3LjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZMNTUzLjQgMjAxLjR6TTU2OCA3NTNjMCAzLjgtMy40IDctNy41IDdoLTIyNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjggMy40LTcgNy41LTdoMjI1YzQuMSAwIDcuNSAzLjIgNy41IDd2NDJ6bTAtMjIwYzAgMy44LTMuNCA3LTcuNSA3SDQ3NnY4NC45YzAgMy45LTMuMSA3LjEtNyA3LjFoLTQyYy0zLjggMC03LTMuMi03LTcuMVY1NDBoLTg0LjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy45IDMuNC03IDcuNS03SDQyMHYtODQuOWMwLTMuOSAzLjItNy4xIDctNy4xaDQyYzMuOSAwIDcgMy4yIDcgNy4xVjQ4NGg4NC41YzQuMSAwIDcuNSAzLjEgNy41IDd2NDJ6JykpO1xuZXhwb3J0cy5EaW5ndGFsa0NpcmNsZUZpbGwgPSBnZXRJY29uKCdkaW5ndGFsay1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTIyNyAzODUuM2MtMSA0LjItMy41IDEwLjQtNyAxNy44aC4xbC0uNC43Yy0yMC4zIDQzLjEtNzMuMSAxMjcuNy03My4xIDEyNy43cy0uMS0uMi0uMy0uNWwtMTUuNSAyNi44aDc0LjVMNTc1LjEgODEwbDMyLjMtMTI4aC01OC42bDIwLjQtODQuN2MtMTYuNSAzLjktMzUuOSA5LjQtNTkgMTYuOCAwIDAtMzEuMiAxOC4yLTg5LjktMzUgMCAwLTM5LjYtMzQuNy0xNi42LTQzLjQgOS44LTMuNyA0Ny40LTguNCA3Ny0xMi4zIDQwLTUuNCA2NC42LTguMiA2NC42LTguMlM0MjIgNTE3IDM5Mi43IDUxMi41Yy0yOS4zLTQuNi02Ni40LTUzLjEtNzQuMy05NS44IDAgMC0xMi4yLTIzLjQgMjYuMy0xMi4zIDM4LjUgMTEuMSAxOTcuOSA0My4yIDE5Ny45IDQzLjJzLTIwNy40LTYzLjMtMjIxLjItNzguN2MtMTMuOC0xNS40LTQwLjYtODQuMi0zNy4xLTEyNi41IDAgMCAxLjUtMTAuNSAxMi40LTcuNyAwIDAgMTUzLjMgNjkuNyAyNTguMSAxMDcuOSAxMDQuOCAzNy45IDE5NS45IDU3LjMgMTg0LjIgMTA2Ljd6JykpO1xuZXhwb3J0cy5EYXRhYmFzZUZpbGwgPSBnZXRJY29uKCdkYXRhYmFzZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMjRoNzA0Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMjMyYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHpNMTYwIDkyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNzA0SDE2MHYyMjR6bTEyOC0xMzZjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0xNjAgNjQwaDcwNFYzODRIMTYwdjI1NnptMTI4LTE2OGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6JykpO1xuZXhwb3J0cy5EaW5ndGFsa1NxdWFyZUZpbGwgPSBnZXRJY29uKCdkaW5ndGFsay1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MzkgNDQ5LjNjLTEgNC4yLTMuNSAxMC40LTcgMTcuOGguMWwtLjQuN2MtMjAuMyA0My4xLTczLjEgMTI3LjctNzMuMSAxMjcuN3MtLjEtLjItLjMtLjVsLTE1LjUgMjYuOGg3NC41TDU3NS4xIDgxMGwzMi4zLTEyOGgtNTguNmwyMC40LTg0LjdjLTE2LjUgMy45LTM1LjkgOS40LTU5IDE2LjggMCAwLTMxLjIgMTguMi04OS45LTM1IDAgMC0zOS42LTM0LjctMTYuNi00My40IDkuOC0zLjcgNDcuNC04LjQgNzctMTIuMyA0MC01LjQgNjQuNi04LjIgNjQuNi04LjJTNDIyIDUxNyAzOTIuNyA1MTIuNWMtMjkuMy00LjYtNjYuNC01My4xLTc0LjMtOTUuOCAwIDAtMTIuMi0yMy40IDI2LjMtMTIuMyAzOC41IDExLjEgMTk3LjkgNDMuMiAxOTcuOSA0My4ycy0yMDcuNC02My4zLTIyMS4yLTc4LjdjLTEzLjgtMTUuNC00MC42LTg0LjItMzcuMS0xMjYuNSAwIDAgMS41LTEwLjUgMTIuNC03LjcgMCAwIDE1My4zIDY5LjcgMjU4LjEgMTA3LjkgMTA0LjggMzcuOSAxOTUuOSA1Ny4zIDE4NC4yIDEwNi43eicpKTtcbmV4cG9ydHMuRGlzbGlrZUZpbGwgPSBnZXRJY29uKCdkaXNsaWtlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NS45IDQ5MC4zYzMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTUxLjYtMzAuNy05OC4xLTc4LjMtMTE4LjRhNjYuMSA2Ni4xIDAgMCAwLTI2LjUtNS40SDI3M3Y0MjhoLjNsODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3pNMTEyIDEzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjVWMTAwaC02NWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6JykpO1xuZXhwb3J0cy5Eb2xsYXJDaXJjbGVGaWxsID0gZ2V0SWNvbignZG9sbGFyLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjIuMyA2NjUuMmwuMiAzMS43YzAgNC40LTMuNiA4LjEtOCA4LjFoLTI4LjRjLTQuNCAwLTgtMy42LTgtOHYtMzEuNEM0MDEuMyA3MjMgMzU5LjUgNjcyLjQgMzU1IDYxNy40Yy0uNC00LjcgMy4zLTguNyA4LTguN2g0Ni4yYzMuOSAwIDcuMyAyLjggNy45IDYuNiA1LjEgMzEuNyAyOS44IDU1LjQgNzQuMSA2MS4zVjUzMy45bC0yNC43LTYuM2MtNTIuMy0xMi41LTEwMi4xLTQ1LjEtMTAyLjEtMTEyLjcgMC03Mi45IDU1LjQtMTEyLjEgMTI2LjItMTE5di0zM2MwLTQuNCAzLjYtOCA4LThoMjguMWM0LjQgMCA4IDMuNiA4IDh2MzIuN2M2OC41IDYuOSAxMTkuOSA0Ni45IDEyNS45IDEwOS4yLjUgNC43LTMuMiA4LjgtOCA4LjhoLTQ0LjljLTQgMC03LjQtMy03LjktNi45LTQtMjkuMi0yNy40LTUzLTY1LjUtNTguMnYxMzQuM2wyNS40IDUuOWM2NC44IDE2IDEwOC45IDQ3IDEwOC45IDExNi40IDAgNzUuMy01NiAxMTcuMy0xMzQuMyAxMjQuMXpNNDI2LjYgNDEwLjNjMCAyNS40IDE1LjcgNDUuMSA0OS41IDU3LjMgNC43IDEuOSA5LjQgMy40IDE1IDV2LTEyNGMtMzYuOSA0LjctNjQuNSAyNS40LTY0LjUgNjEuN3ptMTE2LjUgMTM1LjJjLTIuOC0uNi01LjYtMS4zLTguOC0yLjJWNjc3YzQyLjYtMy44IDcyLTI3LjIgNzItNjYuNCAwLTMwLjctMTUuOS01MC43LTYzLjItNjUuMXonKSk7XG5leHBvcnRzLkRvd25DaXJjbGVGaWxsID0gZ2V0SWNvbignZG93bi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE4NC41IDM1My43bC0xNzggMjQ2YTcuOTUgNy45NSAwIDAgMS0xMi45IDBsLTE3OC0yNDZjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43SDM4MWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NjMuNmwxMDUuMi0xNDUuNGM2LTguMyAxNS42LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3onKSk7XG5leHBvcnRzLkRvd25TcXVhcmVGaWxsID0gZ2V0SWNvbignZG93bi1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02OTYuNSA0MTIuN2wtMTc4IDI0NmE3Ljk1IDcuOTUgMCAwIDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN0gzODFjMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTU4LjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNi0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6JykpO1xuZXhwb3J0cy5EcmliYmJsZUNpcmNsZUZpbGwgPSBnZXRJY29uKCdkcmliYmJsZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjc1LjEgMzI4LjNhMjQ1LjIgMjQ1LjIgMCAwIDAtMjIwLjgtNTUuMWM2LjggOS4xIDUxLjUgNjkuOSA5MS44IDE0NCA4Ny41LTMyLjggMTI0LjUtODIuNiAxMjktODguOXpNNTU0IDU1Mi44Yy0xMzguNyA0OC4zLTE4OC42IDE0NC42LTE5MyAxNTMuNiA0MS43IDMyLjUgOTQuMSA1MS45IDE1MSA1MS45IDM0LjEgMCA2Ni42LTYuOSA5Ni4xLTE5LjUtMy43LTIxLjYtMTcuOS05Ni44LTUyLjUtMTg2LjZsLTEuNi42em00Ny43LTExLjljMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDczNmMtMTU4LjggMC0yODgtMTI5LjItMjg4LTI4OHMxMjkuMi0yODggMjg4LTI4OCAyODggMTI5LjIgMjg4IDI4OC0xMjkuMiAyODgtMjg4IDI4OHptNTMuMS0zNDYuMmM1LjcgMTEuNyAxMS4yIDIzLjYgMTYuMyAzNS42IDEuOCA0LjIgMy42IDguNCA1LjMgMTIuNyA4MS44LTEwLjMgMTYzLjIgNi4yIDE3MS4zIDcuOS0uNS01OC4xLTIxLjMtMTExLjQtNTUuNS0xNTMuMy01LjMgNy4xLTQ2LjUgNjAtMTM3LjQgOTcuMXpNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptMzAuNiA4Mi41YzMuMi0xIDYuNC0yIDkuNy0yLjktNi4yLTE0LTEyLjktMjgtMTkuOS00MS43LTEyMi44IDM2LjgtMjQyLjEgMzUuMi0yNTIuOCAzNS0uMSAyLjUtLjEgNS0uMSA3LjUgMCA2My4yIDIzLjkgMTIwLjkgNjMuMiAxNjQuNSA1LjUtOS42IDczLTEyMS40IDE5OS45LTE2Mi40eicpKTtcbmV4cG9ydHMuRHJpYmJibGVTcXVhcmVGaWxsID0gZ2V0SWNvbignZHJpYmJibGUtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ5OC42IDQzMmMtNDAuOC03Mi41LTg0LjctMTMzLjQtOTEuMi0xNDIuMy02OC44IDMyLjUtMTIwLjMgOTUuOS0xMzYuMiAxNzIuMiAxMSAuMiAxMTIuNC43IDIyNy40LTI5Ljl6bTY2LjUgMjEuOGM1LjcgMTEuNyAxMS4yIDIzLjYgMTYuMyAzNS42IDEuOCA0LjIgMy42IDguNCA1LjMgMTIuNyA4MS44LTEwLjMgMTYzLjIgNi4yIDE3MS4zIDcuOS0uNS01OC4xLTIxLjMtMTExLjQtNTUuNS0xNTMuMy01LjMgNy4xLTQ2LjUgNjAtMTM3LjQgOTcuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MTIgODAwYy0xNTguOCAwLTI4OC0xMjkuMi0yODgtMjg4czEyOS4yLTI4OCAyODgtMjg4IDI4OCAxMjkuMiAyODggMjg4LTEyOS4yIDI4OC0yODggMjg4em04OS43LTI1OS4xYzMyLjIgODguNCA0NS4zIDE2MC40IDQ3LjggMTc1LjQgNTUuMi0zNy4zIDk0LjUtOTYuNCAxMDUuNC0xNjQuOS04LjQtMi42LTc2LjEtMjIuOC0xNTMuMi0xMC41em0tNzIuNS0yNi40YzMuMi0xIDYuNC0yIDkuNy0yLjktNi4yLTE0LTEyLjktMjgtMTkuOS00MS43LTEyMi44IDM2LjgtMjQyLjEgMzUuMi0yNTIuOCAzNS0uMSAyLjUtLjEgNS0uMSA3LjUgMCA2My4yIDIzLjkgMTIwLjkgNjMuMiAxNjQuNSA1LjUtOS42IDczLTEyMS40IDE5OS45LTE2Mi40em0xNDUuOS0xODYuMmEyNDUuMiAyNDUuMiAwIDAgMC0yMjAuOC01NS4xYzYuOCA5LjEgNTEuNSA2OS45IDkxLjggMTQ0IDg3LjUtMzIuOCAxMjQuNS04Mi42IDEyOS04OC45ek01NTQgNTUyLjhjLTEzOC43IDQ4LjMtMTg4LjYgMTQ0LjYtMTkzIDE1My42IDQxLjcgMzIuNSA5NC4xIDUxLjkgMTUxIDUxLjkgMzQuMSAwIDY2LjYtNi45IDk2LjEtMTkuNS0zLjctMjEuNi0xNy45LTk2LjgtNTIuNS0xODYuNmwtMS42LjZ6JykpO1xuZXhwb3J0cy5Ecm9wYm94Q2lyY2xlRmlsbCA9IGdldEljb24oJ2Ryb3Bib3gtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY2My44IDQ1NS41em0tMTUxLjUtOTMuOGwtMTUxLjggOTMuOCAxNTEuOCA5My45IDE1MS41LTkzLjl6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNTEuMiA1OTUuNUw1MTIuNiA3NTBsLTE1MS05MC41di0zMy4xbDQ1LjQgMjkuNCAxMDUuNi04Ny43IDEwNS42IDg3LjcgNDUuMS0yOS40djMzLjF6bS00NS42LTIyLjRsLTEwNS4zLTg3LjdMNDA3IDYzNy4xbC0xNTEtOTkuMiAxMDQuNS04Mi40TDI1NiAzNzEuMiA0MDcgMjc0bDEwNS4zIDg3LjdMNjE3LjYgMjc0IDc2OCAzNzIuMWwtMTA0LjIgODMuNUw3NjggNTM5bC0xNTAuNCA5OC4xeicpKTtcbmV4cG9ydHMuRHJvcGJveFNxdWFyZUZpbGwgPSBnZXRJY29uKCdkcm9wYm94LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2My4yIDY1OS41TDUxMi42IDc1MGwtMTUxLTkwLjV2LTMzLjFsNDUuNCAyOS40IDEwNS42LTg3LjcgMTA1LjYgODcuNyA0NS4xLTI5LjR2MzMuMXptLTQ1LjYtMjIuNGwtMTA1LjMtODcuN0w0MDcgNjM3LjFsLTE1MS05OS4yIDEwNC41LTgyLjRMMjU2IDM3MS4yIDQwNyAyNzRsMTA1LjMgODcuN0w2MTcuNiAyNzQgNzY4IDM3Mi4xbC0xMDQuMiA4My41TDc2OCA1MzlsLTE1MC40IDk4LjF6TTUxMi4zIDM2MS43bC0xNTEuOCA5My44IDE1MS44IDkzLjkgMTUxLjUtOTMuOXptMTUxLjUgOTMuOHonKSk7XG5leHBvcnRzLkVudmlyb25tZW50RmlsbCA9IGdldEljb24oJ2Vudmlyb25tZW50JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAzMjdjLTI5LjkgMC01OCAxMS42LTc5LjIgMzIuOEExMTEuNiAxMTEuNiAwIDAgMCA0MDAgNDM5YzAgMjkuOSAxMS43IDU4IDMyLjggNzkuMkExMTEuNiAxMTEuNiAwIDAgMCA1MTIgNTUxYzI5LjkgMCA1OC0xMS43IDc5LjItMzIuOEM2MTIuNCA0OTcgNjI0IDQ2OC45IDYyNCA0MzljMC0yOS45LTExLjYtNTgtMzIuOC03OS4yUzU0MS45IDMyNyA1MTIgMzI3em0zNDIuNi0zNy45YTM2Mi40OSAzNjIuNDkgMCAwIDAtNzkuOS0xMTUuNyAzNzAuODMgMzcwLjgzIDAgMCAwLTExOC4yLTc3LjhDNjEwLjcgNzYuNiA1NjIuMSA2NyA1MTIgNjdjLTUwLjEgMC05OC43IDkuNi0xNDQuNSAyOC41LTQ0LjMgMTguMy04NCA0NC41LTExOC4yIDc3LjhBMzYzLjYgMzYzLjYgMCAwIDAgMTY5LjQgMjg5Yy0xOS41IDQ1LTI5LjQgOTIuOC0yOS40IDE0MiAwIDcwLjYgMTYuOSAxNDAuOSA1MC4xIDIwOC43IDI2LjcgNTQuNSA2NCAxMDcuNiAxMTEgMTU4LjEgODAuMyA4Ni4yIDE2NC41IDEzOC45IDE4OC40IDE1M2E0My45IDQzLjkgMCAwIDAgMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA2MTVjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzYgMTc2IDc4LjggMTc2IDE3Ni03OC44IDE3Ni0xNzYgMTc2eicpKTtcbmV4cG9ydHMuRWRpdEZpbGwgPSBnZXRJY29uKCdlZGl0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MjIuMy04NGMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwIDAgMC0xNC4xTDY5NC45IDExNC45Yy0xLjktMS45LTQuNC0yLjktNy4xLTIuOXMtNS4yIDEtNy4xIDIuOUwyNTYuOCA1MzguOGMtMS41IDEuNS0yLjQgMy4zLTIuOCA1LjNsLTI5LjUgMTY4LjJhMzMuNSAzMy41IDAgMCAwIDkuNCAyOS44YzYuNiA2LjQgMTQuOSA5LjkgMjMuOCA5Ljl6JykpO1xuZXhwb3J0cy5FeGNsYW1hdGlvbkNpcmNsZUZpbGwgPSBnZXRJY29uKCdleGNsYW1hdGlvbi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS0zMiAyMzJjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyNzJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjI5NnptMzIgNDQwYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLkV1cm9DaXJjbGVGaWxsID0gZ2V0SWNvbignZXVyby1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTYzLjUgMzc1LjhjNC40IDAgOCAzLjYgOCA4VjQ3NWMwIDQuNC0zLjYgOC04IDhoLTEzNmMtLjMgNC40LS4zIDkuMS0uMyAxMy44djM2aDEzNi4yYzQuNCAwIDggMy42IDggOFY1NjhjMCA0LjQtMy42IDgtOCA4SDQ0NC45YzE1LjMgNjIgNjEuMyA5OC42IDEyOS44IDk4LjYgMTkuOSAwIDM3LjEtMS4yIDUxLjgtNC4xIDQuOS0xIDkuNSAyLjggOS41IDcuOHY0Mi44YzAgMy44LTIuNyA3LTYuNCA3LjgtMTUuOSAzLjQtMzQuMyA1LjEtNTUuMyA1LjEtMTA5LjggMC0xODMtNTguOC0yMDAuMi0xNThIMzQ0Yy00LjQgMC04LTMuNi04LTh2LTI3LjJjMC00LjQgMy42LTggOC04aDI2LjF2LTM2LjljMC00LjQgMC04LjguMy0xMi44SDM0NGMtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgzMS43YzE5LjctOTQuMiA5Mi0xNDkuOSAxOTguNi0xNDkuOSAyMC45IDAgMzkuNCAxLjkgNTUuMyA1LjQgMy43LjggNi4zIDQgNi4zIDcuOFYzNDZoLjFjMCA1LjEtNC42IDguOC05LjYgNy44LTE0LjctMi45LTMxLjgtNC40LTUxLjctNC40LTY1LjQgMC0xMTAuNCAzMy41LTEyNy42IDkwLjRoMTI4LjR6JykpO1xuZXhwb3J0cy5FeHBlcmltZW50RmlsbCA9IGdldEljb24oJ2V4cGVyaW1lbnQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjE4LjkgNjM2LjNsNDIuNiAyNi42Yy4xLjEuMy4yLjQuM2wxMi43IDggLjMuM2ExODYuOSAxODYuOSAwIDAgMCA5NC4xIDI1LjFjNDQuOSAwIDg3LjItMTUuNyAxMjEtNDMuOGEyNTYuMjcgMjU2LjI3IDAgMCAxIDE2NC45LTU5LjljNTIuMyAwIDEwMi4yIDE1LjcgMTQ0LjYgNDQuNWw3LjkgNS0xMTEuNi0yODlWMTc5LjhoNjMuNWM0LjQgMCA4LTMuNiA4LThWMTIwYzAtNC40LTMuNi04LTgtOEgyNjQuN2MtNC40IDAtOCAzLjYtOCA4djUxLjljMCA0LjQgMy42IDggOCA4aDYzLjV2MTczLjZMMjE4LjkgNjM2LjN6bTMzMy0yMDMuMWMyMiAwIDM5LjkgMTcuOSAzOS45IDM5LjlTNTczLjkgNTEzIDU1MS45IDUxMyA1MTIgNDk1LjEgNTEyIDQ3My4xczE3LjktMzkuOSAzOS45LTM5Ljl6TTg3OCA4MjUuMWwtMjkuOS03Ny40LTg1LjctNTMuNS0uMS4xYy0uNy0uNS0xLjUtMS0yLjItMS41bC04LjEtNS0uMy0uM2MtMjktMTcuNS02Mi4zLTI2LjgtOTctMjYuOC00NC45IDAtODcuMiAxNS43LTEyMSA0My44YTI1Ni4yNyAyNTYuMjcgMCAwIDEtMTY0LjkgNTkuOWMtNTMgMC0xMDMuNS0xNi4xLTE0Ni4yLTQ1LjZsLTI4LjktMTguMUwxNDYgODI1LjFjLTIuOCA3LjQtNC4zIDE1LjItNC4zIDIzIDAgMzUuMiAyOC42IDYzLjggNjMuOCA2My44aDYxMi45YzcuOSAwIDE1LjctMS41IDIzLTQuM2E2My42IDYzLjYgMCAwIDAgMzYuNi04Mi41eicpKTtcbmV4cG9ydHMuRXllSW52aXNpYmxlRmlsbCA9IGdldEljb24oJ2V5ZS1pbnZpc2libGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTA4IDYyNGExMTIgMTEyIDAgMCAwIDExMi0xMTJjMC0zLjI4LS4xNS02LjUzLS40My05Ljc0TDQ5OC4yNiA2MjMuNTdjMy4yMS4yOCA2LjQ1LjQzIDkuNzQuNDN6bTM3MC43Mi00NTguNDRMODM2IDEyMi44OGE4IDggMCAwIDAtMTEuMzEgMEw3MTUuMzcgMjMyLjIzUTYyNC45MSAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41cTU2LjcgMTE5LjQzIDEzNi41NSAxOTEuNDVMMTEyLjU2IDgzNWE4IDggMCAwIDAgMCAxMS4zMUwxNTUuMjUgODg5YTggOCAwIDAgMCAxMS4zMSAwbDcxMi4xNi03MTIuMTJhOCA4IDAgMCAwIDAtMTEuMzJ6TTMzMiA1MTJhMTc2IDE3NiAwIDAgMSAyNTguODgtMTU1LjI4bC00OC42MiA0OC42MmExMTIuMDggMTEyLjA4IDAgMCAwLTE0MC45MiAxNDAuOTJsLTQ4LjYyIDQ4LjYyQTE3NS4wOSAxNzUuMDkgMCAwIDEgMzMyIDUxMnonLCAnTTk0Mi4yIDQ4Ni4yUTg4OS40IDM3NSA4MTYuNTEgMzA0Ljg1TDY3Mi4zNyA0NDlBMTc2LjA4IDE3Ni4wOCAwIDAgMSA0NDUgNjc2LjM3TDMyMi43NCA3OTguNjNRNDA3LjgyIDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwIDAgMC01MS41eicpKTtcbmV4cG9ydHMuRXllRmlsbCA9IGdldEljb24oJ2V5ZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zOTYgNTEyYTExMiAxMTIgMCAxIDAgMjI0IDAgMTEyIDExMiAwIDEgMC0yMjQgMHptNTQ2LjItMjUuOEM4NDcuNCAyODYuNSA3MDQuMSAxODYgNTEyIDE4NmMtMTkyLjIgMC0zMzUuNCAxMDAuNS00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTA4IDY4OGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NiAxNzYgNzguOCAxNzYgMTc2LTc4LjggMTc2LTE3NiAxNzZ6JykpO1xuZXhwb3J0cy5GYWNlYm9va0ZpbGwgPSBnZXRJY29uKCdmYWNlYm9vaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05Mi40IDIzMy41aC02My45Yy01MC4xIDAtNTkuOCAyMy44LTU5LjggNTguOHY3Ny4xaDExOS42bC0xNS42IDEyMC43aC0xMDRWOTEySDUzOS4yVjYwMi4ySDQzNC45VjQ4MS40aDEwNC4zdi04OWMwLTEwMy4zIDYzLjEtMTU5LjYgMTU1LjMtMTU5LjYgNDQuMiAwIDgyLjEgMy4zIDkzLjIgNC44djEwNy45eicpKTtcbmV4cG9ydHMuRmFzdEJhY2t3YXJkRmlsbCA9IGdldEljb24oJ2Zhc3QtYmFja3dhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNTE3LjYgMjczLjVMMjMwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwIDAgMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bTMyMCAwTDU1MC4yIDQ5OS4zYTE2LjE0IDE2LjE0IDAgMCAwIDAgMjUuNGwyODcuNCAyMjUuOGMxMC43IDguNCAyNi40LjggMjYuNC0xMi43VjI4Ni4yYzAtMTMuNS0xNS43LTIxLjEtMjYuNC0xMi43em0tNjIwLTI1LjVoLTUxLjJjLTMuNSAwLTYuNCAyLjctNi40IDZ2NTE2YzAgMy4zIDIuOSA2IDYuNCA2aDUxLjJjMy41IDAgNi40LTIuNyA2LjQtNlYyNTRjMC0zLjMtMi45LTYtNi40LTZ6JykpO1xuZXhwb3J0cy5GYXN0Rm9yd2FyZEZpbGwgPSBnZXRJY29uKCdmYXN0LWZvcndhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNzkzLjggNDk5LjNMNTA2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS42YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YTE2LjE0IDE2LjE0IDAgMCAwIDAtMjUuNHptLTMyMCAwTDE4Ni40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNWMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGM0LjEtMy4yIDYuMi04IDYuMi0xMi43IDAtNC42LTIuMS05LjQtNi4yLTEyLjZ6TTg1Ny42IDI0OGgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnonKSk7XG5leHBvcnRzLkZpbGVBZGRGaWxsID0gZ2V0SWNvbignZmlsZS1hZGQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDgwIDU4MEgzNzJhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4aDEwOHYxMDhhOCA4IDAgMCAwIDggOGg0OGE4IDggMCAwIDAgOC04VjY0NGgxMDhhOCA4IDAgMCAwIDgtOHYtNDhhOCA4IDAgMCAwLTgtOEg1NDRWNDcyYTggOCAwIDAgMC04LThoLTQ4YTggOCAwIDAgMC04IDh2MTA4em0zNzQuNi0yOTEuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yeicpKTtcbmV4cG9ydHMuRmlsZUV4Y2VsRmlsbCA9IGdldEljb24oJ2ZpbGUtZXhjZWwnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNTc1LjM0IDQ3Ny44NGwtNjEuMjIgMTAyLjNMNDUyLjMgNDc3LjhhMTIgMTIgMCAwIDAtMTAuMjctNS43OWgtMzguNDRhMTIgMTIgMCAwIDAtNi40IDEuODUgMTIgMTIgMCAwIDAtMy43NSAxNi41Nmw4Mi4zNCAxMzAuNDItODMuNDUgMTMyLjc4YTEyIDEyIDAgMCAwLTEuODQgNi4zOSAxMiAxMiAwIDAgMCAxMiAxMmgzNC40NmExMiAxMiAwIDAgMCAxMC4yMS01LjdsNjIuNy0xMDEuNDcgNjIuMyAxMDEuNDVhMTIgMTIgMCAwIDAgMTAuMjMgNS43MmgzNy40OGExMiAxMiAwIDAgMCA2LjQ4LTEuOSAxMiAxMiAwIDAgMCAzLjYyLTE2LjU4bC04My44My0xMzAuNTUgODUuMy0xMzIuNDdhMTIgMTIgMCAwIDAgMS45LTYuNSAxMiAxMiAwIDAgMC0xMi0xMmgtMzUuN2ExMiAxMiAwIDAgMC0xMC4yOSA1Ljg0eicpKTtcbmV4cG9ydHMuRmlsZUV4Y2xhbWF0aW9uRmlsbCA9IGdldEljb24oJ2ZpbGUtZXhjbGFtYXRpb24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNTEyIDc4NGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMCAwIDAgODB6bTMyLTE1MlY0NDhhOCA4IDAgMCAwLTgtOGgtNDhhOCA4IDAgMCAwLTggOHYxODRhOCA4IDAgMCAwIDggOGg0OGE4IDggMCAwIDAgOC04eicpKTtcbmV4cG9ydHMuRmlsZUltYWdlRmlsbCA9IGdldEljb24oJ2ZpbGUtaW1hZ2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdMNjM5LjQgNzMuNGMtNi02LTE0LjItOS40LTIyLjctOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNnpNNDAwIDQwMmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6bTI5NiAyOTRIMzI4Yy02LjcgMC0xMC40LTcuNy02LjMtMTIuOWw5OS44LTEyNy4yYTggOCAwIDAgMSAxMi42IDBsNDEuMSA1Mi40IDc3LjgtOTkuMmE4IDggMCAwIDEgMTIuNiAwbDEzNi41IDE3NGM0LjMgNS4yLjUgMTIuOS02LjEgMTIuOXptLTk0LTM3MFYxMzcuOEw3OTAuMiAzMjZINjAyeicpKTtcbmV4cG9ydHMuRmlsZU1hcmtkb3duRmlsbCA9IGdldEljb24oJ2ZpbGUtbWFya2Rvd24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNDI2LjEzIDYwMC45M2w1OS4xMSAxMzIuOTdhMTYgMTYgMCAwIDAgMTQuNjIgOS41aDI0LjA2YTE2IDE2IDAgMCAwIDE0LjYzLTkuNTFsNTkuMS0xMzMuMzVWNzU4YTE2IDE2IDAgMCAwIDE2LjAxIDE2SDY0MWExNiAxNiAwIDAgMCAxNi0xNlY0ODZhMTYgMTYgMCAwIDAtMTYtMTZoLTM0Ljc1YTE2IDE2IDAgMCAwLTE0LjY3IDkuNjJMNTEyLjEgNjYyLjJsLTc5LjQ4LTE4Mi41OWExNiAxNiAwIDAgMC0xNC42Ny05LjYxSDM4M2ExNiAxNiAwIDAgMC0xNiAxNnYyNzJhMTYgMTYgMCAwIDAgMTYgMTZoMjcuMTNhMTYgMTYgMCAwIDAgMTYtMTZWNjAwLjkzeicpKTtcbmV4cG9ydHMuRmlsZVBkZkZpbGwgPSBnZXRJY29uKCdmaWxlLXBkZicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek02MzMuMjIgNjM3LjI2Yy0xNS4xOC0uNS0zMS4zMi42Ny00OS42NSAyLjk2LTI0LjMtMTQuOTktNDAuNjYtMzUuNTgtNTIuMjgtNjUuODNsMS4wNy00LjM4IDEuMjQtNS4xOGM0LjMtMTguMTMgNi42MS0zMS4zNiA3LjMtNDQuNy41Mi0xMC4wNy0uMDQtMTkuMzYtMS44My0yNy45Ny0zLjMtMTguNTktMTYuNDUtMjkuNDYtMzMuMDItMzAuMTMtMTUuNDUtLjYzLTI5LjY1IDgtMzMuMjggMjEuMzctNS45MSAyMS42Mi0yLjQ1IDUwLjA3IDEwLjA4IDk4LjU5LTE1Ljk2IDM4LjA1LTM3LjA1IDgyLjY2LTUxLjIgMTA3LjU0LTE4Ljg5IDkuNzQtMzMuNiAxOC42LTQ1Ljk2IDI4LjQyLTE2LjMgMTIuOTctMjYuNDggMjYuMy0yOS4yOCA0MC4zLTEuMzYgNi40OS42OSAxNC45NyA1LjM2IDIxLjkyIDUuMyA3Ljg4IDEzLjI4IDEzIDIyLjg1IDEzLjc0IDI0LjE1IDEuODcgNTMuODMtMjMuMDMgODYuNi03OS4yNiAzLjI5LTEuMSA2Ljc3LTIuMjYgMTEuMDItMy43bDExLjktNC4wMmM3LjUzLTIuNTQgMTIuOTktNC4zNiAxOC4zOS02LjExIDIzLjQtNy42MiA0MS4xLTEyLjQzIDU3LjItMTUuMTcgMjcuOTggMTQuOTggNjAuMzIgMjQuOCA4Mi4xIDI0LjggMTcuOTggMCAzMC4xMy05LjMyIDM0LjUyLTIzLjk5IDMuODUtMTIuODguOC0yNy44Mi03LjQ4LTM2LjA4LTguNTYtOC40MS0yNC4zLTEyLjQzLTQ1LjY1LTEzLjEyek0zODUuMjMgNzY1LjY4di0uMzZsLjEzLS4zNGE1NC44NiA1NC44NiAwIDAgMSA1LjYtMTAuNzZjNC4yOC02LjU4IDEwLjE3LTEzLjUgMTcuNDctMjAuODcgMy45Mi0zLjk1IDgtNy44IDEyLjc5LTEyLjEyIDEuMDctLjk2IDcuOTEtNy4wNSA5LjE5LTguMjVsMTEuMTctMTAuNC04LjEyIDEyLjkzYy0xMi4zMiAxOS42NC0yMy40NiAzMy43OC0zMyA0My0zLjUxIDMuNC02LjYgNS45LTkuMSA3LjUxYTE2LjQzIDE2LjQzIDAgMCAxLTIuNjEgMS40MmMtLjQxLjE3LS43Ny4yNy0xLjEzLjNhMi4yIDIuMiAwIDAgMS0xLjEyLS4xNSAyLjA3IDIuMDcgMCAwIDEtMS4yNy0xLjkxek01MTEuMTcgNTQ3LjRsLTIuMjYgNC0xLjQtNC4zOGMtMy4xLTkuODMtNS4zOC0yNC42NC02LjAxLTM4LS43Mi0xNS4yLjQ5LTI0LjMyIDUuMjktMjQuMzIgNi43NCAwIDkuODMgMTAuOCAxMC4wNyAyNy4wNS4yMiAxNC4yOC0yLjAzIDI5LjE0LTUuNyAzNS42NXptLTUuODEgNTguNDZsMS41My00LjA1IDIuMDkgMy44YzExLjY5IDIxLjI0IDI2Ljg2IDM4Ljk2IDQzLjU0IDUxLjMxbDMuNiAyLjY2LTQuMzkuOWMtMTYuMzMgMy4zOC0zMS41NCA4LjQ2LTUyLjM0IDE2Ljg1IDIuMTctLjg4LTIxLjYyIDguODYtMjcuNjQgMTEuMTdsLTUuMjUgMi4wMSAyLjgtNC44OGMxMi4zNS0yMS41IDIzLjc2LTQ3LjMyIDM2LjA1LTc5Ljc3em0xNTcuNjIgNzYuMjZjLTcuODYgMy4xLTI0Ljc4LjMzLTU0LjU3LTEyLjM5bC03LjU2LTMuMjIgOC4yLS42YzIzLjMtMS43MyAzOS44LS40NSA0OS40MiAzLjA3IDQuMSAxLjUgNi44MyAzLjM5IDguMDQgNS41NWE0LjY0IDQuNjQgMCAwIDEtMS4zNiA2LjMxIDYuNyA2LjcgMCAwIDEtMi4xNyAxLjI4eicpKTtcbmV4cG9ydHMuRmlsZVBwdEZpbGwgPSBnZXRJY29uKCdmaWxlLXBwdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek00NjguNTMgNzYwdi05MS41NGg1OS4yN2M2MC41NyAwIDEwMC4yLTM5LjY1IDEwMC4yLTk4LjEyIDAtNTguMjItMzkuNTgtOTguMzQtOTkuOTgtOTguMzRINDI0YTEyIDEyIDAgMCAwLTEyIDEydjI3NmExMiAxMiAwIDAgMCAxMiAxMmgzMi41M2ExMiAxMiAwIDAgMCAxMi0xMnptMC0xMzkuMzNoMzQuOWM0Ny44MiAwIDY3LjE5LTEyLjkzIDY3LjE5LTUwLjMzIDAtMzIuMDUtMTguMTItNTAuMTItNDkuODctNTAuMTJoLTUyLjIydjEwMC40NXonKSk7XG5leHBvcnRzLkZpbGVUZXh0RmlsbCA9IGdldEljb24oJ2ZpbGUtdGV4dCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek0zMjAgNDgyYTggOCAwIDAgMC04IDh2NDhhOCA4IDAgMCAwIDggOGgzODRhOCA4IDAgMCAwIDgtOHYtNDhhOCA4IDAgMCAwLTgtOEgzMjB6bTAgMTM2YTggOCAwIDAgMC04IDh2NDhhOCA4IDAgMCAwIDggOGgxODRhOCA4IDAgMCAwIDgtOHYtNDhhOCA4IDAgMCAwLTgtOEgzMjB6JykpO1xuZXhwb3J0cy5GaWxlV29yZEZpbGwgPSBnZXRJY29uKCdmaWxlLXdvcmQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNTEyIDU2Ni4xbDUyLjgxIDE5N2ExMiAxMiAwIDAgMCAxMS42IDguOWgzMS43N2ExMiAxMiAwIDAgMCAxMS42LTguODhsNzQuMzctMjc2YTEyIDEyIDAgMCAwIC40LTMuMTIgMTIgMTIgMCAwIDAtMTItMTJoLTM1LjU3YTEyIDEyIDAgMCAwLTExLjcgOS4zMWwtNDUuNzggMTk5LjEtNDkuNzYtMTk5LjMyQTEyIDEyIDAgMCAwIDUyOC4xIDQ3MmgtMzIuMmExMiAxMiAwIDAgMC0xMS42NCA5LjFMNDM0LjYgNjgwLjAxIDM4OC41IDQ4MS4zYTEyIDEyIDAgMCAwLTExLjY4LTkuMjloLTM1LjM5YTEyIDEyIDAgMCAwLTMuMTEuNDEgMTIgMTIgMCAwIDAtOC40NyAxNC43bDc0LjE3IDI3NkExMiAxMiAwIDAgMCA0MTUuNiA3NzJoMzEuOTlhMTIgMTIgMCAwIDAgMTEuNTktOC45bDUyLjgxLTE5N3onKSk7XG5leHBvcnRzLkZpbGVVbmtub3duRmlsbCA9IGdldEljb24oJ2ZpbGUtdW5rbm93bicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek00MDIgNTQ5YzAgNS40IDQuNCA5LjUgOS44IDkuNWgzMi40YzUuNCAwIDkuOC00LjIgOS44LTkuNCAwLTI4LjIgMjUuOC01MS42IDU4LTUxLjZzNTggMjMuNCA1OCA1MS41YzAgMjUuMy0yMSA0Ny4yLTQ5LjMgNTAuOS0xOS4zIDIuOC0zNC41IDIwLjMtMzQuNyA0MC4xdjMyYzAgNS41IDQuNSAxMCAxMCAxMGgzMmM1LjUgMCAxMC00LjUgMTAtMTB2LTEyLjJjMC02IDQtMTEuNSA5LjctMTMuMyA0NC42LTE0LjQgNzUtNTQgNzQuMy05OC45LS44LTU1LjUtNDkuMi0xMDAuOC0xMDguNS0xMDEuNi02MS40LS43LTExMS41IDQ1LjYtMTExLjUgMTAzem0xMTAgMjI3YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAwIDAgMCA2NHonKSk7XG5leHBvcnRzLkZpbGVaaXBGaWxsID0gZ2V0SWNvbignZmlsZS16aXAnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNMjk2IDEzNnY2NGg2NHYtNjRoLTY0em02NCA2NHY2NGg2NHYtNjRoLTY0em0tNjQgNjR2NjRoNjR2LTY0aC02NHptNjQgNjR2NjRoNjR2LTY0aC02NHptLTY0IDY0djY0aDY0di02NGgtNjR6bTY0IDY0djY0aDY0di02NGgtNjR6bS02NCA2NHY2NGg2NHYtNjRoLTY0em0wIDY0djE2MGgxMjhWNTg0SDI5NnptNDggNDhoMzJ2NjRoLTMydi02NHonKSk7XG5leHBvcnRzLkZpbGVGaWxsID0gZ2V0SWNvbignZmlsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yeicpKTtcbmV4cG9ydHMuRmlsdGVyRmlsbCA9IGdldEljb24oJ2ZpbHRlcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNDkgODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjY0MkgzNDl2MTk2em01MzEuMS02ODRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OGwyMjEuMyAzNzZoMzQ4LjhsMjIxLjMtMzc2YzEyLjEtMjEuMy0zLjItNDgtMjcuNy00OHonKSk7XG5leHBvcnRzLkZpcmVGaWxsID0gZ2V0SWNvbignZmlyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzQuMSA0NjkuMkEzNDcuNDkgMzQ3LjQ5IDAgMCAwIDc1MS4yIDM1NGwtMjkuMS0yNi43YTguMDkgOC4wOSAwIDAgMC0xMyAzLjNsLTEzIDM3LjNjLTguMSAyMy40LTIzIDQ3LjMtNDQuMSA3MC44LTEuNCAxLjUtMyAxLjktNC4xIDItMS4xLjEtMi44LS4xLTQuMy0xLjUtMS40LTEuMi0yLjEtMy0yLTQuOCAzLjctNjAuMi0xNC4zLTEyOC4xLTUzLjctMjAyQzU1NS4zIDE3MSA1MTAgMTIzLjEgNDUzLjQgODkuN2wtNDEuMy0yNC4zYy01LjQtMy4yLTEyLjMgMS0xMiA3LjNsMi4yIDQ4YzEuNSAzMi44LTIuMyA2MS44LTExLjMgODUuOS0xMSAyOS41LTI2LjggNTYuOS00NyA4MS41YTI5NS42NCAyOTUuNjQgMCAwIDEtNDcuNSA0Ni4xIDM1Mi42IDM1Mi42IDAgMCAwLTEwMC4zIDEyMS41QTM0Ny43NSAzNDcuNzUgMCAwIDAgMTYwIDYxMGMwIDQ3LjIgOS4zIDkyLjkgMjcuNyAxMzZhMzQ5LjQgMzQ5LjQgMCAwIDAgNzUuNSAxMTAuOWMzMi40IDMyIDcwIDU3LjIgMTExLjkgNzQuN0M0MTguNSA5NDkuOCA0NjQuNSA5NTkgNTEyIDk1OXM5My41LTkuMiAxMzYuOS0yNy4zQTM0OC42IDM0OC42IDAgMCAwIDc2MC44IDg1N2MzMi40LTMyIDU3LjgtNjkuNCA3NS41LTExMC45YTM0NC4yIDM0NC4yIDAgMCAwIDI3LjctMTM2YzAtNDguOC0xMC05Ni4yLTI5LjktMTQwLjl6JykpO1xuZXhwb3J0cy5GbGFnRmlsbCA9IGdldEljb24oJ2ZsYWcnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDMwNUg2MjRWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE4NHYtNDBjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djc4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjY0MGgyNDh2MTEzYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzdjMC0xNy43LTE0LjMtMzItMzItMzJ6JykpO1xuZXhwb3J0cy5Gb2xkZXJBZGRGaWxsID0gZ2V0SWNvbignZm9sZGVyLWFkZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjMyIDU3N2MwIDMuOC0zLjQgNy03LjUgN0g1NDB2ODQuOWMwIDMuOS0zLjIgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTg0aC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOCAzLjQtNyA3LjUtN0g0ODR2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjggMCA3IDMuMiA3IDcuMVY1MjhoODQuNWM0LjEgMCA3LjUgMy4yIDcuNSA3djQyeicpKTtcbmV4cG9ydHMuRm9sZGVyRmlsbCA9IGdldEljb24oJ2ZvbGRlcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnonKSk7XG5leHBvcnRzLkZvbGRlck9wZW5GaWxsID0gZ2V0SWNvbignZm9sZGVyLW9wZW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDQ0NEg4MjBWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJINDczTDM1NS43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6bS0xODAgMEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2aDE4OC41bDExOS42IDExNC40SDc0OFY0NDR6JykpO1xuZXhwb3J0cy5Gb3J3YXJkRmlsbCA9IGdldEljb24oJ2ZvcndhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNODI1LjggNDk4TDUzOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDgyNS44IDUyNmM4LjMtNy4yIDguMy0yMC44IDAtMjh6bS0zMjAgMEwyMTguNCAyNDkuOWMtMTAuNy05LjItMjYuNC0uOS0yNi40IDE0djQ5Ni4zYzAgMTQuOSAxNS43IDIzLjIgMjYuNCAxNEw1MDUuOCA1MjZjNC4xLTMuNiA2LjItOC44IDYuMi0xNCAwLTUuMi0yLjEtMTAuNC02LjItMTR6JykpO1xuZXhwb3J0cy5Gcm93bkZpbGwgPSBnZXRJY29uKCdmcm93bicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTM3NiAyNzJoLTQ4LjFjLTQuMiAwLTcuOC0zLjItOC4xLTcuNEM2MDQgNjM2LjEgNTYyLjUgNTk3IDUxMiA1OTdzLTkyLjEgMzkuMS05NS44IDg4LjZjLS4zIDQuMi0zLjkgNy40LTguMSA3LjRIMzYwYTggOCAwIDAgMS04LTguNGM0LjQtODQuMyA3NC41LTE1MS42IDE2MC0xNTEuNnMxNTUuNiA2Ny4zIDE2MCAxNTEuNmE4IDggMCAwIDEtOCA4LjR6bTI0LTIyNGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5GdW5kRmlsbCA9IGdldEljb24oJ2Z1bmQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI2IDE2NEg5NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05Mi4zIDE5NC40bC0yOTcgMjk3LjJhOC4wMyA4LjAzIDAgMCAxLTExLjMgMEw0MTAuOSA1NDEuMSAyMzguNCA3MTMuN2E4LjAzIDguMDMgMCAwIDEtMTEuMyAwbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM2wyMTQuOS0yMTVjMy4xLTMuMSA4LjItMy4xIDExLjMgMEw1MzEgNTY1bDI1NC41LTI1NC42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzYuOCAzNi44YzMuMiAzIDMuMiA4LjEuMSAxMS4yeicpKTtcbmV4cG9ydHMuRnVubmVsUGxvdEZpbGwgPSBnZXRJY29uKCdmdW5uZWwtcGxvdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMzYuNyA1ODZoMzUwLjZsODQuOS0xNDhIMjUxLjh6bTU0My40LTQzMkgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4TDIxNSAzNzRoNTk0bDk4LjctMTcyYzEyLjItMjEuMy0zLjEtNDgtMjcuNi00OHpNMzQ5IDgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2NTBIMzQ5djE4OHonKSk7XG5leHBvcnRzLkdpZnRGaWxsID0gZ2V0SWNvbignZ2lmdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xNjAgODk0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI4NlY1NTBIMTYwdjM0NHptMzg2IDMyaDI4NmMxNy43IDAgMzItMTQuMyAzMi0zMlY1NTBINTQ2djM3NnptMzM0LTYxNkg3MzIuNGMxMy42LTIxLjQgMjEuNi00Ni44IDIxLjYtNzQgMC03Ni4xLTYxLjktMTM4LTEzOC0xMzgtNDEuNCAwLTc4LjcgMTguNC0xMDQgNDcuNC0yNS4zLTI5LTYyLjYtNDcuNC0xMDQtNDcuNC03Ni4xIDAtMTM4IDYxLjktMTM4IDEzOCAwIDI3LjIgNy45IDUyLjYgMjEuNiA3NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE0MGgzNjZWMzEwaDY4djE3MmgzNjZWMzQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAyLTRoLTcwYy0zOC42IDAtNzAtMzEuNC03MC03MHMzMS40LTcwIDcwLTcwIDcwIDMxLjQgNzAgNzB2NzB6bTEzOCAwaC03MHYtNzBjMC0zOC42IDMxLjQtNzAgNzAtNzBzNzAgMzEuNCA3MCA3MC0zMS40IDcwLTcwIDcweicpKTtcbmV4cG9ydHMuR2l0aHViRmlsbCA9IGdldEljb24oJ2dpdGh1YicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTEuNiA3Ni4zQzI2NC4zIDc2LjIgNjQgMjc2LjQgNjQgNTIzLjUgNjQgNzE4LjkgMTg5LjMgODg1IDM2My44IDk0NmMyMy41IDUuOSAxOS45LTEwLjggMTkuOS0yMi4ydi03Ny41Yy0xMzUuNyAxNS45LTE0MS4yLTczLjktMTUwLjMtODguOUMyMTUgNzI2IDE3MS41IDcxOCAxODQuNSA3MDNjMzAuOS0xNS45IDYyLjQgNCA5OC45IDU3LjkgMjYuNCAzOS4xIDc3LjkgMzIuNSAxMDQgMjYgNS43LTIzLjUgMTcuOS00NC41IDM0LjctNjAuOC0xNDAuNi0yNS4yLTE5OS4yLTExMS0xOTkuMi0yMTMgMC00OS41IDE2LjMtOTUgNDguMy0xMzEuNy0yMC40LTYwLjUgMS45LTExMi4zIDQuOS0xMjAgNTguMS01LjIgMTE4LjUgNDEuNiAxMjMuMiA0NS4zIDMzLTguOSA3MC43LTEzLjYgMTEyLjktMTMuNiA0Mi40IDAgODAuMiA0LjkgMTEzLjUgMTMuOSAxMS4zLTguNiA2Ny4zLTQ4LjggMTIxLjMtNDMuOSAyLjkgNy43IDI0LjcgNTguMyA1LjUgMTE4IDMyLjQgMzYuOCA0OC45IDgyLjcgNDguOSAxMzIuMyAwIDEwMi4yLTU5IDE4OC4xLTIwMCAyMTIuOWExMjcuNSAxMjcuNSAwIDAgMSAzOC4xIDkxdjExMi41Yy44IDkgMCAxNy45IDE1IDE3LjkgMTc3LjEtNTkuNyAzMDQuNi0yMjcgMzA0LjYtNDI0LjEgMC0yNDcuMi0yMDAuNC00NDcuMy00NDcuNS00NDcuM3onKSk7XG5leHBvcnRzLkdpdGxhYkZpbGwgPSBnZXRJY29uKCdnaXRsYWInLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTEwLjUgNTUzLjJsLTEwOS0zNzAuOGMtNi44LTIwLjQtMjMuMS0zNC4xLTQ0LjktMzQuMXMtMzkuNSAxMi4zLTQ2LjMgMzIuN2wtNzIuMiAyMTUuNEgzODYuMkwzMTQgMTgxLjFjLTYuOC0yMC40LTI0LjUtMzIuNy00Ni4zLTMyLjdzLTM5LjUgMTMuNi00NC45IDM0LjFMMTEzLjkgNTUzLjJjLTQuMSAxMy42IDEuNCAyOC42IDEyLjMgMzYuOGwzODUuNCAyODkgMzg2LjctMjg5YzEwLjgtOC4xIDE2LjMtMjMuMSAxMi4yLTM2Ljh6JykpO1xuZXhwb3J0cy5Hb2xkZW5GaWxsID0gZ2V0SWNvbignZ29sZGVuJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNS45IDgwNi43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6bS00NzAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuR29vZ2xlQ2lyY2xlRmlsbCA9IGdldEljb24oJ2dvb2dsZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE2NyA2MzMuNkM2MzguNCA3MzUgNTgzIDc1NyA1MTYuOSA3NTdjLTk1LjcgMC0xNzguNS01NC45LTIxOC44LTEzNC45QzI4MS41IDU4OSAyNzIgNTUxLjYgMjcyIDUxMnM5LjUtNzcgMjYuMS0xMTAuMWM0MC4zLTgwLjEgMTIzLjEtMTM1IDIxOC44LTEzNSA2NiAwIDEyMS40IDI0LjMgMTYzLjkgNjMuOEw2MTAuNiA0MDFjLTI1LjQtMjQuMy01Ny43LTM2LjYtOTMuNi0zNi42LTYzLjggMC0xMTcuOCA0My4xLTEzNy4xIDEwMS00LjkgMTQuNy03LjcgMzAuNC03LjcgNDYuNnMyLjggMzEuOSA3LjcgNDYuNmMxOS4zIDU3LjkgNzMuMyAxMDEgMTM3IDEwMSAzMyAwIDYxLTguNyA4Mi45LTIzLjQgMjYtMTcuNCA0My4yLTQzLjMgNDguOS03NEg1MTYuOXYtOTQuOGgyMzAuN2MyLjkgMTYuMSA0LjQgMzIuOCA0LjQgNTAuMSAwIDc0LjctMjYuNyAxMzcuNC03MyAxODAuMXonKSk7XG5leHBvcnRzLkdvb2dsZVBsdXNDaXJjbGVGaWxsID0gZ2V0SWNvbignZ29vZ2xlLXBsdXMtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zNi41IDU1OC44Yy00My45IDYxLjgtMTMyLjEgNzkuOC0yMDAuOSA1My4zLTY5LTI2LjMtMTE4LTk5LjItMTEyLjEtMTczLjUgMS41LTkwLjkgODUuMi0xNzAuNiAxNzYuMS0xNjcuNSA0My42LTIgODQuNiAxNi45IDExOCA0My42LTE0LjMgMTYuMi0yOSAzMS44LTQ0LjggNDYuMy00MC4xLTI3LjctOTcuMi0zNS42LTEzNy4zLTMuNi01Ny40IDM5LjctNjAgMTMzLjQtNC44IDE3Ni4xIDUzLjcgNDguNyAxNTUuMiAyNC41IDE3MC4xLTUwLjEtMzMuNi0uNS02Ny40IDAtMTAxLTEuMS0uMS0yMC4xLS4yLTQwLjEtLjEtNjAuMiA1Ni4yLS4yIDExMi41LS4zIDE2OC44LjIgMy4zIDQ3LjMtMyA5Ny41LTMyIDEzNi41ek03OTEgNTM2LjVjLTE2LjguMi0zMy42LjMtNTAuNC40LS4yIDE2LjgtLjMgMzMuNi0uMyA1MC40SDY5MGMtLjItMTYuOC0uMi0zMy41LS4zLTUwLjMtMTYuOC0uMi0zMy42LS4zLTUwLjQtLjV2LTUwLjFjMTYuOC0uMiAzMy42LS4zIDUwLjQtLjMuMS0xNi44LjMtMzMuNi40LTUwLjRoNTAuMmwuMyA1MC40YzE2LjguMiAzMy42LjIgNTAuNC4zdjUwLjF6JykpO1xuZXhwb3J0cy5Hb29nbGVQbHVzU3F1YXJlRmlsbCA9IGdldEljb24oJ2dvb2dsZS1wbHVzLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0OC41IDYyMi44Yy00My45IDYxLjgtMTMyLjEgNzkuOC0yMDAuOSA1My4zLTY5LTI2LjMtMTE4LTk5LjItMTEyLjEtMTczLjUgMS41LTkwLjkgODUuMi0xNzAuNiAxNzYuMS0xNjcuNSA0My42LTIgODQuNiAxNi45IDExOCA0My42LTE0LjMgMTYuMi0yOSAzMS44LTQ0LjggNDYuMy00MC4xLTI3LjctOTcuMi0zNS42LTEzNy4zLTMuNi01Ny40IDM5LjctNjAgMTMzLjQtNC44IDE3Ni4xIDUzLjcgNDguNyAxNTUuMiAyNC41IDE3MC4xLTUwLjEtMzMuNi0uNS02Ny40IDAtMTAxLTEuMS0uMS0yMC4xLS4yLTQwLjEtLjEtNjAuMiA1Ni4yLS4yIDExMi41LS4zIDE2OC44LjIgMy4zIDQ3LjMtMyA5Ny41LTMyIDEzNi41ek03OTEgNTM2LjVjLTE2LjguMi0zMy42LjMtNTAuNC40LS4yIDE2LjgtLjMgMzMuNi0uMyA1MC40SDY5MGMtLjItMTYuOC0uMi0zMy41LS4zLTUwLjMtMTYuOC0uMi0zMy42LS4zLTUwLjQtLjV2LTUwLjFjMTYuOC0uMiAzMy42LS4zIDUwLjQtLjMuMS0xNi44LjMtMzMuNi40LTUwLjRoNTAuMmwuMyA1MC40YzE2LjguMiAzMy42LjIgNTAuNC4zdjUwLjF6JykpO1xuZXhwb3J0cy5Hb29nbGVTcXVhcmVGaWxsID0gZ2V0SWNvbignZ29vZ2xlLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY3OSA2OTcuNkM2MzguNCA3MzUgNTgzIDc1NyA1MTYuOSA3NTdjLTk1LjcgMC0xNzguNS01NC45LTIxOC44LTEzNC45QTI0NS4wMiAyNDUuMDIgMCAwIDEgMjcyIDUxMmMwLTM5LjYgOS41LTc3IDI2LjEtMTEwLjEgNDAuMy04MC4xIDEyMy4xLTEzNSAyMTguOC0xMzUgNjYgMCAxMjEuNCAyNC4zIDE2My45IDYzLjhMNjEwLjYgNDAxYy0yNS40LTI0LjMtNTcuNy0zNi42LTkzLjYtMzYuNi02My44IDAtMTE3LjggNDMuMS0xMzcuMSAxMDEtNC45IDE0LjctNy43IDMwLjQtNy43IDQ2LjZzMi44IDMxLjkgNy43IDQ2LjZjMTkuMyA1Ny45IDczLjMgMTAxIDEzNyAxMDEgMzMgMCA2MS04LjcgODIuOS0yMy40IDI2LTE3LjQgNDMuMi00My4zIDQ4LjktNzRINTE2Ljl2LTk0LjhoMjMwLjdjMi45IDE2LjEgNC40IDMyLjggNC40IDUwLjEgMCA3NC43LTI2LjcgMTM3LjQtNzMgMTgwLjF6JykpO1xuZXhwb3J0cy5IZGRGaWxsID0gZ2V0SWNvbignaGRkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIyNGg3MDRWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1NiAyMTZjMCA0LjQtMy42IDgtOCA4SDI2NGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHpNMTYwIDkyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNzA0SDE2MHYyMjR6bTU3Ni0xMzZjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0xNjAgNjQwaDcwNFYzODRIMTYwdjI1NnptOTYtMTUyYzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgyNjRjLTQuNCAwLTgtMy42LTgtOHYtNDh6JykpO1xuZXhwb3J0cy5IZWFydEZpbGwgPSBnZXRJY29uKCdoZWFydCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjMgMjgzLjZhMjYwLjA0IDI2MC4wNCAwIDAgMC01Ni45LTgyLjggMjY0LjQgMjY0LjQgMCAwIDAtODQtNTUuNUEyNjUuMzQgMjY1LjM0IDAgMCAwIDY3OS43IDEyNWMtNDkuMyAwLTk3LjQgMTMuNS0xMzkuMiAzOS0xMCA2LjEtMTkuNSAxMi44LTI4LjUgMjAuMS05LTcuMy0xOC41LTE0LTI4LjUtMjAuMS00MS44LTI1LjUtODkuOS0zOS0xMzkuMi0zOS0zNS41IDAtNjkuOSA2LjgtMTAyLjQgMjAuMy0zMS40IDEzLTU5LjcgMzEuNy04NCA1NS41YTI1OC40NCAyNTguNDQgMCAwIDAtNTYuOSA4Mi44Yy0xMy45IDMyLjMtMjEgNjYuNi0yMSAxMDEuOSAwIDMzLjMgNi44IDY4IDIwLjMgMTAzLjMgMTEuMyAyOS41IDI3LjUgNjAuMSA0OC4yIDkxIDMyLjggNDguOSA3Ny45IDk5LjkgMTMzLjkgMTUxLjYgOTIuOCA4NS43IDE4NC43IDE0NC45IDE4OC42IDE0Ny4zbDIzLjcgMTUuMmMxMC41IDYuNyAyNCA2LjcgMzQuNSAwbDIzLjctMTUuMmMzLjktMi41IDk1LjctNjEuNiAxODguNi0xNDcuMyA1Ni01MS43IDEwMS4xLTEwMi43IDEzMy45LTE1MS42IDIwLjctMzAuOSAzNy02MS41IDQ4LjItOTEgMTMuNS0zNS4zIDIwLjMtNzAgMjAuMy0xMDMuMy4xLTM1LjMtNy02OS42LTIwLjktMTAxLjl6JykpO1xuZXhwb3J0cy5IaWdobGlnaHRGaWxsID0gZ2V0SWNvbignaGlnaGxpZ2h0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1Ny42IDUwNy40TDYwMy4yIDE1OC4yYTcuOSA3LjkgMCAwIDAtMTEuMiAwTDM1My4zIDM5My40YTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgNDAgMzkuNC0xMTcuMiAxMTUuM2E4LjAzIDguMDMgMCAwIDAtLjEgMTEuM2wuMS4xIDM5LjUgMzguOS0xODkuMSAxODdINzIuMWMtNC40IDAtOC4xIDMuNi04LjEgOFY4NjBjMCA0LjQgMy42IDggOCA4aDM0NC45YzIuMSAwIDQuMS0uOCA1LjYtMi4zbDc2LjEtNzUuNiA0MC40IDM5LjhhNy45IDcuOSAwIDAgMCAxMS4yIDBsMTE3LjEtMTE1LjYgNDAuMSAzOS41YTcuOSA3LjkgMCAwIDAgMTEuMiAwbDIzOC43LTIzNS4yYzMuNC0zIDMuNC04IC4zLTExLjJ6JykpO1xuZXhwb3J0cy5Ib21lRmlsbCA9IGdldEljb24oJ2hvbWUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTQ2LjUgNTA1TDUzNC42IDkzLjRhMzEuOTMgMzEuOTMgMCAwIDAtNDUuMiAwTDc3LjUgNTA1Yy0xMiAxMi0xOC44IDI4LjMtMTguOCA0NS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0aDQzLjRWOTA4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ0OFY3MTZoMTEydjIyNGgyNjUuOWMxNy43IDAgMzItMTQuMyAzMi0zMlY2MTQuM2g0My40YzE3IDAgMzMuMy02LjcgNDUuMy0xOC44IDI0LjktMjUgMjQuOS02NS41LS4xLTkwLjV6JykpO1xuZXhwb3J0cy5Ib3VyZ2xhc3NGaWxsID0gZ2V0SWNvbignaG91cmdsYXNzJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc0MiAzMThWMTg0aDg2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NnYxMzRjMCA4MS41IDQyLjQgMTUzLjIgMTA2LjQgMTk0LTY0IDQwLjgtMTA2LjQgMTEyLjUtMTA2LjQgMTk0djEzNGgtODZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNjMyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC04NlY3MDZjMC04MS41LTQyLjQtMTUzLjItMTA2LjQtMTk0IDY0LTQwLjggMTA2LjQtMTEyLjUgMTA2LjQtMTk0eicpKTtcbmV4cG9ydHMuSHRtbDVGaWxsID0gZ2V0SWNvbignaHRtbDUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTQ1LjIgOTZsNjYgNzQ2LjZMNTEyIDkyOGwyOTkuNi04NS40TDg3OC45IDk2SDE0NS4yem01OTUgMTc3LjFsLTQuOCA0Ny4yLTEuNyAxOS41SDM4Mi4zbDguMiA5NC4yaDMzNS4xbC0zLjMgMjQuMy0yMS4yIDI0Mi4yLTEuNyAxNi4yLTE4NyA1MS42di4zaC0xLjJsLS4zLjF2LS4xaC0uMWwtMTg4LjYtNTJMMzEwLjggNTcyaDkxLjFsNi41IDczLjIgMTAyLjQgMjcuN2guNGwxMDItMjcuNiAxMS40LTExOC42SDUxMC45di0uMUgzMDZsLTIyLjgtMjUzLjUtMS43LTI0LjNoNDYwLjNsLTEuNiAyNC4zeicpKTtcbmV4cG9ydHMuSWRjYXJkRmlsbCA9IGdldEljb24oJ2lkY2FyZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNzMgNDExYy0yOC41IDAtNTEuNyAyMy4zLTUxLjcgNTJzMjMuMiA1MiA1MS43IDUyIDUxLjctMjMuMyA1MS43LTUyLTIzLjItNTItNTEuNy01MnptNTU1LTI1MUg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTYwOCA0MjBjMC00LjQgMS04IDIuMy04aDEyMy40YzEuMyAwIDIuMyAzLjYgMi4zIDh2NDhjMCA0LjQtMSA4LTIuMyA4SDYxMC4zYy0xLjMgMC0yLjMtMy42LTIuMy04di00OHptLTg2IDI1M2gtNDMuOWMtNC4yIDAtNy42LTMuMy03LjktNy41LTMuOC01MC41LTQ2LTkwLjUtOTcuMi05MC41cy05My40IDQwLTk3LjIgOTAuNWMtLjMgNC4yLTMuNyA3LjUtNy45IDcuNUgyMjRhOCA4IDAgMCAxLTgtOC40YzIuOC01My4zIDMyLTk5LjcgNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMS0yOS4xLTc1LjVjMC02MS45IDQ5LjktMTEyIDExMS40LTExMnMxMTEuNCA1MC4xIDExMS40IDExMmMwIDI5LjEtMTEgNTUuNS0yOS4xIDc1LjUgNDIuNyAyNi41IDcxLjggNzIuOCA3NC42IDEyNi4xLjQgNC42LTMuMiA4LjQtNy44IDguNHptMjc4LjktNTNINjE1LjFjLTMuOSAwLTcuMS0zLjYtNy4xLTh2LTQ4YzAtNC40IDMuMi04IDcuMS04aDE4NS43YzMuOSAwIDcuMSAzLjYgNy4xIDh2NDhoLjFjMCA0LjQtMy4yIDgtNy4xIDh6JykpO1xuZXhwb3J0cy5JZUNpcmNsZUZpbGwgPSBnZXRJY29uKCdpZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjkzLjYgMjg0LjRjLTI0IDAtNTEuMSAxMS43LTcyLjYgMjIgNDYuMyAxOCA4NiA1Ny4zIDExMi4zIDk5LjYgNy4xLTE4LjkgMTQuNi00Ny45IDE0LjYtNjcuOSAwLTMyLTIyLjgtNTMuNy01NC4zLTUzLjd6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNTMuOSA0OTIuOUg0MzcuMWMwIDEwMC40IDE0NC4zIDEzNiAxOTYuOCA0Ny40aDEyMC44Yy0zMi42IDkxLjctMTE5LjcgMTQ2LTIxNi44IDE0Ni0zNS4xIDAtNzAuMy0uMS0xMDEuNy0xNS42LTg3LjQgNDQuNS0xODAuMyA1Ni42LTE4MC4zLTQyIDAtNDUuOCAyMy4yLTEwNy4xIDQ0LTE0NUMzMzUgNDg0IDM4MS4zIDQyMi44IDQzNS42IDM3NC41Yy00My43IDE4LjktOTEuMSA2Ni4zLTEyMiAxMDEuMiAyNS45LTExMi44IDEyOS41LTE5My42IDIzNy4xLTE4Ni41IDEzMC01OS44IDIwOS43LTM0LjEgMjA5LjcgMzguNiAwIDI3LjQtMTAuNiA2My4zLTIxLjQgODcuOSAyNS4yIDQ1LjUgMzMuMyA5Ny42IDI2LjkgMTQxLjJ6TTU0MC41IDM5OS4xYy01My43IDAtMTAyIDM5LjctMTA0IDk0LjloMjA4Yy0yLTU1LjEtNTAuNi05NC45LTEwNC05NC45ek0zMjAuNiA2MDIuOWMtNzMgMTUyLjQgMTEuNSAxNzIuMiAxMDAuMyAxMjMuMy00Ni42LTI3LjUtODIuNi03Mi4yLTEwMC4zLTEyMy4zeicpKTtcbmV4cG9ydHMuSWVTcXVhcmVGaWxsID0gZ2V0SWNvbignaWUtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzY1LjkgNTU2LjlINDM3LjFjMCAxMDAuNCAxNDQuMyAxMzYgMTk2LjggNDcuNGgxMjAuOGMtMzIuNiA5MS43LTExOS43IDE0Ni0yMTYuOCAxNDYtMzUuMSAwLTcwLjMtLjEtMTAxLjctMTUuNi04Ny40IDQ0LjUtMTgwLjMgNTYuNi0xODAuMy00MiAwLTQ1LjggMjMuMi0xMDcuMSA0NC0xNDVDMzM1IDQ4NCAzODEuMyA0MjIuOCA0MzUuNiAzNzQuNWMtNDMuNyAxOC45LTkxLjEgNjYuMy0xMjIgMTAxLjIgMjUuOS0xMTIuOCAxMjkuNS0xOTMuNiAyMzcuMS0xODYuNSAxMzAtNTkuOCAyMDkuNy0zNC4xIDIwOS43IDM4LjYgMCAyNy40LTEwLjYgNjMuMy0yMS40IDg3LjkgMjUuMiA0NS41IDMzLjMgOTcuNiAyNi45IDE0MS4yem0tNzIuMy0yNzIuNWMtMjQgMC01MS4xIDExLjctNzIuNiAyMiA0Ni4zIDE4IDg2IDU3LjMgMTEyLjMgOTkuNiA3LjEtMTguOSAxNC42LTQ3LjkgMTQuNi02Ny45IDAtMzItMjIuOC01My43LTU0LjMtNTMuN3pNNTQwLjUgMzk5LjFjLTUzLjcgMC0xMDIgMzkuNy0xMDQgOTQuOWgyMDhjLTItNTUuMS01MC42LTk0LjktMTA0LTk0Ljl6TTMyMC42IDYwMi45Yy03MyAxNTIuNCAxMS41IDE3Mi4yIDEwMC4zIDEyMy4zLTQ2LjYtMjcuNS04Mi42LTcyLjItMTAwLjMtMTIzLjN6JykpO1xuZXhwb3J0cy5JbmZvQ2lyY2xlRmlsbCA9IGdldEljb24oJ2luZm8tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zMiA2NjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5JbnN0YWdyYW1GaWxsID0gZ2V0SWNvbignaW5zdGFncmFtJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAzNzguN2MtNzMuNCAwLTEzMy4zIDU5LjktMTMzLjMgMTMzLjNTNDM4LjYgNjQ1LjMgNTEyIDY0NS4zIDY0NS4zIDU4NS40IDY0NS4zIDUxMiA1ODUuNCAzNzguNyA1MTIgMzc4Ljd6TTkxMS44IDUxMmMwLTU1LjIuNS0xMDkuOS0yLjYtMTY1LTMuMS02NC0xNy43LTEyMC44LTY0LjUtMTY3LjYtNDYuOS00Ni45LTEwMy42LTYxLjQtMTY3LjYtNjQuNS01NS4yLTMuMS0xMDkuOS0yLjYtMTY1LTIuNi01NS4yIDAtMTA5LjktLjUtMTY1IDIuNi02NCAzLjEtMTIwLjggMTcuNy0xNjcuNiA2NC41QzEzMi42IDIyNi4zIDExOC4xIDI4MyAxMTUgMzQ3Yy0zLjEgNTUuMi0yLjYgMTA5LjktMi42IDE2NXMtLjUgMTA5LjkgMi42IDE2NWMzLjEgNjQgMTcuNyAxMjAuOCA2NC41IDE2Ny42IDQ2LjkgNDYuOSAxMDMuNiA2MS40IDE2Ny42IDY0LjUgNTUuMiAzLjEgMTA5LjkgMi42IDE2NSAyLjYgNTUuMiAwIDEwOS45LjUgMTY1LTIuNiA2NC0zLjEgMTIwLjgtMTcuNyAxNjcuNi02NC41IDQ2LjktNDYuOSA2MS40LTEwMy42IDY0LjUtMTY3LjYgMy4yLTU1LjEgMi42LTEwOS44IDIuNi0xNjV6TTUxMiA3MTcuMWMtMTEzLjUgMC0yMDUuMS05MS42LTIwNS4xLTIwNS4xUzM5OC41IDMwNi45IDUxMiAzMDYuOSA3MTcuMSAzOTguNSA3MTcuMSA1MTIgNjI1LjUgNzE3LjEgNTEyIDcxNy4xem0yMTMuNS0zNzAuN2MtMjYuNSAwLTQ3LjktMjEuNC00Ny45LTQ3LjlzMjEuNC00Ny45IDQ3LjktNDcuOSA0Ny45IDIxLjQgNDcuOSA0Ny45YTQ3Ljg0IDQ3Ljg0IDAgMCAxLTQ3LjkgNDcuOXonKSk7XG5leHBvcnRzLkluc3VyYW5jZUZpbGwgPSBnZXRJY29uKCdpbnN1cmFuY2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTE5LjkgMzU4LjhoOTcuOXY0MS42aC05Ny45em0zNDctMTg4LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek00MTEuMyA2NTZoLS4yYzAgNC40LTMuNiA4LTggOGgtMzcuM2MtNC40IDAtOC0zLjYtOC04VjQ3MS40Yy03LjcgOS4yLTE1LjQgMTcuOS0yMy4xIDI2YTYuMDQgNi4wNCAwIDAgMS0xMC4yLTIuNGwtMTMuMi00My41Yy0uNi0yLS4yLTQuMSAxLjItNS42IDM3LTQzLjQgNjQuNy05NS4xIDgyLjItMTUzLjYgMS4xLTMuNSA1LTUuMyA4LjQtMy43bDM4LjYgMTguM2MyLjcgMS4zIDQuMSA0LjQgMy4yIDcuMmE0MjkuMiA0MjkuMiAwIDAgMS0zMy42IDc5VjY1NnptMjk2LjUtNDkuMmwtMjYuMyAzNS4zYTUuOTIgNS45MiAwIDAgMS04LjkuN2MtMzAuNi0yOS4zLTU2LjgtNjUuMi03OC4xLTEwNi45VjY1NmMwIDQuNC0zLjYgOC04IDhoLTM2LjJjLTQuNCAwLTgtMy42LTgtOFY1MzZjLTIyIDQ0LjctNDkgODAuOC04MC42IDEwNy42YTUuOSA1LjkgMCAwIDEtOC45LTEuNEw0MzAgNjA1LjdhNiA2IDAgMCAxIDEuNi04LjFjMjguNi0yMC4zIDUxLjktNDUuMiA3MS03NmgtNTUuMWMtNC40IDAtOC0zLjYtOC04VjQ3OGMwLTQuNCAzLjYtOCA4LThoOTQuOXYtMTguNmgtNjUuOWMtNC40IDAtOC0zLjYtOC04VjMxNmMwLTQuNCAzLjYtOCA4LThoMTg0LjdjNC40IDAgOCAzLjYgOCA4djEyNy4yYzAgNC40LTMuNiA4LTggOGgtNjYuN3YxOC42aDk4LjhjNC40IDAgOCAzLjYgOCA4djM1LjZjMCA0LjQtMy42IDgtOCA4aC01OWMxOC4xIDI5LjEgNDEuOCA1NC4zIDcyLjMgNzYuOSAyLjYgMi4xIDMuMiA1LjkgMS4yIDguNXonKSk7XG5leHBvcnRzLkludGVyYWN0aW9uRmlsbCA9IGdldEljb24oJ2ludGVyYWN0aW9uJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzI2IDU4NS43YzAgNTUuMy00NC43IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNy02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuN2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uMyAxMC45IDUuM3Y1My40aDIwNS43YzE5LjYgMCAzNS41LTE2IDM1LjUtMzUuNnYtNzguOWMwLTMuNyAzLTYuOCA2LjgtNi44aDUwLjdjMy43IDAgNi44IDMgNi44IDYuOHY3OS4xem0tMi42LTIwOS45bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuMy0xMC45LTUuM3YtNTMuNEgzOTcuN2MtMTkuNiAwLTM1LjUgMTYtMzUuNSAzNS42djc4LjljMCAzLjctMyA2LjgtNi44IDYuOGgtNTAuN2MtMy43IDAtNi44LTMtNi44LTYuOHYtNzguOWMwLTU1LjMgNDQuNy0xMDAuMSA5OS43LTEwMC4xaDIwNS43di01My40YzAtNS43IDYuNS04LjggMTAuOS01LjNsMTA5LjEgODUuN2MzLjYgMi41IDMuNiA3LjguMSAxMC41eicpKTtcbmV4cG9ydHMuSW50ZXJhdGlvbkZpbGwgPSBnZXRJY29uKCdpbnRlcmF0aW9uJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzI2IDU4NS43YzAgNTUuMy00NC43IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNy02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuN2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uMyAxMC45IDUuM3Y1My40aDIwNS43YzE5LjYgMCAzNS41LTE2IDM1LjUtMzUuNnYtNzguOWMwLTMuNyAzLTYuOCA2LjgtNi44aDUwLjdjMy43IDAgNi44IDMgNi44IDYuOHY3OS4xem0tMi42LTIwOS45bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuMy0xMC45LTUuM3YtNTMuNEgzOTcuN2MtMTkuNiAwLTM1LjUgMTYtMzUuNSAzNS42djc4LjljMCAzLjctMyA2LjgtNi44IDYuOGgtNTAuN2MtMy43IDAtNi44LTMtNi44LTYuOHYtNzguOWMwLTU1LjMgNDQuNy0xMDAuMSA5OS43LTEwMC4xaDIwNS43di01My40YzAtNS43IDYuNS04LjggMTAuOS01LjNsMTA5LjEgODUuN2MzLjYgMi41IDMuNiA3LjguMSAxMC41eicpKTtcbmV4cG9ydHMuTGF5b3V0RmlsbCA9IGdldEljb24oJ2xheW91dCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zODQgOTEyaDQ5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDBIMzg0djU3MnptNDk2LTgwMEgzODR2MTY0aDUyOFYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS03NjggMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE3NlYxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnonKSk7XG5leHBvcnRzLkxlZnRDaXJjbGVGaWxsID0gZ2V0SWNvbignbGVmdC1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTEwNCAzMTYuOWMwIDEwLjItNC45IDE5LjktMTMuMiAyNS45TDQ1Ny40IDUxMmwxNDUuNCAxMDUuMmM4LjMgNiAxMy4yIDE1LjYgMTMuMiAyNS45VjY5MGMwIDYuNS03LjQgMTAuMy0xMi43IDYuNWwtMjQ2LTE3OGE3Ljk1IDcuOTUgMCAwIDEgMC0xMi45bDI0Ni0xNzhhOCA4IDAgMCAxIDEyLjcgNi41djQ2Ljh6JykpO1xuZXhwb3J0cy5MZWZ0U3F1YXJlRmlsbCA9IGdldEljb24oJ2xlZnQtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjI0IDM4MC45YzAgMTAuMi00LjkgMTkuOS0xMy4yIDI1LjlMNDY1LjQgNTEybDE0NS40IDEwNS4yYzguMyA2IDEzLjIgMTUuNiAxMy4yIDI1LjlWNjkwYzAgNi41LTcuNCAxMC4zLTEyLjcgNi41bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAgMSAwLTEyLjlsMjQ2LTE3OGM1LjMtMy44IDEyLjcgMCAxMi43IDYuNXY0Ni44eicpKTtcbmV4cG9ydHMuTGlrZUZpbGwgPSBnZXRJY29uKCdsaWtlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NS45IDUzMy43YzE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtNDQuOS0yNS4xLTg3LjQtNjUuNS0xMTEuMWE2Ny42NyA2Ny42NyAwIDAgMC0zNC4zLTkuM0g1NzIuNGw2LTEyMi45YzEuNC0yOS43LTkuMS01Ny45LTI5LjUtNzkuNEExMDYuNjIgMTA2LjYyIDAgMCAwIDQ3MSA5OS45Yy01MiAwLTk4IDM1LTExMS44IDg1LjFsLTg1LjkgMzExaC0uM3Y0MjhoNDcyLjNjOS4yIDAgMTguMi0xLjggMjYuNS01LjQgNDcuNi0yMC4zIDc4LjMtNjYuOCA3OC4zLTExOC40IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43LS4yLTEyLjYtMi0yNS4xLTUuNi0zNy4xek0xMTIgNTI4djM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVY0OTZoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnonKSk7XG5leHBvcnRzLkxvY2tGaWxsID0gZ2V0SWNvbignbG9jaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNDY0aC02OFYyNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzg4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHYyMjRoLTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTQwIDcwMXY1M2MwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMSAxIDU2IDB6bTE1Mi0yMzdIMzMyVjI0MGMwLTMwLjkgMjUuMS01NiA1Ni01NmgyNDhjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2MjI0eicpKTtcbmV4cG9ydHMuTGlua2VkaW5GaWxsID0gZ2V0SWNvbignbGlua2VkaW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zNDkuMyA3OTMuN0gyMzAuNlY0MTEuOWgxMTguN3YzODEuOHptLTU5LjMtNDM0YTY4LjggNjguOCAwIDEgMSA2OC44LTY4LjhjLS4xIDM4LTMwLjkgNjguOC02OC44IDY4Ljh6bTUwMy43IDQzNEg2NzUuMVY2MDhjMC00NC4zLS44LTEwMS4yLTYxLjctMTAxLjItNjEuNyAwLTcxLjIgNDguMi03MS4yIDk4djE4OC45SDQyMy43VjQxMS45aDExMy44djUyLjJoMS42YzE1LjgtMzAgNTQuNS02MS43IDExMi4zLTYxLjcgMTIwLjIgMCAxNDIuMyA3OS4xIDE0Mi4zIDE4MS45djIwOS40eicpKTtcbmV4cG9ydHMuTWFpbEZpbGwgPSBnZXRJY29uKCdtYWlsJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAuOCAxMDguOUw1MzEuNyA1MTQuNGMtNy44IDYuMS0xOC43IDYuMS0yNi41IDBMMTg5LjYgMjY4LjlBNy4yIDcuMiAwIDAgMSAxOTQgMjU2aDY0OC44YTcuMiA3LjIgMCAwIDEgNC40IDEyLjl6JykpO1xuZXhwb3J0cy5NZWRpY2luZUJveEZpbGwgPSBnZXRJY29uKCdtZWRpY2luZS1ib3gnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM5LjIgMjc4LjFhMzIgMzIgMCAwIDAtMzAuNC0yMi4xSDczNlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMTJoLTcyLjhhMzEuOSAzMS45IDAgMCAwLTMwLjQgMjIuMUwxMTIgNTAydjM3OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTAybC03Mi44LTIyMy45ek02NjAgNjI4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2MzZIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDY0YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh2NDh6bTQtMzcySDM2MHYtNzJoMzA0djcyeicpKTtcbmV4cG9ydHMuTWVkaXVtQ2lyY2xlRmlsbCA9IGdldEljb24oJ21lZGl1bS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI1NiAyNTMuN2wtNDAuOCAzOS4xYy0zLjYgMi43LTUuMyA3LjEtNC42IDExLjR2Mjg3LjdjLS43IDQuNCAxIDguOCA0LjYgMTEuNGw0MCAzOS4xdjguN0g1NjYuNHYtOC4zbDQxLjMtNDAuMWM0LjEtNC4xIDQuMS01LjMgNC4xLTExLjRWNDIyLjVsLTExNSAyOTEuNmgtMTUuNUwzNDcuNSA0MjIuNVY2MThjLTEuMiA4LjIgMS43IDE2LjUgNy41IDIyLjRsNTMuOCA2NS4xdjguN0gyNTZ2LTguN2w1My44LTY1LjFhMjYuMSAyNi4xIDAgMCAwIDctMjIuNFYzOTJjLjctNi4zLTEuNy0xMi40LTYuNS0xNi43bC00Ny44LTU3LjZWMzA5SDQxMWwxMTQuNiAyNTEuNSAxMDAuOS0yNTEuM0g3Njh2OC41eicpKTtcbmV4cG9ydHMuTWVkaXVtU3F1YXJlRmlsbCA9IGdldEljb24oJ21lZGl1bS1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NjggMzE3LjdsLTQwLjggMzkuMWMtMy42IDIuNy01LjMgNy4xLTQuNiAxMS40djI4Ny43Yy0uNyA0LjQgMSA4LjggNC42IDExLjRsNDAgMzkuMXY4LjdINTY2LjR2LTguM2w0MS4zLTQwLjFjNC4xLTQuMSA0LjEtNS4zIDQuMS0xMS40VjQyMi41bC0xMTUgMjkxLjZoLTE1LjVMMzQ3LjUgNDIyLjVWNjE4Yy0xLjIgOC4yIDEuNyAxNi41IDcuNSAyMi40bDUzLjggNjUuMXY4LjdIMjU2di04LjdsNTMuOC02NS4xYTI2LjEgMjYuMSAwIDAgMCA3LTIyLjRWMzkyYy43LTYuMy0xLjctMTIuNC02LjUtMTYuN2wtNDcuOC01Ny42VjMwOUg0MTFsMTE0LjYgMjUxLjUgMTAwLjktMjUxLjNINzY4djguNXonKSk7XG5leHBvcnRzLk1laEZpbGwgPSBnZXRJY29uKCdtZWgnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0zODQgMjAwYzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDMwNGM0LjQgMCA4IDMuNiA4IDh2NDh6bTE2LTE1MmE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5NZXNzYWdlRmlsbCA9IGdldEljb24oJ21lc3NhZ2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjMgMzM4LjRhNDQ3LjU3IDQ0Ny41NyAwIDAgMC05Ni4xLTE0My4zIDQ0My4wOSA0NDMuMDkgMCAwIDAtMTQzLTk2LjNBNDQzLjkxIDQ0My45MSAwIDAgMCA1MTIgNjRoLTJjLTYwLjUuMy0xMTkgMTIuMy0xNzQuMSAzNS45YTQ0NC4wOCA0NDQuMDggMCAwIDAtMTQxLjcgOTYuNSA0NDUgNDQ1IDAgMCAwLTk1IDE0Mi44QTQ0OS44OSA0NDkuODkgMCAwIDAgNjUgNTE0LjFjLjMgNjkuNCAxNi45IDEzOC4zIDQ3LjkgMTk5Ljl2MTUyYzAgMjUuNCAyMC42IDQ2IDQ1LjkgNDZoMTUxLjhhNDQ3LjcyIDQ0Ny43MiAwIDAgMCAxOTkuNSA0OGgyLjFjNTkuOCAwIDExNy43LTExLjYgMTcyLjMtMzQuM0E0NDMuMiA0NDMuMiAwIDAgMCA4MjcgODMwLjVjNDEuMi00MC45IDczLjYtODguNyA5Ni4zLTE0MiAyMy41LTU1LjIgMzUuNS0xMTMuOSAzNS44LTE3NC41LjItNjAuOS0xMS42LTEyMC0zNC44LTE3NS42ek0zMTIuNCA1NjBjLTI2LjQgMC00Ny45LTIxLjUtNDcuOS00OHMyMS41LTQ4IDQ3LjktNDggNDcuOSAyMS41IDQ3LjkgNDgtMjEuNCA0OC00Ny45IDQ4em0xOTkuNiAwYy0yNi40IDAtNDcuOS0yMS41LTQ3LjktNDhzMjEuNS00OCA0Ny45LTQ4IDQ3LjkgMjEuNSA0Ny45IDQ4LTIxLjUgNDgtNDcuOSA0OHptMTk5LjYgMGMtMjYuNCAwLTQ3LjktMjEuNS00Ny45LTQ4czIxLjUtNDggNDcuOS00OCA0Ny45IDIxLjUgNDcuOSA0OC0yMS41IDQ4LTQ3LjkgNDh6JykpO1xuZXhwb3J0cy5NaW51c0NpcmNsZUZpbGwgPSBnZXRJY29uKCdtaW51cy1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE5MiA0NzJjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzY4YzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLk1pbnVzU3F1YXJlRmlsbCA9IGdldEljb24oJ21pbnVzLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcwNCA1MzZjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzY4YzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLk1vYmlsZUZpbGwgPSBnZXRJY29uKCdtb2JpbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQ0IDYySDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjZjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTUxMiA4MjRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweicpKTtcbmV4cG9ydHMuTW9uZXlDb2xsZWN0RmlsbCA9IGdldEljb24oJ21vbmV5LWNvbGxlY3QnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTExLjUgNjk5LjdhOCA4IDAgMCAwLTEwLjMtNC44TDg0MCA3MTcuMlYxNzljMC0zNy42LTMwLjQtNjgtNjgtNjhIMjUyYy0zNy42IDAtNjggMzAuNC02OCA2OHY1MzguMmwtNjEuMy0yMi4zYy0uOS0uMy0xLjgtLjUtMi43LS41LTQuNCAwLTggMy42LTggOFY3NjJjMCAzLjMgMi4xIDYuMyA1LjMgNy41TDUwMSA5MDkuMWM3LjEgMi42IDE0LjggMi42IDIxLjkgMGwzODMuOC0xMzkuNWMzLjItMS4yIDUuMy00LjIgNS4zLTcuNXYtNTkuNmMwLTEtLjItMS45LS41LTIuOHptLTI0My44LTM3N0w1NjQgNTE0LjNoNTcuNmM0LjQgMCA4IDMuNiA4IDh2MjcuMWMwIDQuNC0zLjYgOC04IDhoLTc2LjN2MzloNzYuM2M0LjQgMCA4IDMuNiA4IDh2MjcuMWMwIDQuNC0zLjYgOC04IDhoLTc2LjNWNzAzYzAgNC40LTMuNiA4LTggOGgtNDkuOWMtNC40IDAtOC0zLjYtOC04di02My40aC03NmMtNC40IDAtOC0zLjYtOC04di0yNy4xYzAtNC40IDMuNi04IDgtOGg3NnYtMzloLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDU3TDM1Ni41IDMyMi44Yy0yLjEtMy44LS43LTguNyAzLjItMTAuOCAxLjItLjcgMi41LTEgMy44LTFoNTUuN2E4IDggMCAwIDEgNy4xIDQuNEw1MTEgNDg0LjJoMy4zTDU5OSAzMTUuNGMxLjMtMi43IDQuMS00LjQgNy4xLTQuNGg1NC41YzQuNCAwIDggMy42IDguMSA3LjkgMCAxLjMtLjQgMi42LTEgMy44eicpKTtcbmV4cG9ydHMuUGF1c2VDaXJjbGVGaWxsID0gZ2V0SWNvbigncGF1c2UtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tODAgNjAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6bTIyNCAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6JykpO1xuZXhwb3J0cy5QYXlDaXJjbGVGaWxsID0gZ2V0SWNvbigncGF5LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY2LjYgMjQ2LjhMNTY3LjUgNTE1LjZoNjJjNC40IDAgOCAzLjYgOCA4djI5LjljMCA0LjQtMy42IDgtOCA4aC04MlY2MDNoODJjNC40IDAgOCAzLjYgOCA4djI5LjljMCA0LjQtMy42IDgtOCA4aC04MlY3MTdjMCA0LjQtMy42IDgtOCA4aC01NC4zYy00LjQgMC04LTMuNi04LTh2LTY4LjFoLTgxLjdjLTQuNCAwLTgtMy42LTgtOFY2MTFjMC00LjQgMy42LTggOC04aDgxLjd2LTQxLjVoLTgxLjdjLTQuNCAwLTgtMy42LTgtOHYtMjkuOWMwLTQuNCAzLjYtOCA4LThoNjEuNEwzNDUuNCAzMTAuOGE4LjA3IDguMDcgMCAwIDEgNy0xMS45aDYwLjdjMyAwIDUuOCAxLjcgNy4xIDQuNGw5MC42IDE4MGgzLjRsOTAuNi0xODBhOCA4IDAgMCAxIDcuMS00LjRoNTkuNWM0LjQgMCA4IDMuNiA4IDggLjIgMS40LS4yIDIuNy0uOCAzLjl6JykpO1xuZXhwb3J0cy5Ob3RpZmljYXRpb25GaWxsID0gZ2V0SWNvbignbm90aWZpY2F0aW9uJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJjLTMuOCAwLTcuNy43LTExLjYgMi4zTDI5MiAzNDUuOUgxMjhjLTguOCAwLTE2IDcuNC0xNiAxNi42djI5OWMwIDkuMiA3LjIgMTYuNiAxNiAxNi42aDEwMS42Yy0zLjcgMTEuNi01LjYgMjMuOS01LjYgMzYuNCAwIDY1LjkgNTMuOCAxMTkuNSAxMjAgMTE5LjUgNTUuNCAwIDEwMi4xLTM3LjYgMTE1LjktODguNGw0MDguNiAxNjQuMmMzLjkgMS41IDcuOCAyLjMgMTEuNiAyLjMgMTYuOSAwIDMyLTE0LjIgMzItMzMuMlYxNDUuMkM5MTIgMTI2LjIgODk3IDExMiA4ODAgMTEyek0zNDQgNzYyLjNjLTI2LjUgMC00OC0yMS40LTQ4LTQ3LjggMC0xMS4yIDMuOS0yMS45IDExLTMwLjRsODQuOSAzNC4xYy0yIDI0LjYtMjIuNyA0NC4xLTQ3LjkgNDQuMXonKSk7XG5leHBvcnRzLlBob25lRmlsbCA9IGdldEljb24oJ3Bob25lJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NS42IDIzMC4yTDc3OS4xIDEyMy44YTgwLjgzIDgwLjgzIDAgMCAwLTU3LjMtMjMuOGMtMjEuNyAwLTQyLjEgOC41LTU3LjQgMjMuOEw1NDkuOCAyMzguNGE4MC44MyA4MC44MyAwIDAgMC0yMy44IDU3LjNjMCAyMS43IDguNSA0Mi4xIDIzLjggNTcuNGw4My44IDgzLjhBMzkzLjgyIDM5My44MiAwIDAgMSA1NTMuMSA1NTMgMzk1LjM0IDM5NS4zNCAwIDAgMSA0MzcgNjMzLjhMMzUzLjIgNTUwYTgwLjgzIDgwLjgzIDAgMCAwLTU3LjMtMjMuOGMtMjEuNyAwLTQyLjEgOC41LTU3LjQgMjMuOEwxMjMuOCA2NjQuNWE4MC44OSA4MC44OSAwIDAgMC0yMy44IDU3LjRjMCAyMS43IDguNSA0Mi4xIDIzLjggNTcuNGwxMDYuMyAxMDYuM2MyNC40IDI0LjUgNTguMSAzOC40IDkyLjcgMzguNCA3LjMgMCAxNC4zLS42IDIxLjItMS44IDEzNC44LTIyLjIgMjY4LjUtOTMuOSAzNzYuNC0yMDEuN0M4MjguMiA2MTIuOCA4OTkuOCA0NzkuMiA5MjIuMyAzNDRjNi44LTQxLjMtNi45LTgzLjgtMzYuNy0xMTMuOHonKSk7XG5leHBvcnRzLlBpY3R1cmVGaWxsID0gZ2V0SWNvbigncGljdHVyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzM4IDMwNGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0IDI4LjctNjQgNjQtNjR6bTUxMy45IDQzNy4xYTguMTEgOC4xMSAwIDAgMS01LjIgMS45SDE3Ny4yYy00LjQgMC04LTMuNi04LTggMC0xLjkuNy0zLjcgMS45LTUuMmwxNzAuMy0yMDJjMi44LTMuNCA3LjktMy44IDExLjMtMSAuMy4zLjcuNiAxIDFsOTkuNCAxMTggMTU4LjEtMTg3LjVjMi44LTMuNCA3LjktMy44IDExLjMtMSAuMy4zLjcuNiAxIDFsMjI5LjYgMjcxLjZjMi42IDMuMyAyLjIgOC40LTEuMiAxMS4yeicpKTtcbmV4cG9ydHMuUGllQ2hhcnRGaWxsID0gZ2V0SWNvbigncGllLWNoYXJ0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2My4xIDUxOC41SDUwNS41VjE2MC45YzAtNC40LTMuNi04LTgtOGgtMjZhMzk4LjU3IDM5OC41NyAwIDAgMC0yODIuNSAxMTcgMzk3LjQ3IDM5Ny40NyAwIDAgMC04NS42IDEyN0M4Mi42IDQ0Ni4yIDcyIDQ5OC41IDcyIDU1Mi41UzgyLjYgNjU4LjcgMTAzLjQgNzA4YzIwLjEgNDcuNSA0OC45IDkwLjMgODUuNiAxMjcgMzYuNyAzNi43IDc5LjQgNjUuNSAxMjcgODUuNmEzOTYuNjQgMzk2LjY0IDAgMCAwIDE1NS42IDMxLjUgMzk4LjU3IDM5OC41NyAwIDAgMCAyODIuNS0xMTdjMzYuNy0zNi43IDY1LjUtNzkuNCA4NS42LTEyN2EzOTYuNjQgMzk2LjY0IDAgMCAwIDMxLjUtMTU1LjZ2LTI2Yy0uMS00LjQtMy43LTgtOC4xLTh6TTk1MSA0NjNsLTIuNi0yOC4yYy04LjUtOTItNDkuMy0xNzguOC0xMTUuMS0yNDQuM0EzOTguNSAzOTguNSAwIDAgMCA1ODguNCA3NS42TDU2MC4xIDczYy00LjctLjQtOC43IDMuMi04LjcgNy45djM4My43YzAgNC40IDMuNiA4IDggOGwzODMuNi0xYzQuNy0uMSA4LjQtNCA4LTguNnonKSk7XG5leHBvcnRzLlBsYXlDaXJjbGVGaWxsID0gZ2V0SWNvbigncGxheS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE0NC4xIDQ1NC45TDQzNy43IDY3Ny44YTguMDIgOC4wMiAwIDAgMS0xMi43LTYuNVYzNTMuN2E4IDggMCAwIDEgMTIuNy02LjVMNjU2LjEgNTA2YTcuOSA3LjkgMCAwIDEgMCAxMi45eicpKTtcbmV4cG9ydHMuUGxheVNxdWFyZUZpbGwgPSBnZXRJY29uKCdwbGF5LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY0MS43IDUyMC44TDQ0Mi4zIDY3Ny42Yy03LjQgNS44LTE4LjMuNi0xOC4zLTguOFYzNTUuM2MwLTkuNCAxMC45LTE0LjcgMTguMy04LjhsMTk5LjQgMTU2LjdhMTEuMiAxMS4yIDAgMCAxIDAgMTcuNnonKSk7XG5leHBvcnRzLlBsdXNDaXJjbGVGaWxsID0gZ2V0SWNvbigncGx1cy1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE5MiA0NzJjMCA0LjQtMy42IDgtOCA4SDU0NHYxNTJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjU0NEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE1MlYzMjhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNTJoMTUyYzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLlBsdXNTcXVhcmVGaWxsID0gZ2V0SWNvbigncGx1cy1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgNTM2YzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDh6JykpO1xuZXhwb3J0cy5Qb3VuZENpcmNsZUZpbGwgPSBnZXRJY29uKCdwb3VuZC1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE0NiA2NThjMCA0LjQtMy42IDgtOCA4SDM3Ni4yYy00LjQgMC04LTMuNi04LTh2LTM4LjVjMC0zLjcgMi41LTYuOSA2LjEtNy44IDQ0LTEwLjkgNzIuOC00OSA3Mi44LTk0LjIgMC0xNC43LTIuNS0yOS40LTUuOS00NC4ySDM3NGMtNC40IDAtOC0zLjYtOC04di0zMGMwLTQuNCAzLjYtOCA4LThoNTMuN2MtNy44LTI1LjEtMTQuNi01MC43LTE0LjYtNzcuMSAwLTc1LjggNTguNi0xMjAuMyAxNTEuNS0xMjAuMyAyNi41IDAgNTEuNCA1LjUgNzAuMyAxMi43IDMuMSAxLjIgNS4yIDQuMiA1LjIgNy41djM5LjVhOCA4IDAgMCAxLTEwLjYgNy42Yy0xNy45LTYuNC0zOS0xMC41LTYwLjQtMTAuNS01My4zIDAtODcuMyAyNi42LTg3LjMgNzAuMiAwIDI0LjcgNi4yIDQ3LjkgMTMuNCA3MC41aDExMmM0LjQgMCA4IDMuNiA4IDh2MzBjMCA0LjQtMy42IDgtOCA4aC05OC42YzMuMSAxMy4yIDUuMyAyNi45IDUuMyA0MSAwIDQwLjctMTYuNSA3My45LTQzLjkgOTEuMXY0LjdoMTgwYzQuNCAwIDggMy42IDggOFY3MjJ6JykpO1xuZXhwb3J0cy5QcmludGVyRmlsbCA9IGdldEljb24oJ3ByaW50ZXInLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzMyIDEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MTQ4aDQ0MFYxMjB6bTEyMCAyMTJIMTcyYy00NC4yIDAtODAgMzUuOC04MCA4MHYzMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4djEzMmMwIDQuNCAzLjYgOCA4IDhoNDI0YzQuNCAwIDgtMy42IDgtOFY3NzJoMTY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQxMmMwLTQ0LjItMzUuOC04MC04MC04MHpNNjY0IDg0NEgzNjBWNTY4aDMwNHYyNzZ6bTE2NC0zNjBjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di00MGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djQweicpKTtcbmV4cG9ydHMuUHJvZmlsZUZpbGwgPSBnZXRJY29uKCdwcm9maWxlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzgwIDY5NmMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTAtMTQ0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMC0xNDRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0zMDQgMjcyYzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTQ0YzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTQ0YzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6JykpO1xuZXhwb3J0cy5Qcm9qZWN0RmlsbCA9IGdldEljb24oJ3Byb2plY3QnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zNjggNzQ0YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NjR6bTE5Mi0yODBjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djE4NHptMTkyIDcyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYyNTZ6JykpO1xuZXhwb3J0cy5QdXNocGluRmlsbCA9IGdldEljb24oJ3B1c2hwaW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc4LjMgMzkyLjFMNjMxLjkgMTQ1LjdjLTYuNS02LjUtMTUtOS43LTIzLjUtOS43cy0xNyAzLjItMjMuNSA5LjdMNDIzLjggMzA2LjljLTEyLjItMS40LTI0LjUtMi0zNi44LTItNzMuMiAwLTE0Ni40IDI0LjEtMjA2LjUgNzIuMy0xNS40IDEyLjMtMTYuNiAzNS40LTIuNyA0OS40bDE4MS43IDE4MS43LTIxNS40IDIxNS4yYTE1LjggMTUuOCAwIDAgMC00LjYgOS44bC0zLjQgMzcuMmMtLjkgOS40IDYuNiAxNy40IDE1LjkgMTcuNC41IDAgMSAwIDEuNS0uMWwzNy4yLTMuNGMzLjctLjMgNy4yLTIgOS44LTQuNmwyMTUuNC0yMTUuNCAxODEuNyAxODEuN2M2LjUgNi41IDE1IDkuNyAyMy41IDkuNyA5LjcgMCAxOS4zLTQuMiAyNS45LTEyLjQgNTYuMy03MC4zIDc5LjctMTU4LjMgNzAuMi0yNDMuNGwxNjEuMS0xNjEuMWMxMi45LTEyLjggMTIuOS0zMy44IDAtNDYuOHonKSk7XG5leHBvcnRzLlByb3BlcnR5U2FmZXR5RmlsbCA9IGdldEljb24oJ3Byb3BlcnR5LXNhZmV0eScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTY0OC4zIDMzMi44bC04Ny43IDE2MS4xaDQ1LjdjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40djI5LjdoNjMuNGM1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjRWNjU4YzAgNS41LTQuNSAxMC0xMCAxMGgtNDEuM2MtNS41IDAtMTAtNC41LTEwLTEwdi01MS44aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDYzLjF2LTI5LjdoLTYzLjFjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNDUuMmwtODgtMTYxLjFjLTIuNi00LjgtLjktMTAuOSA0LTEzLjYgMS41LS44IDMuMS0xLjIgNC44LTEuMmg0NmMzLjggMCA3LjIgMi4xIDguOSA1LjVsNzIuOSAxNDQuMyA3My4yLTE0NC4zYTEwIDEwIDAgMCAxIDguOS01LjVoNDVjNS41IDAgMTAgNC41IDEwIDEwIC4xIDEuNy0uMyAzLjMtMS4xIDQuOHonKSk7XG5leHBvcnRzLlFxQ2lyY2xlRmlsbCA9IGdldEljb24oJ3FxLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjEwLjUgNjEyLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjIgNzIuMi01MS4xIDEwMS44IDE2LjkgNS4yIDU0LjkgMTkuMiA0NS45IDM0LjQtNy4zIDEyLjMtMTI1LjYgNy45LTE1OS44IDQtMzQuMiAzLjgtMTUyLjUgOC4zLTE1OS44LTQtOS4xLTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy40IDU0LjEtNDQuOSA1Mi43LTUuNC0uNy0xMi40LTI5LjYgOS40LTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjItMTA1LjgtMy4xLTExNi45IDQ1LjMtMjE1IDE2MC40LTIxNSAxMTMuOSAwIDE2My4zIDk2LjEgMTYwLjQgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjggNDAuMiAxMDUuOCAyMS43IDcwLjEgMTQuNiA5OS4xIDkuMyA5OS43eicpKTtcbmV4cG9ydHMuUXFTcXVhcmVGaWxsID0gZ2V0SWNvbigncXEtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzIyLjUgNjc2LjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjIgNzIuMi01MS4xIDEwMS44IDE2LjkgNS4yIDU0LjkgMTkuMiA0NS45IDM0LjQtNy4zIDEyLjMtMTI1LjYgNy45LTE1OS44IDQtMzQuMiAzLjgtMTUyLjUgOC4zLTE1OS44LTQtOS4xLTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy40IDU0LjEtNDQuOSA1Mi43LTUuNC0uNy0xMi40LTI5LjYgOS40LTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjItMTA1LjgtMy4xLTExNi45IDQ1LjMtMjE1IDE2MC40LTIxNSAxMTMuOSAwIDE2My4zIDk2LjEgMTYwLjQgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjggNDAuMiAxMDUuOCAyMS43IDcwLjEgMTQuNiA5OS4xIDkuMyA5OS43eicpKTtcbmV4cG9ydHMuUXVlc3Rpb25DaXJjbGVGaWxsID0gZ2V0SWNvbigncXVlc3Rpb24tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDcwOGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTYyLjktMjE5LjVhNDguMyA0OC4zIDAgMCAwLTMwLjkgNDQuOFY2MjBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di0yMS41YzAtMjMuMSA2LjctNDUuOSAxOS45LTY0LjkgMTIuOS0xOC42IDMwLjktMzIuOCA1Mi4xLTQwLjkgMzQtMTMuMSA1Ni00MS42IDU2LTcyLjcgMC00NC4xLTQzLjEtODAtOTYtODBzLTk2IDM1LjktOTYgODB2Ny42YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MjBjMC0zOS4zIDE3LjItNzYgNDguNC0xMDMuM0M0MzAuNCAyOTAuNCA0NzAgMjc2IDUxMiAyNzZzODEuNiAxNC41IDExMS42IDQwLjdDNjU0LjggMzQ0IDY3MiAzODAuNyA2NzIgNDIwYzAgNTcuOC0zOC4xIDEwOS44LTk3LjEgMTMyLjV6JykpO1xuZXhwb3J0cy5SZWFkRmlsbCA9IGdldEljb24oJ3JlYWQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MUg2OTkuMmMtNDkuMSAwLTk3LjEgMTQuMS0xMzguNCA0MC43TDUxMiAyMzNsLTQ4LjgtMzEuM0EyNTUuMiAyNTUuMiAwIDAgMCAzMjQuOCAxNjFIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMjguOGM0OS4xIDAgOTcuMSAxNC4xIDEzOC40IDQwLjdsNDQuNCAyOC42YzEuMy44IDIuOCAxLjMgNC4zIDEuM3MzLS40IDQuMy0xLjNsNDQuNC0yOC42QzYwMiA4MDcuMSA2NTAuMSA3OTMgNjk5LjIgNzkzSDkyOGMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTNjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNCA1NTMuNWMwIDQuMS0zLjIgNy41LTcuMSA3LjVIMjExLjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXptMC0xNDBjMCA0LjEtMy4yIDcuNS03LjEgNy41SDIxMS4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6bTQxNiAxNDBjMCA0LjEtMy4yIDcuNS03LjEgNy41SDYyNy4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6bTAtMTQwYzAgNC4xLTMuMiA3LjUtNy4xIDcuNUg2MjcuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1eicpKTtcbmV4cG9ydHMuUmVjb25jaWxpYXRpb25GaWxsID0gZ2V0SWNvbigncmVjb25jaWxpYXRpb24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjc2IDYyM2MtMTguOCAwLTM0IDE1LjItMzQgMzRzMTUuMiAzNCAzNCAzNCAzNC0xNS4yIDM0LTM0LTE1LjItMzQtMzQtMzR6bTIwNC00NTVINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NDggODQ4SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTIwLTI3MnYtNDhoNzJ2LTU2aDY0djU2aDcydjQ4SDQ2OHptMTgwIDE2OHY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh6bTI4IDMwMWMtNTAuOCAwLTkyLTQxLjItOTItOTJzNDEuMi05MiA5Mi05MiA5MiA0MS4yIDkyIDkyLTQxLjIgOTItOTIgOTJ6bTkyLTI0NWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTk2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2OTZ6bS05MiA2MWMtNTAuOCAwLTkyIDQxLjItOTIgOTJzNDEuMiA5MiA5MiA5MiA5Mi00MS4yIDkyLTkyLTQxLjItOTItOTItOTJ6bTAgMTI2Yy0xOC44IDAtMzQtMTUuMi0zNC0zNHMxNS4yLTM0IDM0LTM0IDM0IDE1LjIgMzQgMzQtMTUuMiAzNC0zNCAzNHonKSk7XG5leHBvcnRzLlJlZEVudmVsb3BlRmlsbCA9IGdldEljb24oJ3JlZC1lbnZlbG9wZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NDcgNDcwLjRsLTg3LjIgMTYxaDQ1LjljNC42IDAgOC40IDMuOCA4LjQgOC40djI1LjFjMCA0LjYtMy44IDguNC04LjQgOC40aC02My4zdjI4LjZoNjMuM2M0LjYgMCA4LjQgMy44IDguNCA4LjR2MjVjLjIgNC42LTMuNiA4LjUtOC4yIDguNWgtNjMuM3Y0OS45YzAgNC42LTMuOCA4LjQtOC40IDguNGgtNDMuN2MtNC42IDAtOC40LTMuOC04LjQtOC40di00OS45aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg2M3YtMjguNmgtNjNjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtMjUuMWMwLTQuNiAzLjgtOC40IDguNC04LjRoNDUuNGwtODcuNS0xNjFjLTIuMi00LjEtLjctOS4xIDMuNC0xMS40IDEuMy0uNiAyLjYtMSAzLjktMWg0OC44YzMuMiAwIDYuMSAxLjggNy41IDQuNmw3MS45IDE0MS44IDcxLjktMTQxLjlhOC41IDguNSAwIDAgMSA3LjUtNC42aDQ3LjhjNC42IDAgOC40IDMuOCA4LjQgOC40LS4xIDEuNS0uNSAyLjktMS4xIDQuMXpNNTEyLjYgMzIzTDI4OSAxNDhoNDQ2TDUxMi42IDMyM3onKSk7XG5leHBvcnRzLlJlZGRpdENpcmNsZUZpbGwgPSBnZXRJY29uKCdyZWRkaXQtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU4NCA1NDhhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAwem0xNDQtMTA4YTM1LjkgMzUuOSAwIDAgMC0zMi41IDIwLjZjMTguOCAxNC4zIDM0LjQgMzAuNyA0NS45IDQ4LjhBMzUuOTggMzUuOTggMCAwIDAgNzI4IDQ0MHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI0NSA0NzcuOWM0LjYgMTMuNSA3IDI3LjYgNyA0Mi4xIDAgOTkuNC0xMTIuOCAxODAtMjUyIDE4MHMtMjUyLTgwLjYtMjUyLTE4MGMwLTE0LjUgMi40LTI4LjYgNy00Mi4xQTcyLjAxIDcyLjAxIDAgMCAxIDI5NiA0MDRjMjcuMSAwIDUwLjYgMTQuOSA2Mi45IDM3IDM2LjItMTkuOCA4MC4yLTMyLjggMTI4LjEtMzYuMWw1OC40LTEzMS4xYzQuMy05LjggMTUuMi0xNC44IDI1LjUtMTEuOGw5MS42IDI2LjVhNTQuMDMgNTQuMDMgMCAwIDEgMTAxLjYgMjUuNmMwIDI5LjgtMjQuMiA1NC01NCA1NC0yMy41IDAtNDMuNS0xNS4xLTUwLjktMzYuMUw1NzcgMzA4LjNsLTQzIDk2LjVjNDkuMSAzIDk0LjIgMTYuMSAxMzEuMiAzNi4zIDEyLjMtMjIuMSAzNS44LTM3IDYyLjktMzcgMzkuOCAwIDcyIDMyLjIgNzIgNzItLjEgMjkuMy0xNy44IDU0LjYtNDMuMSA2NS44em0tMTcxLjMgODNjLTE0LjkgMTEuNy00NC4zIDI0LjMtNzMuNyAyNC4zcy01OC45LTEyLjYtNzMuNy0yNC4zYy05LjMtNy4zLTIyLjctNS43LTMwIDMuNi03LjMgOS4zLTUuNyAyMi43IDMuNiAzMCAyNS43IDIwLjQgNjUgMzMuNSAxMDAuMSAzMy41IDM1LjEgMCA3NC40LTEzLjEgMTAwLjItMzMuNSA5LjMtNy4zIDEwLjktMjAuOCAzLjYtMzBhMjEuNDYgMjEuNDYgMCAwIDAtMzAuMS0zLjZ6TTI5NiA0NDBhMzUuOTggMzUuOTggMCAwIDAtMTMuNCA2OS40YzExLjUtMTguMSAyNy4xLTM0LjUgNDUuOS00OC44QTM1LjkgMzUuOSAwIDAgMCAyOTYgNDQwem03MiAxMDhhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAweicpKTtcbmV4cG9ydHMuUmVkZGl0U3F1YXJlRmlsbCA9IGdldEljb24oJ3JlZGRpdC1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjk2IDQ0MGEzNS45OCAzNS45OCAwIDAgMC0xMy40IDY5LjRjMTEuNS0xOC4xIDI3LjEtMzQuNSA0NS45LTQ4LjhBMzUuOSAzNS45IDAgMCAwIDI5NiA0NDB6bTI4OS43IDE4NC45Yy0xNC45IDExLjctNDQuMyAyNC4zLTczLjcgMjQuM3MtNTguOS0xMi42LTczLjctMjQuM2MtOS4zLTcuMy0yMi43LTUuNy0zMCAzLjYtNy4zIDkuMy01LjcgMjIuNyAzLjYgMzAgMjUuNyAyMC40IDY1IDMzLjUgMTAwLjEgMzMuNSAzNS4xIDAgNzQuNC0xMy4xIDEwMC4yLTMzLjUgOS4zLTcuMyAxMC45LTIwLjggMy42LTMwYTIxLjQ2IDIxLjQ2IDAgMCAwLTMwLjEtMy42ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTc1NyA1NDEuOWM0LjYgMTMuNSA3IDI3LjYgNyA0Mi4xIDAgOTkuNC0xMTIuOCAxODAtMjUyIDE4MHMtMjUyLTgwLjYtMjUyLTE4MGMwLTE0LjUgMi40LTI4LjYgNy00Mi4xQTcyLjAxIDcyLjAxIDAgMCAxIDI5NiA0MDRjMjcuMSAwIDUwLjYgMTQuOSA2Mi45IDM3IDM2LjItMTkuOCA4MC4yLTMyLjggMTI4LjEtMzYuMWw1OC40LTEzMS4xYzQuMy05LjggMTUuMi0xNC44IDI1LjUtMTEuOGw5MS42IDI2LjVhNTQuMDMgNTQuMDMgMCAwIDEgMTAxLjYgMjUuNmMwIDI5LjgtMjQuMiA1NC01NCA1NC0yMy41IDAtNDMuNS0xNS4xLTUwLjktMzYuMUw1NzcgMzA4LjNsLTQzIDk2LjVjNDkuMSAzIDk0LjIgMTYuMSAxMzEuMiAzNi4zIDEyLjMtMjIuMSAzNS44LTM3IDYyLjktMzcgMzkuOCAwIDcyIDMyLjIgNzIgNzItLjEgMjkuMy0xNy44IDU0LjYtNDMuMSA2NS44ek01ODQgNTQ4YTM2IDM2IDAgMSAwIDcyIDAgMzYgMzYgMCAxIDAtNzIgMHptMTQ0LTEwOGEzNS45IDM1LjkgMCAwIDAtMzIuNSAyMC42YzE4LjggMTQuMyAzNC40IDMwLjcgNDUuOSA0OC44QTM1Ljk4IDM1Ljk4IDAgMCAwIDcyOCA0NDB6TTM2OCA1NDhhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAweicpKTtcbmV4cG9ydHMuUmVzdEZpbGwgPSBnZXRJY29uKCdyZXN0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAgMCAzMS45IDI5LjNoNDI5LjJhMzIgMzIgMCAwIDAgMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTA4IDcwNGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6TTI5MSAyNTZsMjIuNC03NmgzOTcuMmwyMi40IDc2SDI5MXptMTM3IDMwNGE4MCA4MCAwIDEgMCAxNjAgMCA4MCA4MCAwIDEgMC0xNjAgMHonKSk7XG5leHBvcnRzLlJpZ2h0Q2lyY2xlRmlsbCA9IGdldEljb24oJ3JpZ2h0LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTU0LjcgNDU0LjVsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41di00Ni45YzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTY2LjYgNTEyIDQyMS4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuOCAwIDEzeicpKTtcbmV4cG9ydHMuUm9ja2V0RmlsbCA9IGdldEljb24oJ3JvY2tldCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgNzM2YzAtMTExLjYtNjUuNC0yMDgtMTYwLTI1Mi45VjMxNy4zYzAtMTUuMS01LjMtMjkuNy0xNS4xLTQxLjJMNTM2LjUgOTUuNEM1MzAuMSA4Ny44IDUyMSA4NCA1MTIgODRzLTE4LjEgMy44LTI0LjUgMTEuNEwzMzUuMSAyNzYuMWE2My45NyA2My45NyAwIDAgMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAgMCA0My4xIDMwLjZjMjMuMSA1NCA3NS42IDg4LjggMTM0LjUgODguOCAyOS4xIDAgNTcuMy04LjYgODEuNC0yNC44IDIzLjYtMTUuOCA0MS45LTM3LjkgNTMtNjRhOTcgOTcgMCAwIDAgNDMuMS0zMC41IDk3LjUyIDk3LjUyIDAgMCAwIDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEw4NjQgNzM2ek01MTIgMzUyYTQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTYgNDguMDEgNDguMDEgMCAwIDEgMC05NnptMTE2LjEgNDMyLjJjLTUuMiAzLTExLjIgNC4yLTE3LjEgMy40bC0xOS41LTIuNC0yLjggMTkuNGMtNS40IDM3LjktMzguNCA2Ni41LTc2LjcgNjYuNXMtNzEuMy0yOC42LTc2LjctNjYuNWwtMi44LTE5LjUtMTkuNSAyLjVhMjcuNyAyNy43IDAgMCAxLTE3LjEtMy41Yy04LjctNS0xNC4xLTE0LjMtMTQuMS0yNC40IDAtMTAuNiA1LjktMTkuNCAxNC42LTIzLjhoMjMxLjNjOC44IDQuNSAxNC42IDEzLjMgMTQuNiAyMy44LS4xIDEwLjItNS41IDE5LjYtMTQuMiAyNC41eicpKTtcbmV4cG9ydHMuUmlnaHRTcXVhcmVGaWxsID0gZ2V0SWNvbigncmlnaHQtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjU4LjcgNTE4LjVsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41di00Ni45YzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTU4LjYgNTEyIDQxMy4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuOCAwIDEzeicpKTtcbmV4cG9ydHMuU2FmZXR5Q2VydGlmaWNhdGVGaWxsID0gZ2V0SWNvbignc2FmZXR5LWNlcnRpZmljYXRlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNNjk0LjUgMzQwLjdMNDgxLjkgNjMzLjRhMTYuMSAxNi4xIDAgMCAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjEgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkgMTUwLjktMjA3LjhjMy00LjEgNy44LTYuNiAxMy02LjZINjg4YzYuNS4xIDEwLjMgNy41IDYuNSAxMi44eicpKTtcbmV4cG9ydHMuU2F2ZUZpbGwgPSBnZXRJY29uKCdzYXZlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE3NmgyNTZ2MTEySDM4NFYxNzZ6bTEyOCA1NTRjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0czY0LjUtMTQ0IDE0NC0xNDQgMTQ0IDY0LjUgMTQ0IDE0NC02NC41IDE0NC0xNDQgMTQ0em0wLTIyNGMtNDQuMiAwLTgwIDM1LjgtODAgODBzMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwLTM1LjgtODAtODAtODB6JykpO1xuZXhwb3J0cy5TY2hlZHVsZUZpbGwgPSBnZXRJY29uKCdzY2hlZHVsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMjI0SDc2OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDU0OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDMyOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDI0IDY4OGMwIDQuNC0zLjYgOC04IDhIMjMyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTEzNmMwIDQuNC0zLjYgOC04IDhIMjMyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0zNzQuNS05MS4zbC0xNjUgMjI4LjdhMTUuOSAxNS45IDAgMCAxLTI1LjggMEw0OTMuNSA1MzEuMmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTQuOWM1LjEgMCA5LjkgMi41IDEyLjkgNi42bDUyLjggNzMuMSAxMDMuNy0xNDMuN2MzLTQuMiA3LjgtNi42IDEyLjktNi42SDc5MmM2LjUuMSAxMC4zIDcuNSA2LjUgMTIuOHonKSk7XG5leHBvcnRzLlNlY3VyaXR5U2NhbkZpbGwgPSBnZXRJY29uKCdzZWN1cml0eS1zY2FuJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNNjI2LjggNTU0Yy00OC41IDQ4LjUtMTIzIDU1LjItMTc4LjYgMjAuMWwtNzcuNSA3Ny41YTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTM0LTM0YTguMDMgOC4wMyAwIDAgMSAwLTExLjNsNzcuNS03Ny41Yy0zNS4xLTU1LjctMjguNC0xMzAuMSAyMC4xLTE3OC42IDU2LjMtNTYuMyAxNDcuNS01Ni4zIDIwMy44IDAgNTYuMyA1Ni4zIDU2LjMgMTQ3LjUgMCAyMDMuOHptLTE1OC41NC00NS4yN2E4MC4xIDgwLjEgMCAxIDAgMTEzLjI3LTExMy4yOCA4MC4xIDgwLjEgMCAxIDAtMTEzLjI3IDExMy4yOHonKSk7XG5leHBvcnRzLlNldHRpbmdGaWxsID0gZ2V0SWNvbignc2V0dGluZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIuNSAzOTAuNmMtMjkuOSAwLTU3LjkgMTEuNi03OS4xIDMyLjgtMjEuMSAyMS4yLTMyLjggNDkuMi0zMi44IDc5LjEgMCAyOS45IDExLjcgNTcuOSAzMi44IDc5LjEgMjEuMiAyMS4xIDQ5LjIgMzIuOCA3OS4xIDMyLjggMjkuOSAwIDU3LjktMTEuNyA3OS4xLTMyLjggMjEuMS0yMS4yIDMyLjgtNDkuMiAzMi44LTc5LjEgMC0yOS45LTExLjctNTcuOS0zMi44LTc5LjFhMTEwLjk2IDExMC45NiAwIDAgMC03OS4xLTMyLjh6bTQxMi4zIDIzNS41bC02NS40LTU1LjljMy4xLTE5IDQuNy0zOC40IDQuNy01Ny43cy0xLjYtMzguOC00LjctNTcuN2w2NS40LTU1LjlhMzIuMDMgMzIuMDMgMCAwIDAgOS4zLTM1LjJsLS45LTIuNmE0NDIuNSA0NDIuNSAwIDAgMC03OS42LTEzNy43bC0xLjgtMi4xYTMyLjEyIDMyLjEyIDAgMCAwLTM1LjEtOS41bC04MS4yIDI4LjljLTMwLTI0LjYtNjMuNC00NC05OS42LTU3LjVsLTE1LjctODQuOWEzMi4wNSAzMi4wNSAwIDAgMC0yNS44LTI1LjdsLTIuNy0uNWMtNTItOS40LTEwNi44LTkuNC0xNTguOCAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAgMC0yNS44IDI1LjdsLTE1LjggODUuM2EzNTMuNDQgMzUzLjQ0IDAgMCAwLTk4LjkgNTcuM2wtODEuOC0yOS4xYTMyIDMyIDAgMCAwLTM1LjEgOS41bC0xLjggMi4xYTQ0NS45MyA0NDUuOTMgMCAwIDAtNzkuNiAxMzcuN2wtLjkgMi42Yy00LjUgMTIuNS0uOCAyNi41IDkuMyAzNS4ybDY2LjIgNTYuNWMtMy4xIDE4LjgtNC42IDM4LTQuNiA1NyAwIDE5LjIgMS41IDM4LjQgNC42IDU3bC02NiA1Ni41YTMyLjAzIDMyLjAzIDAgMCAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjMgNDQuOCA5Ni44IDc5LjYgMTM3LjdsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAgMCAzNS4xIDkuNWw4MS44LTI5LjFjMjkuOCAyNC41IDYzIDQzLjkgOTguOSA1Ny4zbDE1LjggODUuM2EzMi4wNSAzMi4wNSAwIDAgMCAyNS44IDI1LjdsMi43LjVhNDQ4LjI3IDQ0OC4yNyAwIDAgMCAxNTguOCAwbDIuNy0uNWEzMi4wNSAzMi4wNSAwIDAgMCAyNS44LTI1LjdsMTUuNy04NC45YzM2LjItMTMuNiA2OS42LTMyLjkgOTkuNi01Ny41bDgxLjIgMjguOWEzMiAzMiAwIDAgMCAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS41LTg3LjQgNzkuNi0xMzcuN2wuOS0yLjZjNC4zLTEyLjQuNi0yNi4zLTkuNS0zNXptLTQxMi4zIDUyLjJjLTk3LjEgMC0xNzUuOC03OC43LTE3NS44LTE3NS44czc4LjctMTc1LjggMTc1LjgtMTc1LjggMTc1LjggNzguNyAxNzUuOCAxNzUuOC03OC43IDE3NS44LTE3NS44IDE3NS44eicpKTtcbmV4cG9ydHMuU2hvcEZpbGwgPSBnZXRJY29uKCdzaG9wJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MiAyNzIuMVYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMTc0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjguMWMtMTYuNyAxLTMwIDE0LjktMzAgMzEuOXYxMzEuN2ExNzcgMTc3IDAgMCAwIDE0LjQgNzAuNGM0LjMgMTAuMiA5LjYgMTkuOCAxNS42IDI4Ljl2MzQ1YzAgMTcuNiAxNC4zIDMyIDMyIDMyaDI3NFY3MzZoMTI4djE3NmgyNzRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTM1YTE3NSAxNzUgMCAwIDAgMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45em0tNzIgNTY4SDY0MFY3MDRjMC0xNy43LTE0LjMtMzItMzItMzJINDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMzYuMUgyMTRWNTk3LjljMi45IDEuNCA1LjkgMi44IDkgNCAyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMXM0OC00LjcgNzAuNC0xNC4xYzEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMCAwIDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6bTAtNTY4LjFIMjE0di04OGg1OTZ2ODh6JykpO1xuZXhwb3J0cy5TaG9wcGluZ0ZpbGwgPSBnZXRJY29uKCdzaG9wcGluZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgMzEySDY5NnYtMTZjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0cy0xODQgODIuNC0xODQgMTg0djE2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0yMDggMEg0MDB2LTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZ6JykpO1xuZXhwb3J0cy5Ta2V0Y2hDaXJjbGVGaWxsID0gZ2V0SWNvbignc2tldGNoLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001ODIuMyA2MjUuNmwxNDcuOS0xNjYuM2gtNjMuNHptOTAtMjAyLjNoNjIuNWwtOTIuMS0xMTUuMXptLTI3NC43IDM2TDUxMiA2ODQuNWwxMTQuNC0yMjUuMnpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI4Ni43IDM4MC4yTDUxNS44IDc2Mi4zYy0xIDEuMS0yLjQgMS43LTMuOCAxLjdzLTIuOC0uNi0zLjgtMS43TDIyNS4zIDQ0NC4yYTUuMTQgNS4xNCAwIDAgMS0uMi02LjZMMzY1LjYgMjYyYzEtMS4yIDIuNC0xLjkgNC0xLjloMjg0LjZjMS42IDAgMyAuNyA0IDEuOWwxNDAuNSAxNzUuNmE0LjkgNC45IDAgMCAxIDAgNi42em0tMTkwLjUtMjAuOUw1MTIgMzI2LjFsLTk2LjIgOTcuMnpNNDIwLjMgMzAxLjFsLTIzLjEgODkuOCA4OC44LTg5Ljh6bTE4My40IDBINTM4bDg4LjggODkuOHptLTIyMi40IDcuMWwtOTIuMSAxMTUuMWg2Mi41em0tODcuNSAxNTEuMWwxNDcuOSAxNjYuMy04NC41LTE2Ni4zeicpKTtcbmV4cG9ydHMuU2tldGNoU3F1YXJlRmlsbCA9IGdldEljb24oJ3NrZXRjaC1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjA4LjIgNDIzLjNMNTEyIDMyNi4xbC05Ni4yIDk3LjJ6bS0yNS45IDIwMi4zbDE0Ny45LTE2Ni4zaC02My40em05MC0yMDIuM2g2Mi41bC05Mi4xLTExNS4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MS4zIDMzMi4yTDUxNS44IDc2Mi4zYy0xIDEuMS0yLjQgMS43LTMuOCAxLjdzLTIuOC0uNi0zLjgtMS43TDIyNS4zIDQ0NC4yYTUuMTQgNS4xNCAwIDAgMS0uMi02LjZMMzY1LjYgMjYyYzEtMS4yIDIuNC0xLjkgNC0xLjloMjg0LjZjMS42IDAgMyAuNyA0IDEuOWwxNDAuNSAxNzUuNmE0LjkgNC45IDAgMCAxIDAgNi42em0tNDAxLjEgMTUuMUw1MTIgNjg0LjVsMTE0LjQtMjI1LjJ6bS0xNi4zLTE1MS4xbC05Mi4xIDExNS4xaDYyLjV6bS04Ny41IDE1MS4xbDE0Ny45IDE2Ni4zLTg0LjUtMTY2LjN6bTEyNi41LTE1OC4ybC0yMy4xIDg5LjggODguOC04OS44em0xODMuNCAwSDUzOGw4OC44IDg5Ljh6JykpO1xuZXhwb3J0cy5Ta2luRmlsbCA9IGdldEljb24oJ3NraW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMCAwLTM3LTI5LjNIMTU0YTQ0IDQ0IDAgMCAwLTQ0IDQ0djI1MmE0NCA0NCAwIDAgMCA0NCA0NGg3NXYzODhhNDQgNDQgMCAwIDAgNDQgNDRoNDc4YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjQ2Nmg3NWE0NCA0NCAwIDAgMCA0NC00NFYxNzBhNDQgNDQgMCAwIDAtNDQtNDR6JykpO1xuZXhwb3J0cy5TbGFja0NpcmNsZUZpbGwgPSBnZXRJY29uKCdzbGFjay1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTM2MS41IDU4MC4yYzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAgMSA1MC4zIDUwLjR2MTM0LjR6bS01MC4yLTIxOC40aC0xMzRjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40IDAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNC0uMSAyNy45LTIyLjYgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTMzk1IDMyNC44IDM5NSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHY1MC40aC01MC4zem04My43LTUwLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2MTM0LjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjQtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjRWMzExLjR6TTU3OS4zIDc2NWMtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjR2LTUwLjRoNTAuM2MyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMTM0LTEzNC40aC0xMzRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTNTI5IDU5My42IDUyOSA1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6JykpO1xuZXhwb3J0cy5TbGFja1NxdWFyZUZpbGwgPSBnZXRJY29uKCdzbGFjay1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MjkgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2MTM0LjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjQtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjRWMzExLjR6TTM2MS41IDU4MC4yYzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAgMSA1MC4zIDUwLjR2MTM0LjR6bS01MC4yLTIxOC40aC0xMzRjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40IDAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNC0uMSAyNy45LTIyLjYgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTMzk1IDMyNC44IDM5NSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHY1MC40aC01MC4zem0xMzQgNDAzLjJjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40di01MC40aDUwLjNjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTEzNC0xMzQuNGgtMTM0YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6JykpO1xuZXhwb3J0cy5Ta3lwZUZpbGwgPSBnZXRJY29uKCdza3lwZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODMuNyA1NzguNmM0LjEtMjIuNSA2LjMtNDUuNSA2LjMtNjguNSAwLTUxLTEwLTEwMC41LTI5LjctMTQ3LTE5LTQ1LTQ2LjMtODUuNC04MS0xMjAuMWEzNzUuNzkgMzc1Ljc5IDAgMCAwLTEyMC4xLTgwLjljLTQ2LjYtMTkuNy05Ni0yOS43LTE0Ny0yOS43LTI0IDAtNDguMSAyLjMtNzEuNSA2LjhBMjI1LjEgMjI1LjEgMCAwIDAgMzM1LjYgMTEzYy01OS43IDAtMTE1LjkgMjMuMy0xNTguMSA2NS41QTIyMi4yNSAyMjIuMjUgMCAwIDAgMTEyIDMzNi42YzAgMzggOS44IDc1LjQgMjguMSAxMDguNC0zLjcgMjEuNC01LjcgNDMuMy01LjcgNjUuMSAwIDUxIDEwIDEwMC41IDI5LjcgMTQ3IDE5IDQ1IDQ2LjIgODUuNCA4MC45IDEyMC4xIDM0LjcgMzQuNyA3NS4xIDYxLjkgMTIwLjEgODAuOSA0Ni42IDE5LjcgOTYgMjkuNyAxNDcgMjkuNyAyMi4yIDAgNDQuNC0yIDY2LjItNS45IDMzLjUgMTguOSA3MS4zIDI5IDExMCAyOSA1OS43IDAgMTE1LjktMjMuMiAxNTguMS02NS41IDQyLjMtNDIuMiA2NS41LTk4LjQgNjUuNS0xNTguMS4xLTM4LTkuNy03NS41LTI4LjItMTA4Ljd6bS0zNzAgMTYyLjljLTEzNC4yIDAtMTk0LjItNjYtMTk0LjItMTE1LjQgMC0yNS40IDE4LjctNDMuMSA0NC41LTQzLjEgNTcuNCAwIDQyLjYgODIuNSAxNDkuNyA4Mi41IDU0LjkgMCA4NS4yLTI5LjggODUuMi02MC4zIDAtMTguMy05LTM4LjctNDUuMi00Ny42bC0xMTkuNC0yOS44Yy05Ni4xLTI0LjEtMTEzLjYtNzYuMS0xMTMuNi0xMjQuOSAwLTEwMS40IDk1LjUtMTM5LjUgMTg1LjItMTM5LjUgODIuNiAwIDE4MCA0NS43IDE4MCAxMDYuNSAwIDI2LjEtMjIuNiA0MS4yLTQ4LjQgNDEuMi00OSAwLTQwLTY3LjgtMTM4LjctNjcuOC00OSAwLTc2LjEgMjIuMi03Ni4xIDUzLjlzMzguNyA0MS44IDcyLjMgNDkuNWw4OC40IDE5LjZjOTYuOCAyMS42IDEyMS4zIDc4LjEgMTIxLjMgMTMxLjMgMCA4Mi4zLTYzLjMgMTQzLjktMTkxIDE0My45eicpKTtcbmV4cG9ydHMuU2xpZGVyc0ZpbGwgPSBnZXRJY29uKCdzbGlkZXJzJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCAyOTZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTU4NC03MmgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0yOTIgMTgwaC02NlYyMzJjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djE3MmgtNjZjLTQuNCAwLTggMy42LTggOHYyMDBjMCA0LjQgMy42IDggOCA4aDY2djE3MmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjYyMGg2NmM0LjQgMCA4LTMuNiA4LThWNDEyYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlNtaWxlRmlsbCA9IGdldEljb24oJ3NtaWxlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMjI0IDI3MmMtODUuNSAwLTE1NS42LTY3LjMtMTYwLTE1MS42YTggOCAwIDAgMSA4LTguNGg0OC4xYzQuMiAwIDcuOCAzLjIgOC4xIDcuNEM0MjAgNTg5LjkgNDYxLjUgNjI5IDUxMiA2MjlzOTIuMS0zOS4xIDk1LjgtODguNmMuMy00LjIgMy45LTcuNCA4LjEtNy40SDY2NGE4IDggMCAwIDEgOCA4LjRDNjY3LjYgNjI1LjcgNTk3LjUgNjkzIDUxMiA2OTN6bTE3Ni0yMjRhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eicpKTtcbmV4cG9ydHMuU25pcHBldHNGaWxsID0gZ2V0SWNvbignc25pcHBldHMnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA0ODZINTE0VjMzNmguMkw2NjQgNDg1Ljh2LjJ6bTEyOCAyNzRoLTU2VjQ1Nkw1NDQgMjY0SDM2MHYtODBoNjh2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoMTUydjMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDY4djU3NnonKSk7XG5leHBvcnRzLlNvdW5kRmlsbCA9IGdldEljb24oJ3NvdW5kJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5Mi4xIDczNy44bC0xMTAuMy02My43YTE1LjkgMTUuOSAwIDAgMC0yMS43IDUuOWwtMTkuOSAzNC41Yy00LjQgNy42LTEuOCAxNy40IDUuOCAyMS44TDg1Ni4zIDgwMGExNS45IDE1LjkgMCAwIDAgMjEuNy01LjlsMTkuOS0zNC41YzQuNC03LjYgMS43LTE3LjQtNS44LTIxLjh6TTc2MCAzNDRhMTUuOSAxNS45IDAgMCAwIDIxLjcgNS45TDg5MiAyODYuMmM3LjYtNC40IDEwLjItMTQuMiA1LjgtMjEuOEw4NzggMjMwYTE1LjkgMTUuOSAwIDAgMC0yMS43LTUuOUw3NDYgMjg3LjhhMTUuOTkgMTUuOTkgMCAwIDAtNS44IDIxLjhMNzYwIDM0NHptMTc0IDEzMkg4MDZjLTguOCAwLTE2IDcuMi0xNiAxNnY0MGMwIDguOCA3LjIgMTYgMTYgMTZoMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtNDBjMC04LjgtNy4yLTE2LTE2LTE2ek02MjUuOSAxMTVjLTUuOSAwLTExLjkgMS42LTE3LjQgNS4zTDI1NCAzNTJIOTBjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDE2NGwzNTQuNSAyMzEuN2M1LjUgMy42IDExLjYgNS4zIDE3LjQgNS4zIDE2LjcgMCAzMi4xLTEzLjMgMzIuMS0zMi4xVjE0Ny4xYzAtMTguOC0xNS40LTMyLjEtMzIuMS0zMi4xeicpKTtcbmV4cG9ydHMuU3RhckZpbGwgPSBnZXRJY29uKCdzdGFyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwOC4xIDM1My4xbC0yNTMuOS0zNi45TDU0MC43IDg2LjFjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzY5LjggMzE2LjJsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuM2EzMi4wNSAzMi4wNSAwIDAgMCAuNiA0NS4zbDE4My43IDE3OS4xLTQzLjQgMjUyLjlhMzEuOTUgMzEuOTUgMCAwIDAgNDYuNCAzMy43TDUxMiA3NTRsMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zeicpKTtcbmV4cG9ydHMuU3RlcEJhY2t3YXJkRmlsbCA9IGdldEljb24oJ3N0ZXAtYmFja3dhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNMzQ3LjYgNTI4Ljk1bDM4My4yIDMwMS4wMmMxNC4yNSAxMS4yIDM1LjIgMS4xIDM1LjItMTYuOTVWMjEwLjk3YzAtMTguMDUtMjAuOTUtMjguMTQtMzUuMi0xNi45NEwzNDcuNiA0OTUuMDVhMjEuNTMgMjEuNTMgMCAwIDAgMCAzMy45TTMzMCA4NjRoLTY0YTggOCAwIDAgMS04LThWMTY4YTggOCAwIDAgMSA4LThoNjRhOCA4IDAgMCAxIDggOHY2ODhhOCA4IDAgMCAxLTggOCcpKTtcbmV4cG9ydHMuU3RlcEZvcndhcmRGaWxsID0gZ2V0SWNvbignc3RlcC1mb3J3YXJkJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTY3Ni40IDUyOC45NUwyOTMuMiA4MjkuOTdjLTE0LjI1IDExLjItMzUuMiAxLjEtMzUuMi0xNi45NVYyMTAuOTdjMC0xOC4wNSAyMC45NS0yOC4xNCAzNS4yLTE2Ljk0bDM4My4yIDMwMS4wMmEyMS41MyAyMS41MyAwIDAgMSAwIDMzLjlNNjk0IDg2NGg2NGE4IDggMCAwIDAgOC04VjE2OGE4IDggMCAwIDAtOC04aC02NGE4IDggMCAwIDAtOCA4djY4OGE4IDggMCAwIDAgOCA4JykpO1xuZXhwb3J0cy5TdG9wRmlsbCA9IGdldEljb24oJ3N0b3AnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTIzNC44IDczNi41TDIyMy41IDI3Ny4yYzE2LTE5LjcgMzQtMzcuNyA1My43LTUzLjdsNTIzLjMgNTIzLjNjLTE2IDE5LjYtMzQgMzcuNy01My43IDUzLjd6JykpO1xuZXhwb3J0cy5Td2l0Y2hlckZpbGwgPSBnZXRJY29uKCdzd2l0Y2hlcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NTIgMjQwSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU5NiA2MDZjMCA0LjQtMy42IDgtOCA4SDMwOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMjgwYzQuNCAwIDggMy42IDggOHY0OHptMjg0LTQ5NEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnonKSk7XG5leHBvcnRzLlRhYmxldEZpbGwgPSBnZXRJY29uKCd0YWJsZXQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODAwIDY0SDIyNGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDU3NmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTUxMiA4MjRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweicpKTtcbmV4cG9ydHMuVGFnRmlsbCA9IGdldEljb24oJ3RhZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MzggNDU4LjhsLTI5LjYtMzEyLjZjLTEuNS0xNi4yLTE0LjQtMjktMzAuNi0zMC42TDU2NS4yIDg2aC0uNGMtMy4yIDAtNS43IDEtNy42IDIuOUw4OC45IDU1Ny4yYTkuOTYgOS45NiAwIDAgMCAwIDE0LjFsMzYzLjggMzYzLjhjMS45IDEuOSA0LjQgMi45IDcuMSAyLjlzNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTY5OSAzODdjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0eicpKTtcbmV4cG9ydHMuVGFnc0ZpbGwgPSBnZXRJY29uKCd0YWdzJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ4My4yIDc5MC4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2MtMi4zLS4yLTQuNy42LTYuMyAyLjNMMTM3LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzMzQuMiAzMzQuMmMzLjEgMy4yIDguMiAzLjIgMTEuMyAwem0xMjIuNy01MzMuNGMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMCAxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOS0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMC0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOXptMjgzLjggMjgyLjlsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zNjIgMzYxLjMtMjM3LjYtMjM3YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTM5LjYgMzkuNWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDI0My4yIDI0Mi44IDM5LjYgMzkuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQwNy4zLTQwNi42YzMuMS0zLjEgMy4xLTguMiAwLTExLjN6JykpO1xuZXhwb3J0cy5UYW9iYW9DaXJjbGVGaWxsID0gZ2V0SWNvbigndGFvYmFvLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMzE1LjcgMjkxLjVjMjcuMyAwIDQ5LjUgMjIuMSA0OS41IDQ5LjRzLTIyLjEgNDkuNC00OS41IDQ5LjRhNDkuNCA0OS40IDAgMSAxIDAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3onKSk7XG5leHBvcnRzLlRhb2Jhb1NxdWFyZUZpbGwgPSBnZXRJY29uKCd0YW9iYW8tc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzE1LjcgMjkxLjVjMjcuMyAwIDQ5LjUgMjIuMSA0OS41IDQ5LjRzLTIyLjEgNDkuNC00OS41IDQ5LjRhNDkuNCA0OS40IDAgMSAxIDAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3onKSk7XG5leHBvcnRzLlRvb2xGaWxsID0gZ2V0SWNvbigndG9vbCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjUuMyAyNDQuN2MtLjMtLjMtNjEuMSA1OS44LTE4Mi4xIDE4MC42bC04NC45LTg0LjkgMTgwLjktMTgwLjljLTk1LjItNTcuMy0yMTcuNS00Mi42LTI5Ni44IDM2LjdBMjQ0LjQyIDI0NC40MiAwIDAgMCA0MTkgNDMybDEuOCA2LjctMjgzLjUgMjgzLjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDE0MS40IDE0MS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDI4My4zLTI4My4zIDYuNyAxLjhjODMuNyAyMi4zIDE3My42LS45IDIzNi02My4zIDc5LjQtNzkuMyA5NC4xLTIwMS42IDM4LTI5Ni42eicpKTtcbmV4cG9ydHMuVGh1bmRlcmJvbHRGaWxsID0gZ2V0SWNvbigndGh1bmRlcmJvbHQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQ4IDM1OS4zSDYyNy43TDgyNS44IDEwOWM0LjEtNS4zLjQtMTMtNi4zLTEzSDQzNmMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAgNTQ3LjVjLTMuMSA1LjMuNyAxMiA2LjkgMTJoMTc0LjRsLTg5LjQgMzU3LjZjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjUgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6JykpO1xuZXhwb3J0cy5UcmFkZW1hcmtDaXJjbGVGaWxsID0gZ2V0SWNvbigndHJhZGVtYXJrLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY0LjcgNjYwLjJjLTEuMS41LTIuMy44LTMuNS44aC02MmMtMy4xIDAtNS45LTEuOC03LjItNC42bC03NC42LTE1OS4yaC04OC43VjcxN2MwIDQuNC0zLjYgOC04IDhIMzc4Yy00LjQgMC04LTMuNi04LThWMzA3YzAtNC40IDMuNi04IDgtOGgxNTUuNmM5OC44IDAgMTQ0LjIgNTkuOSAxNDQuMiAxMzEuMSAwIDcwLjItNDMuNiAxMDYuNC03OC40IDExOS4ybDgwLjggMTY0LjJjMi4xIDMuOS40IDguNy0zLjUgMTAuN3pNNTIzLjkgMzU3aC04My40djE0OEg1MjJjNTMgMCA4Mi44LTI1LjYgODIuOC03Mi40IDAtNTAuMy0zMi45LTc1LjYtODAuOS03NS42eicpKTtcbmV4cG9ydHMuVHdpdHRlckNpcmNsZUZpbGwgPSBnZXRJY29uKCd0d2l0dGVyLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjE1LjMgMzM3LjdjLjMgNC43LjMgOS42LjMgMTQuNCAwIDE0Ni44LTExMS44IDMxNS45LTMxNi4xIDMxNS45LTYzIDAtMTIxLjQtMTguMy0xNzAuNi00OS44IDkgMSAxNy42IDEuNCAyNi44IDEuNCA1MiAwIDk5LjgtMTcuNiAxMzcuOS00Ny40LTQ4LjgtMS04OS44LTMzLTEwMy44LTc3IDE3LjEgMi41IDMyLjUgMi41IDUwLjEtMmExMTEgMTExIDAgMCAxLTg4LjktMTA5di0xLjRjMTQuNyA4LjMgMzIgMTMuNCA1MC4xIDE0LjFhMTExLjEzIDExMS4xMyAwIDAgMS00OS41LTkyLjRjMC0yMC43IDUuNC0zOS42IDE1LjEtNTZhMzE1LjI4IDMxNS4yOCAwIDAgMCAyMjkgMTE2LjFDNDkyIDM1My4xIDU0OC40IDI5MiA2MTYuMiAyOTJjMzIgMCA2MC44IDEzLjQgODEuMSAzNSAyNS4xLTQuNyA0OS4xLTE0LjEgNzAuNS0yNi43LTguMyAyNS43LTI1LjcgNDcuNC00OC44IDYxLjEgMjIuNC0yLjQgNDQtOC42IDY0LTE3LjMtMTUuMSAyMi4yLTM0IDQxLjktNTUuNyA1Ny42eicpKTtcbmV4cG9ydHMuVHJvcGh5RmlsbCA9IGdldEljb24oJ3Ryb3BoeScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjggMTYwaC05MnYtNDBjMC00LjQtMy42LTgtOC04SDI1NmMtNC40IDAtOCAzLjYtOCA4djQwaC05MmE0NCA0NCAwIDAgMC00NCA0NHYxNDhjMCA4MS43IDYwIDE0OS42IDEzOC4yIDE2MkMyNjUuNiA2MzAuMiAzNTkgNzIxLjggNDc2IDczNC41djEwNS4ySDI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTA0YzAgNC40IDMuNiA4IDggOGg1MTJjNC40IDAgOC0zLjYgOC04di0zMi4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDU0OFY3MzQuNUM2NjUgNzIxLjggNzU4LjQgNjMwLjIgNzczLjggNTE0IDg1MiA1MDEuNiA5MTIgNDMzLjcgOTEyIDM1MlYyMDRhNDQgNDQgMCAwIDAtNDQtNDR6TTI0OCA0MzkuNmMtMzcuMS0xMS45LTY0LTQ2LjctNjQtODcuNlYyMzJoNjR2MjA3LjZ6TTg0MCAzNTJjMCA0MS0yNi45IDc1LjgtNjQgODcuNlYyMzJoNjR2MTIweicpKTtcbmV4cG9ydHMuVHdpdHRlclNxdWFyZUZpbGwgPSBnZXRJY29uKCd0d2l0dGVyLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcyNy4zIDQwMS43Yy4zIDQuNy4zIDkuNi4zIDE0LjQgMCAxNDYuOC0xMTEuOCAzMTUuOS0zMTYuMSAzMTUuOS02MyAwLTEyMS40LTE4LjMtMTcwLjYtNDkuOCA5IDEgMTcuNiAxLjQgMjYuOCAxLjQgNTIgMCA5OS44LTE3LjYgMTM3LjktNDcuNC00OC44LTEtODkuOC0zMy0xMDMuOC03NyAxNy4xIDIuNSAzMi41IDIuNSA1MC4xLTJhMTExIDExMSAwIDAgMS04OC45LTEwOXYtMS40YzE0LjcgOC4zIDMyIDEzLjQgNTAuMSAxNC4xYTExMS4xMyAxMTEuMTMgMCAwIDEtNDkuNS05Mi40YzAtMjAuNyA1LjQtMzkuNiAxNS4xLTU2YTMxNS4yOCAzMTUuMjggMCAwIDAgMjI5IDExNi4xQzQ5MiAzNTMuMSA1NDguNCAyOTIgNjE2LjIgMjkyYzMyIDAgNjAuOCAxMy40IDgxLjEgMzUgMjUuMS00LjcgNDkuMS0xNC4xIDcwLjUtMjYuNy04LjMgMjUuNy0yNS43IDQ3LjQtNDguOCA2MS4xIDIyLjQtMi40IDQ0LTguNiA2NC0xNy4zLTE1LjEgMjIuMi0zNCA0MS45LTU1LjcgNTcuNnonKSk7XG5leHBvcnRzLlVubG9ja0ZpbGwgPSBnZXRJY29uKCd1bmxvY2snLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01NDAgNzAxdjUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDEgNTYgMHonKSk7XG5leHBvcnRzLlVwQ2lyY2xlRmlsbCA9IGdldEljb24oJ3VwLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTc4IDU1NWgtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDYwLjQgNDA2LjggNjA1LjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN3onKSk7XG5leHBvcnRzLlVwU3F1YXJlRmlsbCA9IGdldEljb24oJ3VwLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5MCA2MjRoLTQ2LjljLTEwLjIgMC0xOS45LTQuOS0yNS45LTEzLjJMNTEyIDQ2NS40IDQwNi44IDYxMC44Yy02IDguMy0xNS42IDEzLjItMjUuOSAxMy4ySDMzNGMtNi41IDAtMTAuMy03LjQtNi41LTEyLjdsMTc4LTI0NmMzLjItNC40IDkuNy00LjQgMTIuOSAwbDE3OCAyNDZjMy45IDUuMy4xIDEyLjctNi40IDEyLjd6JykpO1xuZXhwb3J0cy5Vc2JGaWxsID0gZ2V0SWNvbigndXNiJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQwOCAzMTJoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zNTIgMTIwVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4OGMtNjYuMiAwLTEyMCA1Mi4xLTEyMCAxMTZ2MzU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04VjU0OGMwLTYzLjktNTMuOC0xMTYtMTIwLTExNnptLTcyIDBIMzM2VjE4NGgzNTJ2MjQ4ek01NjggMzEyaDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLldhbGxldEZpbGwgPSBnZXRJY29uKCd3YWxsZXQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzIgNDY0SDUyOFY0NDhoMzIwdjEyOHptLTI2OC02NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5WaWRlb0NhbWVyYUZpbGwgPSBnZXRJY29uKCd2aWRlby1jYW1lcmEnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTEyIDMwMi4zTDc4NCAzNzZWMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDU5MmMzNS4zIDAgNjQtMjguNyA2NC02NFY2NDhsMTI4IDczLjdjMjEuMyAxMi4zIDQ4LTMuMSA0OC0yNy42VjMzMGMwLTI0LjYtMjYuNy00MC00OC0yNy43ek0zMjggMzUyYzAgNC40LTMuNiA4LTggOEgyMDhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDExMmM0LjQgMCA4IDMuNiA4IDh2NDh6bTU2MCAyNzNsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2eicpKTtcbmV4cG9ydHMuV2FybmluZ0ZpbGwgPSBnZXRJY29uKCd3YXJuaW5nJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1NS43IDg1NmwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHpNNDgwIDQxNmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDE2em0zMiAzNTJhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eicpKTtcbmV4cG9ydHMuV2VpYm9DaXJjbGVGaWxsID0gZ2V0SWNvbignd2VpYm8tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNDQuNCA2NzJDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwIDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwIDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMCAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAgMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwIDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwIDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMCAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwIDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMCAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAgMSAxNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tOTMtMzIuMmMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6bTM0LjktMTQuNWMtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuV2VjaGF0RmlsbCA9IGdldEljb24oJ3dlY2hhdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTAuMSAzNzcuNGM1LjkgMCAxMS44LjIgMTcuNi41LTI0LjQtMTI4LjctMTU4LjMtMjI3LjEtMzE5LjktMjI3LjFDMjA5IDE1MC44IDY0IDI3MS40IDY0IDQyMC4yYzAgODEuMSA0My42IDE1NC4yIDExMS45IDIwMy42YTIxLjUgMjEuNSAwIDAgMSA5LjEgMTcuNmMwIDIuNC0uNSA0LjYtMS4xIDYuOS01LjUgMjAuMy0xNC4yIDUyLjgtMTQuNiA1NC4zLS43IDIuNi0xLjcgNS4yLTEuNyA3LjkgMCA1LjkgNC44IDEwLjggMTAuOCAxMC44IDIuMyAwIDQuMi0uOSA2LjItMmw3MC45LTQwLjljNS4zLTMuMSAxMS01IDE3LjItNSAzLjIgMCA2LjQuNSA5LjUgMS40IDMzLjEgOS41IDY4LjggMTQuOCAxMDUuNyAxNC44IDYgMCAxMS45LS4xIDE3LjgtLjQtNy4xLTIxLTEwLjktNDMuMS0xMC45LTY2IDAtMTM1LjggMTMyLjItMjQ1LjggMjk1LjMtMjQ1Ljh6bS0xOTQuMy04Ni41YzIzLjggMCA0My4yIDE5LjMgNDMuMiA0My4xcy0xOS4zIDQzLjEtNDMuMiA0My4xYy0yMy44IDAtNDMuMi0xOS4zLTQzLjItNDMuMXMxOS40LTQzLjEgNDMuMi00My4xem0tMjE1LjkgODYuMmMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuMy00My4xIDQzLjItNDMuMSA0My4yIDE5LjMgNDMuMiA0My4xLTE5LjQgNDMuMS00My4yIDQzLjF6bTU4Ni44IDQxNS42YzU2LjktNDEuMiA5My4yLTEwMiA5My4yLTE2OS43IDAtMTI0LTEyMC44LTIyNC41LTI2OS45LTIyNC41LTE0OSAwLTI2OS45IDEwMC41LTI2OS45IDIyNC41UzU0MC45IDg0Ny41IDY5MCA4NDcuNWMzMC44IDAgNjAuNi00LjQgODguMS0xMi4zIDIuNi0uOCA1LjItMS4yIDcuOS0xLjIgNS4yIDAgOS45IDEuNiAxNC4zIDQuMWw1OS4xIDM0YzEuNyAxIDMuMyAxLjcgNS4yIDEuN2E5IDkgMCAwIDAgNi40LTIuNiA5IDkgMCAwIDAgMi42LTYuNGMwLTIuMi0uOS00LjQtMS40LTYuNi0uMy0xLjItNy42LTI4LjMtMTIuMi00NS4zLS41LTEuOS0uOS0zLjgtLjktNS43LjEtNS45IDMuMS0xMS4yIDcuNi0xNC41ek02MDAuMiA1ODcuMmMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YzAgMTkuOC0xNi4yIDM1LjktMzYgMzUuOXptMTc5LjkgMGMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YTM2LjA4IDM2LjA4IDAgMCAxLTM2IDM1Ljl6JykpO1xuZXhwb3J0cy5XaW5kb3dzRmlsbCA9IGdldEljb24oJ3dpbmRvd3MnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTIzLjggMTkxLjR2Mjg4LjloMzgyVjEyOC4xem0wIDY0Mi4ybDM4MiA2Mi4ydi0zNTJoLTM4MnpNMTIwLjEgNDgwLjJINDQzVjIwMS45bC0zMjIuOSA1My41em0wIDI5MC40TDQ0MyA4MjMuMlY1NDMuOEgxMjAuMXonKSk7XG5leHBvcnRzLllhaG9vRmlsbCA9IGdldEljb24oJ3lhaG9vJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkzNy4zIDIzMUg4MjQuN2MtMTUuNSAwLTI3LjcgMTIuNi0yNy4xIDI4LjFsMTMuMSAzNjZoODQuNGw2NS40LTM2Ni40YzIuNy0xNS4yLTcuOC0yNy43LTIzLjItMjcuN3ptLTc3LjQgNDUwLjRoLTE0LjFjLTI3LjEgMC00OS4yIDIyLjItNDkuMiA0OS4zdjE0LjFjMCAyNy4xIDIyLjIgNDkuMyA0OS4yIDQ5LjNoMTQuMWMyNy4xIDAgNDkuMi0yMi4yIDQ5LjItNDkuM3YtMTQuMWMwLTI3LjEtMjIuMi00OS4zLTQ5LjItNDkuM3pNNDAyLjYgMjMxQzIxNi4yIDIzMSA2NSAzNTcgNjUgNTEyLjVTMjE2LjIgNzk0IDQwMi42IDc5NHMzMzcuNi0xMjYgMzM3LjYtMjgxLjVTNTg5LjEgMjMxIDQwMi42IDIzMXptMjI1LjIgMjI1LjJoLTY1LjNMNDU4LjkgNTU5Ljh2NjUuM2g4NC40djU2LjNIMzE4LjJ2LTU2LjNoODQuNHYtNjUuM0wyNDIuOSAzOTkuOWgtMzd2LTU2LjNoMTY4LjV2NTYuM2gtMzdsOTMuNCA5My41IDI4LjEtMjguMVY0MDBoMTY4Ljh2NTYuMnonKSk7XG5leHBvcnRzLldlaWJvU3F1YXJlRmlsbCA9IGdldEljb24oJ3dlaWJvLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MzMuNiA1OTUuMWMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDY3LjYgNzM2QzM1My4xIDczNiAyMzYgNjgwLjQgMjM2IDU4OC45YzAtNDcuOCAzMC4yLTEwMy4xIDgyLjMtMTU1LjMgNjkuNS02OS42IDE1MC42LTEwMS40IDE4MS4xLTcwLjggMTMuNSAxMy41IDE0LjggMzYuOCA2LjEgNjQuNi00LjUgMTQgMTMuMSA2LjMgMTMuMSA2LjMgNTYuMi0yMy42IDEwNS4yLTI1IDEyMy4xLjcgOS42IDEzLjcgOC42IDMyLjgtLjIgNTUuMS00LjEgMTAuMiAxLjMgMTEuOCA5IDE0LjEgMzEuNyA5LjggNjYuOSAzMy42IDY2LjkgNzUuNS4yIDY5LjUtOTkuNyAxNTYuOS0yNDkuOCAxNTYuOXptMjA3LjMtMjkwLjhhMzQuOSAzNC45IDAgMCAwLTcuMi0zNC4xIDM0LjY4IDM0LjY4IDAgMCAwLTMzLjEtMTAuNyAxOC4yNCAxOC4yNCAwIDAgMS03LjYtMzUuN2MyNC4xLTUuMSA1MC4xIDIuMyA2Ny43IDIxLjkgMTcuNyAxOS42IDIyLjQgNDYuMyAxNC45IDY5LjhhMTguMTMgMTguMTMgMCAwIDEtMjIuOSAxMS43IDE4LjE4IDE4LjE4IDAgMCAxLTExLjgtMjIuOXptMTA2IDM0LjNzMCAuMSAwIDBhMjEuMSAyMS4xIDAgMCAxLTI2LjYgMTMuNyAyMS4xOSAyMS4xOSAwIDAgMS0xMy42LTI2LjdjMTEtMzQuMiA0LTczLjItMjEuNy0xMDEuOGExMDQuMDQgMTA0LjA0IDAgMCAwLTk4LjktMzIuMSAyMS4xNCAyMS4xNCAwIDAgMS0yNS4xLTE2LjMgMjEuMDcgMjEuMDcgMCAwIDEgMTYuMi0yNS4xYzQ5LjQtMTAuNSAxMDIuOCA0LjggMTM5LjEgNDUuMSAzNi4zIDQwLjIgNDYuMSA5NS4xIDMwLjYgMTQzLjJ6bS0zMzQuNSA2LjFjLTkxLjQgOS0xNjAuNyA2NS4xLTE1NC43IDEyNS4yIDUuOSA2MC4xIDg0LjggMTAxLjUgMTc2LjIgOTIuNSA5MS40LTkuMSAxNjAuNy02NS4xIDE1NC43LTEyNS4zLTUuOS02MC4xLTg0LjgtMTAxLjUtMTc2LjItOTIuNHptODAuMiAxNDEuN2MtMTguNyA0Mi4zLTcyLjMgNjQuOC0xMTcuOCA1MC4xLTQzLjktMTQuMi02Mi41LTU3LjctNDMuMy05Ni44IDE4LjktMzguNCA2OC02MC4xIDExMS41LTQ4LjggNDUgMTEuNyA2OCA1NC4yIDQ5LjYgOTUuNXptLTU4LjEtNDYuN2MtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuWXVxdWVGaWxsID0gZ2V0SWNvbigneXVxdWUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMzcwLjZjLTkuOS0zOS40IDkuOS0xMDIuMiA3My40LTEyNC40bC02Ny45LTMuNnMtMjUuNy05MC0xNDMuNi05OGMtMTE3LjktOC4xLTE5NS0zLTE5NS0zczg3LjQgNTUuNiA1Mi40IDE1NC43Yy0yNS42IDUyLjUtNjUuOCA5NS42LTEwOC44IDE0NC43LTEuMyAxLjMtMi41IDIuNi0zLjUgMy43QzMxOS40IDYwNSA5NiA4NjAgOTYgODYwYzI0NS45IDY0LjQgNDEwLjctNi4zIDUwOC4yLTkxLjEgMjAuNS0uMiAzNS45LS4zIDQ2LjMtLjMgMTM1LjggMCAyNTAuNi0xMTcuNiAyNDUuOS0yNDguNC0zLjItODkuOS0zMS45LTExMC4yLTQxLjgtMTQ5LjZ6JykpO1xuZXhwb3J0cy5Zb3V0dWJlRmlsbCA9IGdldEljb24oJ3lvdXR1YmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTQxLjMgMjk2LjFhMTEyLjMgMTEyLjMgMCAwIDAtNzkuMi03OS4zQzc5Mi4yIDE5OCA1MTIgMTk4IDUxMiAxOThzLTI4MC4yIDAtMzUwLjEgMTguN0ExMTIuMTIgMTEyLjEyIDAgMCAwIDgyLjcgMjk2QzY0IDM2NiA2NCA1MTIgNjQgNTEyczAgMTQ2IDE4LjcgMjE1LjljMTAuMyAzOC42IDQwLjcgNjkgNzkuMiA3OS4zQzIzMS44IDgyNiA1MTIgODI2IDUxMiA4MjZzMjgwLjIgMCAzNTAuMS0xOC44YzM4LjYtMTAuMyA2OC45LTQwLjcgNzkuMi03OS4zQzk2MCA2NTggOTYwIDUxMiA5NjAgNTEyczAtMTQ2LTE4LjctMjE1Ljl6TTQyMyA2NDZWMzc4bDIzMiAxMzMtMjMyIDEzNXonKSk7XG5leHBvcnRzLlpoaWh1U3F1YXJlRmlsbCA9IGdldEljb24oJ3poaWh1LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQzMi4zIDU5Mi44bDcxIDgwLjdjOS4yIDMzLTMuMyA2My4xLTMuMyA2My4xbC05NS43LTExMS45di0uMWMtOC45IDI5LTIwLjEgNTcuMy0zMy4zIDg0LjctMjIuNiA0NS43LTU1LjIgNTQuNy04OS41IDU3LjctMzQuNCAzLTIzLjMtNS4zLTIzLjMtNS4zIDY4LTU1LjUgNzgtODcuOCA5Ni44LTEyMy4xIDExLjktMjIuMyAyMC40LTY0LjMgMjUuMy05Ni44SDI2NC4xczQuOC0zMS4yIDE5LjItNDEuN2gxMDEuNmMuNi0xNS4zLTEuMy0xMDIuOC0yLTEzMS40aC00OS40Yy05LjIgNDUtNDEgNTYuNy00OC4xIDYwLjEtNyAzLjQtMjMuNiA3LjEtMjEuMSAwIDIuNi03LjEgMjctNDYuMiA0My4yLTExMC43IDE2LjMtNjQuNiA2My45LTYyIDYzLjktNjItMTIuOCAyMi41LTIyLjQgNzMuNi0yMi40IDczLjZoMTU5LjdjMTAuMSAwIDEwLjYgMzkgMTAuNiAzOWgtOTAuOGMtLjcgMjIuNy0yLjggODMuOC01IDEzMS40SDUxOXMxMi4yIDE1LjQgMTIuMiA0MS43aC0xMTBsLS4xIDEuNWMtMS41IDIwLjQtNi4zIDQzLjktMTIuOSA2Ny42bDI0LjEtMTguMXptMzM1LjUgMTE2aC04Ny42bC02OS41IDQ2LjYtMTYuNC00Ni42aC00MC4xVjMyMS41aDIxMy42djM4Ny4zek00MDguMiA2MTFzMC0uMSAwIDB6bTIxNiA5NC4zbDU2LjgtMzguMWg0NS42LS4xVjM2NC43SDU5Ni43djMwMi41aDE0LjF6JykpO1xuZXhwb3J0cy5aaGlodUNpcmNsZUZpbGwgPSBnZXRJY29uKCd6aGlodS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS05MC43IDQ3Ny44bC0uMSAxLjVjLTEuNSAyMC40LTYuMyA0My45LTEyLjkgNjcuNmwyNC0xOC4xIDcxIDgwLjdjOS4yIDMzLTMuMyA2My4xLTMuMyA2My4xbC05NS43LTExMS45di0uMWMtOC45IDI5LTIwLjEgNTcuMy0zMy4zIDg0LjctMjIuNiA0NS43LTU1LjIgNTQuNy04OS41IDU3LjctMzQuNCAzLTIzLjMtNS4zLTIzLjMtNS4zIDY4LTU1LjUgNzgtODcuOCA5Ni44LTEyMy4xIDExLjktMjIuMyAyMC40LTY0LjMgMjUuMy05Ni44SDI2NC4xczQuOC0zMS4yIDE5LjItNDEuN2gxMDEuNmMuNi0xNS4zLTEuMy0xMDIuOC0yLTEzMS40aC00OS40Yy05LjIgNDUtNDEgNTYuNy00OC4xIDYwLjEtNyAzLjQtMjMuNiA3LjEtMjEuMSAwIDIuNi03LjEgMjctNDYuMiA0My4yLTExMC43IDE2LjMtNjQuNiA2My45LTYyIDYzLjktNjItMTIuOCAyMi41LTIyLjQgNzMuNi0yMi40IDczLjZoMTU5LjdjMTAuMSAwIDEwLjYgMzkgMTAuNiAzOWgtOTAuOGMtLjcgMjIuNy0yLjggODMuOC01IDEzMS40SDUxOXMxMi4yIDE1LjQgMTIuMiA0MS43SDQyMS4zem0zNDYuNSAxNjdoLTg3LjZsLTY5LjUgNDYuNi0xNi40LTQ2LjZoLTQwLjFWMzIxLjVoMjEzLjZ2Mzg3LjN6TTQwOC4yIDYxMXMwLS4xIDAgMHptMjE2IDk0LjNsNTYuOC0zOC4xaDQ1LjYtLjFWMzY0LjdINTk2Ljd2MzAyLjVoMTQuMXonKSk7XG5leHBvcnRzLkFjY291bnRCb29rT3V0bGluZSA9IGdldEljb24oJ2FjY291bnQtYm9vaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6TTYzOS41IDQxNGgtNDVjLTMgMC01LjggMS43LTcuMSA0LjRMNTE0IDU2My44aC0yLjhsLTczLjQtMTQ1LjRhOCA4IDAgMCAwLTcuMS00LjRoLTQ2Yy0xLjMgMC0yLjcuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC45bDg5LjMgMTY0aC00OC42Yy00LjQgMC04IDMuNi04IDh2MjEuM2MwIDQuNCAzLjYgOCA4IDhoNjUuMXYzMy43aC02NS4xYy00LjQgMC04IDMuNi04IDh2MjEuM2MwIDQuNCAzLjYgOCA4IDhoNjUuMVY3NTJjMCA0LjQgMy42IDggOCA4aDQxLjNjNC40IDAgOC0zLjYgOC04di01My44aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNjUuNHYtMzMuN2g2NS40YzQuNCAwIDgtMy42IDgtOHYtMjEuM2MwLTQuNC0zLjYtOC04LThoLTQ5LjFsODkuMy0xNjQuMWMuNi0xLjIgMS0yLjUgMS0zLjguMS00LjQtMy40LTgtNy45LTh6JykpO1xuZXhwb3J0cy5BbGVydE91dGxpbmUgPSBnZXRJY29uKCdhbGVydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xOTMgNzk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU3NGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NjNjMC0xNzYuMi0xNDIuOC0zMTktMzE5LTMxOVMxOTMgMzg2LjggMTkzIDU2M3YyMzN6bTcyLTIzM2MwLTEzNi40IDExMC42LTI0NyAyNDctMjQ3czI0NyAxMTAuNiAyNDcgMjQ3djE5M0g0MDRWNTg1YzAtNS41LTQuNS0xMC0xMC0xMGgtNDRjLTUuNSAwLTEwIDQuNS0xMCAxMHYxNzFoLTc1VjU2M3ptLTQ4LjEtMjUyLjVsMzkuNi0zOS42YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTY3LjktNjcuOWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zOS42IDM5LjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w2Ny45IDY3LjljMy4xIDMuMSA4LjEgMy4xIDExLjMgMHptNjY5LjYtNzkuMmwtMzkuNi0zOS42YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTY3LjkgNjcuOWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDM5LjYgMzkuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDY3LjktNjcuOWMzLjEtMy4yIDMuMS04LjIgMC0xMS4zek04MzIgODkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjRjMCA0LjQgMy42IDggOCA4aDY4OGM0LjQgMCA4LTMuNiA4LTh2LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00ODQgMTgwaDU2YzQuNCAwIDgtMy42IDgtOFY3NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2OTZjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuQWxpcGF5Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2FsaXBheS1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzA4LjYgNTQ1LjdjLTE5LjggMi01Ny4xIDEwLjctNzcuNCAyOC42LTYxIDUzLTI0LjUgMTUwIDk5IDE1MCA3MS44IDAgMTQzLjUtNDUuNyAxOTkuOC0xMTktODAuMi0zOC45LTE0OC4xLTY2LjgtMjIxLjQtNTkuNnptNDYwLjUgNjdjMTAwLjEgMzMuNCAxNTQuNyA0MyAxNjYuNyA0NC44QTQ0NS45IDQ0NS45IDAgMCAwIDk2MCA1MTJjMC0yNDcuNC0yMDAuNi00NDgtNDQ4LTQ0OFM2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDhjMTU1LjkgMCAyOTMuMi03OS43IDM3My41LTIwMC41LTc1LjYtMjkuOC0yMTMuNi04NS0yODYuOC0xMjAuMS02OS45IDg1LjctMTYwLjEgMTM3LjgtMjUzLjcgMTM3LjgtMTU4LjQgMC0yMTIuMS0xMzguMS0xMzcuMi0yMjkgMTYuMy0xOS44IDQ0LjItMzguNyA4Ny4zLTQ5LjQgNjcuNS0xNi41IDE3NSAxMC4zIDI3NS43IDQzLjQgMTguMS0zMy4zIDMzLjQtNjkuOSA0NC43LTEwOC45SDMwNS4xVjQwMmgxNjB2LTU2LjJIMjcxLjN2LTMxLjNoMTkzLjh2LTgwLjFzMC0xMy41IDEzLjctMTMuNUg1NTd2OTMuNmgxOTEuN3YzMS4zSDU1Ny4xVjQwMmgxNTYuNGMtMTUgNjEuMS0zNy43IDExNy40LTY2LjIgMTY2LjggNDcuNSAxNy4xIDkwLjEgMzMuMyAxMjEuOCA0My45eicpKTtcbmV4cG9ydHMuQWxpd2FuZ3dhbmdPdXRsaW5lID0gZ2V0SWNvbignYWxpd2FuZ3dhbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4LjIgMzc3LjRjLTE4LjktNDUuMS00Ni4zLTg1LjYtODEuMi0xMjAuNmEzNzcuMjYgMzc3LjI2IDAgMCAwLTEyMC41LTgxLjJBMzc1LjY1IDM3NS42NSAwIDAgMCA1MTkgMTQ1LjhjLTQxLjkgMC04Mi45IDYuNy0xMjEuOSAyMEMzMDYgMTIzLjMgMjAwLjggMTIwIDE3MC42IDEyMGMtMi4yIDAtNy40IDAtOS40LjItMTEuOS40LTIyLjggNi41LTI5LjIgMTYuNC02LjUgOS45LTcuNyAyMi40LTMuNCAzMy41bDY0LjMgMTYxLjZhMzc4LjU5IDM3OC41OSAwIDAgMC01Mi44IDE5My4yYzAgNTEuNCAxMCAxMDEgMjkuOCAxNDcuNiAxOC45IDQ1IDQ2LjIgODUuNiA4MS4yIDEyMC41IDM0LjcgMzQuOCA3NS40IDYyLjEgMTIwLjUgODEuMkM0MTguMyA4OTQgNDY3LjkgOTA0IDUxOSA5MDRjNTEuMyAwIDEwMC45LTEwLjEgMTQ3LjctMjkuOCA0NC45LTE4LjkgODUuNS00Ni4zIDEyMC40LTgxLjIgMzQuNy0zNC44IDYyLjEtNzUuNCA4MS4yLTEyMC42YTM3Ni41IDM3Ni41IDAgMCAwIDI5LjgtMTQ3LjZjLS4yLTUxLjItMTAuMS0xMDAuOC0yOS45LTE0Ny40em0tNjYuNCAyNjYuNWEzMDcuMDggMzA3LjA4IDAgMCAxLTY1LjkgOThjLTI4LjQgMjguNS02MS4zIDUwLjctOTcuNyA2NS45aC0uMWMtMzggMTYtNzguMyAyNC4yLTExOS45IDI0LjJhMzA2LjUxIDMwNi41MSAwIDAgMS0yMTcuNS05MC4yYy0yOC40LTI4LjUtNTAuNi02MS40LTY1LjgtOTcuOHYtLjFjLTE2LTM3LjgtMjQuMS03OC4yLTI0LjEtMTE5LjkgMC01NS40IDE0LjgtMTA5LjcgNDIuOC0xNTdsMTMuMi0yMi4xLTkuNS0yMy45TDIwNiAxOTJjMTQuOS42IDM1LjkgMi4xIDU5LjcgNS42IDQzLjggNi41IDgyLjUgMTcuNSAxMTQuOSAzMi42bDE5IDguOSAxOS45LTYuOGMzMS41LTEwLjggNjQuOC0xNi4yIDk4LjktMTYuMmEzMDYuNTEgMzA2LjUxIDAgMCAxIDIxNy41IDkwLjJjMjguNCAyOC41IDUwLjYgNjEuNCA2NS44IDk3LjhsLjEuMS4xLjFjMTYgMzcuNiAyNC4xIDc4IDI0LjIgMTE5LjgtLjEgNDEuNy04LjMgODItMjQuMyAxMTkuOHpNNjgxLjEgMzY0LjJjLTIwLjQgMC0zNy4xIDE2LjctMzcuMSAzNy4xdjU1LjFjMCAyMC40IDE2LjYgMzcuMSAzNy4xIDM3LjFzMzcuMS0xNi43IDM3LjEtMzcuMXYtNTUuMWMwLTIwLjUtMTYuNy0zNy4xLTM3LjEtMzcuMXptLTE3NS4yIDBjLTIwLjUgMC0zNy4xIDE2LjctMzcuMSAzNy4xdjU1LjFjMCAyMC40IDE2LjcgMzcuMSAzNy4xIDM3LjEgMjAuNSAwIDM3LjEtMTYuNyAzNy4xLTM3LjF2LTU1LjFjMC0yMC41LTE2LjctMzcuMS0zNy4xLTM3LjF6JykpO1xuZXhwb3J0cy5BbmRyb2lkT3V0bGluZSA9IGdldEljb24oJ2FuZHJvaWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQ4LjMgMjI1LjJjLTE4LjYgMC0zMiAxMy40LTMyIDMxLjlzMTMuNSAzMS45IDMyIDMxLjljMTguNiAwIDMyLTEzLjQgMzItMzEuOS4xLTE4LjQtMTMuNC0zMS45LTMyLTMxLjl6bTM5My45IDk2LjRjLTEzLjgtMTMuOC0zMi43LTIxLjUtNTMuMi0yMS41LTMuOSAwLTcuNC40LTEwLjcgMXYtMWgtMy42Yy01LjUtMzAuNi0xOC42LTYwLjUtMzguMS04Ny40LTE4LjctMjUuNy00My00Ny45LTcwLjgtNjQuOWwyNS4xLTM1Ljh2LTMuM2MwLS44LjQtMi4zLjctMy44LjYtMi40IDEuNC01LjUgMS40LTguOSAwLTE4LjUtMTMuNS0zMS45LTMyLTMxLjktOS44IDAtMTkuNSA1LjctMjUuOSAxNS40bC0yOS4zIDQyLjFjLTMwLTkuOC02Mi40LTE1LTkzLjgtMTUtMzEuMyAwLTYzLjcgNS4yLTkzLjggMTVMMzg5IDc5LjRjLTYuNi05LjYtMTYuMS0xNS40LTI2LTE1LjQtMTguNiAwLTMyIDEzLjQtMzIgMzEuOSAwIDYuMiAyLjUgMTIuOCA2LjcgMTcuNGwyMi42IDMyLjNjLTI4LjcgMTctNTMuNSAzOS40LTcyLjIgNjUuMS0xOS40IDI2LjktMzIgNTYuOC0zNi43IDg3LjRoLTUuNXYxYy0zLjItLjYtNi43LTEtMTAuNy0xLTIwLjMgMC0zOS4yIDcuNS01My4xIDIxLjMtMTMuOCAxMy44LTIxLjUgMzIuNi0yMS41IDUzdjIzNWMwIDIwLjMgNy41IDM5LjEgMjEuNCA1Mi45IDEzLjggMTMuOCAzMi44IDIxLjUgNTMuMiAyMS41IDMuOSAwIDcuNC0uNCAxMC43LTF2OTMuNWMwIDI5LjIgMjMuOSA1My4xIDUzLjIgNTMuMUgzMzF2NTguM2MwIDIwLjMgNy41IDM5LjEgMjEuNCA1Mi45IDEzLjggMTMuOCAzMi44IDIxLjUgNTMuMiAyMS41IDIwLjMgMCAzOS4yLTcuNSA1My4xLTIxLjMgMTMuOC0xMy44IDIxLjUtMzIuNiAyMS41LTUzdi01OC4ySDU0NHY1OC4xYzAgMjAuMyA3LjUgMzkuMSAyMS40IDUyLjkgMTMuOCAxMy44IDMyLjggMjEuNSA1My4yIDIxLjUgMjAuNCAwIDM5LjItNy41IDUzLjEtMjEuNiAxMy44LTEzLjggMjEuNS0zMi42IDIxLjUtNTN2LTU4LjJoMzEuOWMyOS4zIDAgNTMuMi0yMy44IDUzLjItNTMuMXYtOTEuNGMzLjIuNiA2LjcgMSAxMC43IDEgMjAuMyAwIDM5LjItNy41IDUzLjEtMjEuMyAxMy44LTEzLjggMjEuNS0zMi42IDIxLjUtNTN2LTIzNWMtLjEtMjAuMy03LjYtMzktMjEuNC01Mi45ek0yNDYgNjA5LjZjMCA2LjgtMy45IDEwLjYtMTAuNyAxMC42LTYuOCAwLTEwLjctMy44LTEwLjctMTAuNlYzNzQuNWMwLTYuOCAzLjktMTAuNiAxMC43LTEwLjYgNi44IDAgMTAuNyAzLjggMTAuNyAxMC42djIzNS4xem0xMzEuMS0zOTYuOGMzNy41LTI3LjMgODUuMy00Mi4zIDEzNS00Mi4zczk3LjUgMTUuMSAxMzUgNDIuNWMzMi40IDIzLjcgNTQuMiA1NC4yIDYyLjcgODcuNUgzMTQuNGM4LjUtMzMuNCAzMC41LTY0IDYyLjctODcuN3ptMzkuMyA2NzQuN2MtLjYgNS42LTQuNCA4LjctMTAuNSA4LjctNi44IDAtMTAuNy0zLjgtMTAuNy0xMC42di01OC4yaDIxLjJ2NjAuMXptMjAyLjMgOC43Yy02LjggMC0xMC43LTMuOC0xMC43LTEwLjZ2LTU4LjJoMjEuMnY2MC4xYy0uNiA1LjYtNC4zIDguNy0xMC41IDguN3ptOTUuOC0xMzIuNkgzMDkuOVYzNjRoNDA0LjZ2Mzk5LjZ6bTg1LjItMTU0YzAgNi44LTMuOSAxMC42LTEwLjcgMTAuNi02LjggMC0xMC43LTMuOC0xMC43LTEwLjZWMzc0LjVjMC02LjggMy45LTEwLjYgMTAuNy0xMC42IDYuOCAwIDEwLjcgMy44IDEwLjcgMTAuNnYyMzUuMXpNNTc2LjEgMjI1LjJjLTE4LjYgMC0zMiAxMy40LTMyIDMxLjlzMTMuNSAzMS45IDMyIDMxLjljMTguNiAwIDMyLjEtMTMuNCAzMi4xLTMyLS4xLTE4LjYtMTMuNC0zMS44LTMyLjEtMzEuOHonKSk7XG5leHBvcnRzLkFwaU91dGxpbmUgPSBnZXRJY29uKCdhcGknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTE3LjcgMTQ4LjhsLTQyLjQtNDIuNGMtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTc2LjEgNzYuMWExOTkuMjcgMTk5LjI3IDAgMCAwLTExMi4xLTM0LjNjLTUxLjIgMC0xMDIuNCAxOS41LTE0MS41IDU4LjZMNDMyLjMgMzA4LjdhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w3MDQgNTkxLjdjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjMgMiAwIDQuMS0uOCA1LjctMi4zbDEwMS45LTEwMS45YzY4LjktNjkgNzctMTc1LjcgMjQuMy0yNTMuNWw3Ni4xLTc2LjFjMy4xLTMuMiAzLjEtOC4zIDAtMTEuNHpNNzY5LjEgNDQxLjdsLTU5LjQgNTkuNC0xODYuOC0xODYuOCA1OS40LTU5LjRjMjQuOS0yNC45IDU4LjEtMzguNyA5My40LTM4LjcgMzUuMyAwIDY4LjQgMTMuNyA5My40IDM4LjcgMjQuOSAyNC45IDM4LjcgNTguMSAzOC43IDkzLjQgMCAzNS4zLTEzLjggNjguNC0zOC43IDkzLjR6bS0xOTAuMiAxMDVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MDEgNjEzLjMgNDEwLjcgNTIzbDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDQ0MSA0MDguNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMCAwLTUuNy0yLjNjLTIgMC00LjEuOC01LjcgMi4zTDIwNi44IDUzNC4yYy02OC45IDY5LTc3IDE3NS43LTI0LjMgMjUzLjVsLTc2LjEgNzYuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNGMxLjYgMS42IDMuNiAyLjMgNS43IDIuM3M0LjEtLjggNS43LTIuM2w3Ni4xLTc2LjFjMzMuNyAyMi45IDcyLjkgMzQuMyAxMTIuMSAzNC4zIDUxLjIgMCAxMDIuNC0xOS41IDE0MS41LTU4LjZsMTAxLjktMTAxLjljMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDMtNDMgNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjYtMzYuMnpNNDQxLjcgNzY5LjFhMTMxLjMyIDEzMS4zMiAwIDAgMS05My40IDM4LjdjLTM1LjMgMC02OC40LTEzLjctOTMuNC0zOC43YTEzMS4zMiAxMzEuMzIgMCAwIDEtMzguNy05My40YzAtMzUuMyAxMy43LTY4LjQgMzguNy05My40bDU5LjQtNTkuNCAxODYuOCAxODYuOC01OS40IDU5LjR6JykpO1xuZXhwb3J0cy5BcHBzdG9yZU91dGxpbmUgPSBnZXRJY29uKCdhcHBzdG9yZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NjQgMTQ0SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDIxMlYyMTJoMjAwdjIwMHptNDUyLTI2OEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEg2MTJWMjEyaDIwMHYyMDB6TTQ2NCA1NDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhIMjEyVjYxMmgyMDB2MjAwem00NTItMjY4SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlY2MTJoMjAwdjIwMHonKSk7XG5leHBvcnRzLkF1ZGlvT3V0bGluZSA9IGdldEljb24oJ2F1ZGlvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0MiA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTQwLjMtMTEzLjcgMjU0LTI1NCAyNTRTMjU4IDU5NC4zIDI1OCA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTY4LjcgMTI2LjYgMzA3LjkgMjkwIDMyNy42Vjg4NEgzMjYuN2MtMTMuNyAwLTI0LjcgMTQuMy0yNC43IDMydjM2YzAgNC40IDIuOCA4IDYuMiA4aDQwNy42YzMuNCAwIDYuMi0zLjYgNi4yLTh2LTM2YzAtMTcuNy0xMS0zMi0yNC43LTMySDU0OFY3ODIuMWMxNjUuMy0xOCAyOTQtMTU4IDI5NC0zMjguMXpNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0tOTQtMzkyYzAtNTAuNiA0MS45LTkyIDk0LTkyczk0IDQxLjQgOTQgOTJ2MjI0YzAgNTAuNi00MS45IDkyLTk0IDkycy05NC00MS40LTk0LTkyVjIzMnonKSk7XG5leHBvcnRzLkFwcGxlT3V0bGluZSA9IGdldEljb24oJ2FwcGxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc0Ny40IDUzNS43Yy0uNC02OC4yIDMwLjUtMTE5LjYgOTIuOS0xNTcuNS0zNC45LTUwLTg3LjctNzcuNS0xNTcuMy04Mi44LTY1LjktNS4yLTEzOCAzOC40LTE2NC40IDM4LjQtMjcuOSAwLTkxLjctMzYuNi0xNDEuOS0zNi42QzI3My4xIDI5OC44IDE2MyAzNzkuOCAxNjMgNTQ0LjZjMCA0OC43IDguOSA5OSAyNi43IDE1MC44IDIzLjggNjguMiAxMDkuNiAyMzUuMyAxOTkuMSAyMzIuNiA0Ni44LTEuMSA3OS45LTMzLjIgMTQwLjgtMzMuMiA1OS4xIDAgODkuNyAzMy4yIDE0MS45IDMzLjIgOTAuMy0xLjMgMTY3LjktMTUzLjIgMTkwLjUtMjIxLjYtMTIxLjEtNTcuMS0xMTQuNi0xNjcuMi0xMTQuNi0xNzAuN3ptLTEwLjYgMjY3Yy0xNC4zIDE5LjktMjguNyAzNS42LTQxLjkgNDUuNy0xMC41IDgtMTguNiAxMS40LTI0IDExLjYtOS0uMS0xNy43LTIuMy0zNC43LTguOC0xLjItLjUtMi41LTEtNC4yLTEuNmwtNC40LTEuN2MtMTcuNC02LjctMjcuOC0xMC4zLTQxLjEtMTMuOC0xOC42LTQuOC0zNy4xLTcuNC01Ni45LTcuNC0yMC4yIDAtMzkuMiAyLjUtNTguMSA3LjItMTMuOSAzLjUtMjUuNiA3LjQtNDIuNyAxMy44LS43LjMtOC4xIDMuMS0xMC4yIDMuOS0zLjUgMS4zLTYuMiAyLjMtOC43IDMuMi0xMC40IDMuNi0xNyA1LjEtMjIuOSA1LjItLjcgMC0xLjMtLjEtMS44LS4yLTEuMS0uMi0yLjUtLjYtNC4xLTEuMy00LjUtMS44LTkuOS01LjEtMTYtOS44LTE0LTEwLjktMjkuNC0yOC00NS4xLTQ5LjktMjcuNS0zOC42LTUzLjUtODkuOC02Ni0xMjUuNy0xNS40LTQ0LjgtMjMtODcuNy0yMy0xMjguNiAwLTYwLjIgMTcuOC0xMDYgNDguNC0xMzcuMSAyNi4zLTI2LjYgNjEuNy00MS41IDk3LjgtNDIuMyA1LjkuMSAxNC41IDEuNSAyNS40IDQuNSA4LjYgMi4zIDE4IDUuNCAzMC43IDkuOSAzLjggMS40IDE2LjkgNi4xIDE4LjUgNi43IDcuNyAyLjggMTMuNSA0LjggMTkuMiA2LjYgMTguMiA1LjggMzIuMyA5IDQ3LjYgOSAxNS41IDAgMjguOC0zLjMgNDcuNy05LjggNy4xLTIuNCAzMi45LTEyIDM3LjUtMTMuNiAyNS42LTkuMSA0NC41LTE0IDYwLjgtMTUuMiA0LjgtLjQgOS4xLS40IDEzLjItLjEgMjIuNyAxLjggNDIuMSA2LjMgNTguNiAxMy44LTM3LjYgNDMuNC01NyA5Ni41LTU2LjkgMTU4LjQtLjMgMTQuNy45IDMxLjcgNS4xIDUxLjggNi40IDMwLjUgMTguNiA2MC43IDM3LjkgODkgMTQuNyAyMS41IDMyLjkgNDAuOSA1NC43IDU3LjgtMTEuNSAyMy43LTI1LjYgNDguMi00MC40IDY4Ljh6bS05NC41LTU3MmM1MC43LTYwLjIgNDYuMS0xMTUgNDQuNi0xMzQuNy00NC44IDIuNi05Ni42IDMwLjUtMTI2LjEgNjQuOC0zMi41IDM2LjgtNTEuNiA4Mi4zLTQ3LjUgMTMzLjYgNDguNCAzLjcgOTIuNi0yMS4yIDEyOS02My43eicpKTtcbmV4cG9ydHMuQmFja3dhcmRPdXRsaW5lID0gZ2V0SWNvbignYmFja3dhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNDg1LjYgMjQ5LjlMMTk4LjIgNDk4Yy04LjMgNy4xLTguMyAyMC44IDAgMjcuOWwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXptMzIwIDBMNTE4LjIgNDk4YTE4LjYgMTguNiAwIDAgMC02LjIgMTRjMCA1LjIgMi4xIDEwLjQgNi4yIDE0bDI4Ny40IDI0OC4yYzEwLjcgOS4yIDI2LjQuOSAyNi40LTE0VjI2My44YzAtMTQuOC0xNS43LTIzLjItMjYuNC0xMy45eicpKTtcbmV4cG9ydHMuQmFua091dGxpbmUgPSBnZXRJY29uKCdiYW5rJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5NCA0NjJjMzAuOSAwIDQzLjgtMzkuNyAxOC43LTU4TDUzMC44IDEyNi4yYTMxLjgxIDMxLjgxIDAgMCAwLTM3LjYgMEwxMTEuMyA0MDRjLTI1LjEgMTguMi0xMi4yIDU4IDE4LjggNThIMTkydjM3NGgtNzJjLTQuNCAwLTggMy42LTggOHY1MmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTJjMC00LjQtMy42LTgtOC04aC03MlY0NjJoNjJ6TTUxMiAxOTYuN2wyNzEuMSAxOTcuMkgyNDAuOUw1MTIgMTk2Ljd6TTI2NCA0NjJoMTE3djM3NEgyNjRWNDYyem0xODkgMGgxMTd2Mzc0SDQ1M1Y0NjJ6bTMwNyAzNzRINjQyVjQ2MmgxMTh2Mzc0eicpKTtcbmV4cG9ydHMuQmVsbE91dGxpbmUgPSBnZXRJY29uKCdiZWxsJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgxNiA3NjhoLTI0VjQyOGMwLTE0MS4xLTEwNC4zLTI1Ny43LTI0MC0yNzcuMVYxMTJjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2MzguOWMtMTM1LjcgMTkuNC0yNDAgMTM2LTI0MCAyNzcuMXYzNDBoLTI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDQuNCAzLjYgOCA4IDhoMjE2YzAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJoMjE2YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4ODhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4aDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4ek0zMDQgNzY4VjQyOGMwLTU1LjYgMjEuNi0xMDcuOCA2MC45LTE0Ny4xUzQ1Ni40IDIyMCA1MTIgMjIwYzU1LjYgMCAxMDcuOCAyMS42IDE0Ny4xIDYwLjlTNzIwIDM3Mi40IDcyMCA0Mjh2MzQwSDMwNHonKSk7XG5leHBvcnRzLkJlaGFuY2VTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbignYmVoYW5jZS1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01OTguNSAzNTAuOWgxMzguNHYzMy43SDU5OC41di0zMy43ek01MTIgNjI4LjhhODkuNTIgODkuNTIgMCAwIDEtMjcgMzFjLTExLjggOC4yLTI0LjkgMTQuMi0zOC44IDE3LjdhMTY3LjQgMTY3LjQgMCAwIDEtNDQuNiA1LjdIMjM2VjM0Mi4xaDE2MWMxNi4zIDAgMzEuMSAxLjUgNDQuNiA0LjMgMTMuNCAyLjggMjQuOCA3LjYgMzQuNCAxNC4xIDkuNSA2LjUgMTcgMTUuMiAyMi4zIDI2IDUuMiAxMC43IDcuOSAyNC4xIDcuOSA0MCAwIDE3LjItMy45IDMxLjQtMTEuNyA0Mi45LTcuOSAxMS41LTE5LjMgMjAuOC0zNC44IDI4LjEgMjEuMSA2IDM2LjYgMTYuNyA0Ni44IDMxLjcgMTAuNCAxNS4yIDE1LjUgMzMuNCAxNS41IDU0LjggMCAxNy40LTMuMyAzMi4zLTEwIDQ0Ljh6TTc5MC44IDU3Nkg2MTIuNGMwIDE5LjQgNi43IDM4IDE2LjggNDggMTAuMiA5LjkgMjQuOCAxNC45IDQzLjkgMTQuOSAxMy44IDAgMjUuNS0zLjUgMzUuNS0xMC40IDkuOS02LjkgMTUuOS0xNC4yIDE4LjEtMjEuOGg1OS44Yy05LjYgMjkuNy0yNC4yIDUwLjktNDQgNjMuNy0xOS42IDEyLjgtNDMuNiAxOS4yLTcxLjUgMTkuMi0xOS41IDAtMzctMy4yLTUyLjctOS4zLTE1LjEtNS45LTI4LjctMTQuOS0zOS45LTI2LjVhMTIxLjIgMTIxLjIgMCAwIDEtMjUuMS00MS4yYy02LjEtMTYuOS05LjEtMzQuNy04LjktNTIuNiAwLTE4LjUgMy4xLTM1LjcgOS4xLTUxLjcgMTEuNS0zMS4xIDM1LjQtNTYgNjUuOS02OC45IDE2LjMtNi44IDMzLjgtMTAuMiA1MS41LTEwIDIxIDAgMzkuMiA0IDU1IDEyLjJhMTExLjYgMTExLjYgMCAwIDEgMzguNiAzMi44YzEwLjEgMTMuNyAxNy4yIDI5LjMgMjEuNyA0Ni45IDQuMyAxNy4zIDUuOCAzNS41IDQuNiA1NC43em0tMTIyLTk1LjZjLTEwLjggMC0xOS45IDEuOS0yNi45IDUuNi03IDMuNy0xMi44IDguMy0xNy4yIDEzLjZhNDguNCA0OC40IDAgMCAwLTkuMSAxNy40Yy0xLjYgNS4zLTIuNyAxMC43LTMuMSAxNi4ySDcyM2MtMS42LTE3LjMtNy42LTMwLjEtMTUuNi0zOS4xLTguNC04LjktMjEuOS0xMy43LTM4LjYtMTMuN3ptLTI0OC41LTEwLjFjOC43LTYuMyAxMi45LTE2LjcgMTIuOS0zMSAuMy02LjgtMS4xLTEzLjUtNC4xLTE5LjYtMi43LTQuOS02LjctOS0xMS42LTExLjlhNDQuOCA0NC44IDAgMCAwLTE2LjYtNmMtNi40LTEuMi0xMi45LTEuOC0xOS4zLTEuN2gtNzAuM3Y3OS43aDc2LjFjMTMuMS4xIDI0LjItMy4xIDMyLjktOS41em0xMS44IDcyYy05LjgtNy41LTIyLjktMTEuMi0zOS4yLTExLjJoLTgxLjh2OTRoODAuMmM3LjUgMCAxNC40LS43IDIxLjEtMi4xczEyLjctMy44IDE3LjgtNy4yYzUuMS0zLjMgOS4yLTcuOCAxMi4zLTEzLjYgMy01LjggNC41LTEzLjIgNC41LTIyLjEgMC0xNy43LTUtMzAuMi0xNC45LTM3Ljh6JykpO1xuZXhwb3J0cy5Cb29rT3V0bGluZSA9IGdldEljb24oJ2Jvb2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTI2MCA3Mmg5NnYyMDkuOUw2MjEuNSAzMTIgNTcyIDM0Ny40VjEzNnptMjIwIDc1MkgyMzJWMTM2aDI4MHYyOTYuOWMwIDMuMyAxIDYuNiAzIDkuM2ExNS45IDE1LjkgMCAwIDAgMjIuMyAzLjdsODMuOC01OS45IDgxLjQgNTkuNGMyLjcgMiA2IDMuMSA5LjQgMy4xIDguOCAwIDE2LTcuMiAxNi0xNlYxMzZoNjR2NzUyeicpKTtcbmV4cG9ydHMuQm94UGxvdE91dGxpbmUgPSBnZXRJY29uKCdib3gtcGxvdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgMjI0aC01MmMtNC40IDAtOCAzLjYtOCA4djI0OGgtOTJWMzA0YzAtNC40LTMuNi04LTgtOEgyMzJjLTQuNCAwLTggMy42LTggOHYxNzZoLTkyVjIzMmMwLTQuNC0zLjYtOC04LThINzJjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MTcyYzAgNC40IDMuNiA4IDggOGg1NjBjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYyNDRjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04ek0yOTYgMzY4aDg4djI4OGgtODhWMzY4em00MzIgMjg4SDQ0OFYzNjhoMjgwdjI4OHonKSk7XG5leHBvcnRzLkJ1bGJPdXRsaW5lID0gZ2V0SWNvbignYnVsYicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002MzIgODg4SDM5MmMtNC40IDAtOCAzLjYtOCA4djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE5MmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMzJjMC00LjQtMy42LTgtOC04ek01MTIgNjRjLTE4MS4xIDAtMzI4IDE0Ni45LTMyOCAzMjggMCAxMjEuNCA2NiAyMjcuNCAxNjQgMjg0LjFWNzkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NzYuMWM5OC01Ni43IDE2NC0xNjIuNyAxNjQtMjg0LjEgMC0xODEuMS0xNDYuOS0zMjgtMzI4LTMyOHptMTI3LjkgNTQ5LjhMNjA0IDYzNC42Vjc1Mkg0MjBWNjM0LjZsLTM1LjktMjAuOEMzMDUuNCA1NjguMyAyNTYgNDg0LjUgMjU2IDM5MmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2czI1NiAxMTQuNiAyNTYgMjU2YzAgOTIuNS00OS40IDE3Ni4zLTEyOC4xIDIyMS44eicpKTtcbmV4cG9ydHMuQnVnT3V0bGluZSA9IGdldEljb24oJ2J1ZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDQgMjgwaDU2YzQuNCAwIDgtMy42IDgtOCAwLTI4LjMgNS45LTUzLjIgMTcuMS03My41IDEwLjYtMTkuNCAyNi0zNC44IDQ1LjQtNDUuNEM0NTAuOSAxNDIgNDc1LjcgMTM2IDUwNCAxMzZoMTZjMjguMyAwIDUzLjIgNS45IDczLjUgMTcuMSAxOS40IDEwLjYgMzQuOCAyNiA0NS40IDQ1LjRDNjUwIDIxOC45IDY1NiAyNDMuNyA2NTYgMjcyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC00MC04LjgtNzYuNy0yNS45LTEwOC4xYTE4NC4zMSAxODQuMzEgMCAwIDAtNzQtNzRDNTk2LjcgNzIuOCA1NjAgNjQgNTIwIDY0aC0xNmMtNDAgMC03Ni43IDguOC0xMDguMSAyNS45YTE4NC4zMSAxODQuMzEgMCAwIDAtNzQgNzRDMzA0LjggMTk1LjMgMjk2IDIzMiAyOTYgMjcyYzAgNC40IDMuNiA4IDggOHonLCAnTTk0MCA1MTJINzkyVjQxMmM3Ni44IDAgMTM5LTYyLjIgMTM5LTEzOSAwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDhhNjMgNjMgMCAwIDEtNjMgNjNIMjMyYTYzIDYzIDAgMCAxLTYzLTYzYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDc2LjggNjIuMiAxMzkgMTM5IDEzOXYxMDBIODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMTQ4djk2YzAgNi41LjIgMTMgLjcgMTkuM0MxNjQuMSA3MjguNiAxMTYgNzk2LjcgMTE2IDg3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04IDAtNDQuMiAyMy45LTgyLjkgNTkuNi0xMDMuN2EyNzMgMjczIDAgMCAwIDIyLjcgNDljMjQuMyA0MS41IDU5IDc2LjIgMTAwLjUgMTAwLjVTNDYwLjUgOTYwIDUxMiA5NjBzOTkuOC0xMy45IDE0MS4zLTM4LjJhMjgxLjM4IDI4MS4zOCAwIDAgMCAxMjMuMi0xNDkuNUExMjAgMTIwIDAgMCAxIDgzNiA4NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTc5LjMtNDguMS0xNDcuNC0xMTYuNy0xNzYuNy40LTYuNC43LTEyLjguNy0xOS4zdi05NmgxNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTcxNiA2ODBjMCAzNi44LTkuNyA3Mi0yNy44IDEwMi45LTE3LjcgMzAuMy00MyA1NS42LTczLjMgNzMuM0M1ODQgODc0LjMgNTQ4LjggODg0IDUxMiA4ODRzLTcyLTkuNy0xMDIuOS0yNy44Yy0zMC4zLTE3LjctNTUuNi00My03My4zLTczLjNBMjAyLjc1IDIwMi43NSAwIDAgMSAzMDggNjgwVjQxMmg0MDh2MjY4eicpKTtcbmV4cG9ydHMuQ2FsY3VsYXRvck91dGxpbmUgPSBnZXRJY29uKCdjYWxjdWxhdG9yJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI1MS4yIDM4N0gzMjB2NjguOGMwIDEuOCAxLjggMy4yIDQgMy4yaDQ4YzIuMiAwIDQtMS40IDQtMy4zVjM4N2g2OC44YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDM3NnYtNjguOGMwLTEuOC0xLjgtMy4yLTQtMy4yaC00OGMtMi4yIDAtNCAxLjQtNCAzLjJWMzMxaC02OC44Yy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0zMjggMGgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMCAyNjVoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTAgMTA0aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0tMTk1LjctODFsNjEuMi03NC45YzQuMy01LjIuNy0xMy4xLTUuOS0xMy4xSDM4OGMtMi4zIDAtNC41IDEtNS45IDIuOWwtMzQgNDEuNi0zNC00MS42YTcuODUgNy44NSAwIDAgMC01LjktMi45aC01MC45Yy02LjYgMC0xMC4yIDcuOS01LjkgMTMuMWw2MS4yIDc0LjktNjIuNyA3Ni44Yy00LjQgNS4yLS44IDEzLjEgNS44IDEzLjFoNTAuOGMyLjMgMCA0LjUtMSA1LjktMi45bDM1LjUtNDMuNSAzNS41IDQzLjVjMS41IDEuOCAzLjcgMi45IDUuOSAyLjloNTAuOGM2LjYgMCAxMC4yLTcuOSA1LjktMTMuMUwzODMuNSA2NzV6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTM2IDczMkgxODBWMTgwaDY2NHY2NjR6JykpO1xuZXhwb3J0cy5CdWlsZE91dGxpbmUgPSBnZXRJY29uKCdidWlsZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTYgMjEwSDM3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjM2SDEwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjcyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NDZoMjM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUwNCA2OGgyMDB2MjAwSDQxMlYyNzh6bS02OCA0NjhIMTQ0VjU0NmgyMDB2MjAwem0yNjggMEg0MTJWNTQ2aDIwMHYyMDB6bTI2OC0yNjhINjgwVjI3OGgyMDB2MjAweicpKTtcbmV4cG9ydHMuQ2FsZW5kYXJPdXRsaW5lID0gZ2V0SWNvbignY2FsZW5kYXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFY0NjBoNjU2djM4MHpNMTg0IDM5MlYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2MTM2SDE4NHonKSk7XG5leHBvcnRzLkNhbWVyYU91dGxpbmUgPSBnZXRJY29uKCdjYW1lcmEnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY0IDI0OEg3MjhsLTMyLjQtOTAuOGEzMi4wNyAzMi4wNyAwIDAgMC0zMC4yLTIxLjJIMzU4LjZjLTEzLjUgMC0yNS42IDguNS0zMC4xIDIxLjJMMjk2IDI0OEgxNjBjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjQ1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGg3MDRjNDQuMiAwIDgwLTM1LjggODAtODBWMzI4YzAtNDQuMi0zNS44LTgwLTgwLTgwem04IDUzNmMwIDQuNC0zLjYgOC04IDhIMTYwYy00LjQgMC04LTMuNi04LThWMzI4YzAtNC40IDMuNi04IDgtOGgxODYuN2wxNy4xLTQ3LjggMjIuOS02NC4yaDI1MC41bDIyLjkgNjQuMiAxNy4xIDQ3LjhIODY0YzQuNCAwIDggMy42IDggOHY0NTZ6TTUxMiAzODRjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwczcxLjYgMTYwIDE2MCAxNjAgMTYwLTcxLjYgMTYwLTE2MC03MS42LTE2MC0xNjAtMTYwem0wIDI1NmMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnonKSk7XG5leHBvcnRzLkNhck91dGxpbmUgPSBnZXRJY29uKCdjYXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzgwIDcwNGgyNjRjNC40IDAgOC0zLjYgOC04di04NGMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2MzZINDI4di0zNmMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2ODRjMCA0LjQgMy42IDggOCA4em0zNDAtMTIzYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMjM5LTE2Ny42TDkzNS4zIDM3MmE4IDggMCAwIDAtMTAuOS0yLjlsLTUwLjcgMjkuNi03OC4zLTIxNi4yYTYzLjkgNjMuOSAwIDAgMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwIDAtMTAuOSAyLjlMNjUgNDEzLjRjLTIuMiAzLjgtLjkgOC42IDIuOSAxMC44bDYwLjQgMzUuMi0xNC41IDQwYy0xLjIgMy4yLTEuOCA2LjYtMS44IDEwdjM0OC4yYzAgMTUuNyAxMS44IDI4LjQgMjYuMyAyOC40aDY3LjZjMTIuMyAwIDIzLTkuMyAyNS42LTIyLjNsNy43LTM3LjdoNTQ1LjZsNy43IDM3LjdjMi43IDEzIDEzLjMgMjIuMyAyNS42IDIyLjNoNjcuNmMxNC41IDAgMjYuMy0xMi43IDI2LjMtMjguNFY1MDkuNGMwLTMuNC0uNi02LjgtMS44LTEwbC0xNC41LTQwIDYwLjMtMzUuMmE4IDggMCAwIDAgMy0xMC44ek04NDAgNTE3djIzN0gxODRWNTE3bDE1LjYtNDNoNjI0LjhsMTUuNiA0M3pNMjkyLjcgMjE4LjFsLjUtMS4zLjQtMS4zYzEuMS0zLjMgNC4xLTUuNSA3LjYtNS41aDQyNy42bDc1LjQgMjA4SDIyMGw3Mi43LTE5OS45ek0yMjQgNTgxYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLkNhcmV0RG93bk91dGxpbmUgPSBnZXRJY29uKCdjYXJldC1kb3duJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6JykpO1xuZXhwb3J0cy5DYXJldExlZnRPdXRsaW5lID0gZ2V0SWNvbignY2FyZXQtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ002ODkgMTY1LjFMMzA4LjIgNDkzLjVjLTEwLjkgOS40LTEwLjkgMjcuNSAwIDM3TDY4OSA4NTguOWMxNC4yIDEyLjIgMzUgMS4yIDM1LTE4LjVWMTgzLjZjMC0xOS43LTIwLjgtMzAuNy0zNS0xOC41eicpKTtcbmV4cG9ydHMuQ2FyZXRSaWdodE91dGxpbmUgPSBnZXRJY29uKCdjYXJldC1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ003MTUuOCA0OTMuNUwzMzUgMTY1LjFjLTE0LjItMTIuMi0zNS0xLjItMzUgMTguNXY2NTYuOGMwIDE5LjcgMjAuOCAzMC43IDM1IDE4LjVsMzgwLjgtMzI4LjRjMTAuOS05LjQgMTAuOS0yNy42IDAtMzd6JykpO1xuZXhwb3J0cy5DYXJyeU91dE91dGxpbmUgPSBnZXRJY29uKCdjYXJyeS1vdXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0ek02ODggNDIwaC01NS4yYy01LjEgMC0xMCAyLjUtMTMgNi42TDQ2OC45IDYzNC40bC02NC43LTg5Yy0zLTQuMS03LjgtNi42LTEzLTYuNkgzMzZjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNi40IDE3NGExNi4xIDE2LjEgMCAwIDAgMjYgMGwyMTIuNi0yOTIuN2MzLjgtNS40IDAtMTIuOC02LjUtMTIuOHonKSk7XG5leHBvcnRzLkNoZWNrQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2NoZWNrLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTkgMzUzaC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4zTDQ2OSA1ODQuM2wtNzEuMi05OC44Yy02LTguMy0xNS42LTEzLjMtMjUuOS0xMy4zSDMyNWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI0LjYgMTcyLjhhMzEuOCAzMS44IDAgMCAwIDUxLjcgMGwyMTAuNi0yOTJjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5DYXJldFVwT3V0bGluZSA9IGdldEljb24oJ2NhcmV0LXVwJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eicpKTtcbmV4cG9ydHMuQ2hlY2tTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbignY2hlY2stc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQzMy4xIDY1Ny43YTMxLjggMzEuOCAwIDAgMCA1MS43IDBsMjEwLjYtMjkyYzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDY0MmMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuM0w0NTkgNTg0LjNsLTcxLjItOTguOGMtNi04LjMtMTUuNi0xMy4zLTI1LjktMTMuM0gzMTVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNC42IDE3Mi44eicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkNocm9tZU91dGxpbmUgPSBnZXRJY29uKCdjaHJvbWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDUxMi4zdi0uM2MwLTIyOS44LTE4Ni4yLTQxNi00MTYtNDE2Uzk2IDI4Mi4yIDk2IDUxMnYuNGMwIDIyOS44IDE4Ni4yIDQxNiA0MTYgNDE2czQxNi0xODYuMiA0MTYtNDE2di0uMy4yem0tNi43LTc0LjZsLjYgMy4zLS42LTMuM3pNNjc2LjcgNjM4LjJjNTMuNS04Mi4yIDUyLjUtMTg5LjQtMTEuMS0yNjMuN2wxNjIuNC04LjRjMjAuNSA0NC40IDMyIDkzLjggMzIgMTQ1LjkgMCAxODUuMi0xNDQuNiAzMzYuNi0zMjcuMSAzNDcuNGwxNDMuOC0yMjEuMnpNNTEyIDY1Mi4zYy03Ny41IDAtMTQwLjItNjIuNy0xNDAuMi0xNDAuMiAwLTc3LjcgNjIuNy0xNDAuMiAxNDAuMi0xNDAuMlM2NTIuMiA0MzQuNSA2NTIuMiA1MTIgNTg5LjUgNjUyLjMgNTEyIDY1Mi4zem0zNjkuMi0zMzEuN2wtMy01LjcgMyA1Ljd6TTUxMiAxNjRjMTIxLjMgMCAyMjguMiA2Mi4xIDI5MC40IDE1Ni4ybC0yNjMuNi0xMy45Yy05Ny41LTUuNy0xOTAuMiA0OS4yLTIyMi4zIDE0MS4xTDIyNy44IDMxMWM2My4xLTg4LjkgMTY2LjktMTQ3IDI4NC4yLTE0N3pNMTAyLjUgNTg1LjhjMjYgMTQ1IDEyNy4xIDI2NCAyNjEuNiAzMTUuMUMyMjkuNiA4NTAgMTI4LjUgNzMxIDEwMi41IDU4NS44ek0xNjQgNTEyYzAtNTUuOSAxMy4yLTEwOC43IDM2LjYtMTU1LjVsMTE5LjcgMjM1LjRjNDQuMSA4Ni43IDEzNy40IDEzOS43IDIzNCAxMjEuNmwtNzQgMTQ1LjFDMzAyLjkgODQyLjUgMTY0IDY5My41IDE2NCA1MTJ6bTMyNC43IDQxNS40YzQgLjIgOCAuNCAxMiAuNS00LS4yLTgtLjMtMTItLjV6JykpO1xuZXhwb3J0cy5DbG9ja0NpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdjbG9jay1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicsICdNNjg2LjcgNjM4LjZMNTQ0LjEgNTM1LjVWMjg4YzAtNC40LTMuNi04LTgtOEg0ODhjLTQuNCAwLTggMy42LTggOHYyNzUuNGMwIDIuNiAxLjIgNSAzLjMgNi41bDE2NS40IDEyMC42YzMuNiAyLjYgOC42IDEuOCAxMS4yLTEuN2wyOC42LTM5YzIuNi0zLjcgMS44LTguNy0xLjgtMTEuMnonKSk7XG5leHBvcnRzLkNsb3NlQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2Nsb3NlLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002ODUuNCAzNTQuOGMwLTQuNC0zLjYtOC04LThsLTY2IC4zTDUxMiA0NjUuNmwtOTkuMy0xMTguNC02Ni4xLS4zYy00LjQgMC04IDMuNS04IDggMCAxLjkuNyAzLjcgMS45IDUuMmwxMzAuMSAxNTVMMzQwLjUgNjcwYTguMzIgOC4zMiAwIDAgMC0xLjkgNS4yYzAgNC40IDMuNiA4IDggOGw2Ni4xLS4zTDUxMiA1NjQuNGw5OS4zIDExOC40IDY2IC4zYzQuNCAwIDgtMy41IDgtOCAwLTEuOS0uNy0zLjctMS45LTUuMkw1NTMuNSA1MTVsMTMwLjEtMTU1YzEuMi0xLjQgMS44LTMuMyAxLjgtNS4yeicsICdNNTEyIDY1QzI2NC42IDY1IDY0IDI2NS42IDY0IDUxM3MyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NSA1MTIgNjV6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuQ2xvdWRPdXRsaW5lID0gZ2V0SWNvbignY2xvdWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODExLjQgNDE4LjdDNzY1LjYgMjk3LjkgNjQ4LjkgMjEyIDUxMi4yIDIxMlMyNTguOCAyOTcuOCAyMTMgNDE4LjZDMTI3LjMgNDQxLjEgNjQgNTE5LjEgNjQgNjEyYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwaDQ5Ni4yQzg3MC41IDgxMiA5NjAgNzIyLjUgOTYwIDYxMmMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3ptMzYuMyAyODFhMTIzLjA3IDEyMy4wNyAwIDAgMS04Ny42IDM2LjNIMjYzLjljLTMzLjEgMC02NC4yLTEyLjktODcuNi0zNi4zQTEyMy4zIDEyMy4zIDAgMCAxIDE0MCA2MTJjMC0yOCA5LjEtNTQuMyAyNi4yLTc2LjNhMTI1LjcgMTI1LjcgMCAwIDEgNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMCAxIDUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBjNTQuMyAxNC41IDkyLjEgNjMuOCA5Mi4xIDEyMCAwIDMzLjEtMTIuOSA2NC4zLTM2LjMgODcuN3onKSk7XG5leHBvcnRzLkNsb3NlU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ2Nsb3NlLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNTQgNjcxaDU4LjljNC43IDAgOS4yLTIuMSAxMi4zLTUuN0w1MTIgNTYxLjhsODYuOCAxMDMuNWMzIDMuNiA3LjUgNS43IDEyLjMgNS43SDY3MGM2LjggMCAxMC41LTcuOSA2LjEtMTMuMUw1NTMuOCA1MTJsMTIyLjQtMTQ1LjljNC40LTUuMi43LTEzLjEtNi4xLTEzLjFoLTU4LjljLTQuNyAwLTkuMiAyLjEtMTIuMyA1LjdMNTEyIDQ2Mi4ybC04Ni44LTEwMy41Yy0zLTMuNi03LjUtNS43LTEyLjMtNS43SDM1NGMtNi44IDAtMTAuNSA3LjktNi4xIDEzLjFMNDcwLjIgNTEyIDM0Ny45IDY1Ny45QTcuOTUgNy45NSAwIDAgMCAzNTQgNjcxeicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkNvZGVPdXRsaW5lID0gZ2V0SWNvbignY29kZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTYgNjczYzAgNC40IDMuNCA4IDcuNSA4aDE4NWM0LjEgMCA3LjUtMy42IDcuNS04di00OGMwLTQuNC0zLjQtOC03LjUtOGgtMTg1Yy00LjEgMC03LjUgMy42LTcuNSA4djQ4em0tMTk0LjkgNi4xbDE5Mi0xNjFjMy44LTMuMiAzLjgtOS4xIDAtMTIuM2wtMTkyLTE2MC45QTcuOTUgNy45NSAwIDAgMCAzMDggMzUxdjYyLjdjMCAyLjQgMSA0LjYgMi45IDYuMUw0MjAuNyA1MTJsLTEwOS44IDkyLjJhOC4xIDguMSAwIDAgMC0yLjkgNi4xVjY3M2MwIDYuOCA3LjkgMTAuNSAxMy4xIDYuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkNvZGVwZW5DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignY29kZXBlbi1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDg4LjEgNDE0LjdWMzAzLjRMMzAwLjkgNDI4bDgzLjYgNTUuOHptMjU0LjEgMTM3Ljd2LTc5LjhsLTU5LjggMzkuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI3OCA1MzNjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAgMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAgMS0uOC0xYy0uNC0uNS0uNy0xLTEtMS41LS4yLS40LS41LS43LS43LTEuMS0uMy0uNS0uNi0xLjEtLjgtMS42LS4yLS40LS40LS44LS41LTEuMi0uMi0uNi0uNC0xLjItLjYtMS43LS4xLS40LS4zLS44LS40LTEuMi0uMi0uNy0uMy0xLjMtLjQtMi0uMS0uMy0uMS0uNy0uMi0xLS4xLTEtLjItMi4xLS4yLTMuMVY0MjcuOWMwLTEgLjEtMi4xLjItMy4xLjEtLjMuMS0uNy4yLTFhMTQuMTYgMTQuMTYgMCAwIDEgLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tMjU0LjEgMTMuM3YxMTEuM0w3MjMuMSA1OTdsLTgzLjYtNTUuOHpNMjgxLjggNDcyLjZ2NzkuOGw1OS44LTM5Ljl6TTUxMiA0NTYuMWwtODQuNSA1Ni40IDg0LjUgNTYuNCA4NC41LTU2LjR6TTcyMy4xIDQyOEw1MzUuOSAzMDMuNHYxMTEuM2wxMDMuNiA2OS4xek0zODQuNSA1NDEuMkwzMDAuOSA1OTdsMTg3LjIgMTI0LjZWNjEwLjNsLTEwMy42LTY5LjF6JykpO1xuZXhwb3J0cy5Db21wYXNzT3V0bGluZSA9IGdldEljb24oJ2NvbXBhc3MnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xOTguNC01ODguMWEzMiAzMiAwIDAgMC0yNC41LjVMNDE0LjkgNDE1IDI5Ni40IDY4NmMtMy42IDguMi0zLjYgMTcuNSAwIDI1LjcgMy40IDcuOCA5LjcgMTMuOSAxNy43IDE3IDMuOCAxLjUgNy43IDIuMiAxMS43IDIuMiA0LjQgMCA4LjctLjkgMTIuOC0yLjdsMjcxLTExOC42IDExOC41LTI3MWEzMi4wNiAzMi4wNiAwIDAgMC0xNy43LTQyLjd6TTU3Ni44IDUzNC40bDI2LjIgMjYuMi00Mi40IDQyLjQtMjYuMi0yNi4yTDM4MCA2NDQuNCA0NDcuNSA0OTAgNDIyIDQ2NC40bDQyLjQtNDIuNCAyNS41IDI1LjVMNjQ0LjQgMzgwbC02Ny42IDE1NC40ek00NjQuNCA0MjJMNDIyIDQ2NC40bDI1LjUgMjUuNiA4Ni45IDg2LjggMjYuMiAyNi4yIDQyLjQtNDIuNC0yNi4yLTI2LjItODYuOC04Ni45eicpKTtcbmV4cG9ydHMuQ29udGFjdHNPdXRsaW5lID0gZ2V0SWNvbignY29udGFjdHMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTk0LjMgNjAxLjVhMTExLjggMTExLjggMCAwIDAgMjkuMS03NS41YzAtNjEuOS00OS45LTExMi0xMTEuNC0xMTJzLTExMS40IDUwLjEtMTExLjQgMTEyYzAgMjkuMSAxMSA1NS41IDI5LjEgNzUuNWExNTguMDkgMTU4LjA5IDAgMCAwLTc0LjYgMTI2LjEgOCA4IDAgMCAwIDggOC40SDQwN2M0LjIgMCA3LjYtMy4zIDcuOS03LjUgMy44LTUwLjYgNDYtOTAuNSA5Ny4yLTkwLjVzOTMuNCA0MCA5Ny4yIDkwLjVjLjMgNC4yIDMuNyA3LjUgNy45IDcuNUg2NjFhOCA4IDAgMCAwIDgtOC40Yy0yLjgtNTMuMy0zMi05OS43LTc0LjctMTI2LjF6TTUxMiA1NzhjLTI4LjUgMC01MS43LTIzLjMtNTEuNy01MnMyMy4yLTUyIDUxLjctNTIgNTEuNyAyMy4zIDUxLjcgNTItMjMuMiA1Mi01MS43IDUyem00MTYtMzU0SDc2OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDU0OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDMyOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDU2OEgxMzZWMjk2aDEyMHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDEyMHY0OTZ6JykpO1xuZXhwb3J0cy5Db250YWluZXJPdXRsaW5lID0gZ2V0SWNvbignY29udGFpbmVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjY4N2g5Ny45YzExLjYgMzIuOCAzMiA2Mi4zIDU5LjEgODQuNyAzNC41IDI4LjUgNzguMiA0NC4zIDEyMyA0NC4zczg4LjUtMTUuNyAxMjMtNDQuM2MyNy4xLTIyLjQgNDcuNS01MS45IDU5LjEtODQuN0g3OTJ2LTYzSDY0My42bC01LjIgMjQuN0M2MjYuNCA3MDguNSA1NzMuMiA3NTIgNTEyIDc1MnMtMTE0LjQtNDMuNS0xMjYuNS0xMDMuM2wtNS4yLTI0LjdIMjMyVjEzNmg1NjB2NzUyek0zMjAgMzQxaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAgMTYwaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5Db250cm9sT3V0bGluZSA9IGdldEljb24oJ2NvbnRyb2wnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNMzQwIDY4M3Y3N2MwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di03N2MtMTAuMSAzLjMtMjAuOCA1LTMyIDVzLTIxLjktMS44LTMyLTV6bTY0LTE5OFYyNjRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djIyMWMxMC4xLTMuMyAyMC44LTUgMzItNXMyMS45IDEuOCAzMiA1em0tNjQgMTk4YzEwLjEgMy4zIDIwLjggNSAzMiA1czIxLjktMS44IDMyLTVjNDEuOC0xMy41IDcyLTUyLjcgNzItOTlzLTMwLjItODUuNS03Mi05OWMtMTAuMS0zLjMtMjAuOC01LTMyLTVzLTIxLjkgMS44LTMyIDVjLTQxLjggMTMuNS03MiA1Mi43LTcyIDk5czMwLjIgODUuNSA3MiA5OXptLjEtMTE1LjdjLjMtLjYuNy0xLjIgMS0xLjh2LS4xbDEuMi0xLjhjLjEtLjIuMi0uMy4zLS41LjMtLjUuNy0uOSAxLTEuNC4xLS4xLjItLjMuMy0uNC41LS42LjktMS4xIDEuNC0xLjZsLjMtLjMgMS4yLTEuMi40LS40Yy41LS41IDEtLjkgMS42LTEuNC42LS41IDEuMS0uOSAxLjctMS4zLjItLjEuMy0uMi41LS4zLjUtLjMuOS0uNyAxLjQtMSAuMS0uMS4zLS4yLjQtLjMuNi0uNCAxLjItLjcgMS45LTEuMS4xLS4xLjMtLjEuNC0uMi41LS4zIDEtLjUgMS42LS44bC42LS4zYy43LS4zIDEuMy0uNiAyLS44LjctLjMgMS40LS41IDIuMS0uNy4yLS4xLjQtLjEuNi0uMi42LS4yIDEuMS0uMyAxLjctLjQuMiAwIC4zLS4xLjUtLjEuNy0uMiAxLjUtLjMgMi4yLS40LjIgMCAuMyAwIC41LS4xLjYtLjEgMS4yLS4xIDEuOC0uMmguNmMuOCAwIDEuNS0uMSAyLjMtLjFzMS41IDAgMi4zLjFoLjZjLjYgMCAxLjIuMSAxLjguMi4yIDAgLjMgMCAuNS4xLjcuMSAxLjUuMiAyLjIuNC4yIDAgLjMuMS41LjEuNi4xIDEuMi4zIDEuNy40LjIuMS40LjEuNi4yLjcuMiAxLjQuNCAyLjEuNy43LjIgMS4zLjUgMiAuOGwuNi4zYy41LjIgMS4xLjUgMS42LjguMS4xLjMuMS40LjIuNi4zIDEuMy43IDEuOSAxLjEuMS4xLjMuMi40LjMuNS4zIDEgLjYgMS40IDEgLjIuMS4zLjIuNS4zLjYuNCAxLjIuOSAxLjcgMS4zczEuMS45IDEuNiAxLjRsLjQuNCAxLjIgMS4yLjMuM2MuNS41IDEgMS4xIDEuNCAxLjYuMS4xLjIuMy4zLjQuNC40LjcuOSAxIDEuNC4xLjIuMi4zLjMuNWwxLjIgMS44czAgLjEuMS4xYTM2LjE4IDM2LjE4IDAgMCAxIDUuMSAxOC41YzAgNi0xLjUgMTEuNy00LjEgMTYuNy0uMy42LS43IDEuMi0xIDEuOCAwIDAgMCAuMS0uMS4xbC0xLjIgMS44Yy0uMS4yLS4yLjMtLjMuNS0uMy41LS43LjktMSAxLjQtLjEuMS0uMi4zLS4zLjQtLjUuNi0uOSAxLjEtMS40IDEuNmwtLjMuMy0xLjIgMS4yLS40LjRjLS41LjUtMSAuOS0xLjYgMS40LS42LjUtMS4xLjktMS43IDEuMy0uMi4xLS4zLjItLjUuMy0uNS4zLS45LjctMS40IDEtLjEuMS0uMy4yLS40LjMtLjYuNC0xLjIuNy0xLjkgMS4xLS4xLjEtLjMuMS0uNC4yLS41LjMtMSAuNS0xLjYuOGwtLjYuM2MtLjcuMy0xLjMuNi0yIC44LS43LjMtMS40LjUtMi4xLjctLjIuMS0uNC4xLS42LjItLjYuMi0xLjEuMy0xLjcuNC0uMiAwLS4zLjEtLjUuMS0uNy4yLTEuNS4zLTIuMi40LS4yIDAtLjMgMC0uNS4xLS42LjEtMS4yLjEtMS44LjJoLS42Yy0uOCAwLTEuNS4xLTIuMy4xcy0xLjUgMC0yLjMtLjFoLS42Yy0uNiAwLTEuMi0uMS0xLjgtLjItLjIgMC0uMyAwLS41LS4xLS43LS4xLTEuNS0uMi0yLjItLjQtLjIgMC0uMy0uMS0uNS0uMS0uNi0uMS0xLjItLjMtMS43LS40LS4yLS4xLS40LS4xLS42LS4yLS43LS4yLTEuNC0uNC0yLjEtLjctLjctLjItMS4zLS41LTItLjhsLS42LS4zYy0uNS0uMi0xLjEtLjUtMS42LS44LS4xLS4xLS4zLS4xLS40LS4yLS42LS4zLTEuMy0uNy0xLjktMS4xLS4xLS4xLS4zLS4yLS40LS4zLS41LS4zLTEtLjYtMS40LTEtLjItLjEtLjMtLjItLjUtLjMtLjYtLjQtMS4yLS45LTEuNy0xLjNzLTEuMS0uOS0xLjYtMS40bC0uNC0uNC0xLjItMS4yLS4zLS4zYy0uNS0uNS0xLTEuMS0xLjQtMS42LS4xLS4xLS4yLS4zLS4zLS40LS40LS40LS43LS45LTEtMS40LS4xLS4yLS4yLS4zLS4zLS41bC0xLjItMS44di0uMWMtLjQtLjYtLjctMS4yLTEtMS44LTIuNi01LTQuMS0xMC43LTQuMS0xNi43czEuNS0xMS43IDQuMS0xNi43ek02MjAgNTM5djIyMWMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjUzOWMtMTAuMSAzLjMtMjAuOCA1LTMyIDVzLTIxLjktMS44LTMyLTV6bTY0LTE5OHYtNzdjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djc3YzEwLjEtMy4zIDIwLjgtNSAzMi01czIxLjkgMS44IDMyIDV6bS02NCAxOThjMTAuMSAzLjMgMjAuOCA1IDMyIDVzMjEuOS0xLjggMzItNWM0MS44LTEzLjUgNzItNTIuNyA3Mi05OXMtMzAuMi04NS41LTcyLTk5Yy0xMC4xLTMuMy0yMC44LTUtMzItNXMtMjEuOSAxLjgtMzIgNWMtNDEuOCAxMy41LTcyIDUyLjctNzIgOTlzMzAuMiA4NS41IDcyIDk5em0uMS0xMTUuN2MuMy0uNi43LTEuMiAxLTEuOHYtLjFsMS4yLTEuOGMuMS0uMi4yLS4zLjMtLjUuMy0uNS43LS45IDEtMS40LjEtLjEuMi0uMy4zLS40LjUtLjYuOS0xLjEgMS40LTEuNmwuMy0uMyAxLjItMS4yLjQtLjRjLjUtLjUgMS0uOSAxLjYtMS40LjYtLjUgMS4xLS45IDEuNy0xLjMuMi0uMS4zLS4yLjUtLjMuNS0uMy45LS43IDEuNC0xIC4xLS4xLjMtLjIuNC0uMy42LS40IDEuMi0uNyAxLjktMS4xLjEtLjEuMy0uMS40LS4yLjUtLjMgMS0uNSAxLjYtLjhsLjYtLjNjLjctLjMgMS4zLS42IDItLjguNy0uMyAxLjQtLjUgMi4xLS43LjItLjEuNC0uMS42LS4yLjYtLjIgMS4xLS4zIDEuNy0uNC4yIDAgLjMtLjEuNS0uMS43LS4yIDEuNS0uMyAyLjItLjQuMiAwIC4zIDAgLjUtLjEuNi0uMSAxLjItLjEgMS44LS4yaC42Yy44IDAgMS41LS4xIDIuMy0uMXMxLjUgMCAyLjMuMWguNmMuNiAwIDEuMi4xIDEuOC4yLjIgMCAuMyAwIC41LjEuNy4xIDEuNS4yIDIuMi40LjIgMCAuMy4xLjUuMS42LjEgMS4yLjMgMS43LjQuMi4xLjQuMS42LjIuNy4yIDEuNC40IDIuMS43LjcuMiAxLjMuNSAyIC44bC42LjNjLjUuMiAxLjEuNSAxLjYuOC4xLjEuMy4xLjQuMi42LjMgMS4zLjcgMS45IDEuMS4xLjEuMy4yLjQuMy41LjMgMSAuNiAxLjQgMSAuMi4xLjMuMi41LjMuNi40IDEuMi45IDEuNyAxLjNzMS4xLjkgMS42IDEuNGwuNC40IDEuMiAxLjIuMy4zYy41LjUgMSAxLjEgMS40IDEuNi4xLjEuMi4zLjMuNC40LjQuNy45IDEgMS40LjEuMi4yLjMuMy41bDEuMiAxLjh2LjFhMzYuMTggMzYuMTggMCAwIDEgNS4xIDE4LjVjMCA2LTEuNSAxMS43LTQuMSAxNi43LS4zLjYtLjcgMS4yLTEgMS44di4xbC0xLjIgMS44Yy0uMS4yLS4yLjMtLjMuNS0uMy41LS43LjktMSAxLjQtLjEuMS0uMi4zLS4zLjQtLjUuNi0uOSAxLjEtMS40IDEuNmwtLjMuMy0xLjIgMS4yLS40LjRjLS41LjUtMSAuOS0xLjYgMS40LS42LjUtMS4xLjktMS43IDEuMy0uMi4xLS4zLjItLjUuMy0uNS4zLS45LjctMS40IDEtLjEuMS0uMy4yLS40LjMtLjYuNC0xLjIuNy0xLjkgMS4xLS4xLjEtLjMuMS0uNC4yLS41LjMtMSAuNS0xLjYuOGwtLjYuM2MtLjcuMy0xLjMuNi0yIC44LS43LjMtMS40LjUtMi4xLjctLjIuMS0uNC4xLS42LjItLjYuMi0xLjEuMy0xLjcuNC0uMiAwLS4zLjEtLjUuMS0uNy4yLTEuNS4zLTIuMi40LS4yIDAtLjMgMC0uNS4xLS42LjEtMS4yLjEtMS44LjJoLS42Yy0uOCAwLTEuNS4xLTIuMy4xcy0xLjUgMC0yLjMtLjFoLS42Yy0uNiAwLTEuMi0uMS0xLjgtLjItLjIgMC0uMyAwLS41LS4xLS43LS4xLTEuNS0uMi0yLjItLjQtLjIgMC0uMy0uMS0uNS0uMS0uNi0uMS0xLjItLjMtMS43LS40LS4yLS4xLS40LS4xLS42LS4yLS43LS4yLTEuNC0uNC0yLjEtLjctLjctLjItMS4zLS41LTItLjhsLS42LS4zYy0uNS0uMi0xLjEtLjUtMS42LS44LS4xLS4xLS4zLS4xLS40LS4yLS42LS4zLTEuMy0uNy0xLjktMS4xLS4xLS4xLS4zLS4yLS40LS4zLS41LS4zLTEtLjYtMS40LTEtLjItLjEtLjMtLjItLjUtLjMtLjYtLjQtMS4yLS45LTEuNy0xLjNzLTEuMS0uOS0xLjYtMS40bC0uNC0uNC0xLjItMS4yLS4zLS4zYy0uNS0uNS0xLTEuMS0xLjQtMS42LS4xLS4xLS4yLS4zLS4zLS40LS40LS40LS43LS45LTEtMS40LS4xLS4yLS4yLS4zLS4zLS41bC0xLjItMS44di0uMWMtLjQtLjYtLjctMS4yLTEtMS44LTIuNi01LTQuMS0xMC43LTQuMS0xNi43czEuNS0xMS43IDQuMS0xNi43eicpKTtcbmV4cG9ydHMuQ29weU91dGxpbmUgPSBnZXRJY29uKCdjb3B5Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6JykpO1xuZXhwb3J0cy5DcmVkaXRDYXJkT3V0bGluZSA9IGdldEljb24oJ2NyZWRpdC1jYXJkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNzkyIDcyaDc1MnYxMjBIMTM2VjIzMnptNzUyIDU2MEgxMzZWNDQwaDc1MnYzNTJ6bS0yMzctNjRoMTY1YzQuNCAwIDgtMy42IDgtOHYtNzJjMC00LjQtMy42LTgtOC04SDY1MWMtNC40IDAtOCAzLjYtOCA4djcyYzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkNyb3duT3V0bGluZSA9IGdldEljb24oJ2Nyb3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5OS42IDI3Ni41TDcwNSAzOTYuNCA1MTguNCAxNDcuNWE4LjA2IDguMDYgMCAwIDAtMTIuOSAwTDMxOSAzOTYuNCAxMjQuMyAyNzYuNWMtNS43LTMuNS0xMy4xIDEuMi0xMi4yIDcuOUwxODguNSA4NjVjMS4xIDcuOSA3LjkgMTQgMTYgMTRoNjE1LjFjOCAwIDE0LjktNiAxNS45LTE0bDc2LjQtNTgwLjZjLjgtNi43LTYuNS0xMS40LTEyLjMtNy45em0tMTI2IDUzNC4xSDI1MC4zbC01My44LTQwOS40IDEzOS44IDg2LjFMNTEyIDI1Mi45bDE3NS43IDIzNC40IDEzOS44LTg2LjEtNTMuOSA0MDkuNHpNNTEyIDUwOWMtNjIuMSAwLTExMi42IDUwLjUtMTEyLjYgMTEyLjZTNDQ5LjkgNzM0LjIgNTEyIDczNC4yczExMi42LTUwLjUgMTEyLjYtMTEyLjZTNTc0LjEgNTA5IDUxMiA1MDl6bTAgMTYwLjljLTI2LjYgMC00OC4yLTIxLjYtNDguMi00OC4zIDAtMjYuNiAyMS42LTQ4LjMgNDguMi00OC4zczQ4LjIgMjEuNiA0OC4yIDQ4LjNjMCAyNi42LTIxLjYgNDguMy00OC4yIDQ4LjN6JykpO1xuZXhwb3J0cy5DdXN0b21lclNlcnZpY2VPdXRsaW5lID0gZ2V0SWNvbignY3VzdG9tZXItc2VydmljZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgMTI4Yy0yMTIuMSAwLTM4NCAxNzEuOS0zODQgMzg0djM2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDIwMHYtNDhjMC0xNzIuMyAxMzkuNy0zMTIgMzEyLTMxMnMzMTIgMTM5LjcgMzEyIDMxMnY0OEg2ODhjLTM1LjMgMC02NCAyOC43LTY0IDY0djIwOGMwIDM1LjMgMjguNyA2NCA2NCA2NGgxODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTEyYzAtMjEyLjEtMTcxLjktMzg0LTM4NC0zODR6TTMyOCA2MzJ2MTkySDIwMFY2MzJoMTI4em00OTYgMTkySDY5NlY2MzJoMTI4djE5MnonKSk7XG5leHBvcnRzLkRhc2hib2FyZE91dGxpbmUgPSBnZXRJY29uKCdkYXNoYm9hcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjggMzg1LjZhNDQ2LjcgNDQ2LjcgMCAwIDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwIDAtMTQyLjQtOTZDNjMxLjEgMTIzLjggNTcyLjUgMTEyIDUxMiAxMTJzLTExOS4xIDExLjgtMTc0LjQgMzUuMmE0NDYuNyA0NDYuNyAwIDAgMC0xNDIuNCA5NiA0NDYuNyA0NDYuNyAwIDAgMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNzYxLjQgODM2SDI2Mi42QTM3MS4xMiAzNzEuMTIgMCAwIDEgMTQwIDU2MGMwLTk5LjQgMzguNy0xOTIuOCAxMDktMjYzIDcwLjMtNzAuMyAxNjMuNy0xMDkgMjYzLTEwOSA5OS40IDAgMTkyLjggMzguNyAyNjMgMTA5IDcwLjMgNzAuMyAxMDkgMTYzLjcgMTA5IDI2MyAwIDEwNS42LTQ0LjUgMjA1LjUtMTIyLjYgMjc2ek02MjMuNSA0MjEuNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDUyNy43IDUwNmMtMTguNy01LTM5LjQtLjItNTQuMSAxNC41YTU1Ljk1IDU1Ljk1IDAgMCAwIDAgNzkuMiA1NS45NSA1NS45NSAwIDAgMCA3OS4yIDAgNTUuODcgNTUuODcgMCAwIDAgMTQuNS01NC4xbDg0LjUtODQuNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0yOC4zLTI4LjN6TTQ5MCAzMjBoNDRjNC40IDAgOC0zLjYgOC04di04MGMwLTQuNC0zLjYtOC04LThoLTQ0Yy00LjQgMC04IDMuNi04IDh2ODBjMCA0LjQgMy42IDggOCA4em0yNjAgMjE4djQ0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ0YzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHptMTIuNy0xOTcuMmwtMzEuMS0zMS4xYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMxLjEgMzEuMWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDU2LjYtNTYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zem0tNDU4LjYtMzEuMWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zMS4xIDMxLjFhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w1Ni42IDU2LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzMS4xLTMxLjFjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNTYuNi01Ni42ek0yNjIgNTMwaC04MGMtNC40IDAtOCAzLjYtOCA4djQ0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkRlbGV0ZU91dGxpbmUgPSBnZXRJY29uKCdkZWxldGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzYwIDE4NGgtOGM0LjQgMCA4LTMuNiA4LTh2OGgzMDR2LThjMCA0LjQgMy42IDggOCA4aC04djcyaDcydi04MGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djgwaDcydi03MnptNTA0IDcySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDYwLjRsMjQuNyA1MjNjMS42IDM0LjEgMjkuOCA2MSA2My45IDYxaDQ1NGMzNC4yIDAgNjIuMy0yNi44IDYzLjktNjFsMjQuNy01MjNIODg4YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTczMS4zIDg0MEgyOTIuN2wtMjQuMi01MTJoNDg3bC0yNC4yIDUxMnonKSk7XG5leHBvcnRzLkRpZmZPdXRsaW5lID0gZ2V0SWNvbignZGlmZicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NzYgMzk5LjFjMC0zLjktMy4xLTcuMS03LTcuMWgtNDJjLTMuOCAwLTcgMy4yLTcgNy4xVjQ4NGgtODQuNWMtNC4xIDAtNy41IDMuMS03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN0g0MjB2ODQuOWMwIDMuOSAzLjIgNy4xIDcgNy4xaDQyYzMuOSAwIDctMy4yIDctNy4xVjU0MGg4NC41YzQuMSAwIDcuNS0zLjIgNy41LTd2LTQyYzAtMy45LTMuNC03LTcuNS03SDQ3NnYtODQuOXpNNTYwLjUgNzA0aC0yMjVjLTQuMSAwLTcuNSAzLjItNy41IDd2NDJjMCAzLjggMy40IDcgNy41IDdoMjI1YzQuMSAwIDcuNS0zLjIgNy41LTd2LTQyYzAtMy44LTMuNC03LTcuNS03em0tNy4xLTUwMi42Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MDRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM5Ny4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42TDU1My40IDIwMS40ek02NjQgODg4SDIzMlYyNjRoMjgyLjJMNjY0IDQxMy44Vjg4OHptMTkwLjItNTgxLjRMNjExLjMgNzIuOWMtNi01LjctMTMuOS04LjktMjIuMi04LjlIMjk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI3N2wyMTkgMjEwLjZWODI0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMzI5LjZjMC04LjctMy41LTE3LTkuOC0yM3onKSk7XG5leHBvcnRzLkRhdGFiYXNlT3V0bGluZSA9IGdldEljb24oJ2RhdGFiYXNlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MDAgNzJoNTYwdjIwOEgyMzJWMTM2em01NjAgNDgwSDIzMlY0MDhoNTYwdjIwOHptMCAyNzJIMjMyVjY4MGg1NjB2MjA4ek0zMDQgMjQwYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMCAyNzJhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDI3MmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5EaXNsaWtlT3V0bGluZSA9IGdldEljb24oJ2Rpc2xpa2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg1LjkgNDkwLjNjMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtNTEuNi0zMC43LTk4LjEtNzguMy0xMTguNGE2Ni4xIDY2LjEgMCAwIDAtMjYuNS01LjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTI5LjNsODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3pNMTg0IDQ1NlYxNzJoODF2Mjg0aC04MXptNjI3LjIgMTYwLjRINDk2LjhsOS42IDE5OC40Yy42IDExLjktNC43IDIzLjEtMTQuNiAzMC41LTYuMSA0LjUtMTMuNiA2LjgtMjEuMSA2LjdhNDQuMjggNDQuMjggMCAwIDEtNDIuMi0zMi4zTDMyOSA0NTkuMlYxNzJoNDE1LjRhNTYuODUgNTYuODUgMCAwIDEgMzMuNiA1MS44YzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xNCAyNS41IDIxLjkgMTlhNTYuNzYgNTYuNzYgMCAwIDEgMTkuNiA0M2MwIDE5LjEtMTEgMzcuNS0yOC44IDQ4LjR6JykpO1xuZXhwb3J0cy5Eb3duQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2Rvd24tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5MCA0MDVoLTQ2LjljLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjJMNTEyIDU2My42IDQwNi44IDQxOC4yYy02LTguMy0xNS42LTEzLjItMjUuOS0xMy4ySDMzNGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTc4IDI0NmMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDE3OC0yNDZjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5Eb3duU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ2Rvd24tc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUwNS41IDY1OC43YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN0g2NDNjLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjJMNTEyIDU1OC42IDQwNi44IDQxMy4yYy02LTguMy0xNS42LTEzLjItMjUuOS0xMy4ySDMzNGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTc4IDI0NnonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5EcmliYmJsZVNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdkcmliYmJsZS1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptNjYuNSAyMS44YzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4MDBjLTE1OC44IDAtMjg4LTEyOS4yLTI4OC0yODhzMTI5LjItMjg4IDI4OC0yODggMjg4IDEyOS4yIDI4OCAyODgtMTI5LjIgMjg4LTI4OCAyODh6bTg5LjctMjU5LjFjMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6bS03Mi41LTI2LjRjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6bTE0NS45LTE4Ni4yYTI0NS4yIDI0NS4yIDAgMCAwLTIyMC44LTU1LjFjNi44IDkuMSA1MS41IDY5LjkgOTEuOCAxNDQgODcuNS0zMi44IDEyNC41LTgyLjYgMTI5LTg4Ljl6TTU1NCA1NTIuOGMtMTM4LjcgNDguMy0xODguNiAxNDQuNi0xOTMgMTUzLjYgNDEuNyAzMi41IDk0LjEgNTEuOSAxNTEgNTEuOSAzNC4xIDAgNjYuNi02LjkgOTYuMS0xOS41LTMuNy0yMS42LTE3LjktOTYuOC01Mi41LTE4Ni42bC0xLjYuNnonKSk7XG5leHBvcnRzLkVudmlyb25tZW50T3V0bGluZSA9IGdldEljb24oJ2Vudmlyb25tZW50Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OS4xYTM2Mi40OSAzNjIuNDkgMCAwIDAtNzkuOS0xMTUuNyAzNzAuODMgMzcwLjgzIDAgMCAwLTExOC4yLTc3LjhDNjEwLjcgNzYuNiA1NjIuMSA2NyA1MTIgNjdjLTUwLjEgMC05OC43IDkuNi0xNDQuNSAyOC41LTQ0LjMgMTguMy04NCA0NC41LTExOC4yIDc3LjhBMzYzLjYgMzYzLjYgMCAwIDAgMTY5LjQgMjg5Yy0xOS41IDQ1LTI5LjQgOTIuOC0yOS40IDE0MiAwIDcwLjYgMTYuOSAxNDAuOSA1MC4xIDIwOC43IDI2LjcgNTQuNSA2NCAxMDcuNiAxMTEgMTU4LjEgODAuMyA4Ni4yIDE2NC41IDEzOC45IDE4OC40IDE1M2E0My45IDQzLjkgMCAwIDAgMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA4ODAuMmMtNjUuOS00MS45LTMwMC0yMDcuOC0zMDAtNDQ5LjEgMC03Ny45IDMxLjEtMTUxLjEgODcuNi0yMDYuM0MzNTYuMyAxNjkuNSA0MzEuNyAxMzkgNTEyIDEzOXMxNTUuNyAzMC41IDIxMi40IDg1LjlDNzgwLjkgMjgwIDgxMiAzNTMuMiA4MTIgNDMxLjFjMCAyNDEuMy0yMzQuMSA0MDcuMi0zMDAgNDQ5LjF6bTAtNjE3LjJjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMCAxIDUxMiA1NTFjLTI5LjkgMC01OC0xMS43LTc5LjItMzIuOEExMTEuNiAxMTEuNiAwIDAgMSA0MDAgNDM5YzAtMjkuOSAxMS43LTU4IDMyLjgtNzkuMkM0NTQgMzM4LjYgNDgyLjEgMzI3IDUxMiAzMjdjMjkuOSAwIDU4IDExLjYgNzkuMiAzMi44QzYxMi40IDM4MSA2MjQgNDA5LjEgNjI0IDQzOWMwIDI5LjktMTEuNiA1OC0zMi44IDc5LjJ6JykpO1xuZXhwb3J0cy5FZGl0T3V0bGluZSA9IGdldEljb24oJ2VkaXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjU3LjcgNzUyYzIgMCA0LS4yIDYtLjVMNDMxLjkgNzIyYzItLjQgMy45LTEuMyA1LjMtMi44bDQyMy45LTQyMy45YTkuOTYgOS45NiAwIDAgMCAwLTE0LjFMNjk0LjkgMTE0LjljLTEuOS0xLjktNC40LTIuOS03LjEtMi45cy01LjIgMS03LjEgMi45TDI1Ni44IDUzOC44Yy0xLjUgMS41LTIuNCAzLjMtMi44IDUuM2wtMjkuNSAxNjguMmEzMy41IDMzLjUgMCAwIDAgOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXptNjcuNC0xNzQuNEw2ODcuOCAyMTVsNzMuMyA3My4zLTM2Mi43IDM2Mi42LTg4LjkgMTUuNyAxNS42LTg5ek04ODAgODM2SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTM2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeicpKTtcbmV4cG9ydHMuRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignZXhjbGFtYXRpb24tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTQ2NCA2ODhhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0yNC0xMTJoNDhjNC40IDAgOC0zLjYgOC04VjI5NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkV4cGVyaW1lbnRPdXRsaW5lID0gZ2V0SWNvbignZXhwZXJpbWVudCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNDcyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMzY3IDM1Mi45TDY5Ni4zIDM1MlYxNzhINzY4di02OEgyNTZ2NjhoNzEuN3YxNzRMMTQ1IDgyNC45Yy0yLjggNy40LTQuMyAxNS4yLTQuMyAyMy4xIDAgMzUuMyAyOC43IDY0IDY0IDY0aDYxNC42YzcuOSAwIDE1LjctMS41IDIzLjEtNC4zIDMzLTEyLjcgNDkuNC00OS44IDM2LjYtODIuOHpNMzk1LjcgMzY0LjdWMTgwaDIzMi42djE4NC43TDcxOS4yIDYwMGMtMjAuNy01LjMtNDIuMS04LTYzLjktOC02MS4yIDAtMTE5LjIgMjEuNS0xNjUuMyA2MGExODguNzggMTg4Ljc4IDAgMCAxLTEyMS4zIDQzLjljLTMyLjcgMC02NC4xLTguMy05MS44LTIzLjdsMTE4LjgtMzA3LjV6TTIxMC41IDg0NGw0MS43LTEwNy44YzM1LjcgMTguMSA3NS40IDI3LjggMTE2LjYgMjcuOCA2MS4yIDAgMTE5LjItMjEuNSAxNjUuMy02MCAzMy45LTI4LjIgNzYuMy00My45IDEyMS4zLTQzLjkgMzUgMCA2OC40IDkuNSA5Ny42IDI3LjFMODEzLjUgODQ0aC02MDN6JykpO1xuZXhwb3J0cy5FeWVJbnZpc2libGVPdXRsaW5lID0gZ2V0SWNvbignZXllLWludmlzaWJsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NDIuMiA0ODYuMlE4ODkuNDcgMzc1LjExIDgxNi43IDMwNWwtNTAuODggNTAuODhDODA3LjMxIDM5NS41MyA4NDMuNDUgNDQ3LjQgODc0LjcgNTEyIDc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2cS03Mi42NyAwLTEzMy44Ny0yMi4zOEwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMCAwIDAtNTEuNXptLTYzLjU3LTMyMC42NEw4MzYgMTIyLjg4YTggOCAwIDAgMC0xMS4zMiAwTDcxNS4zMSAyMzIuMlE2MjQuODYgMTg2IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMCAwIDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwIDAgMCAxMS4zMUwxNTUuMTcgODg5YTggOCAwIDAgMCAxMS4zMSAwbDcxMi4xNS03MTIuMTJhOCA4IDAgMCAwIDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwIDAtMjM4LjEzIDIzOC4xM2wtODMuNDIgODMuNDJDMjIzLjEgNjM3LjQ5IDE4My4zIDU4Mi4yOCAxNDkuMyA1MTJ6bTI0Ni43IDBhMTEyLjExIDExMi4xMSAwIDAgMSAxNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwIDEgMzk2IDUxMnonLCAnTTUwOCA2MjRjLTMuNDYgMC02Ljg3LS4xNi0xMC4yNS0uNDdsLTUyLjgyIDUyLjgyYTE3Ni4wOSAxNzYuMDkgMCAwIDAgMjI3LjQyLTIyNy40MmwtNTIuODIgNTIuODJjLjMxIDMuMzguNDcgNi43OS40NyAxMC4yNWExMTEuOTQgMTExLjk0IDAgMCAxLTExMiAxMTJ6JykpO1xuZXhwb3J0cy5FeWVPdXRsaW5lID0gZ2V0SWNvbignZXllJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MTIgNzY2Yy0xNjEuMyAwLTI3OS40LTgxLjgtMzYyLjctMjU0QzIzMi42IDMzOS44IDM1MC43IDI1OCA1MTIgMjU4YzE2MS4zIDAgMjc5LjQgODEuOCAzNjIuNyAyNTRDNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZ6bS00LTQzMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTAgMjg4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMnonKSk7XG5leHBvcnRzLkZhY2Vib29rT3V0bGluZSA9IGdldEljb24oJ2ZhY2Vib29rJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyIDczNkg2NjMuOVY2MDIuMmgxMDRsMTUuNi0xMjAuN0g2NjMuOXYtNzcuMWMwLTM1IDkuNy01OC44IDU5LjgtNTguOGg2My45di0xMDhjLTExLjEtMS41LTQ5LTQuOC05My4yLTQuOC05Mi4yIDAtMTU1LjMgNTYuMy0xNTUuMyAxNTkuNnY4OUg0MzQuOXYxMjAuN2gxMDQuM1Y4NDhIMTc2VjE3Nmg2NzJ2NjcyeicpKTtcbmV4cG9ydHMuRmFzdEJhY2t3YXJkT3V0bGluZSA9IGdldEljb24oJ2Zhc3QtYmFja3dhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNTE3LjYgMjczLjVMMjMwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwIDAgMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bTMyMCAwTDU1MC4yIDQ5OS4zYTE2LjE0IDE2LjE0IDAgMCAwIDAgMjUuNGwyODcuNCAyMjUuOGMxMC43IDguNCAyNi40LjggMjYuNC0xMi43VjI4Ni4yYzAtMTMuNS0xNS43LTIxLjEtMjYuNC0xMi43em0tNjIwLTI1LjVoLTUxLjJjLTMuNSAwLTYuNCAyLjctNi40IDZ2NTE2YzAgMy4zIDIuOSA2IDYuNCA2aDUxLjJjMy41IDAgNi40LTIuNyA2LjQtNlYyNTRjMC0zLjMtMi45LTYtNi40LTZ6JykpO1xuZXhwb3J0cy5GYXN0Rm9yd2FyZE91dGxpbmUgPSBnZXRJY29uKCdmYXN0LWZvcndhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNzkzLjggNDk5LjNMNTA2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS42YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YTE2LjE0IDE2LjE0IDAgMCAwIDAtMjUuNHptLTMyMCAwTDE4Ni40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNWMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGM0LjEtMy4yIDYuMi04IDYuMi0xMi43IDAtNC42LTIuMS05LjQtNi4yLTEyLjZ6TTg1Ny42IDI0OGgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnonKSk7XG5leHBvcnRzLkZpbGVBZGRPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1hZGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTU0NCA0NzJjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djEwOEgzNzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTA4djEwOGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjY0NGgxMDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjQ3MnonKSk7XG5leHBvcnRzLkZpbGVFeGNlbE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLWV4Y2VsJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0ek01MTQuMSA1ODAuMWwtNjEuOC0xMDIuNGMtMi4yLTMuNi02LjEtNS44LTEwLjMtNS44aC0zOC40Yy0yLjMgMC00LjUuNi02LjQgMS45LTUuNiAzLjUtNy4zIDEwLjktMy43IDE2LjZsODIuMyAxMzAuNC04My40IDEzMi44YTEyLjA0IDEyLjA0IDAgMCAwIDEwLjIgMTguNGgzNC41YzQuMiAwIDgtMi4yIDEwLjItNS43TDUxMCA2NjQuOGw2Mi4zIDEwMS40YzIuMiAzLjYgNi4xIDUuNyAxMC4yIDUuN0g2MjBjMi4zIDAgNC41LS43IDYuNS0xLjkgNS42LTMuNiA3LjItMTEgMy42LTE2LjZsLTg0LTEzMC40IDg1LjMtMTMyLjVhMTIuMDQgMTIuMDQgMCAwIDAtMTAuMS0xOC41aC0zNS43Yy00LjIgMC04LjEgMi4yLTEwLjMgNS44bC02MS4yIDEwMi4zeicpKTtcbmV4cG9ydHMuRmlsZUV4Y2xhbWF0aW9uT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtZXhjbGFtYXRpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTQ3MiA3NDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0xNi0xMDRoNDhjNC40IDAgOC0zLjYgOC04VjQ0OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTg0YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkZpbGVJbWFnZU91dGxpbmUgPSBnZXRJY29uKCdmaWxlLWltYWdlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU1My4xIDUwOS4xbC03Ny44IDk5LjItNDEuMS01Mi40YTggOCAwIDAgMC0xMi42IDBsLTk5LjggMTI3LjJhNy45OCA3Ljk4IDAgMCAwIDYuMyAxMi45SDY5NmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOWwtMTM2LjUtMTc0YTguMSA4LjEgMCAwIDAtMTIuNyAwek0zNjAgNDQyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptNDk0LjYtMTUzLjRMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6JykpO1xuZXhwb3J0cy5GaWxlTWFya2Rvd25PdXRsaW5lID0gZ2V0SWNvbignZmlsZS1tYXJrZG93bicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHpNNDI5IDQ4MS4yYy0xLjktNC40LTYuMi03LjItMTEtNy4yaC0zNWMtNi42IDAtMTIgNS40LTEyIDEydjI3MmMwIDYuNiA1LjQgMTIgMTIgMTJoMjcuMWM2LjYgMCAxMi01LjQgMTItMTJWNTgyLjFsNjYuOCAxNTAuMmExMiAxMiAwIDAgMCAxMSA3LjFINTI0YzQuNyAwIDktMi44IDExLTcuMWw2Ni44LTE1MC42Vjc1OGMwIDYuNiA1LjQgMTIgMTIgMTJINjQxYzYuNiAwIDEyLTUuNCAxMi0xMlY0ODZjMC02LjYtNS40LTEyLTEyLTEyaC0zNC43Yy00LjggMC05LjEgMi44LTExIDcuMmwtODMuMSAxOTEtODMuMi0xOTF6JykpO1xuZXhwb3J0cy5GaWxlUHB0T3V0bGluZSA9IGdldEljb24oJ2ZpbGUtcHB0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQyNCA0NzZjLTQuNCAwLTggMy42LTggOHYyNzZjMCA0LjQgMy42IDggOCA4aDMyLjVjNC40IDAgOC0zLjYgOC04di05NS41aDYzLjNjNTkuNCAwIDk2LjItMzguOSA5Ni4yLTk0LjEgMC01NC41LTM2LjMtOTQuMy05Ni05NC4zSDQyNHptMTUwLjYgOTQuM2MwIDQzLjQtMjYuNSA1NC4zLTcxLjIgNTQuM2gtMzguOVY1MTYuMmg1Ni4yYzMzLjggMCA1My45IDE5LjcgNTMuOSA1NC4xem0yODAtMjgxLjdMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6JykpO1xuZXhwb3J0cy5GaWxlVGV4dE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXRleHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTUwNCA2MThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzEyIDQ5MHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4eicpKTtcbmV4cG9ydHMuRmlsZVBkZk91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXBkZicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MzEuMyA1NzQuNGwuMy0xLjRjNS44LTIzLjkgMTMuMS01My43IDcuNC04MC43LTMuOC0yMS4zLTE5LjUtMjkuNi0zMi45LTMwLjItMTUuOC0uNy0yOS45IDguMy0zMy40IDIxLjQtNi42IDI0LS43IDU2LjggMTAuMSA5OC42LTEzLjYgMzIuNC0zNS4zIDc5LjUtNTEuMiAxMDcuNS0yOS42IDE1LjMtNjkuMyAzOC45LTc1LjIgNjguNy0xLjIgNS41LjIgMTIuNSAzLjUgMTguOCAzLjcgNyA5LjYgMTIuNCAxNi41IDE1IDMgMS4xIDYuNiAyIDEwLjggMiAxNy42IDAgNDYuMS0xNC4yIDg0LjEtNzkuNCA1LjgtMS45IDExLjgtMy45IDE3LjYtNS45IDI3LjItOS4yIDU1LjQtMTguOCA4MC45LTIzLjEgMjguMiAxNS4xIDYwLjMgMjQuOCA4Mi4xIDI0LjggMjEuNiAwIDMwLjEtMTIuOCAzMy4zLTIwLjUgNS42LTEzLjUgMi45LTMwLjUtNi4yLTM5LjYtMTMuMi0xMy00NS4zLTE2LjQtOTUuMy0xMC4yLTI0LjYtMTUtNDAuNy0zNS40LTUyLjQtNjUuOHpNNDIxLjYgNzI2LjNjLTEzLjkgMjAuMi0yNC40IDMwLjMtMzAuMSAzNC43IDYuNy0xMi4zIDE5LjgtMjUuMyAzMC4xLTM0Ljd6bTg3LjYtMjM1LjVjNS4yIDguOSA0LjUgMzUuOC41IDQ5LjQtNC45LTE5LjktNS42LTQ4LjEtMi43LTUxLjQuOC4xIDEuNS43IDIuMiAyem0tMS42IDEyMC41YzEwLjcgMTguNSAyNC4yIDM0LjQgMzkuMSA0Ni4yLTIxLjYgNC45LTQxLjMgMTMtNTguOSAyMC4yLTQuMiAxLjctOC4zIDMuNC0xMi4zIDUgMTMuMy0yNC4xIDI0LjQtNTEuNCAzMi4xLTcxLjR6bTE1NS42IDY1LjVjLjEuMi4yLjUtLjQuOWgtLjJsLS4yLjNjLS44LjUtOSA1LjMtNDQuMy04LjYgNDAuNi0xLjkgNDUgNy4zIDQ1LjEgNy40em0xOTEuNC0zODguMkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbGVaaXBPdXRsaW5lID0gZ2V0SWNvbignZmlsZS16aXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjk2IDM5Mmg2NHY2NGgtNjR6bTAgMTkwdjE2MGgxMjhWNTgyaC02NHYtNjJoLTY0djYyem04MCA0OHY2NGgtMzJ2LTY0aDMyem0tMTYtMzAyaDY0djY0aC02NHptLTY0LTY0aDY0djY0aC02NHptNjQgMTkyaDY0djY0aC02NHptMC0yNTZoNjR2NjRoLTY0em00OTQuNiA4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoNjR2NjRoNjR2LTY0aDE3NHYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbGVPdXRsaW5lID0gZ2V0SWNvbignZmlsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbHRlck91dGxpbmUgPSBnZXRJY29uKCdmaWx0ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDU5Ny40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY1OTcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNCA3OThINDIwLjZWNjQyaDE4Mi45djE1NnptOS42LTIzNi42bC05LjUgMTYuNmgtMTgzbC05LjUtMTYuNkwyMTIuNyAyMjZoNTk4LjZMNjEzIDU2MS40eicpKTtcbmV4cG9ydHMuRmlsZVdvcmRPdXRsaW5lID0gZ2V0SWNvbignZmlsZS13b3JkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0ek01MjguMSA0NzJoLTMyLjJjLTUuNSAwLTEwLjMgMy43LTExLjYgOS4xTDQzNC42IDY4MGwtNDYuMS0xOTguN2MtMS4zLTUuNC02LjEtOS4zLTExLjctOS4zaC0zNS40YTEyLjAyIDEyLjAyIDAgMCAwLTExLjYgMTUuMWw3NC4yIDI3NmMxLjQgNS4yIDYuMiA4LjkgMTEuNiA4LjloMzJjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNTIuOC0xOTcgNTIuOCAxOTdjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMxLjhjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNzQuNC0yNzZhMTIuMDQgMTIuMDQgMCAwIDAtMTEuNi0xNS4xSDY0N2MtNS42IDAtMTAuNCAzLjktMTEuNyA5LjNsLTQ1LjggMTk5LjEtNDkuOC0xOTkuM2MtMS4zLTUuNC02LjEtOS4xLTExLjYtOS4xeicpKTtcbmV4cG9ydHMuRmlyZU91dGxpbmUgPSBnZXRJY29uKCdmaXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzNC4xIDQ2OS4yQTM0Ny40OSAzNDcuNDkgMCAwIDAgNzUxLjIgMzU0bC0yOS4xLTI2LjdhOC4wOSA4LjA5IDAgMCAwLTEzIDMuM2wtMTMgMzcuM2MtOC4xIDIzLjQtMjMgNDcuMy00NC4xIDcwLjgtMS40IDEuNS0zIDEuOS00LjEgMi0xLjEuMS0yLjgtLjEtNC4zLTEuNS0xLjQtMS4yLTIuMS0zLTItNC44IDMuNy02MC4yLTE0LjMtMTI4LjEtNTMuNy0yMDJDNTU1LjMgMTcxIDUxMCAxMjMuMSA0NTMuNCA4OS43bC00MS4zLTI0LjNjLTUuNC0zLjItMTIuMyAxLTEyIDcuM2wyLjIgNDhjMS41IDMyLjgtMi4zIDYxLjgtMTEuMyA4NS45LTExIDI5LjUtMjYuOCA1Ni45LTQ3IDgxLjVhMjk1LjY0IDI5NS42NCAwIDAgMS00Ny41IDQ2LjEgMzUyLjYgMzUyLjYgMCAwIDAtMTAwLjMgMTIxLjVBMzQ3Ljc1IDM0Ny43NSAwIDAgMCAxNjAgNjEwYzAgNDcuMiA5LjMgOTIuOSAyNy43IDEzNmEzNDkuNCAzNDkuNCAwIDAgMCA3NS41IDExMC45YzMyLjQgMzIgNzAgNTcuMiAxMTEuOSA3NC43QzQxOC41IDk0OS44IDQ2NC41IDk1OSA1MTIgOTU5czkzLjUtOS4yIDEzNi45LTI3LjNBMzQ4LjYgMzQ4LjYgMCAwIDAgNzYwLjggODU3YzMyLjQtMzIgNTcuOC02OS40IDc1LjUtMTEwLjlhMzQ0LjIgMzQ0LjIgMCAwIDAgMjcuNy0xMzZjMC00OC44LTEwLTk2LjItMjkuOS0xNDAuOXpNNzEzIDgwOC41Yy01My43IDUzLjItMTI1IDgyLjQtMjAxIDgyLjRzLTE0Ny4zLTI5LjItMjAxLTgyLjRjLTUzLjUtNTMuMS04My0xMjMuNS04My0xOTguNCAwLTQzLjUgOS44LTg1LjIgMjkuMS0xMjQgMTguOC0zNy45IDQ2LjgtNzEuOCA4MC44LTk3LjlhMzQ5LjYgMzQ5LjYgMCAwIDAgNTguNi01Ni44YzI1LTMwLjUgNDQuNi02NC41IDU4LjItMTAxYTI0MCAyNDAgMCAwIDAgMTIuMS00Ni41YzI0LjEgMjIuMiA0NC4zIDQ5IDYxLjIgODAuNCAzMy40IDYyLjYgNDguOCAxMTguMyA0NS44IDE2NS43YTc0LjAxIDc0LjAxIDAgMCAwIDI0LjQgNTkuOCA3My4zNiA3My4zNiAwIDAgMCA1My40IDE4LjhjMTkuNy0xIDM3LjgtOS43IDUxLTI0LjQgMTMuMy0xNC45IDI0LjgtMzAuMSAzNC40LTQ1LjYgMTQgMTcuOSAyNS43IDM3LjQgMzUgNTguNCAxNS45IDM1LjggMjQgNzMuOSAyNCAxMTMuMSAwIDc0LjktMjkuNSAxNDUuNC04MyAxOTguNHonKSk7XG5leHBvcnRzLkZpbGVVbmtub3duT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtdW5rbm93bicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN0w2MzkuNCA3My40Yy02LTYtMTQuMi05LjQtMjIuNy05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHpNNDAyIDU0OWMwIDUuNCA0LjQgOS41IDkuOCA5LjVoMzIuNGM1LjQgMCA5LjgtNC4yIDkuOC05LjQgMC0yOC4yIDI1LjgtNTEuNiA1OC01MS42czU4IDIzLjQgNTggNTEuNWMwIDI1LjMtMjEgNDcuMi00OS4zIDUwLjktMTkuMyAyLjgtMzQuNSAyMC4zLTM0LjcgNDAuMXYzMmMwIDUuNSA0LjUgMTAgMTAgMTBoMzJjNS41IDAgMTAtNC41IDEwLTEwdi0xMi4yYzAtNiA0LTExLjUgOS43LTEzLjMgNDQuNi0xNC40IDc1LTU0IDc0LjMtOTguOS0uOC01NS41LTQ5LjItMTAwLjgtMTA4LjUtMTAxLjYtNjEuNC0uNy0xMTEuNSA0NS42LTExMS41IDEwM3ptNzggMTk1YTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAtNjQgMHonKSk7XG5leHBvcnRzLkZsYWdPdXRsaW5lID0gZ2V0SWNvbignZmxhZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMzA1SDYyNFYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIMTg0di00MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNjQwaDI0OHYxMTNjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzN2MwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTg0IDU2OFYyMzJoMzY4djMzNkgxODR6bTY1NiAxNDVINTA0di03M2gxMTJjNC40IDAgOC0zLjYgOC04VjM3N2gyMTZ2MzM2eicpKTtcbmV4cG9ydHMuRm9sZGVyQWRkT3V0bGluZSA9IGdldEljb24oJ2ZvbGRlci1hZGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDg0IDQ0My4xVjUyOGgtODQuNWMtNC4xIDAtNy41IDMuMS03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN0g0ODR2ODQuOWMwIDMuOSAzLjIgNy4xIDcgNy4xaDQyYzMuOSAwIDctMy4yIDctNy4xVjU4NGg4NC41YzQuMSAwIDcuNS0zLjIgNy41LTd2LTQyYzAtMy45LTMuNC03LTcuNS03SDU0MHYtODQuOWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjF6bTM5Ni0xNDQuN0g1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHonKSk7XG5leHBvcnRzLkZvbGRlck91dGxpbmUgPSBnZXRJY29uKCdmb2xkZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDI5OC40SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eicpKTtcbmV4cG9ydHMuRm9sZGVyT3Blbk91dGxpbmUgPSBnZXRJY29uKCdmb2xkZXItb3BlbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggNDQ0SDgyMFYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NzNMMzU1LjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTM2IDI1NmgxODguNWwxMTkuNiAxMTQuNEg3NDhWNDQ0SDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZ6bTYzNS4zIDUxMkgxNTlsMTAzLjMtMjU2aDYxMi40TDc3MS4zIDc2OHonKSk7XG5leHBvcnRzLkZvcndhcmRPdXRsaW5lID0gZ2V0SWNvbignZm9yd2FyZCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004MjUuOCA0OThMNTM4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMODI1LjggNTI2YzguMy03LjIgOC4zLTIwLjggMC0yOHptLTMyMCAwTDIxOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDUwNS44IDUyNmM0LjEtMy42IDYuMi04LjggNi4yLTE0IDAtNS4yLTIuMS0xMC40LTYuMi0xNHonKSk7XG5leHBvcnRzLkZyb3duT3V0bGluZSA9IGdldEljb24oJ2Zyb3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI4OCA0MjFhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0zNTIgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNjMgNzExYy0zNC4yIDM0LjItNzQgNjEtMTE4LjMgNzkuOEM2MTEgODc0LjIgNTYyLjMgODg0IDUxMiA4ODRjLTUwLjMgMC05OS05LjgtMTQ0LjgtMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSAyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAgMSAyNDkgMjQ4LjljMzQuMi0zNC4yIDc0LTYxIDExOC4zLTc5LjhDNDEzIDE0OS44IDQ2MS43IDE0MCA1MTIgMTQwYzUwLjMgMCA5OSA5LjggMTQ0LjggMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSA3NzUuMSAyNDljMzQuMiAzNC4yIDYxIDc0IDc5LjggMTE4LjNDODc0LjIgNDEzIDg4NCA0NjEuNyA4ODQgNTEycy05LjggOTktMjkuMiAxNDQuOEEzNjguODkgMzY4Ljg5IDAgMCAxIDc3NSA3NzV6TTUxMiA1MzNjLTg1LjUgMC0xNTUuNiA2Ny4zLTE2MCAxNTEuNmE4IDggMCAwIDAgOCA4LjRoNDguMWM0LjIgMCA3LjgtMy4yIDguMS03LjRDNDIwIDYzNi4xIDQ2MS41IDU5NyA1MTIgNTk3czkyLjEgMzkuMSA5NS44IDg4LjZjLjMgNC4yIDMuOSA3LjQgOC4xIDcuNEg2NjRhOCA4IDAgMCAwIDgtOC40QzY2Ny42IDYwMC4zIDU5Ny41IDUzMyA1MTIgNTMzeicpKTtcbmV4cG9ydHMuRnVuZE91dGxpbmUgPSBnZXRJY29uKCdmdW5kJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyNiAxNjRIOTRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNFYyMzZoNzUydjU2MHptLTY1OC45LTgyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNzIuNS0xNzIuNSAxMTQuNCAxMTQuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDI5Ny0yOTcuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MzEgNTY1IDQxNi42IDQ1MC41YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTIxNC45IDIxNWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDM2LjcgMzYuOXonKSk7XG5leHBvcnRzLkZ1bm5lbFBsb3RPdXRsaW5lID0gZ2V0SWNvbignZnVubmVsLXBsb3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDYwNy40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2MDcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNCA3OThINDIwLjZWNjUwaDE4Mi45djE0OHptOS42LTIyNi42bC04LjQgMTQuNkg0MTkuM2wtOC40LTE0LjZMMzM0LjQgNDM4aDM1NS4yTDYxMyA1NzEuNHpNNzI2LjMgMzc0SDI5Ny43bC04NS0xNDhoNTk4LjZsLTg1IDE0OHonKSk7XG5leHBvcnRzLkdpZnRPdXRsaW5lID0gZ2V0SWNvbignZ2lmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMzEwSDczMi40YzEzLjYtMjEuNCAyMS42LTQ2LjggMjEuNi03NCAwLTc2LjEtNjEuOS0xMzgtMTM4LTEzOC00MS40IDAtNzguNyAxOC40LTEwNCA0Ny40LTI1LjMtMjktNjIuNi00Ny40LTEwNC00Ny40LTc2LjEgMC0xMzggNjEuOS0xMzggMTM4IDAgMjcuMiA3LjkgNTIuNiAyMS42IDc0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwYzAgNC40IDMuNiA4IDggOGg0MHYzNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU1MGg0MGM0LjQgMCA4LTMuNiA4LThWMzQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzM0LTc0YzAtMzguNiAzMS40LTcwIDcwLTcwczcwIDMxLjQgNzAgNzAtMzEuNCA3MC03MCA3MGgtNzB2LTcwem0tMTM4LTcwYzM4LjYgMCA3MCAzMS40IDcwIDcwdjcwaC03MGMtMzguNiAwLTcwLTMxLjQtNzAtNzBzMzEuNC03MCA3MC03MHpNMTgwIDQ4MlYzNzhoMjk4djEwNEgxODB6bTQ4IDY4aDI1MHYzMDhIMjI4VjU1MHptNTY4IDMwOEg1NDZWNTUwaDI1MHYzMDh6bTQ4LTM3Nkg1NDZWMzc4aDI5OHYxMDR6JykpO1xuZXhwb3J0cy5HaXRodWJPdXRsaW5lID0gZ2V0SWNvbignZ2l0aHViJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMS42IDc2LjNDMjY0LjMgNzYuMiA2NCAyNzYuNCA2NCA1MjMuNSA2NCA3MTguOSAxODkuMyA4ODUgMzYzLjggOTQ2YzIzLjUgNS45IDE5LjktMTAuOCAxOS45LTIyLjJ2LTc3LjVjLTEzNS43IDE1LjktMTQxLjItNzMuOS0xNTAuMy04OC45QzIxNSA3MjYgMTcxLjUgNzE4IDE4NC41IDcwM2MzMC45LTE1LjkgNjIuNCA0IDk4LjkgNTcuOSAyNi40IDM5LjEgNzcuOSAzMi41IDEwNCAyNiA1LjctMjMuNSAxNy45LTQ0LjUgMzQuNy02MC44LTE0MC42LTI1LjItMTk5LjItMTExLTE5OS4yLTIxMyAwLTQ5LjUgMTYuMy05NSA0OC4zLTEzMS43LTIwLjQtNjAuNSAxLjktMTEyLjMgNC45LTEyMCA1OC4xLTUuMiAxMTguNSA0MS42IDEyMy4yIDQ1LjMgMzMtOC45IDcwLjctMTMuNiAxMTIuOS0xMy42IDQyLjQgMCA4MC4yIDQuOSAxMTMuNSAxMy45IDExLjMtOC42IDY3LjMtNDguOCAxMjEuMy00My45IDIuOSA3LjcgMjQuNyA1OC4zIDUuNSAxMTggMzIuNCAzNi44IDQ4LjkgODIuNyA0OC45IDEzMi4zIDAgMTAyLjItNTkgMTg4LjEtMjAwIDIxMi45YTEyNy41IDEyNy41IDAgMCAxIDM4LjEgOTF2MTEyLjVjLjggOSAwIDE3LjkgMTUgMTcuOSAxNzcuMS01OS43IDMwNC42LTIyNyAzMDQuNi00MjQuMSAwLTI0Ny4yLTIwMC40LTQ0Ny4zLTQ0Ny41LTQ0Ny4zeicpKTtcbmV4cG9ydHMuR2l0bGFiT3V0bGluZSA9IGdldEljb24oJ2dpdGxhYicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTMuOSA1NTIuMkw4MDUgMTgxLjR2LS4xYy03LjYtMjIuOS0yNS43LTM2LjUtNDguMy0zNi41LTIzLjQgMC00Mi41IDEzLjUtNDkuNyAzNS4ybC03MS40IDIxM0gzODguOGwtNzEuNC0yMTNjLTcuMi0yMS43LTI2LjMtMzUuMi00OS43LTM1LjItMjMuMSAwLTQyLjUgMTQuOC00OC40IDM2LjZMMTEwLjUgNTUyLjJjLTQuNCAxNC43IDEuMiAzMS40IDEzLjUgNDAuN2wzNjguNSAyNzYuNGMyLjYgMy42IDYuMiA2LjMgMTAuNCA3LjhsOC42IDYuNCA4LjUtNi40YzQuOS0xLjcgOS00LjcgMTEuOS04LjlsMzY4LjQtMjc1LjRjMTIuNC05LjIgMTgtMjUuOSAxMy42LTQwLjZ6TTc1MS43IDE5My40YzEtMS44IDIuOS0xLjkgMy41LTEuOSAxLjEgMCAyLjUuMyAzLjQgM0w4MTggMzk0LjNINjg0LjVsNjcuMi0yMDAuOXptLTQ4Ny40IDFjLjktMi42IDIuMy0yLjkgMy40LTIuOSAyLjcgMCAyLjkuMSAzLjQgMS43bDY3LjMgMjAxLjJIMjA2LjVsNTcuOC0yMDB6TTE1OC44IDU1OC43bDI4LjItOTcuMyAyMDIuNCAyNzAuMi0yMzAuNi0xNzIuOXptNzMuOS0xMTYuNGgxMjIuMWw5MC44IDI4NC4zLTIxMi45LTI4NC4zek01MTIuOSA3NzZMNDA1LjcgNDQyLjNINjIwTDUxMi45IDc3NnptMTU3LjktMzMzLjdoMTE5LjVMNTgwIDcyMy4xbDkwLjgtMjgwLjh6bS00MC43IDI5My45bDIwNy4zLTI3Ni43IDI5LjUgOTkuMi0yMzYuOCAxNzcuNXonKSk7XG5leHBvcnRzLkhlYXJ0T3V0bGluZSA9IGdldEljb24oJ2hlYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyMyAyODMuNmEyNjAuMDQgMjYwLjA0IDAgMCAwLTU2LjktODIuOCAyNjQuNCAyNjQuNCAwIDAgMC04NC01NS41QTI2NS4zNCAyNjUuMzQgMCAwIDAgNjc5LjcgMTI1Yy00OS4zIDAtOTcuNCAxMy41LTEzOS4yIDM5LTEwIDYuMS0xOS41IDEyLjgtMjguNSAyMC4xLTktNy4zLTE4LjUtMTQtMjguNS0yMC4xLTQxLjgtMjUuNS04OS45LTM5LTEzOS4yLTM5LTM1LjUgMC02OS45IDYuOC0xMDIuNCAyMC4zLTMxLjQgMTMtNTkuNyAzMS43LTg0IDU1LjVhMjU4LjQ0IDI1OC40NCAwIDAgMC01Ni45IDgyLjhjLTEzLjkgMzIuMy0yMSA2Ni42LTIxIDEwMS45IDAgMzMuMyA2LjggNjggMjAuMyAxMDMuMyAxMS4zIDI5LjUgMjcuNSA2MC4xIDQ4LjIgOTEgMzIuOCA0OC45IDc3LjkgOTkuOSAxMzMuOSAxNTEuNiA5Mi44IDg1LjcgMTg0LjcgMTQ0LjkgMTg4LjYgMTQ3LjNsMjMuNyAxNS4yYzEwLjUgNi43IDI0IDYuNyAzNC41IDBsMjMuNy0xNS4yYzMuOS0yLjUgOTUuNy02MS42IDE4OC42LTE0Ny4zIDU2LTUxLjcgMTAxLjEtMTAyLjcgMTMzLjktMTUxLjYgMjAuNy0zMC45IDM3LTYxLjUgNDguMi05MSAxMy41LTM1LjMgMjAuMy03MCAyMC4zLTEwMy4zLjEtMzUuMy03LTY5LjYtMjAuOS0xMDEuOXpNNTEyIDgxNC44UzE1NiA1ODYuNyAxNTYgMzg1LjVDMTU2IDI4My42IDI0MC4zIDIwMSAzNDQuMyAyMDFjNzMuMSAwIDEzNi41IDQwLjggMTY3LjcgMTAwLjRDNTQzLjIgMjQxLjggNjA2LjYgMjAxIDY3OS43IDIwMWMxMDQgMCAxODguMyA4Mi42IDE4OC4zIDE4NC41IDAgMjAxLjItMzU2IDQyOS4zLTM1NiA0MjkuM3onKSk7XG5leHBvcnRzLkhkZE91dGxpbmUgPSBnZXRJY29uKCdoZGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYwMCA3Mmg1NjB2MjA4SDIzMlYxMzZ6bTU2MCA0ODBIMjMyVjQwOGg1NjB2MjA4em0wIDI3MkgyMzJWNjgwaDU2MHYyMDh6TTQ5NiAyMDhIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzEyIDU0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zMjggMjQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLkhpZ2hsaWdodE91dGxpbmUgPSBnZXRJY29uKCdoaWdobGlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTU3LjYgNTA3LjRMNjAzLjIgMTU4LjJhNy45IDcuOSAwIDAgMC0xMS4yIDBMMzUzLjMgMzkzLjRhOC4wMyA4LjAzIDAgMCAwLS4xIDExLjNsLjEuMSA0MCAzOS40LTExNy4yIDExNS4zYTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgMzkuNSAzOC45LTE4OS4xIDE4N0g3Mi4xYy00LjQgMC04LjEgMy42LTguMSA4Vjg2MGMwIDQuNCAzLjYgOCA4IDhoMzQ0LjljMi4xIDAgNC4xLS44IDUuNi0yLjNsNzYuMS03NS42IDQwLjQgMzkuOGE3LjkgNy45IDAgMCAwIDExLjIgMGwxMTcuMS0xMTUuNiA0MC4xIDM5LjVhNy45IDcuOSAwIDAgMCAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnpNMzg5LjggNzk2LjJIMjI5LjZsMTM0LjQtMTMzIDgwLjEgNzguOS01NC4zIDU0LjF6bTE1NC44LTYyLjFMMzczLjIgNTY1LjJsNjguNi02Ny42IDE3MS40IDE2OC45LTY4LjYgNjcuNnpNNzEzLjEgNjU4TDQ1MC4zIDM5OS4xIDU5Ny42IDI1NGwyNjIuOCAyNTktMTQ3LjMgMTQ1eicpKTtcbmV4cG9ydHMuSG9tZU91dGxpbmUgPSBnZXRJY29uKCdob21lJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk0Ni41IDUwNUw1NjAuMSAxMTguOGwtMjUuOS0yNS45YTMxLjUgMzEuNSAwIDAgMC00NC40IDBMNzcuNSA1MDVhNjMuOSA2My45IDAgMCAwLTE4LjggNDZjLjQgMzUuMiAyOS43IDYzLjMgNjQuOSA2My4zaDQyLjVWOTQwaDY5MS44VjYxNC4zaDQzLjRjMTcuMSAwIDMzLjItNi43IDQ1LjMtMTguOGE2My42IDYzLjYgMCAwIDAgMTguNy00NS4zYzAtMTctNi43LTMzLjEtMTguOC00NS4yek01NjggODY4SDQ1NlY2NjRoMTEydjIwNHptMjE3LjktMzI1LjdWODY4SDYzMlY2NDBjMC0yMi4xLTE3LjktNDAtNDAtNDBINDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHYyMjhIMjM4LjFWNTQyLjNoLTk2bDM3MC0zNjkuNyAyMy4xIDIzLjFMODgyIDU0Mi4zaC05Ni4xeicpKTtcbmV4cG9ydHMuSG91cmdsYXNzT3V0bGluZSA9IGdldEljb24oJ2hvdXJnbGFzcycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NDIgMzE4VjE4NGg4NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODZ2MTM0YzAgODEuNSA0Mi40IDE1My4yIDEwNi40IDE5NC02NCA0MC44LTEwNi40IDExMi41LTEwNi40IDE5NHYxMzRoLTg2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDYzMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtODZWNzA2YzAtODEuNS00Mi40LTE1My4yLTEwNi40LTE5NCA2NC00MC44IDEwNi40LTExMi41IDEwNi40LTE5NHptLTcyIDM4OHYxMzRIMzU0VjcwNmMwLTQyLjIgMTYuNC04MS45IDQ2LjMtMTExLjdDNDMwLjEgNTY0LjQgNDY5LjggNTQ4IDUxMiA1NDhzODEuOSAxNi40IDExMS43IDQ2LjNDNjUzLjYgNjI0LjEgNjcwIDY2My44IDY3MCA3MDZ6bTAtMzg4YzAgNDIuMi0xNi40IDgxLjktNDYuMyAxMTEuN0M1OTMuOSA0NTkuNiA1NTQuMiA0NzYgNTEyIDQ3NnMtODEuOS0xNi40LTExMS43LTQ2LjNBMTU2LjYzIDE1Ni42MyAwIDAgMSAzNTQgMzE4VjE4NGgzMTZ2MTM0eicpKTtcbmV4cG9ydHMuSHRtbDVPdXRsaW5lID0gZ2V0SWNvbignaHRtbDUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTQ1IDk2bDY2IDc0Ni42TDUxMS44IDkyOGwyOTkuNi04NS40TDg3OC43IDk2SDE0NXptNjEwLjkgNzAwLjZsLTI0NC4xIDY5LjYtMjQ1LjItNjkuNi01Ni43LTY0MS4yaDYwMy44bC01Ny44IDY0MS4yek0yODEgMjQ5bDEuNyAyNC4zIDIyLjcgMjUzLjVoMjA2LjV2LS4xaDExMi45bC0xMS40IDExOC41TDUxMSA2NzIuOXYuMmgtLjhsLTEwMi40LTI3LjctNi41LTczLjJoLTkxbDExLjMgMTQ0LjcgMTg4LjYgNTJoMS43di0uNGwxODcuNy01MS43IDEuNy0xNi4zIDIxLjItMjQyLjIgMy4yLTI0LjNINTExdi4ySDM4OS45bC04LjItOTQuMmgzNTIuMWwxLjctMTkuNSA0LjgtNDcuMkw3NDIgMjQ5SDUxMXonKSk7XG5leHBvcnRzLklkY2FyZE91dGxpbmUgPSBnZXRJY29uKCdpZGNhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM2VjIzMmg3NTJ2NTYwek02MTAuMyA0NzZoMTIzLjRjMS4zIDAgMi4zLTMuNiAyLjMtOHYtNDhjMC00LjQtMS04LTIuMy04SDYxMC4zYy0xLjMgMC0yLjMgMy42LTIuMyA4djQ4YzAgNC40IDEgOCAyLjMgOHptNC44IDE0NGgxODUuN2MzLjkgMCA3LjEtMy42IDcuMS04di00OGMwLTQuNC0zLjItOC03LjEtOEg2MTUuMWMtMy45IDAtNy4xIDMuNi03LjEgOHY0OGMwIDQuNCAzLjIgOCA3LjEgOHpNMjI0IDY3M2g0My45YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNSA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDUyMmE4IDggMCAwIDAgOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMCAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwIDAtNzQuNiAxMjYuMWMtLjQgNC42IDMuMiA4LjQgNy44IDguNHptMTQ5LTI2MmMyOC41IDAgNTEuNyAyMy4zIDUxLjcgNTJzLTIzLjIgNTItNTEuNyA1Mi01MS43LTIzLjMtNTEuNy01MiAyMy4yLTUyIDUxLjctNTJ6JykpO1xuZXhwb3J0cy5JbmZvQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2luZm8tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTQ2NCAzMzZhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem03MiAxMTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkluc3RhZ3JhbU91dGxpbmUgPSBnZXRJY29uKCdpbnN0YWdyYW0nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDMwNi45Yy0xMTMuNSAwLTIwNS4xIDkxLjYtMjA1LjEgMjA1LjFTMzk4LjUgNzE3LjEgNTEyIDcxNy4xIDcxNy4xIDYyNS41IDcxNy4xIDUxMiA2MjUuNSAzMDYuOSA1MTIgMzA2Ljl6bTAgMzM4LjRjLTczLjQgMC0xMzMuMy01OS45LTEzMy4zLTEzMy4zUzQzOC42IDM3OC43IDUxMiAzNzguNyA2NDUuMyA0MzguNiA2NDUuMyA1MTIgNTg1LjQgNjQ1LjMgNTEyIDY0NS4zem0yMTMuNS0zOTQuNmMtMjYuNSAwLTQ3LjkgMjEuNC00Ny45IDQ3LjlzMjEuNCA0Ny45IDQ3LjkgNDcuOSA0Ny45LTIxLjMgNDcuOS00Ny45YTQ3Ljg0IDQ3Ljg0IDAgMCAwLTQ3LjktNDcuOXpNOTExLjggNTEyYzAtNTUuMi41LTEwOS45LTIuNi0xNjUtMy4xLTY0LTE3LjctMTIwLjgtNjQuNS0xNjcuNi00Ni45LTQ2LjktMTAzLjYtNjEuNC0xNjcuNi02NC41LTU1LjItMy4xLTEwOS45LTIuNi0xNjUtMi42LTU1LjIgMC0xMDkuOS0uNS0xNjUgMi42LTY0IDMuMS0xMjAuOCAxNy43LTE2Ny42IDY0LjVDMTMyLjYgMjI2LjMgMTE4LjEgMjgzIDExNSAzNDdjLTMuMSA1NS4yLTIuNiAxMDkuOS0yLjYgMTY1cy0uNSAxMDkuOSAyLjYgMTY1YzMuMSA2NCAxNy43IDEyMC44IDY0LjUgMTY3LjYgNDYuOSA0Ni45IDEwMy42IDYxLjQgMTY3LjYgNjQuNSA1NS4yIDMuMSAxMDkuOSAyLjYgMTY1IDIuNiA1NS4yIDAgMTA5LjkuNSAxNjUtMi42IDY0LTMuMSAxMjAuOC0xNy43IDE2Ny42LTY0LjUgNDYuOS00Ni45IDYxLjQtMTAzLjYgNjQuNS0xNjcuNiAzLjItNTUuMSAyLjYtMTA5LjggMi42LTE2NXptLTg4IDIzNS44Yy03LjMgMTguMi0xNi4xIDMxLjgtMzAuMiA0NS44LTE0LjEgMTQuMS0yNy42IDIyLjktNDUuOCAzMC4yQzY5NS4yIDg0NC43IDU3MC4zIDg0MCA1MTIgODQwYy01OC4zIDAtMTgzLjMgNC43LTIzNS45LTE2LjEtMTguMi03LjMtMzEuOC0xNi4xLTQ1LjgtMzAuMi0xNC4xLTE0LjEtMjIuOS0yNy42LTMwLjItNDUuOEMxNzkuMyA2OTUuMiAxODQgNTcwLjMgMTg0IDUxMmMwLTU4LjMtNC43LTE4My4zIDE2LjEtMjM1LjkgNy4zLTE4LjIgMTYuMS0zMS44IDMwLjItNDUuOHMyNy42LTIyLjkgNDUuOC0zMC4yQzMyOC43IDE3OS4zIDQ1My43IDE4NCA1MTIgMTg0czE4My4zLTQuNyAyMzUuOSAxNi4xYzE4LjIgNy4zIDMxLjggMTYuMSA0NS44IDMwLjIgMTQuMSAxNC4xIDIyLjkgMjcuNiAzMC4yIDQ1LjhDODQ0LjcgMzI4LjcgODQwIDQ1My43IDg0MCA1MTJjMCA1OC4zIDQuNyAxODMuMi0xNi4yIDIzNS44eicpKTtcbmV4cG9ydHMuSW5zdXJhbmNlT3V0bGluZSA9IGdldEljb24oJ2luc3VyYW5jZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NDEuNiAzMDYuOEw0MDMgMjg4LjZhNi4xIDYuMSAwIDAgMC04LjQgMy43Yy0xNy41IDU4LjUtNDUuMiAxMTAuMS04Mi4yIDE1My42YTYuMDUgNi4wNSAwIDAgMC0xLjIgNS42bDEzLjIgNDMuNWMxLjMgNC40IDcgNS43IDEwLjIgMi40IDcuNy04LjEgMTUuNC0xNi45IDIzLjEtMjZWNjU2YzAgNC40IDMuNiA4IDggOEg0MDNjNC40IDAgOC0zLjYgOC04VjM5My4xYTQyOS4yIDQyOS4yIDAgMCAwIDMzLjYtNzljMS0yLjktLjMtNi0zLTcuM3ptMjYuOCA5LjJ2MTI3LjJjMCA0LjQgMy42IDggOCA4aDY1Ljl2MTguNmgtOTQuOWMtNC40IDAtOCAzLjYtOCA4djM1LjZjMCA0LjQgMy42IDggOCA4aDU1LjFjLTE5LjEgMzAuOC00Mi40IDU1LjctNzEgNzZhNiA2IDAgMCAwLTEuNiA4LjFsMjIuOCAzNi41YzEuOSAzLjEgNi4yIDMuOCA4LjkgMS40IDMxLjYtMjYuOCA1OC43LTYyLjkgODAuNi0xMDcuNnYxMjBjMCA0LjQgMy42IDggOCA4aDM2LjJjNC40IDAgOC0zLjYgOC04VjUzNmMyMS4zIDQxLjcgNDcuNSA3Ny41IDc4LjEgMTA2LjkgMi42IDIuNSA2LjggMi4xIDguOS0uN2wyNi4zLTM1LjNjMi0yLjcgMS40LTYuNS0xLjItOC40LTMwLjUtMjIuNi01NC4yLTQ3LjgtNzIuMy03Ni45aDU5YzQuNCAwIDgtMy42IDgtOFY0NzhjMC00LjQtMy42LTgtOC04aC05OC44di0xOC42aDY2LjdjNC40IDAgOC0zLjYgOC04VjMxNmMwLTQuNC0zLjYtOC04LThINDc2LjRjLTQuNCAwLTggMy42LTggOHptNTEuNSA0Mi44aDk3Ljl2NDEuNmgtOTcuOXYtNDEuNnptMzQ3LTE4OC45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnonKSk7XG5leHBvcnRzLkludGVyYWN0aW9uT3V0bGluZSA9IGdldEljb24oJ2ludGVyYWN0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6TTMwNC44IDUyNGg1MC43YzMuNyAwIDYuOC0zIDYuOC02Ljh2LTc4LjljMC0xOS43IDE1LjktMzUuNiAzNS41LTM1LjZoMjA1Ljd2NTMuNGMwIDUuNyA2LjUgOC44IDEwLjkgNS4zbDEwOS4xLTg1LjdjMy41LTIuNyAzLjUtOCAwLTEwLjdsLTEwOS4xLTg1LjdjLTQuNC0zLjUtMTAuOS0uMy0xMC45IDUuM1YzMzhIMzk3LjdjLTU1LjEgMC05OS43IDQ0LjgtOTkuNyAxMDAuMVY1MTdjMCA0IDMgNyA2LjggN3ptLTQuMiAxMzQuOWwxMDkuMSA4NS43YzQuNCAzLjUgMTAuOS4zIDEwLjktNS4zdi01My40aDIwNS43YzU1LjEgMCA5OS43LTQ0LjggOTkuNy0xMDAuMXYtNzguOWMwLTMuNy0zLTYuOC02LjgtNi44aC01MC43Yy0zLjcgMC02LjggMy02LjggNi44djc4LjljMCAxOS43LTE1LjkgMzUuNi0zNS41IDM1LjZINDIwLjZWNTY4YzAtNS43LTYuNS04LjgtMTAuOS01LjNsLTEwOS4xIDg1LjdjLTMuNSAyLjUtMy41IDcuOCAwIDEwLjV6JykpO1xuZXhwb3J0cy5JbnRlcmF0aW9uT3V0bGluZSA9IGdldEljb24oJ2ludGVyYXRpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNMzA0LjggNTI0aDUwLjdjMy43IDAgNi44LTMgNi44LTYuOHYtNzguOWMwLTE5LjcgMTUuOS0zNS42IDM1LjUtMzUuNmgyMDUuN3Y1My40YzAgNS43IDYuNSA4LjggMTAuOSA1LjNsMTA5LjEtODUuN2MzLjUtMi43IDMuNS04IDAtMTAuN2wtMTA5LjEtODUuN2MtNC40LTMuNS0xMC45LS4zLTEwLjkgNS4zVjMzOEgzOTcuN2MtNTUuMSAwLTk5LjcgNDQuOC05OS43IDEwMC4xVjUxN2MwIDQgMyA3IDYuOCA3em0tNC4yIDEzNC45bDEwOS4xIDg1LjdjNC40IDMuNSAxMC45LjMgMTAuOS01LjN2LTUzLjRoMjA1LjdjNTUuMSAwIDk5LjctNDQuOCA5OS43LTEwMC4xdi03OC45YzAtMy43LTMtNi44LTYuOC02LjhoLTUwLjdjLTMuNyAwLTYuOCAzLTYuOCA2Ljh2NzguOWMwIDE5LjctMTUuOSAzNS42LTM1LjUgMzUuNkg0MjAuNlY1NjhjMC01LjctNi41LTguOC0xMC45LTUuM2wtMTA5LjEgODUuN2MtMy41IDIuNS0zLjUgNy44IDAgMTAuNXonKSk7XG5leHBvcnRzLkxheW91dE91dGxpbmUgPSBnZXRJY29uKCdsYXlvdXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNjk2IDcyaDEzNnY2NTZIMTg0VjE4NHptNjU2IDY1NkgzODRWMzg0aDQ1NnY0NTZ6TTM4NCAzMjBWMTg0aDQ1NnYxMzZIMzg0eicpKTtcbmV4cG9ydHMuTGVmdENpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdsZWZ0LWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002MDMuMyAzMjcuNWwtMjQ2IDE3OGE3Ljk1IDcuOTUgMCAwIDAgMCAxMi45bDI0NiAxNzhjNS4zIDMuOCAxMi43IDAgMTIuNy02LjVWNjQzYzAtMTAuMi00LjktMTkuOS0xMy4yLTI1LjlMNDU3LjQgNTEybDE0NS40LTEwNS4yYzguMy02IDEzLjItMTUuNiAxMy4yLTI1LjlWMzM0YzAtNi41LTcuNC0xMC4zLTEyLjctNi41eicsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuTGVmdFNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdsZWZ0LXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNjUuMyA1MTguNWwyNDYgMTc4YzUuMyAzLjggMTIuNyAwIDEyLjctNi41di00Ni45YzAtMTAuMi00LjktMTkuOS0xMy4yLTI1LjlMNDY1LjQgNTEybDE0NS40LTEwNS4yYzguMy02IDEzLjItMTUuNiAxMy4yLTI1LjlWMzM0YzAtNi41LTcuNC0xMC4zLTEyLjctNi41bC0yNDYgMTc4YTguMDUgOC4wNSAwIDAgMCAwIDEzeicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkxpa2VPdXRsaW5lID0gZ2V0SWNvbignbGlrZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODUuOSA1MzMuN2MxNi44LTIyLjIgMjYuMS00OS40IDI2LjEtNzcuNyAwLTQ0LjktMjUuMS04Ny40LTY1LjUtMTExLjFhNjcuNjcgNjcuNjcgMCAwIDAtMzQuMy05LjNINTcyLjRsNi0xMjIuOWMxLjQtMjkuNy05LjEtNTcuOS0yOS41LTc5LjRBMTA2LjYyIDEwNi42MiAwIDAgMCA0NzEgOTkuOWMtNTIgMC05OCAzNS0xMTEuOCA4NS4xbC04NS45IDMxMUgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2MDEuM2M5LjIgMCAxOC4yLTEuOCAyNi41LTUuNCA0Ny42LTIwLjMgNzguMy02Ni44IDc4LjMtMTE4LjQgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjctLjItMTIuNi0yLTI1LjEtNS42LTM3LjF6TTE4NCA4NTJWNTY4aDgxdjI4NGgtODF6bTYzNi40LTM1M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMCAxIDYuOSAyNy4zYzAgMTYuNS03LjIgMzIuMi0xOS42IDQzbC0yMS45IDE5IDEzLjkgMjUuNGE1Ni4yIDU2LjIgMCAwIDEgNi45IDI3LjNjMCAxNi41LTcuMiAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAgMSA2LjkgMjcuM2MwIDIyLjQtMTMuMiA0Mi42LTMzLjYgNTEuOEgzMjlWNTY0LjhsOTkuNS0zNjAuNWE0NC4xIDQ0LjEgMCAwIDEgNDIuMi0zMi4zYzcuNiAwIDE1LjEgMi4yIDIxLjEgNi43IDkuOSA3LjQgMTUuMiAxOC42IDE0LjYgMzAuNWwtOS42IDE5OC40aDMxNC40QzgyOSA0MTguNSA4NDAgNDM2LjkgODQwIDQ1NmMwIDE2LjUtNy4yIDMyLjEtMTkuNiA0M3onKSk7XG5leHBvcnRzLkxpbmtlZGluT3V0bGluZSA9IGdldEljb24oJ2xpbmtlZGluJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0Ny43IDExMkgxNzYuM2MtMzUuNSAwLTY0LjMgMjguOC02NC4zIDY0LjN2NjcxLjRjMCAzNS41IDI4LjggNjQuMyA2NC4zIDY0LjNoNjcxLjRjMzUuNSAwIDY0LjMtMjguOCA2NC4zLTY0LjNWMTc2LjNjMC0zNS41LTI4LjgtNjQuMy02NC4zLTY0LjN6bTAgNzM2Yy00NDcuOC0uMS02NzEuNy0uMi02NzEuNy0uMy4xLTQ0Ny44LjItNjcxLjcuMy02NzEuNyA0NDcuOC4xIDY3MS43LjIgNjcxLjcuMy0uMSA0NDcuOC0uMiA2NzEuNy0uMyA2NzEuN3pNMjMwLjYgNDExLjloMTE4Ljd2MzgxLjhIMjMwLjZ6bTU5LjQtNTIuMmMzNy45IDAgNjguOC0zMC44IDY4LjgtNjguOGE2OC44IDY4LjggMCAxIDAtMTM3LjYgMGMtLjEgMzggMzAuNyA2OC44IDY4LjggNjguOHptMjUyLjMgMjQ1LjFjMC00OS44IDkuNS05OCA3MS4yLTk4IDYwLjggMCA2MS43IDU2LjkgNjEuNyAxMDEuMnYxODUuN2gxMTguNlY1ODQuM2MwLTEwMi44LTIyLjItMTgxLjktMTQyLjMtMTgxLjktNTcuNyAwLTk2LjQgMzEuNy0xMTIuMyA2MS43aC0xLjZ2LTUyLjJINDIzLjd2MzgxLjhoMTE4LjZWNjA0Ljh6JykpO1xuZXhwb3J0cy5Mb2NrT3V0bGluZSA9IGdldEljb24oJ2xvY2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDQ2NGgtNjhWMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMzMiAyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djIyNEgzMzJWMjQwem00NjAgNjAwSDIzMlY1MzZoNTYwdjMwNHpNNDg0IDcwMXY1M2MwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di01M2E0OC4wMSA0OC4wMSAwIDEgMC01NiAweicpKTtcbmV4cG9ydHMuTWVkaWNpbmVCb3hPdXRsaW5lID0gZ2V0SWNvbignbWVkaWNpbmUtYm94Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzOS4yIDI3OC4xYTMyIDMyIDAgMCAwLTMwLjQtMjIuMUg3MzZWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTEyaC03Mi44YTMxLjkgMzEuOSAwIDAgMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNMzYwIDE4NGgzMDR2NzJIMzYwdi03MnptNDgwIDY1NkgxODRWNTEzLjRMMjQ0LjMgMzI4aDUzNS40TDg0MCA1MTMuNFY4NDB6TTY1MiA1NzJINTQ0VjQ2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjM2aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLk1laE91dGxpbmUgPSBnZXRJY29uKCdtZWgnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMCAxIDI0OC45IDc3NWMtMzQuMi0zNC4yLTYxLTc0LTc5LjgtMTE4LjNDMTQ5LjggNjExIDE0MCA1NjIuMyAxNDAgNTEyczkuOC05OSAyOS4yLTE0NC44QTM3MC40IDM3MC40IDAgMCAxIDI0OSAyNDguOWMzNC4yLTM0LjIgNzQtNjEgMTE4LjMtNzkuOEM0MTMgMTQ5LjggNDYxLjcgMTQwIDUxMiAxNDBjNTAuMyAwIDk5IDkuOCAxNDQuOCAyOS4yQTM3MC40IDM3MC40IDAgMCAxIDc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwIDEgNzc1IDc3NXpNNjY0IDU2NUgzNjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuTWFpbE91dGxpbmUgPSBnZXRJY29uKCdtYWlsJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMTEwLjhWNzkySDEzNlYyNzAuOGwtMjcuNi0yMS41IDM5LjMtNTAuNSA0Mi44IDMzLjNoNjQzLjFsNDIuOC0zMy4zIDM5LjMgNTAuNS0yNy43IDIxLjV6TTgzMy42IDIzMkw1MTIgNDgyIDE5MC40IDIzMmwtNDIuOC0zMy4zLTM5LjMgNTAuNSAyNy42IDIxLjUgMzQxLjYgMjY1LjZhNTUuOTkgNTUuOTkgMCAwIDAgNjguNyAwTDg4OCAyNzAuOGwyNy42LTIxLjUtMzkuMy01MC41LTQyLjcgMzMuMnonKSk7XG5leHBvcnRzLk1lc3NhZ2VPdXRsaW5lID0gZ2V0SWNvbignbWVzc2FnZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NjQgNTEyYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMjAwIDBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0tNDAwIDBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem02NjEuMi0xNzMuNmMtMjIuNi01My43LTU1LTEwMS45LTk2LjMtMTQzLjNhNDQ0LjM1IDQ0NC4zNSAwIDAgMC0xNDMuMy05Ni4zQzYzMC42IDc1LjcgNTcyLjIgNjQgNTEyIDY0aC0yYy02MC42LjMtMTE5LjMgMTIuMy0xNzQuNSAzNS45YTQ0NS4zNSA0NDUuMzUgMCAwIDAtMTQyIDk2LjVjLTQwLjkgNDEuMy03MyA4OS4zLTk1LjIgMTQyLjgtMjMgNTUuNC0zNC42IDExNC4zLTM0LjMgMTc0LjlBNDQ5LjQgNDQ5LjQgMCAwIDAgMTEyIDcxNHYxNTJhNDYgNDYgMCAwIDAgNDYgNDZoMTUyLjFBNDQ5LjQgNDQ5LjQgMCAwIDAgNTEwIDk2MGgyLjFjNTkuOSAwIDExOC0xMS42IDE3Mi43LTM0LjNhNDQ0LjQ4IDQ0NC40OCAwIDAgMCAxNDIuOC05NS4yYzQxLjMtNDAuOSA3My44LTg4LjcgOTYuNS0xNDIgMjMuNi01NS4yIDM1LjYtMTEzLjkgMzUuOS0xNzQuNS4zLTYwLjktMTEuNS0xMjAtMzQuOC0xNzUuNnptLTE1MS4xIDQzOEM3MDQgODQ1LjggNjExIDg4NCA1MTIgODg0aC0xLjdjLTYwLjMtLjMtMTIwLjItMTUuMy0xNzMuMS00My41bC04LjQtNC41SDE4OFY2OTUuMmwtNC41LTguNEMxNTUuMyA2MzMuOSAxNDAuMyA1NzQgMTQwIDUxMy43Yy0uNC05OS43IDM3LjctMTkzLjMgMTA3LjYtMjYzLjggNjkuOC03MC41IDE2My4xLTEwOS41IDI2Mi44LTEwOS45aDEuN2M1MCAwIDk4LjUgOS43IDE0NC4yIDI4LjkgNDQuNiAxOC43IDg0LjYgNDUuNiAxMTkgODAgMzQuMyAzNC4zIDYxLjMgNzQuNCA4MCAxMTkgMTkuNCA0Ni4yIDI5LjEgOTUuMiAyOC45IDE0NS44LS42IDk5LjYtMzkuNyAxOTIuOS0xMTAuMSAyNjIuN3onKSk7XG5leHBvcnRzLk1pbnVzQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ21pbnVzLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTYgNDgwSDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5NaW51c1NxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdtaW51cy1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzI4IDU0NGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLk1vYmlsZU91dGxpbmUgPSBnZXRJY29uKCdtb2JpbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQ0IDYySDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjZjMC0zNS4zLTI4LjctNjQtNjQtNjR6bS04IDgyNEgyODhWMTM0aDQ0OHY3NTJ6TTQ3MiA3ODRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweicpKTtcbmV4cG9ydHMuTW9uZXlDb2xsZWN0T3V0bGluZSA9IGdldEljb24oJ21vbmV5LWNvbGxlY3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTExLjUgNzAwLjdhOCA4IDAgMCAwLTEwLjMtNC44TDg0MCA3MTguMlYxODBjMC0zNy42LTMwLjQtNjgtNjgtNjhIMjUyYy0zNy42IDAtNjggMzAuNC02OCA2OHY1MzguMmwtNjEuMy0yMi4zYy0uOS0uMy0xLjgtLjUtMi43LS41LTQuNCAwLTggMy42LTggOFY3NjNjMCAzLjMgMi4xIDYuMyA1LjMgNy41TDUwMSA5MTAuMWM3LjEgMi42IDE0LjggMi42IDIxLjkgMGwzODMuOC0xMzkuNWMzLjItMS4yIDUuMy00LjIgNS4zLTcuNXYtNTkuNmMwLTEtLjItMS45LS41LTIuOHpNNTEyIDgzNy41bC0yNTYtOTMuMVYxODRoNTEydjU2MC40bC0yNTYgOTMuMXpNNjYwLjYgMzEyaC01NC41Yy0zIDAtNS44IDEuNy03LjEgNC40bC04NC43IDE2OC44SDUxMWwtODQuNy0xNjguOGE4IDggMCAwIDAtNy4xLTQuNGgtNTUuN2MtMS4zIDAtMi42LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOGwxMDMuOSAxOTEuNmgtNTdjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NnYzOWgtNzZjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NlY3MDRjMCA0LjQgMy42IDggOCA4aDQ5LjljNC40IDAgOC0zLjYgOC04di02My41aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOGgtNzYuM3YtMzloNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04SDU2NGwxMDMuNy0xOTEuNmMuNi0xLjIgMS0yLjUgMS0zLjgtLjEtNC4zLTMuNy03LjktOC4xLTcuOXonKSk7XG5leHBvcnRzLlBhdXNlQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3BhdXNlLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bS04OC01MzJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHptMjI0IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlBheUNpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdwYXktY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTU5LjYtNTg1aC01OS41Yy0zIDAtNS44IDEuNy03LjEgNC40bC05MC42IDE4MEg1MTFsLTkwLjYtMTgwYTggOCAwIDAgMC03LjEtNC40aC02MC43Yy0xLjMgMC0yLjYuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC45TDQ1NyA1MTUuN2gtNjEuNGMtNC40IDAtOCAzLjYtOCA4djI5LjljMCA0LjQgMy42IDggOCA4aDgxLjdWNjAzaC04MS43Yy00LjQgMC04IDMuNi04IDh2MjkuOWMwIDQuNCAzLjYgOCA4IDhoODEuN1Y3MTdjMCA0LjQgMy42IDggOCA4aDU0LjNjNC40IDAgOC0zLjYgOC04di02OC4xaDgyYzQuNCAwIDgtMy42IDgtOFY2MTFjMC00LjQtMy42LTgtOC04aC04MnYtNDEuNWg4MmM0LjQgMCA4LTMuNiA4LTh2LTI5LjljMC00LjQtMy42LTgtOC04aC02MmwxMTEuMS0yMDQuOGMuNi0xLjIgMS0yLjUgMS0zLjgtLjEtNC40LTMuNy04LTguMS04eicpKTtcbmV4cG9ydHMuTm90aWZpY2F0aW9uT3V0bGluZSA9IGdldEljb24oJ25vdGlmaWNhdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEyYy0zLjggMC03LjcuNy0xMS42IDIuM0wyOTIgMzQ1LjlIMTI4Yy04LjggMC0xNiA3LjQtMTYgMTYuNnYyOTljMCA5LjIgNy4yIDE2LjYgMTYgMTYuNmgxMDEuN2MtMy43IDExLjYtNS43IDIzLjktNS43IDM2LjQgMCA2NS45IDUzLjggMTE5LjUgMTIwIDExOS41IDU1LjQgMCAxMDIuMS0zNy42IDExNS45LTg4LjRsNDA4LjYgMTY0LjJjMy45IDEuNSA3LjggMi4zIDExLjYgMi4zIDE2LjkgMCAzMi0xNC4yIDMyLTMzLjJWMTQ1LjJDOTEyIDEyNi4yIDg5NyAxMTIgODgwIDExMnpNMzQ0IDc2Mi4zYy0yNi41IDAtNDgtMjEuNC00OC00Ny44IDAtMTEuMiAzLjktMjEuOSAxMS0zMC40bDg0LjkgMzQuMWMtMiAyNC42LTIyLjcgNDQuMS00Ny45IDQ0LjF6bTQ5NiA1OC40TDMxOC44IDYxMS4zbC0xMi45LTUuMkgxODRWNDE3LjloMTIxLjlsMTIuOS01LjJMODQwIDIwMy4zdjYxNy40eicpKTtcbmV4cG9ydHMuUGhvbmVPdXRsaW5lID0gZ2V0SWNvbigncGhvbmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc3LjEgMjM4LjdMNzcwLjYgMTMyLjNjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNzLTM1LjggNy4yLTQ4LjggMjAuM0w1NTguMyAyNDYuOGMtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDg5LjYgODkuN2E0MDUuNDYgNDA1LjQ2IDAgMCAxLTg2LjQgMTI3LjNjLTM2LjcgMzYuOS03OS42IDY2LTEyNy4yIDg2LjZsLTg5LjYtODkuN2MtMTMtMTMtMzAuNC0yMC4zLTQ4LjgtMjAuM2E2OC4yIDY4LjIgMCAwIDAtNDguOCAyMC4zTDEzMi4zIDY3M2MtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDEwNi40IDEwNi40YzIyLjIgMjIuMiA1Mi44IDM0LjkgODQuMiAzNC45IDYuNSAwIDEyLjgtLjUgMTkuMi0xLjYgMTMyLjQtMjEuOCAyNjMuOC05Mi4zIDM2OS45LTE5OC4zQzgxOCA2MDYgODg4LjQgNDc0LjYgOTEwLjQgMzQyLjFjNi4zLTM3LjYtNi4zLTc2LjMtMzMuMy0xMDMuNHptLTM3LjYgOTEuNWMtMTkuNSAxMTcuOS04Mi45IDIzNS41LTE3OC40IDMzMXMtMjEzIDE1OC45LTMzMC45IDE3OC40Yy0xNC44IDIuNS0zMC0yLjUtNDAuOC0xMy4yTDE4NC45IDcyMS45IDI5NS43IDYxMWwxMTkuOCAxMjAgLjkuOSAyMS42LThhNDgxLjI5IDQ4MS4yOSAwIDAgMCAyODUuNy0yODUuOGw4LTIxLjYtMTIwLjgtMTIwLjcgMTEwLjgtMTEwLjkgMTA0LjUgMTA0LjVjMTAuOCAxMC44IDE1LjggMjYgMTMuMyA0MC44eicpKTtcbmV4cG9ydHMuUGljdHVyZU91dGxpbmUgPSBnZXRJY29uKCdwaWN0dXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNnYtMzkuOWwxMzguNS0xNjQuMyAxNTAuMSAxNzhMNjU4LjEgNDg5IDg4OCA3NjEuNlY3OTJ6bTAtMTI5LjhMNjY0LjIgMzk2LjhjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDQyNC42IDY2Ni40bC0xNDQtMTcwLjdjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDEzNiA2NTIuN1YyMzJoNzUydjQzMC4yek0zMDQgNDU2YTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMCAwIDAgMTc2em0wLTExNmMxNS41IDAgMjggMTIuNSAyOCAyOHMtMTIuNSAyOC0yOCAyOC0yOC0xMi41LTI4LTI4IDEyLjUtMjggMjgtMjh6JykpO1xuZXhwb3J0cy5QaWVDaGFydE91dGxpbmUgPSBnZXRJY29uKCdwaWUtY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY0IDUxOEg1MDZWMTYwYzAtNC40LTMuNi04LTgtOGgtMjZhMzk4LjQ2IDM5OC40NiAwIDAgMC0yODIuOCAxMTcuMSAzOTguMTkgMzk4LjE5IDAgMCAwLTg1LjcgMTI3LjFBMzk3LjYxIDM5Ny42MSAwIDAgMCA3MiA1NTJhMzk4LjQ2IDM5OC40NiAwIDAgMCAxMTcuMSAyODIuOGMzNi43IDM2LjcgNzkuNSA2NS42IDEyNy4xIDg1LjdBMzk3LjYxIDM5Ny42MSAwIDAgMCA0NzIgOTUyYTM5OC40NiAzOTguNDYgMCAwIDAgMjgyLjgtMTE3LjFjMzYuNy0zNi43IDY1LjYtNzkuNSA4NS43LTEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwIDAgODcyIDU1MnYtMjZjMC00LjQtMy42LTgtOC04ek03MDUuNyA3ODcuOEEzMzEuNTkgMzMxLjU5IDAgMCAxIDQ3MC40IDg4NGMtODguMS0uNC0xNzAuOS0zNC45LTIzMy4yLTk3LjJDMTc0LjUgNzI0LjEgMTQwIDY0MC43IDE0MCA1NTJjMC04OC43IDM0LjUtMTcyLjEgOTcuMi0yMzQuOCA1NC42LTU0LjYgMTI0LjktODcuOSAyMDAuOC05NS41VjU4NmgzNjQuM2MtNy43IDc2LjMtNDEuMyAxNDctOTYuNiAyMDEuOHpNOTUyIDQ2Mi40bC0yLjYtMjguMmMtOC41LTkyLjEtNDkuNC0xNzktMTE1LjItMjQ0LjZBMzk5LjQgMzk5LjQgMCAwIDAgNTg5IDc0LjZMNTYwLjcgNzJjLTQuNy0uNC04LjcgMy4yLTguNyA3LjlWNDY0YzAgNC40IDMuNiA4IDggOGwzODQtMWM0LjcgMCA4LjQtNCA4LTguNnptLTMzMi4yLTU4LjJWMTQ3LjZhMzMyLjI0IDMzMi4yNCAwIDAgMSAxNjYuNCA4OS44YzQ1LjcgNDUuNiA3NyAxMDMuNiA5MCAxNjYuMWwtMjU2LjQuN3onKSk7XG5leHBvcnRzLlBsYXlTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbigncGxheS1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQyLjMgNjc3LjZsMTk5LjQtMTU2LjdhMTEuMyAxMS4zIDAgMCAwIDAtMTcuN0w0NDIuMyAzNDYuNGMtNy40LTUuOC0xOC4zLS42LTE4LjMgOC44djMxMy41YzAgOS40IDEwLjkgMTQuNyAxOC4zIDguOXonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5QbGF5Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3BsYXktY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTcxOS40IDQ5OS4xbC0yOTYuMS0yMTVBMTUuOSAxNS45IDAgMCAwIDM5OCAyOTd2NDMwYzAgMTMuMSAxNC44IDIwLjUgMjUuMyAxMi45bDI5Ni4xLTIxNWExNS45IDE1LjkgMCAwIDAgMC0yNS44em0tMjU3LjYgMTM0VjM5MC45TDYyOC41IDUxMiA0NjEuOCA2MzMuMXonKSk7XG5leHBvcnRzLlBsdXNDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigncGx1cy1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjk2IDQ4MEg1NDRWMzI4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE1MnYxNTJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY1NDRoMTUyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuUHJpbnRlck91dGxpbmUgPSBnZXRJY29uKCdwcmludGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgyMCA0MzZoLTQwYy00LjQgMC04IDMuNi04IDh2NDBjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNDBjMC00LjQtMy42LTgtOC04em0zMi0xMDRINzMyVjEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MjEySDE3MmMtNDQuMiAwLTgwIDM1LjgtODAgODB2MzI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2OHYxMzJjMCA0LjQgMy42IDggOCA4aDQyNGM0LjQgMCA4LTMuNiA4LThWNzcyaDE2OGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MTJjMC00NC4yLTM1LjgtODAtODAtODB6TTM2MCAxODBoMzA0djE1MkgzNjBWMTgwem0zMDQgNjY0SDM2MFY1NjhoMzA0djI3NnptMjAwLTE0MEg3MzJWNTAwSDI5MnYyMDRIMTYwVjQxMmMwLTYuNiA1LjQtMTIgMTItMTJoNjgwYzYuNiAwIDEyIDUuNCAxMiAxMnYyOTJ6JykpO1xuZXhwb3J0cy5QbHVzU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3BsdXMtc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5Qcm9maWxlT3V0bGluZSA9IGdldEljb24oJ3Byb2ZpbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNNDkyIDQwMGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4ek0zNDAgMzY4YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMCAxNDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDE0NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5Qcm9qZWN0T3V0bGluZSA9IGdldEljb24oJ3Byb2plY3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjgwIDc1Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4em0xOTItMjgwaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djE4NGMwIDQuNCAzLjYgOCA4IDh6bTE5MiA3Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHYyNTZjMCA0LjQgMy42IDggOCA4em0yMTYtNDMySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuUHVzaHBpbk91dGxpbmUgPSBnZXRJY29uKCdwdXNocGluJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjNhMzMuMjMgMzMuMjMgMCAwIDAtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMCAwLTQuNiA5LjhsLTMuNCAzNy4yYy0uOSA5LjQgNi42IDE3LjQgMTUuOSAxNy40LjUgMCAxIDAgMS41LS4xbDM3LjItMy40YzMuNy0uMyA3LjItMiA5LjgtNC42bDIxNS40LTIxNS40IDE4MS43IDE4MS43YzYuNSA2LjUgMTUgOS43IDIzLjUgOS43IDkuNyAwIDE5LjMtNC4yIDI1LjktMTIuNCA1Ni4zLTcwLjMgNzkuNy0xNTguMyA3MC4yLTI0My40bDE2MS4xLTE2MS4xYzEyLjktMTIuOCAxMi45LTMzLjggMC00Ni44ek02NjYuMiA1NDkuM2wtMjQuNSAyNC41IDMuOCAzNC40YTI1OS45MiAyNTkuOTIgMCAwIDEtMzAuNCAxNTMuOUwyNjIgNDA4LjhjMTIuOS03LjEgMjYuMy0xMy4xIDQwLjMtMTcuOSAyNy4yLTkuNCA1NS43LTE0LjEgODQuNy0xNC4xIDkuNiAwIDE5LjMuNSAyOC45IDEuNmwzNC40IDMuOCAyNC41LTI0LjVMNjA4LjUgMjI0IDgwMCA0MTUuNSA2NjYuMiA1NDkuM3onKSk7XG5leHBvcnRzLlByb3BlcnR5U2FmZXR5T3V0bGluZSA9IGdldEljb24oJ3Byb3BlcnR5LXNhZmV0eScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6TTQzMC41IDMxOGgtNDZjLTEuNyAwLTMuMy40LTQuOCAxLjJhMTAuMSAxMC4xIDAgMCAwLTQgMTMuNmw4OCAxNjEuMWgtNDUuMmMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjF2MjkuN2gtNjMuMWMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjFWNjU4YzAgNS41IDQuNSAxMCAxMCAxMGg0MS4zYzUuNSAwIDEwLTQuNSAxMC0xMHYtNTEuOGg2My40YzUuNSAwIDEwLTQuNSAxMC0xMHYtMjEuM2MwLTUuNS00LjUtMTAtMTAtMTBoLTYzLjR2LTI5LjdoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC00NS43bDg3LjctMTYxLjFhMTAuMDUgMTAuMDUgMCAwIDAtOC44LTE0LjhoLTQ1Yy0zLjggMC03LjIgMi4xLTguOSA1LjVsLTczLjIgMTQ0LjMtNzIuOS0xNDQuM2MtMS43LTMuNC01LjItNS41LTktNS41eicpKTtcbmV4cG9ydHMuUXVlc3Rpb25DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigncXVlc3Rpb24tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwIDEgMzAuOS00NC44YzU5LTIyLjcgOTcuMS03NC43IDk3LjEtMTMyLjUuMS0zOS4zLTE3LjEtNzYtNDguMy0xMDMuM3pNNDcyIDczMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5SZWFkT3V0bGluZSA9IGdldEljb24oJ3JlYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MUg2OTkuMmMtNDkuMSAwLTk3LjEgMTQuMS0xMzguNCA0MC43TDUxMiAyMzNsLTQ4LjgtMzEuM0EyNTUuMiAyNTUuMiAwIDAgMCAzMjQuOCAxNjFIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMjguOGM0OS4xIDAgOTcuMSAxNC4xIDEzOC40IDQwLjdsNDQuNCAyOC42YzEuMy44IDIuOCAxLjMgNC4zIDEuM3MzLS40IDQuMy0xLjNsNDQuNC0yOC42QzYwMiA4MDcuMSA2NTAuMSA3OTMgNjk5LjIgNzkzSDkyOGMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTNjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyNC44IDcyMUgxMzZWMjMzaDE4OC44YzM1LjQgMCA2OS44IDEwLjEgOTkuNSAyOS4ybDQ4LjggMzEuMyA2LjkgNC41djQ2MmMtNDcuNi0yNS42LTEwMC44LTM5LTE1NS4yLTM5em01NjMuMiAwSDY5OS4yYy01NC40IDAtMTA3LjYgMTMuNC0xNTUuMiAzOVYyOThsNi45LTQuNSA0OC44LTMxLjNjMjkuNy0xOS4xIDY0LjEtMjkuMiA5OS41LTI5LjJIODg4djQ4OHpNMzk2LjkgMzYxSDIxMS4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6bTIyMy4xIDcuNXY0NWMwIDQuMSAzLjIgNy41IDcuMSA3LjVoMTg1LjdjMy45IDAgNy4xLTMuNCA3LjEtNy41di00NWMwLTQuMS0zLjItNy41LTcuMS03LjVINjI3LjFjLTMuOSAwLTcuMSAzLjQtNy4xIDcuNXpNMzk2LjkgNTAxSDIxMS4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6bTQxNiAwSDYyNy4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6JykpO1xuZXhwb3J0cy5SZWNvbmNpbGlhdGlvbk91dGxpbmUgPSBnZXRJY29uKCdyZWNvbmNpbGlhdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NzYgNTY1Yy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0em0yMDQtNTIzSDY2OGMwLTMwLjktMjUuMS01Ni01Ni01NmgtODBjLTMwLjkgMC01NiAyNS4xLTU2IDU2SDI2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwaC04OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMTZoMzY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQxMiA2NGg3MnYtNTZoNjR2NTZoNzJ2NDhINDY4di00OHptLTIwIDYxNkgxNzZWNjE2aDI3MnYyMzJ6bTAtMjk2SDE3NnYtODhoMjcydjg4em0zOTIgMjQwSDUxMlY0MzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzA0VjI0MGgxMDB2MTA0aDMzNlYyNDBoMTAwdjU1MnpNNzA0IDQwOHY5NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di05NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6TTU5MiA1MTJoNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuUmVkRW52ZWxvcGVPdXRsaW5lID0gZ2V0SWNvbigncmVkLWVudmVsb3BlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ0MC42IDQ2Mi42YTguMzggOC4zOCAwIDAgMC03LjUtNC42aC00OC44Yy0xLjMgMC0yLjYuNC0zLjkgMWE4LjQgOC40IDAgMCAwLTMuNCAxMS40bDg3LjQgMTYxLjFINDE5Yy00LjYgMC04LjQgMy44LTguNCA4LjRWNjY1YzAgNC42IDMuOCA4LjQgOC40IDguNGg2M1Y3MDJoLTYzYy00LjYgMC04LjQgMy44LTguNCA4LjR2MjUuMWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjN2NDkuOWMwIDQuNiAzLjggOC40IDguNCA4LjRoNDMuN2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTQ5LjloNjMuM2M0LjcgMCA4LjQtMy44IDguMi04LjV2LTI1YzAtNC42LTMuOC04LjQtOC40LTguNGgtNjMuM3YtMjguNmg2My4zYzQuNiAwIDguNC0zLjggOC40LTguNHYtMjUuMWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTQ1LjlsODcuMi0xNjFhOC40NSA4LjQ1IDAgMCAwLTcuNC0xMi40aC00Ny44Yy0zLjEgMC02IDEuOC03LjUgNC42bC03MS45IDE0MS45LTcxLjctMTQyek04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlYxOTMuMWwyNjAuMyAyMDQuMWMxMS42IDkuMSAyNy45IDkuMSAzOS41IDBMNzkyIDE5My4xVjg4OHptMC03NTEuM2gtMzEuN0w1MTIgMzMxLjMgMjYzLjcgMTM2LjdIMjMydi0uN2g1NjB2Ljd6JykpO1xuZXhwb3J0cy5SZXN0T3V0bGluZSA9IGdldEljb24oJ3Jlc3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTA4IDcwNGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NC0xNDQgNjQuNS0xNDQgMTQ0IDY0LjUgMTQ0IDE0NCAxNDR6bTAtMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHonLCAnTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAgMCAzMS45IDI5LjNoNDI5LjJhMzIgMzIgMCAwIDAgMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUxOC42LTc2aDM5Ny4ybDIyLjQgNzZIMjkxbDIyLjQtNzZ6bTM3Ni4yIDY2NEgzMjYuNEwyODIgMzI0aDQ1MS45bC00NC4zIDUyMHonKSk7XG5leHBvcnRzLlJpZ2h0Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3JpZ2h0LWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NjYuNyA1MDUuNWwtMjQ2LTE3OEE4IDggMCAwIDAgNDA4IDMzNHY0Ni45YzAgMTAuMiA0LjkgMTkuOSAxMy4yIDI1LjlMNTY2LjYgNTEyIDQyMS4yIDYxNy4yYy04LjMgNi0xMy4yIDE1LjYtMTMuMiAyNS45VjY5MGMwIDYuNSA3LjQgMTAuMyAxMi43IDYuNWwyNDYtMTc4YzQuNC0zLjIgNC40LTkuOCAwLTEzeicsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuUm9ja2V0T3V0bGluZSA9IGdldEljb24oJ3JvY2tldCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgNzM2YzAtMTExLjYtNjUuNC0yMDgtMTYwLTI1Mi45VjMxNy4zYzAtMTUuMS01LjMtMjkuNy0xNS4xLTQxLjJMNTM2LjUgOTUuNEM1MzAuMSA4Ny44IDUyMSA4NCA1MTIgODRzLTE4LjEgMy44LTI0LjUgMTEuNEwzMzUuMSAyNzYuMWE2My45NyA2My45NyAwIDAgMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAgMCA0My4xIDMwLjZjMjMuMSA1NCA3NS42IDg4LjggMTM0LjUgODguOCAyOS4xIDAgNTcuMy04LjYgODEuNC0yNC44IDIzLjYtMTUuOCA0MS45LTM3LjkgNTMtNjRhOTcgOTcgMCAwIDAgNDMuMS0zMC41IDk3LjUyIDk3LjUyIDAgMCAwIDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEg4NjR6TTc2Mi4zIDYyMS40YzkuNCAxNC42IDE3IDMwLjMgMjIuNSA0Ni42SDcwMFY1NTguN2EyMTEuNiAyMTEuNiAwIDAgMSA2Mi4zIDYyLjd6TTM4OCA0ODMuMVYzMTguOGwxMjQtMTQ3IDEyNCAxNDdWNjY4SDM4OFY0ODMuMXpNMjM5LjIgNjY4YzUuNS0xNi4zIDEzLjEtMzIgMjIuNS00Ni42IDE2LjMtMjUuMiAzNy41LTQ2LjUgNjIuMy02Mi43VjY2OGgtODQuOHptMzg4LjkgMTE2LjJjLTUuMiAzLTExLjIgNC4yLTE3LjEgMy40bC0xOS41LTIuNC0yLjggMTkuNGMtNS40IDM3LjktMzguNCA2Ni41LTc2LjcgNjYuNS0zOC4zIDAtNzEuMy0yOC42LTc2LjctNjYuNWwtMi44LTE5LjUtMTkuNSAyLjVhMjcuNyAyNy43IDAgMCAxLTE3LjEtMy41Yy04LjctNS0xNC4xLTE0LjMtMTQuMS0yNC40IDAtMTAuNiA1LjktMTkuNCAxNC42LTIzLjhoMjMxLjNjOC44IDQuNSAxNC42IDEzLjMgMTQuNiAyMy44LS4xIDEwLjItNS41IDE5LjYtMTQuMiAyNC41ek00NjQgNDAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHonKSk7XG5leHBvcnRzLlJpZ2h0U3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3JpZ2h0LXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MTIuNyA2OTYuNWwyNDYtMTc4YzQuNC0zLjIgNC40LTkuNyAwLTEyLjlsLTI0Ni0xNzhjLTUuMy0zLjgtMTIuNyAwLTEyLjcgNi41VjM4MWMwIDEwLjIgNC45IDE5LjkgMTMuMiAyNS45TDU1OC42IDUxMiA0MTMuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS42LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjV6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuU2FmZXR5Q2VydGlmaWNhdGVPdXRsaW5lID0gZ2V0SWNvbignc2FmZXR5LWNlcnRpZmljYXRlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnptLTQwNS44LTIwMWMtMy00LjEtNy44LTYuNi0xMy02LjZIMzM2Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjYuNCAxNzRhMTYuMSAxNi4xIDAgMCAwIDI2IDBsMjEyLjYtMjkyLjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNTQyLjRsLTY0LjctODkuMXonKSk7XG5leHBvcnRzLlNjaGVkdWxlT3V0bGluZSA9IGdldEljb24oJ3NjaGVkdWxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnpNNDE2IDQ5NkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0wIDEzNkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0zMDguMi0xNzcuNEw2MjAuNiA1OTguM2wtNTIuOC03My4xYy0zLTQuMi03LjgtNi42LTEyLjktNi42SDUwMGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTE0LjEgMTU4LjJhMTUuOSAxNS45IDAgMCAwIDI1LjggMGwxNjUtMjI4LjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdINzM3Yy01LS4xLTkuOCAyLjQtMTIuOCA2LjV6JykpO1xuZXhwb3J0cy5TYXZlT3V0bGluZSA9IGdldEljb24oJ3NhdmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODkzLjMgMjkzLjNMNzMwLjcgMTMwLjdjLTcuNS03LjUtMTYuNy0xMy0yNi43LTE2VjExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM4LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTM4NCAxODRoMjU2djEwNEgzODRWMTg0em00NTYgNjU2SDE4NFYxODRoMTM2djEzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjA1LjhsMTM2IDEzNlY4NDB6TTUxMiA0NDJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NC02NC41LTE0NC0xNDQtMTQ0em0wIDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MCA4MCAzNS44IDgwIDgwLTM1LjggODAtODAgODB6JykpO1xuZXhwb3J0cy5TZWN1cml0eVNjYW5PdXRsaW5lID0gZ2V0SWNvbignc2VjdXJpdHktc2NhbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6TTQwMi45IDUyOC44bC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzNCAzNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDc3LjUtNzcuNWM1NS43IDM1LjEgMTMwLjEgMjguNCAxNzguNi0yMC4xIDU2LjMtNTYuMyA1Ni4zLTE0Ny41IDAtMjAzLjgtNTYuMy01Ni4zLTE0Ny41LTU2LjMtMjAzLjggMC00OC41IDQ4LjUtNTUuMiAxMjMtMjAuMSAxNzguNnptNjUuNC0xMzMuM2MzMS4zLTMxLjMgODItMzEuMyAxMTMuMiAwIDMxLjMgMzEuMyAzMS4zIDgyIDAgMTEzLjItMzEuMyAzMS4zLTgyIDMxLjMtMTEzLjIgMHMtMzEuMy04MS45IDAtMTEzLjJ6JykpO1xuZXhwb3J0cy5TZXR0aW5nT3V0bGluZSA9IGdldEljb24oJ3NldHRpbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjggNjI1LjdsLTY1LjUtNTZjMy4xLTE5IDQuNy0zOC40IDQuNy01Ny44cy0xLjYtMzguOC00LjctNTcuOGw2NS41LTU2YTMyLjAzIDMyLjAzIDAgMCAwIDkuMy0zNS4ybC0uOS0yLjZhNDQzLjc0IDQ0My43NCAwIDAgMC03OS43LTEzNy45bC0xLjgtMi4xYTMyLjEyIDMyLjEyIDAgMCAwLTM1LjEtOS41bC04MS4zIDI4LjljLTMwLTI0LjYtNjMuNS00NC05OS43LTU3LjZsLTE1LjctODVhMzIuMDUgMzIuMDUgMCAwIDAtMjUuOC0yNS43bC0yLjctLjVjLTUyLjEtOS40LTEwNi45LTkuNC0xNTkgMGwtMi43LjVhMzIuMDUgMzIuMDUgMCAwIDAtMjUuOCAyNS43bC0xNS44IDg1LjRhMzUxLjg2IDM1MS44NiAwIDAgMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwIDAtMzUuMSA5LjVsLTEuOCAyLjFhNDQ2LjAyIDQ0Ni4wMiAwIDAgMC03OS43IDEzNy45bC0uOSAyLjZjLTQuNSAxMi41LS44IDI2LjUgOS4zIDM1LjJsNjYuMyA1Ni42Yy0zLjEgMTguOC00LjYgMzgtNC42IDU3LjEgMCAxOS4yIDEuNSAzOC40IDQuNiA1Ny4xTDk5IDYyNS41YTMyLjAzIDMyLjAzIDAgMCAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjQgNDQuOSA5Ni45IDc5LjcgMTM3LjlsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAgMCAzNS4xIDkuNWw4MS45LTI5LjFjMjkuOCAyNC41IDYzLjEgNDMuOSA5OSA1Ny40bDE1LjggODUuNGEzMi4wNSAzMi4wNSAwIDAgMCAyNS44IDI1LjdsMi43LjVhNDQ5LjQgNDQ5LjQgMCAwIDAgMTU5IDBsMi43LS41YTMyLjA1IDMyLjA1IDAgMCAwIDI1LjgtMjUuN2wxNS43LTg1YTM1MCAzNTAgMCAwIDAgOTkuNy01Ny42bDgxLjMgMjguOWEzMiAzMiAwIDAgMCAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjNC41LTEyLjMuOC0yNi4zLTkuMy0zNXpNNzg4LjMgNDY1LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwIDEtNDIuNiA3My42TDcyMSA3MDIuOGwtMzEuNCAyNS44Yy0yMy45IDE5LjYtNTAuNSAzNS03OS4zIDQ1LjhsLTM4LjEgMTQuMy0xNy45IDk3YTM3Ny41IDM3Ny41IDAgMCAxLTg1IDBsLTE3LjktOTcuMi0zNy44LTE0LjVjLTI4LjUtMTAuOC01NS0yNi4yLTc4LjctNDUuN2wtMzEuNC0yNS45LTkzLjQgMzMuMmMtMTctMjIuOS0zMS4yLTQ3LjYtNDIuNi03My42bDc1LjUtNjQuNS02LjUtNDBjLTIuNC0xNC45LTMuNy0zMC4zLTMuNy00NS41IDAtMTUuMyAxLjItMzAuNiAzLjctNDUuNWw2LjUtNDAtNzUuNS02NC41YzExLjMtMjYuMSAyNS42LTUwLjcgNDIuNi03My42bDkzLjQgMzMuMiAzMS40LTI1LjljMjMuNy0xOS41IDUwLjItMzQuOSA3OC43LTQ1LjdsMzcuOS0xNC4zIDE3LjktOTcuMmMyOC4xLTMuMiA1Ni44LTMuMiA4NSAwbDE3LjkgOTcgMzguMSAxNC4zYzI4LjcgMTAuOCA1NS40IDI2LjIgNzkuMyA0NS44bDMxLjQgMjUuOCA5Mi44LTMyLjljMTcgMjIuOSAzMS4yIDQ3LjYgNDIuNiA3My42TDc4MS44IDQyNmw2LjUgMzkuOXpNNTEyIDMyNmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTc5LjIgMjU1LjJBMTExLjYgMTExLjYgMCAwIDEgNTEyIDYxNGMtMjkuOSAwLTU4LTExLjctNzkuMi0zMi44QTExMS42IDExMS42IDAgMCAxIDQwMCA1MDJjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwIDEgNjI0IDUwMmMwIDI5LjktMTEuNyA1OC0zMi44IDc5LjJ6JykpO1xuZXhwb3J0cy5TaG9wcGluZ091dGxpbmUgPSBnZXRJY29uKCdzaG9wcGluZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgMzEySDY5NnYtMTZjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0cy0xODQgODIuNC0xODQgMTg0djE2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MzItMTZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMnYxNkg0MDB2LTE2em0zOTIgNTQ0SDIzMlYzODRoOTZ2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODhoMjI0djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDk2djQ1NnonKSk7XG5leHBvcnRzLlNraW5PdXRsaW5lID0gZ2V0SWNvbignc2tpbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzAgMTI2SDY2My44Yy0xNy40IDAtMzIuOSAxMS45LTM3IDI5LjNDNjE0LjMgMjA4LjEgNTY3IDI0NiA1MTIgMjQ2cy0xMDIuMy0zNy45LTExNC44LTkwLjdhMzcuOTMgMzcuOTMgMCAwIDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwIDAtNDQgNDR2MjUyYTQ0IDQ0IDAgMCAwIDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAgMCA0NCA0NGg0NzhhNDQgNDQgMCAwIDAgNDQtNDRWNDY2aDc1YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjE3MGE0NCA0NCAwIDAgMC00NC00NHptLTI4IDI2OEg3MjN2NDMySDMwMVYzOTRIMTgyVjE5OGgxNTMuM2MyOC4yIDcxLjIgOTcuNSAxMjAgMTc2LjcgMTIwczE0OC41LTQ4LjggMTc2LjctMTIwSDg0MnYxOTZ6JykpO1xuZXhwb3J0cy5Ta3lwZU91dGxpbmUgPSBnZXRJY29uKCdza3lwZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODMuNyA1NzguNmM0LjEtMjIuNSA2LjMtNDUuNSA2LjMtNjguNSAwLTUxLTEwLTEwMC41LTI5LjctMTQ3LTE5LTQ1LTQ2LjMtODUuNC04MS0xMjAuMWEzNzUuNzkgMzc1Ljc5IDAgMCAwLTEyMC4xLTgwLjljLTQ2LjYtMTkuNy05Ni0yOS43LTE0Ny0yOS43LTI0IDAtNDguMSAyLjMtNzEuNSA2LjhBMjI1LjEgMjI1LjEgMCAwIDAgMzM1LjYgMTEzYy01OS43IDAtMTE1LjkgMjMuMy0xNTguMSA2NS41QTIyMi4yNSAyMjIuMjUgMCAwIDAgMTEyIDMzNi42YzAgMzggOS44IDc1LjQgMjguMSAxMDguNC0zLjcgMjEuNC01LjcgNDMuMy01LjcgNjUuMSAwIDUxIDEwIDEwMC41IDI5LjcgMTQ3IDE5IDQ1IDQ2LjIgODUuNCA4MC45IDEyMC4xIDM0LjcgMzQuNyA3NS4xIDYxLjkgMTIwLjEgODAuOSA0Ni42IDE5LjcgOTYgMjkuNyAxNDcgMjkuNyAyMi4yIDAgNDQuNC0yIDY2LjItNS45IDMzLjUgMTguOSA3MS4zIDI5IDExMCAyOSA1OS43IDAgMTE1LjktMjMuMiAxNTguMS02NS41IDQyLjMtNDIuMiA2NS41LTk4LjQgNjUuNS0xNTguMS4xLTM4LTkuNy03NS41LTI4LjItMTA4Ljd6bS04OC4xIDIxNkM3NjYuOSA4MjMuNCA3MjkgODM5IDY4OC40IDgzOWMtMjYuMSAwLTUxLjgtNi44LTc0LjYtMTkuN2wtMjIuNS0xMi43LTI1LjUgNC41Yy0xNy44IDMuMi0zNS44IDQuOC01My42IDQuOC00MS40IDAtODEuMy04LjEtMTE5LjEtMjQuMS0zNi4zLTE1LjMtNjktMzcuMy05Ny4yLTY1LjVhMzA0LjI5IDMwNC4yOSAwIDAgMS02NS41LTk3LjFjLTE2LTM3LjctMjQtNzcuNi0yNC0xMTkgMC0xNy40IDEuNi0zNS4yIDQuNi01Mi44bDQuNC0yNS4xTDIwMyA0MTBhMTUxLjAyIDE1MS4wMiAwIDAgMS0xOS4xLTczLjRjMC00MC42IDE1LjctNzguNSA0NC40LTEwNy4yQzI1Ny4xIDIwMC43IDI5NSAxODUgMzM1LjYgMTg1YTE1MyAxNTMgMCAwIDEgNzEuNCAxNy45bDIyLjQgMTEuOCAyNC44LTQuOGMxOC45LTMuNiAzOC40LTUuNSA1OC01LjUgNDEuNCAwIDgxLjMgOC4xIDExOSAyNCAzNi41IDE1LjQgNjkuMSAzNy40IDk3LjIgNjUuNSAyOC4yIDI4LjEgNTAuMiA2MC44IDY1LjYgOTcuMiAxNiAzNy43IDI0IDc3LjYgMjQgMTE5IDAgMTguNC0xLjcgMzctNS4xIDU1LjVsLTQuNyAyNS41IDEyLjYgMjIuNmMxMi42IDIyLjUgMTkuMiA0OCAxOS4yIDczLjcgMCA0MC43LTE1LjcgNzguNS00NC40IDEwNy4yek01ODMuNCA0NjYuMkw0OTUgNDQ2LjZjLTMzLjYtNy43LTcyLjMtMTcuOC03Mi4zLTQ5LjVzMjcuMS01My45IDc2LjEtNTMuOWM5OC43IDAgODkuNyA2Ny44IDEzOC43IDY3LjggMjUuOCAwIDQ4LjQtMTUuMiA0OC40LTQxLjIgMC02MC44LTk3LjQtMTA2LjUtMTgwLTEwNi41LTg5LjcgMC0xODUuMiAzOC4xLTE4NS4yIDEzOS41IDAgNDguOCAxNy40IDEwMC44IDExMy42IDEyNC45bDExOS40IDI5LjhjMzYuMSA4LjkgNDUuMiAyOS4yIDQ1LjIgNDcuNiAwIDMwLjUtMzAuMyA2MC4zLTg1LjIgNjAuMy0xMDcuMiAwLTkyLjMtODIuNS0xNDkuNy04Mi41LTI1LjggMC00NC41IDE3LjgtNDQuNSA0My4xIDAgNDkuNCA2MCAxMTUuNCAxOTQuMiAxMTUuNCAxMjcuNyAwIDE5MS02MS41IDE5MS0xNDQgMC01My4xLTI0LjUtMTA5LjYtMTIxLjMtMTMxLjJ6JykpO1xuZXhwb3J0cy5TbGFja1NxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdzbGFjay1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MjkgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2MTM0LjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjQtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjRWMzExLjR6TTM2MS41IDU4MC4yYzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAgMSA1MC4zIDUwLjR2MTM0LjR6bS01MC4yLTIxOC40aC0xMzRjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40IDAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNC0uMSAyNy45LTIyLjYgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTMzk1IDMyNC44IDM5NSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHY1MC40aC01MC4zem0xMzQgNDAzLjJjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40di01MC40aDUwLjNjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTEzNC0xMzQuNGgtMTM0YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6JykpO1xuZXhwb3J0cy5TbGlkZXJzT3V0bGluZSA9IGdldEljb24oJ3NsaWRlcnMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzIwIDIyNGgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0tNjAgNTA4aC04MFYyOTJoODB2NDQwem02NDQtNDM2aC02NnYtOTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djk2aC02NmMtNC40IDAtOCAzLjYtOCA4djQxNmMwIDQuNCAzLjYgOCA4IDhoNjZ2OTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtOTZoNjZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LTh6bS02MCAzNjRoLTgwVjM2NGg4MHYyOTZ6TTYxMiA0MDRoLTY2VjIzMmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2MTcyaC02NmMtNC40IDAtOCAzLjYtOCA4djIwMGMwIDQuNCAzLjYgOCA4IDhoNjZ2MTcyYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNjIwaDY2YzQuNCAwIDgtMy42IDgtOFY0MTJjMC00LjQtMy42LTgtOC04em0tNjAgMTQ1YTMgMyAwIDAgMS0zIDNoLTc0YTMgMyAwIDAgMS0zLTN2LTc0YTMgMyAwIDAgMSAzLTNoNzRhMyAzIDAgMCAxIDMgM3Y3NHonKSk7XG5leHBvcnRzLlNtaWxlT3V0bGluZSA9IGdldEljb24oJ3NtaWxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI4OCA0MjFhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0zNTIgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNjMgNzExYy0zNC4yIDM0LjItNzQgNjEtMTE4LjMgNzkuOEM2MTEgODc0LjIgNTYyLjMgODg0IDUxMiA4ODRjLTUwLjMgMC05OS05LjgtMTQ0LjgtMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSAyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAgMSAyNDkgMjQ4LjljMzQuMi0zNC4yIDc0LTYxIDExOC4zLTc5LjhDNDEzIDE0OS44IDQ2MS43IDE0MCA1MTIgMTQwYzUwLjMgMCA5OSA5LjggMTQ0LjggMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSA3NzUuMSAyNDljMzQuMiAzNC4yIDYxIDc0IDc5LjggMTE4LjNDODc0LjIgNDEzIDg4NCA0NjEuNyA4ODQgNTEycy05LjggOTktMjkuMiAxNDQuOEEzNjguODkgMzY4Ljg5IDAgMCAxIDc3NSA3NzV6TTY2NCA1MzNoLTQ4LjFjLTQuMiAwLTcuOCAzLjItOC4xIDcuNEM2MDQgNTg5LjkgNTYyLjUgNjI5IDUxMiA2MjlzLTkyLjEtMzkuMS05NS44LTg4LjZjLS4zLTQuMi0zLjktNy40LTguMS03LjRIMzYwYTggOCAwIDAgMC04IDguNGM0LjQgODQuMyA3NC41IDE1MS42IDE2MCAxNTEuNnMxNTUuNi02Ny4zIDE2MC0xNTEuNmE4IDggMCAwIDAtOC04LjR6JykpO1xuZXhwb3J0cy5TbmlwcGV0c091dGxpbmUgPSBnZXRJY29uKCdzbmlwcGV0cycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgMTEySDcyNFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBINTAwVjcyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MEgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyMGgtOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjY0IDg4OEgyMzJWMzM2aDIxOHYxNzRjMCAyMi4xIDE3LjkgNDAgNDAgNDBoMTc0djMzOHptMC00MDJINTE0VjMzNmguMkw2NjQgNDg1Ljh2LjJ6bTEyOCAyNzRoLTU2VjQ1Nkw1NDQgMjY0SDM2MHYtODBoNjh2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoMTUydjMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDY4djU3NnonKSk7XG5leHBvcnRzLlNvdW5kT3V0bGluZSA9IGdldEljb24oJ3NvdW5kJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYyNS45IDExNWMtNS45IDAtMTEuOSAxLjYtMTcuNCA1LjNMMjU0IDM1Mkg5MGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMTY0bDM1NC41IDIzMS43YzUuNSAzLjYgMTEuNiA1LjMgMTcuNCA1LjMgMTYuNyAwIDMyLjEtMTMuMyAzMi4xLTMyLjFWMTQ3LjFjMC0xOC44LTE1LjQtMzIuMS0zMi4xLTMyLjF6TTU4NiA4MDNMMjkzLjQgNjExLjdsLTE4LTExLjdIMTQ2VjQyNGgxMjkuNGwxNy45LTExLjdMNTg2IDIyMXY1ODJ6bTM0OC0zMjdIODA2Yy04LjggMC0xNiA3LjItMTYgMTZ2NDBjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTQwYzAtOC44LTcuMi0xNi0xNi0xNnptLTQxLjkgMjYxLjhsLTExMC4zLTYzLjdhMTUuOSAxNS45IDAgMCAwLTIxLjcgNS45bC0xOS45IDM0LjVjLTQuNCA3LjYtMS44IDE3LjQgNS44IDIxLjhMODU2LjMgODAwYTE1LjkgMTUuOSAwIDAgMCAyMS43LTUuOWwxOS45LTM0LjVjNC40LTcuNiAxLjctMTcuNC01LjgtMjEuOHpNNzYwIDM0NGExNS45IDE1LjkgMCAwIDAgMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMCAwLTIxLjctNS45TDc0NiAyODcuOGExNS45OSAxNS45OSAwIDAgMC01LjggMjEuOEw3NjAgMzQ0eicpKTtcbmV4cG9ydHMuU3Rhck91dGxpbmUgPSBnZXRJY29uKCdzdGFyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwOC4xIDM1My4xbC0yNTMuOS0zNi45TDU0MC43IDg2LjFjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzY5LjggMzE2LjJsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuM2EzMi4wNSAzMi4wNSAwIDAgMCAuNiA0NS4zbDE4My43IDE3OS4xLTQzLjQgMjUyLjlhMzEuOTUgMzEuOTUgMCAwIDAgNDYuNCAzMy43TDUxMiA3NTRsMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zek02NjQuOCA1NjEuNmwzNi4xIDIxMC4zTDUxMiA2NzIuNyAzMjMuMSA3NzJsMzYuMS0yMTAuMy0xNTIuOC0xNDlMNDE3LjYgMzgyIDUxMiAxOTAuNyA2MDYuNCAzODJsMjExLjIgMzAuNy0xNTIuOCAxNDguOXonKSk7XG5leHBvcnRzLlN0ZXBCYWNrd2FyZE91dGxpbmUgPSBnZXRJY29uKCdzdGVwLWJhY2t3YXJkJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTM0Ny42IDUyOC45NWwzODMuMiAzMDEuMDJjMTQuMjUgMTEuMiAzNS4yIDEuMSAzNS4yLTE2Ljk1VjIxMC45N2MwLTE4LjA1LTIwLjk1LTI4LjE0LTM1LjItMTYuOTRMMzQ3LjYgNDk1LjA1YTIxLjUzIDIxLjUzIDAgMCAwIDAgMzMuOU0zMzAgODY0aC02NGE4IDggMCAwIDEtOC04VjE2OGE4IDggMCAwIDEgOC04aDY0YTggOCAwIDAgMSA4IDh2Njg4YTggOCAwIDAgMS04IDgnKSk7XG5leHBvcnRzLlN0ZXBGb3J3YXJkT3V0bGluZSA9IGdldEljb24oJ3N0ZXAtZm9yd2FyZCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ002NzYuNCA1MjguOTVMMjkzLjIgODI5Ljk3Yy0xNC4yNSAxMS4yLTM1LjIgMS4xLTM1LjItMTYuOTVWMjEwLjk3YzAtMTguMDUgMjAuOTUtMjguMTQgMzUuMi0xNi45NGwzODMuMiAzMDEuMDJhMjEuNTMgMjEuNTMgMCAwIDEgMCAzMy45TTY5NCA4NjRoNjRhOCA4IDAgMCAwIDgtOFYxNjhhOCA4IDAgMCAwLTgtOGgtNjRhOCA4IDAgMCAwLTggOHY2ODhhOCA4IDAgMCAwIDggOCcpKTtcbmV4cG9ydHMuU3RvcE91dGxpbmUgPSBnZXRJY29uKCdzdG9wJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MiAwLTg5IDMxLjMtMTcwLjggODMuNS0yMzQuOGw1MjMuMyA1MjMuM0M2ODIuOCA4NTIuNyA2MDEgODg0IDUxMiA4ODR6bTI4OC41LTEzNy4yTDI3Ny4yIDIyMy41QzM0MS4yIDE3MS4zIDQyMyAxNDAgNTEyIDE0MGMyMDUuNCAwIDM3MiAxNjYuNiAzNzIgMzcyIDAgODktMzEuMyAxNzAuOC04My41IDIzNC44eicpKTtcbmV4cG9ydHMuU3dpdGNoZXJPdXRsaW5lID0gZ2V0SWNvbignc3dpdGNoZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzUyIDI0MEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjAwSDE4NFYzMTJoNTI4djUyOHptMTY4LTcyOEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzAwIDU1MGgyOTZ2NjRIMzAweicpKTtcbmV4cG9ydHMuVGFnT3V0bGluZSA9IGdldEljb24oJ3RhZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MzggNDU4LjhsLTI5LjYtMzEyLjZjLTEuNS0xNi4yLTE0LjQtMjktMzAuNi0zMC42TDU2NS4yIDg2aC0uNGMtMy4yIDAtNS43IDEtNy42IDIuOUw4OC45IDU1Ny4yYTkuOTYgOS45NiAwIDAgMCAwIDE0LjFsMzYzLjggMzYzLjhjMS45IDEuOSA0LjQgMi45IDcuMSAyLjlzNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTQ1OS43IDgzNC43TDE4OS4zIDU2NC4zIDU4OSAxNjQuNiA4MzYgMTg4bDIzLjQgMjQ3LTM5OS43IDM5OS43ek02ODAgMjU2Yy00OC41IDAtODggMzkuNS04OCA4OHMzOS41IDg4IDg4IDg4IDg4LTM5LjUgODgtODgtMzkuNS04OC04OC04OHptMCAxMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeicpKTtcbmV4cG9ydHMuVGFibGV0T3V0bGluZSA9IGdldEljb24oJ3RhYmxldCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MDAgNjRIMjI0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDIzMlYxMzZoNTYwdjc1MnpNNDcyIDc4NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5TaG9wT3V0bGluZSA9IGdldEljb24oJ3Nob3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgyIDI3Mi4xVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNzRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyOC4xYy0xNi43IDEtMzAgMTQuOS0zMCAzMS45djEzMS43YTE3NyAxNzcgMCAwIDAgMTQuNCA3MC40YzQuMyAxMC4yIDkuNiAxOS44IDE1LjYgMjguOXYzNDVjMCAxNy42IDE0LjMgMzIgMzIgMzJoNjc2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUzNWExNzUgMTc1IDAgMCAwIDE1LjYtMjguOWM5LjUtMjIuMyAxNC40LTQ2IDE0LjQtNzAuNFYzMDRjMC0xNy0xMy4zLTMwLjktMzAtMzEuOXpNMjE0IDE4NGg1OTZ2ODhIMjE0di04OHptMzYyIDY1Ni4xSDQ0OFY3MzZoMTI4djEwNC4xem0yMzQgMEg2NDBWNzA0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTM2LjFIMjE0VjU5Ny45YzIuOSAxLjQgNS45IDIuOCA5IDQgMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwIDAgMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMy0xLjMgNi0yLjYgOS00djI0Mi4yem0zMC00MDQuNGMwIDU5LjgtNDkgMTA4LjMtMTA5LjMgMTA4LjMtNDAuOCAwLTc2LjQtMjIuMS05NS4yLTU0LjktMi45LTUtOC4xLTguMS0xMy45LTguMWgtLjZjLTUuNyAwLTExIDMuMS0xMy45IDguMUExMDkuMjQgMTA5LjI0IDAgMCAxIDUxMiA1NDRjLTQwLjcgMC03Ni4yLTIyLTk1LTU0LjctMy01LjEtOC40LTguMy0xNC4zLTguM3MtMTEuNCAzLjItMTQuMyA4LjNhMTA5LjYzIDEwOS42MyAwIDAgMS05NS4xIDU0LjdDMjMzIDU0NCAxODQgNDk1LjUgMTg0IDQzNS43di05MS4yYzAtLjMuMi0uNS41LS41aDY1NWMuMyAwIC41LjIuNS41djkxLjJ6JykpO1xuZXhwb3J0cy5UYWdzT3V0bGluZSA9IGdldEljb24oJ3RhZ3MnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDgzLjIgNzkwLjNMODYxLjQgNDEyYzEuNy0xLjcgMi41LTQgMi4zLTYuM2wtMjUuNS0zMDEuNGMtLjctNy44LTYuOC0xMy45LTE0LjYtMTQuNkw1MjIuMiA2NC4zYy0yLjMtLjItNC43LjYtNi4zIDIuM0wxMzcuNyA0NDQuOGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMzNC4yIDMzNC4yYzMuMSAzLjIgOC4yIDMuMiAxMS4zIDB6bTYyLjYtNjUxLjdsMjI0LjYgMTkgMTkgMjI0LjZMNDc3LjUgNjk0IDIzMy45IDQ1MC41bDMxMS45LTMxMS45em02MC4xNiAxODYuMjNhNDggNDggMCAxIDAgNjcuODgtNjcuODkgNDggNDggMCAxIDAtNjcuODggNjcuODl6TTg4OS43IDUzOS44bC0zOS42LTM5LjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzYyIDM2MS4zLTIzNy42LTIzN2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wyNDMuMiAyNDIuOCAzOS42IDM5LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0MDcuMy00MDYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zeicpKTtcbmV4cG9ydHMuVGFvYmFvQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3Rhb2Jhby1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTMxNS43IDI5MS41YzI3LjMgMCA0OS41IDIyLjEgNDkuNSA0OS40cy0yMi4xIDQ5LjQtNDkuNSA0OS40YTQ5LjQgNDkuNCAwIDEgMSAwLTk4Ljh6TTM2Ni45IDU3OGMtMTMuNiA0Mi4zLTEwLjIgMjYuNy02NC40IDE0NC41bC03OC41LTQ5czg3LjctNzkuOCAxMDUuNi0xMTYuMmMxOS4yLTM4LjQtMjEuMS01OC45LTIxLjEtNTguOWwtNjAuMi0zNy41IDMyLjctNTAuMmM0NS40IDMzLjcgNDguNyAzNi42IDc5LjIgNjcuMiAyMy44IDIzLjkgMjAuNyA1Ni44IDYuNyAxMDAuMXptNDI3LjIgNTVjLTE1LjMgMTQzLjgtMjAyLjQgOTAuMy0yMDIuNCA5MC4zbDEwLjItNDEuMSA0My4zIDkuM2M4MCA1IDcyLjMtNjQuOSA3Mi4zLTY0LjlWNDIzYy42LTc3LjMtNzIuNi04NS40LTIwNC4yLTM4LjNsMzAuNiA4LjNjLTIuNSA5LTEyLjUgMjMuMi0yNS4yIDM4LjZoMTc2djM1LjZoLTk5LjF2NDQuNWg5OC43djM1LjdoLTk4LjdWNjIyYzE0LjktNC44IDI4LjYtMTEuNSA0MC41LTIwLjVsLTguNy0zMi41IDQ2LjUtMTQuNCAzOC44IDk0LjktNTcuMyAyMy45LTEwLjItMzcuOGMtMjUuNiAxOS41LTc4LjggNDgtMTcxLjggNDUuNC05OS4yIDIuNi03My43LTExMi03My43LTExMmwyLjUtMS4zSDQ3MmMtLjUgMTQuNy02LjYgMzguNyAxLjcgNTEuOCA2LjggMTAuOCAyNC4yIDEyLjYgMzUuMyAxMy4xIDEuMy4xIDIuNi4xIDMuOS4xdi04NS4zaC0xMDF2LTM1LjdoMTAxdi00NC41SDQ4N2MtMjIuNyAyNC4xLTQzLjUgNDQuMS00My41IDQ0LjFsLTMwLjYtMjYuN2MyMS43LTIyLjkgNDMuMy01OS4xIDU2LjgtODMuMi0xMC45IDQuNC0yMiA5LjItMzMuNiAxNC4yLTExLjIgMTQuMy0yNC4yIDI5LTM4LjcgNDMuNS41LjgtNTAtMjguNC01MC0yOC40IDUyLjItNDQuNCA4MS40LTEzOS45IDgxLjQtMTM5LjlsNzIuNSAyMC40cy01LjkgMTQtMTguNCAzNS42YzI5MC4zLTgyLjMgMzA3LjQgNTAuNSAzMDcuNCA1MC41czE5LjEgOTEuOCAzLjggMjM1Ljd6JykpO1xuZXhwb3J0cy5Ub29sT3V0bGluZSA9IGdldEljb24oJ3Rvb2wnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc2LjYgMjM5LjVjLS41LS45LTEuMi0xLjgtMi0yLjUtNS01LTEzLjEtNS0xOC4xIDBMNjg0LjIgNDA5LjNsLTY3LjktNjcuOUw3ODguNyAxNjljLjgtLjggMS40LTEuNiAyLTIuNSAzLjYtNi4xIDEuNi0xMy45LTQuNS0xNy41LTk4LjItNTgtMjI2LjgtNDQuNy0zMTEuMyAzOS43LTY3IDY3LTg5LjIgMTYyLTY2LjUgMjQ3LjRsLTI5MyAyOTNjLTMgMy0yLjggNy45LjMgMTFsMTY5LjcgMTY5LjdjMy4xIDMuMSA4LjEgMy4zIDExIC4zbDI5Mi45LTI5Mi45Yzg1LjUgMjIuOCAxODAuNS43IDI0Ny42LTY2LjQgODQuNC04NC41IDk3LjctMjEzLjEgMzkuNy0zMTEuM3pNNzg2IDQ5OS44Yy01OC4xIDU4LjEtMTQ1LjMgNjkuMy0yMTQuNiAzMy42bC04LjggOC44LS4xLS4xLTI3NCAyNzQuMS03OS4yLTc5LjIgMjMwLjEtMjMwLjFzMCAuMS4xLjFsNTIuOC01Mi44Yy0zNS43LTY5LjMtMjQuNS0xNTYuNSAzMy42LTIxNC42YTE4NC4yIDE4NC4yIDAgMCAxIDE0NC01My41TDUzNyAzMTguOWEzMi4wNSAzMi4wNSAwIDAgMCAwIDQ1LjNsMTI0LjUgMTI0LjVhMzIuMDUgMzIuMDUgMCAwIDAgNDUuMyAwbDEzMi44LTEzMi44YzMuNyA1MS44LTE0LjQgMTA0LjgtNTMuNiAxNDMuOXonKSk7XG5leHBvcnRzLlRodW5kZXJib2x0T3V0bGluZSA9IGdldEljb24oJ3RodW5kZXJib2x0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0OCAzNTkuM0g2MjcuN0w4MjUuOCAxMDljNC4xLTUuMy40LTEzLTYuMy0xM0g0MzZjLTIuOCAwLTUuNSAxLjUtNi45IDRMMTcwIDU0Ny41Yy0zLjEgNS4zLjcgMTIgNi45IDEyaDE3NC40bC04OS40IDM1Ny42Yy0xLjkgNy44IDcuNSAxMy4zIDEzLjMgNy43TDg1My41IDM3M2M1LjItNC45IDEuNy0xMy43LTUuNS0xMy43ek0zNzguMiA3MzIuNWw2MC4zLTI0MUgyODEuMWwxODkuNi0zMjcuNGgyMjQuNkw0ODcgNDI3LjRoMjExTDM3OC4yIDczMi41eicpKTtcbmV4cG9ydHMuVHJvcGh5T3V0bGluZSA9IGdldEljb24oJ3Ryb3BoeScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjggMTYwaC05MnYtNDBjMC00LjQtMy42LTgtOC04SDI1NmMtNC40IDAtOCAzLjYtOCA4djQwaC05MmE0NCA0NCAwIDAgMC00NCA0NHYxNDhjMCA4MS43IDYwIDE0OS42IDEzOC4yIDE2MkMyNjUuNyA2MzAuMiAzNTkgNzIxLjcgNDc2IDczNC41djEwNS4ySDI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTA0YzAgNC40IDMuNiA4IDggOGg1MTJjNC40IDAgOC0zLjYgOC04di0zMi4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDU0OFY3MzQuNUM2NjUgNzIxLjcgNzU4LjMgNjMwLjIgNzczLjggNTE0IDg1MiA1MDEuNiA5MTIgNDMzLjcgOTEyIDM1MlYyMDRhNDQgNDQgMCAwIDAtNDQtNDR6TTE4NCAzNTJWMjMyaDY0djIwNy42YTkxLjk5IDkxLjk5IDAgMCAxLTY0LTg3LjZ6bTUyMCAxMjhjMCA0OS4xLTE5LjEgOTUuNC01My45IDEzMC4xLTM0LjggMzQuOC04MSA1My45LTEzMC4xIDUzLjloLTE2Yy00OS4xIDAtOTUuNC0xOS4xLTEzMC4xLTUzLjktMzQuOC0zNC44LTUzLjktODEtNTMuOS0xMzAuMVYxODRoMzg0djI5NnptMTM2LTEyOGMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6JykpO1xuZXhwb3J0cy5VbmxvY2tPdXRsaW5lID0gZ2V0SWNvbigndW5sb2NrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA0NjRIMzMyVjI0MGMwLTMwLjkgMjUuMS01NiA1Ni01NmgyNDhjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2NjhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNjhjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzg4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHYyMjRoLTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDM3NkgyMzJWNTM2aDU2MHYzMDR6TTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDAtNTYgMHonKSk7XG5leHBvcnRzLlVwQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3VwLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTguNSAzNjAuM2E3Ljk1IDcuOTUgMCAwIDAtMTIuOSAwbC0xNzggMjQ2Yy0zLjggNS4zIDAgMTIuNyA2LjUgMTIuN0gzODFjMTAuMiAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDYwLjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNiAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi41LTEyLjdsLTE3OC0yNDZ6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5VcFNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCd1cC1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzM0IDYyNGg0Ni45YzEwLjIgMCAxOS45LTQuOSAyNS45LTEzLjJMNTEyIDQ2NS40bDEwNS4yIDE0NS40YzYgOC4zIDE1LjYgMTMuMiAyNS45IDEzLjJINjkwYzYuNSAwIDEwLjMtNy40IDYuNS0xMi43bC0xNzgtMjQ2YTcuOTUgNy45NSAwIDAgMC0xMi45IDBsLTE3OCAyNDZBNy45NiA3Ljk2IDAgMCAwIDMzNCA2MjR6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuVXNiT3V0bGluZSA9IGdldEljb24oJ3VzYicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NjAgNDMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4OGMtNjYuMiAwLTEyMCA1Mi4xLTEyMCAxMTZ2MzU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtMjQuMyAyMS42LTQ0IDQ4LjEtNDRoNDk1LjhjMjYuNSAwIDQ4LjEgMTkuNyA0OC4xIDQ0djM1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjU0OGMwLTYzLjktNTMuOC0xMTYtMTIwLTExNnptLTQyNCAwVjE4NGgzNTJ2MjQ4SDMzNnptMTIwLTE4NGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTE2MCAwaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlZpZGVvQ2FtZXJhT3V0bGluZSA9IGdldEljb24oJ3ZpZGVvLWNhbWVyYScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTIgMzAyLjNMNzg0IDM3NlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY1NzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTkyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTcxMiA3OTJIMTM2VjIzMmg1NzZ2NTYwem0xNzYtMTY3bC0xMDQtNTkuOFY0NTguOUw4ODggMzk5djIyNnpNMjA4IDM2MGgxMTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuV2FsbGV0T3V0bGluZSA9IGdldEljb24oJ3dhbGxldCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA0NjRINTI4VjQ0OGgzMTJ2MTI4em0wIDI2NEgxODRWMTg0aDY1NnYyMDBINDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzQ0djIwMHpNNTgwIDUxMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5XYXJuaW5nT3V0bGluZSA9IGdldEljb24oJ3dhcm5pbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDY0IDcyMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTE2LTMwNHYxODRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4em00NzUuNyA0NDBsLTQxNi03MjBjLTYuMi0xMC43LTE2LjktMTYtMjcuNy0xNnMtMjEuNiA1LjMtMjcuNyAxNmwtNDE2IDcyMEM1NiA4NzcuNCA3MS40IDkwNCA5NiA5MDRoODMyYzI0LjYgMCA0MC0yNi42IDI3LjctNDh6bS03ODMuNS0yNy45TDUxMiAyMzkuOWwzMzkuOCA1ODguMkgxNzIuMnonKSk7XG5leHBvcnRzLldlY2hhdE91dGxpbmUgPSBnZXRJY29uKCd3ZWNoYXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjkwLjEgMzc3LjRjNS45IDAgMTEuOC4yIDE3LjYuNS0yNC40LTEyOC43LTE1OC4zLTIyNy4xLTMxOS45LTIyNy4xQzIwOSAxNTAuOCA2NCAyNzEuNCA2NCA0MjAuMmMwIDgxLjEgNDMuNiAxNTQuMiAxMTEuOSAyMDMuNmEyMS41IDIxLjUgMCAwIDEgOS4xIDE3LjZjMCAyLjQtLjUgNC42LTEuMSA2LjktNS41IDIwLjMtMTQuMiA1Mi44LTE0LjYgNTQuMy0uNyAyLjYtMS43IDUuMi0xLjcgNy45IDAgNS45IDQuOCAxMC44IDEwLjggMTAuOCAyLjMgMCA0LjItLjkgNi4yLTJsNzAuOS00MC45YzUuMy0zLjEgMTEtNSAxNy4yLTUgMy4yIDAgNi40LjUgOS41IDEuNCAzMy4xIDkuNSA2OC44IDE0LjggMTA1LjcgMTQuOCA2IDAgMTEuOS0uMSAxNy44LS40LTcuMS0yMS0xMC45LTQzLjEtMTAuOS02NiAwLTEzNS44IDEzMi4yLTI0NS44IDI5NS4zLTI0NS44em0tMTk0LjMtODYuNWMyMy44IDAgNDMuMiAxOS4zIDQzLjIgNDMuMXMtMTkuMyA0My4xLTQzLjIgNDMuMWMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuNC00My4xIDQzLjItNDMuMXptLTIxNS45IDg2LjJjLTIzLjggMC00My4yLTE5LjMtNDMuMi00My4xczE5LjMtNDMuMSA0My4yLTQzLjEgNDMuMiAxOS4zIDQzLjIgNDMuMS0xOS40IDQzLjEtNDMuMiA0My4xem01ODYuOCA0MTUuNmM1Ni45LTQxLjIgOTMuMi0xMDIgOTMuMi0xNjkuNyAwLTEyNC0xMjAuOC0yMjQuNS0yNjkuOS0yMjQuNS0xNDkgMC0yNjkuOSAxMDAuNS0yNjkuOSAyMjQuNVM1NDAuOSA4NDcuNSA2OTAgODQ3LjVjMzAuOCAwIDYwLjYtNC40IDg4LjEtMTIuMyAyLjYtLjggNS4yLTEuMiA3LjktMS4yIDUuMiAwIDkuOSAxLjYgMTQuMyA0LjFsNTkuMSAzNGMxLjcgMSAzLjMgMS43IDUuMiAxLjdhOSA5IDAgMCAwIDYuNC0yLjYgOSA5IDAgMCAwIDIuNi02LjRjMC0yLjItLjktNC40LTEuNC02LjYtLjMtMS4yLTcuNi0yOC4zLTEyLjItNDUuMy0uNS0xLjktLjktMy44LS45LTUuNy4xLTUuOSAzLjEtMTEuMiA3LjYtMTQuNXpNNjAwLjIgNTg3LjJjLTE5LjkgMC0zNi0xNi4xLTM2LTM1LjkgMC0xOS44IDE2LjEtMzUuOSAzNi0zNS45czM2IDE2LjEgMzYgMzUuOWMwIDE5LjgtMTYuMiAzNS45LTM2IDM1Ljl6bTE3OS45IDBjLTE5LjkgMC0zNi0xNi4xLTM2LTM1LjkgMC0xOS44IDE2LjEtMzUuOSAzNi0zNS45czM2IDE2LjEgMzYgMzUuOWEzNi4wOCAzNi4wOCAwIDAgMS0zNiAzNS45eicpKTtcbmV4cG9ydHMuV2VpYm9DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignd2VpYm8tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNDQuNCA2NzJDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwIDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwIDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMCAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAgMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwIDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwIDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMCAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwIDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMCAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAgMSAxNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tOTMtMzIuMmMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6bTM0LjktMTQuNWMtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuV2luZG93c091dGxpbmUgPSBnZXRJY29uKCd3aW5kb3dzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTEyMC4xIDc3MC42TDQ0MyA4MjMuMlY1NDMuOEgxMjAuMXYyMjYuOHptNjMuNC0xNjMuNWgxOTYuMnYxNDEuNmwtMTk2LjItMzEuOVY2MDcuMXptMzQwLjMgMjI2LjVsMzgyIDYyLjJ2LTM1MmgtMzgydjI4OS44em02My40LTIyNi41aDI1NS4zdjIxNC40bC0yNTUuMy00MS42VjYwNy4xem0tNjMuNC00MTUuN3YyODguOGgzODJWMTI4LjFsLTM4MiA2My4zem0zMTguNyAyMjUuNUg1ODcuM1YyNDVsMjU1LjMtNDIuM3YyMTQuMnptLTcyMi40IDYzLjNINDQzVjIwMS45bC0zMjIuOSA1My41djIyNC44ek0xODMuNSAzMDlsMTk2LjItMzIuNXYxNDAuNEgxODMuNVYzMDl6JykpO1xuZXhwb3J0cy5ZYWhvb091dGxpbmUgPSBnZXRJY29uKCd5YWhvbycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTkuOSA2ODEuNGgtMTQuMWMtMjcuMSAwLTQ5LjIgMjIuMi00OS4yIDQ5LjN2MTQuMWMwIDI3LjEgMjIuMiA0OS4zIDQ5LjIgNDkuM2gxNC4xYzI3LjEgMCA0OS4yLTIyLjIgNDkuMi00OS4zdi0xNC4xYzAtMjcuMS0yMi4yLTQ5LjMtNDkuMi00OS4zek00MDIuNiAyMzFDMjE2LjIgMjMxIDY1IDM1NyA2NSA1MTIuNVMyMTYuMiA3OTQgNDAyLjYgNzk0czMzNy42LTEyNiAzMzcuNi0yODEuNVM1ODkuMSAyMzEgNDAyLjYgMjMxem0wIDUwN0MyNDUuMSA3MzggMTIxIDYzNC42IDEyMSA1MTIuNWMwLTYyLjMgMzIuMy0xMTkuNyA4NC45LTE2MXY0OC40aDM3bDE1OS44IDE1OS45djY1LjNoLTg0LjR2NTYuM2gyMjUuMXYtNTYuM0g0NTl2LTY1LjNsMTAzLjUtMTAzLjZoNjUuM3YtNTYuM0g0NTl2NjUuM2wtMjguMSAyOC4xLTkzLjQtOTMuNWgzN3YtNTYuM0gyMTYuNGM0OS40LTM1IDExNC4zLTU2LjYgMTg2LjItNTYuNiAxNTcuNiAwIDI4MS42IDEwMy40IDI4MS42IDIyNS41UzU2MC4yIDczOCA0MDIuNiA3Mzh6bTUzNC43LTUwN0g4MjQuN2MtMTUuNSAwLTI3LjcgMTIuNi0yNy4xIDI4LjFsMTMuMSAzNjZoODQuNGw2NS40LTM2Ni40YzIuNy0xNS4yLTcuOC0yNy43LTIzLjItMjcuN3onKSk7XG5leHBvcnRzLldlaWJvU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3dlaWJvLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MzMuNiA1OTUuMWMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDY3LjYgNzM2QzM1My4xIDczNiAyMzYgNjgwLjQgMjM2IDU4OC45YzAtNDcuOCAzMC4yLTEwMy4xIDgyLjMtMTU1LjMgNjkuNS02OS42IDE1MC42LTEwMS40IDE4MS4xLTcwLjggMTMuNSAxMy41IDE0LjggMzYuOCA2LjEgNjQuNi00LjUgMTQgMTMuMSA2LjMgMTMuMSA2LjMgNTYuMi0yMy42IDEwNS4yLTI1IDEyMy4xLjcgOS42IDEzLjcgOC42IDMyLjgtLjIgNTUuMS00LjEgMTAuMiAxLjMgMTEuOCA5IDE0LjEgMzEuNyA5LjggNjYuOSAzMy42IDY2LjkgNzUuNS4yIDY5LjUtOTkuNyAxNTYuOS0yNDkuOCAxNTYuOXptMjA3LjMtMjkwLjhhMzQuOSAzNC45IDAgMCAwLTcuMi0zNC4xIDM0LjY4IDM0LjY4IDAgMCAwLTMzLjEtMTAuNyAxOC4yNCAxOC4yNCAwIDAgMS03LjYtMzUuN2MyNC4xLTUuMSA1MC4xIDIuMyA2Ny43IDIxLjkgMTcuNyAxOS42IDIyLjQgNDYuMyAxNC45IDY5LjhhMTguMTMgMTguMTMgMCAwIDEtMjIuOSAxMS43IDE4LjE4IDE4LjE4IDAgMCAxLTExLjgtMjIuOXptMTA2IDM0LjNzMCAuMSAwIDBhMjEuMSAyMS4xIDAgMCAxLTI2LjYgMTMuNyAyMS4xOSAyMS4xOSAwIDAgMS0xMy42LTI2LjdjMTEtMzQuMiA0LTczLjItMjEuNy0xMDEuOGExMDQuMDQgMTA0LjA0IDAgMCAwLTk4LjktMzIuMSAyMS4xNCAyMS4xNCAwIDAgMS0yNS4xLTE2LjMgMjEuMDcgMjEuMDcgMCAwIDEgMTYuMi0yNS4xYzQ5LjQtMTAuNSAxMDIuOCA0LjggMTM5LjEgNDUuMSAzNi4zIDQwLjIgNDYuMSA5NS4xIDMwLjYgMTQzLjJ6bS0zMzQuNSA2LjFjLTkxLjQgOS0xNjAuNyA2NS4xLTE1NC43IDEyNS4yIDUuOSA2MC4xIDg0LjggMTAxLjUgMTc2LjIgOTIuNSA5MS40LTkuMSAxNjAuNy02NS4xIDE1NC43LTEyNS4zLTUuOS02MC4xLTg0LjgtMTAxLjUtMTc2LjItOTIuNHptODAuMiAxNDEuN2MtMTguNyA0Mi4zLTcyLjMgNjQuOC0xMTcuOCA1MC4xLTQzLjktMTQuMi02Mi41LTU3LjctNDMuMy05Ni44IDE4LjktMzguNCA2OC02MC4xIDExMS41LTQ4LjggNDUgMTEuNyA2OCA1NC4yIDQ5LjYgOTUuNXptLTU4LjEtNDYuN2MtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuWXVxdWVPdXRsaW5lID0gZ2V0SWNvbigneXVxdWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMzcwLjZjLTkuOS0zOS40IDkuOS0xMDIuMiA3My40LTEyNC40bC02Ny45LTMuNnMtMjUuNy05MC0xNDMuNi05OGMtMTE3LjgtOC4xLTE5NC45LTMtMTk1LTMgLjEgMCA4Ny40IDU1LjYgNTIuNCAxNTQuNy0yNS42IDUyLjUtNjUuOCA5NS42LTEwOC44IDE0NC43LTEuMyAxLjMtMi41IDIuNi0zLjUgMy43QzMxOS40IDYwNSA5NiA4NjAgOTYgODYwYzI0NS45IDY0LjQgNDEwLjctNi4zIDUwOC4yLTkxLjEgMjAuNS0uMiAzNS45LS4zIDQ2LjMtLjMgMTM1LjggMCAyNTAuNi0xMTcuNiAyNDUuOS0yNDguNC0zLjItODkuOS0zMS45LTExMC4yLTQxLjgtMTQ5LjZ6bS0yMDQuMSAzMzRjLTEwLjYgMC0yNi4yLjEtNDYuOC4zbC0yMy42LjItMTcuOCAxNS41Yy00Ny4xIDQxLTEwNC40IDcxLjUtMTcxLjQgODcuNi01Mi41IDEyLjYtMTEwIDE2LjItMTcyLjcgOS42IDE4LTIwLjUgMzYuNS00MS42IDU1LjQtNjMuMSA5Mi0xMDQuNiAxNzMuOC0xOTcuNSAyMzYuOS0yNjguNWwxLjQtMS40IDEuMy0xLjVjNC4xLTQuNiAyMC42LTIzLjMgMjQuNy0yOC4xIDkuNy0xMS4xIDE3LjMtMTkuOSAyNC41LTI4LjYgMzAuNy0zNi43IDUyLjItNjcuOCA2OS0xMDIuMmwxLjYtMy4zIDEuMi0zLjRjMTMuNy0zOC44IDE1LjQtNzYuOSA2LjItMTEyLjggMjIuNS43IDQ2LjUgMS45IDcxLjcgMy42IDMzLjMgMi4zIDU1LjUgMTIuOSA3MS4xIDI5LjIgNS44IDYgMTAuMiAxMi41IDEzLjQgMTguNyAxIDIgMS43IDMuNiAyLjMgNWw1IDE3LjdjLTE1LjcgMzQuNS0xOS45IDczLjMtMTEuNCAxMDcuMiAzIDExLjggNi45IDIyLjQgMTIuMyAzNC40IDIuMSA0LjcgOS41IDIwLjEgMTEgMjMuMyAxMC4zIDIyLjcgMTUuNCA0MyAxNi43IDc4LjcgMy4zIDk0LjYtODIuNyAxODEuOS0xODIgMTgxLjl6JykpO1xuZXhwb3J0cy5Zb3V0dWJlT3V0bGluZSA9IGdldEljb24oJ3lvdXR1YmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTYwIDUwOS4yYzAtMi4yIDAtNC43LS4xLTcuNi0uMS04LjEtLjMtMTcuMi0uNS0yNi45LS44LTI3LjktMi4yLTU1LjctNC40LTgxLjktMy0zNi4xLTcuNC02Ni4yLTEzLjQtODguOGExMzkuNTIgMTM5LjUyIDAgMCAwLTk4LjMtOTguNWMtMjguMy03LjYtODMuNy0xMi4zLTE2MS43LTE1LjItMzcuMS0xLjQtNzYuOC0yLjMtMTE2LjUtMi44LTEzLjktLjItMjYuOC0uMy0zOC40LS40aC0yOS40Yy0xMS42LjEtMjQuNS4yLTM4LjQuNC0zOS43LjUtNzkuNCAxLjQtMTE2LjUgMi44LTc4IDMtMTMzLjUgNy43LTE2MS43IDE1LjJBMTM5LjM1IDEzOS4zNSAwIDAgMCA4Mi40IDMwNEM3Ni4zIDMyNi42IDcyIDM1Ni43IDY5IDM5Mi44Yy0yLjIgMjYuMi0zLjYgNTQtNC40IDgxLjktLjMgOS43LS40IDE4LjgtLjUgMjYuOSAwIDIuOS0uMSA1LjQtLjEgNy42djUuNmMwIDIuMiAwIDQuNy4xIDcuNi4xIDguMS4zIDE3LjIuNSAyNi45LjggMjcuOSAyLjIgNTUuNyA0LjQgODEuOSAzIDM2LjEgNy40IDY2LjIgMTMuNCA4OC44IDEyLjggNDcuOSA1MC40IDg1LjcgOTguMyA5OC41IDI4LjIgNy42IDgzLjcgMTIuMyAxNjEuNyAxNS4yIDM3LjEgMS40IDc2LjggMi4zIDExNi41IDIuOCAxMy45LjIgMjYuOC4zIDM4LjQuNGgyOS40YzExLjYtLjEgMjQuNS0uMiAzOC40LS40IDM5LjctLjUgNzkuNC0xLjQgMTE2LjUtMi44IDc4LTMgMTMzLjUtNy43IDE2MS43LTE1LjIgNDcuOS0xMi44IDg1LjUtNTAuNSA5OC4zLTk4LjUgNi4xLTIyLjYgMTAuNC01Mi43IDEzLjQtODguOCAyLjItMjYuMiAzLjYtNTQgNC40LTgxLjkuMy05LjcuNC0xOC44LjUtMjYuOSAwLTIuOS4xLTUuNC4xLTcuNnYtNS42em0tNzIgNS4yYzAgMi4xIDAgNC40LS4xIDcuMS0uMSA3LjgtLjMgMTYuNC0uNSAyNS43LS43IDI2LjYtMi4xIDUzLjItNC4yIDc3LjktMi43IDMyLjItNi41IDU4LjYtMTEuMiA3Ni4zLTYuMiAyMy4xLTI0LjQgNDEuNC00Ny40IDQ3LjUtMjEgNS42LTczLjkgMTAuMS0xNDUuOCAxMi44LTM2LjQgMS40LTc1LjYgMi4zLTExNC43IDIuOC0xMy43LjItMjYuNC4zLTM3LjguM2gtMjguNmwtMzcuOC0uM2MtMzkuMS0uNS03OC4yLTEuNC0xMTQuNy0yLjgtNzEuOS0yLjgtMTI0LjktNy4yLTE0NS44LTEyLjgtMjMtNi4yLTQxLjItMjQuNC00Ny40LTQ3LjUtNC43LTE3LjctOC41LTQ0LjEtMTEuMi03Ni4zLTIuMS0yNC43LTMuNC01MS4zLTQuMi03Ny45LS4zLTkuMy0uNC0xOC0uNS0yNS43IDAtMi43LS4xLTUuMS0uMS03LjF2LTQuOGMwLTIuMSAwLTQuNC4xLTcuMS4xLTcuOC4zLTE2LjQuNS0yNS43LjctMjYuNiAyLjEtNTMuMiA0LjItNzcuOSAyLjctMzIuMiA2LjUtNTguNiAxMS4yLTc2LjMgNi4yLTIzLjEgMjQuNC00MS40IDQ3LjQtNDcuNSAyMS01LjYgNzMuOS0xMC4xIDE0NS44LTEyLjggMzYuNC0xLjQgNzUuNi0yLjMgMTE0LjctMi44IDEzLjctLjIgMjYuNC0uMyAzNy44LS4zaDI4LjZsMzcuOC4zYzM5LjEuNSA3OC4yIDEuNCAxMTQuNyAyLjggNzEuOSAyLjggMTI0LjkgNy4yIDE0NS44IDEyLjggMjMgNi4yIDQxLjIgMjQuNCA0Ny40IDQ3LjUgNC43IDE3LjcgOC41IDQ0LjEgMTEuMiA3Ni4zIDIuMSAyNC43IDMuNCA1MS4zIDQuMiA3Ny45LjMgOS4zLjQgMTggLjUgMjUuNyAwIDIuNy4xIDUuMS4xIDcuMXY0Ljh6TTQyMyA2NDZsMjMyLTEzNS0yMzItMTMzeicpKTtcbmV4cG9ydHMuQWxpYmFiYU91dGxpbmUgPSBnZXRJY29uKCdhbGliYWJhJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYwMi45IDY2OS44Yy0zNy4yIDIuNi0zMy42LTE3LjMtMTEuNS00Ni4yIDUwLjQtNjcuMiAxNDMuNy0xNTguNSAxNDcuOS0yMjUuMiA1LjgtODYuNi04MS4zLTExMy40LTE3MS0xMTMuNC02Mi40IDEuNi0xMjcgMTguOS0xNzEgMzQuNi0xNTEuNiA1My41LTI0Ni42IDEzNy41LTMwNi45IDIzMi02Mi40IDkzLjQtNDMgMTgzLjIgOTEuOCAxODUuOCAxMDEuOC00LjIgMTcwLjUtMzIuNSAyMzkuNy02OC4yLjUgMC0xOTIuNSA1NS4xLTI2My45IDE0LjctNy45LTQuMi0xNS43LTEwLTE3LjgtMjYuMiAwLTMzLjEgNTQuNi02Ny43IDg2LjYtNzguN3YtNTYuN2M2NC41IDIyLjYgMTQwLjYgMTYuMyAyMDUuNy0zMiAyLjEgNS44IDQuMiAxMy4xIDMuNyAyMWgxMWMyLjYtMjIuNi0xMi42LTQ0LjYtMzcuOC00Ni4yIDcuMyA1LjggMTIuNiAxMC41IDE1LjIgMTQuN2wtMSAxLS41LjVjLTgzLjkgNTguOC0xNjUuMyAzMS41LTE3My4xIDI5LjlsNDYuNy00NS43LTEzLjEtMzMuMWM5Mi45LTMyLjUgMTY5LjUtNTYuMiAyOTYuOS03OC43bC0yOC41LTIzIDE0LjctOC45Yzc1LjUgMjEgMTI2LjQgMzYuNyAxMjMuOCA3Ni42LTEgNi44LTMuNyAxNC43LTcuOSAyMy4xQzY2MC4xIDQ2Ni4xIDU5NCA1MzggNTY3LjIgNTY5Yy0xNy4zIDIwLjUtMzQuNiAzOS40LTQ2LjcgNTguMy0xMy42IDE5LjQtMjAuNSAzNy4zLTIxIDUzLjUgMi42IDEzMS44IDM5MS40LTYxLjkgNDY4LTExMi45LTExMS43IDQ3LjgtMjMyLjkgOTMuNS0zNjQuNiAxMDEuOXptODUtMzAyLjljMi44IDUuMiA0LjEgMTEuNiA0LjEgMTkuMS0uMS02LjgtMS40LTEzLjMtNC4xLTE5LjF6JykpO1xuZXhwb3J0cy5BbGlnbkNlbnRlck91dGxpbmUgPSBnZXRJY29uKCdhbGlnbi1jZW50ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjY0IDIzMGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em00OTYgNDI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ6bTE0NCAxNDBIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC00MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkFsaWduTGVmdE91dGxpbmUgPSBnZXRJY29uKCdhbGlnbi1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTEyMCAyMzBoNDk2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCA0MjRoNDk2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNzg0IDE0MEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTQyNEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQWxpZ25SaWdodE91dGxpbmUgPSBnZXRJY29uKCdhbGlnbi1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDQgMTU4SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDI0SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjEySDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNDI0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5BbGlwYXlPdXRsaW5lID0gZ2V0SWNvbignYWxpcGF5Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc4OSA2MTAuM2MtMzguNy0xMi45LTkwLjctMzIuNy0xNDguNS01My42IDM0LjgtNjAuMyA2Mi41LTEyOSA4MC43LTIwMy42SDUzMC41di02OC42aDIzMy42di0zOC4zSDUzMC41VjEzMmgtOTUuNGMtMTYuNyAwLTE2LjcgMTYuNS0xNi43IDE2LjV2OTcuOEgxODIuMnYzOC4zaDIzNi4zdjY4LjZIMjIzLjR2MzguM2gzNzguNGE2NjcuMTggNjY3LjE4IDAgMCAxLTU0LjUgMTMyLjljLTEyMi44LTQwLjQtMjUzLjgtNzMuMi0zMzYuMS01My01Mi42IDEzLTg2LjUgMzYuMS0xMDYuNSA2MC4zLTkxLjQgMTExLTI1LjkgMjc5LjYgMTY3LjIgMjc5LjZDMzg2IDgxMS4yIDQ5NiA3NDcuNiA1ODEuMiA2NDMgNzA4LjMgNzA0IDk2MCA4MDguNyA5NjAgODA4LjdWNjU5LjRzLTMxLjYtMi41LTE3MS00OS4xek0yNTMuOSA3NDYuNmMtMTUwLjUgMC0xOTUtMTE4LjMtMTIwLjYtMTgzLjEgMjQuOC0yMS45IDcwLjItMzIuNiA5NC40LTM1IDg5LjQtOC44IDE3Mi4yIDI1LjIgMjY5LjkgNzIuOC02OC44IDg5LjUtMTU2LjMgMTQ1LjMtMjQzLjcgMTQ1LjN6JykpO1xuZXhwb3J0cy5BbGl5dW5PdXRsaW5lID0gZ2V0SWNvbignYWxpeXVuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1OS4yIDM4My45Yy0uMy04Mi4xLTY2LjktMTQ4LjYtMTQ5LjEtMTQ4LjZINTc1LjlsMjEuNiA4NS4yIDIwMSA0My43YTQyLjU4IDQyLjU4IDAgMCAxIDMyLjkgMzkuN2MuMS41LjEgMjE2LjEgMCAyMTYuNmE0Mi41OCA0Mi41OCAwIDAgMS0zMi45IDM5LjdsLTIwMSA0My43LTIxLjYgODUuM2gyMzQuMmM4Mi4xIDAgMTQ4LjgtNjYuNSAxNDkuMS0xNDguNlYzODMuOXpNMjI1LjUgNjYwLjRhNDIuNTggNDIuNTggMCAwIDEtMzIuOS0zOS43Yy0uMS0uNi0uMS0yMTYuMSAwLTIxNi42LjgtMTkuNCAxNC42LTM1LjUgMzIuOS0zOS43bDIwMS00My43IDIxLjYtODUuMkgyMTMuOGMtODIuMSAwLTE0OC44IDY2LjQtMTQ5LjEgMTQ4LjZWNjQxYy4zIDgyLjEgNjcgMTQ4LjYgMTQ5LjEgMTQ4LjZINDQ4bC0yMS42LTg1LjMtMjAwLjktNDMuOXptMjAwLjktMTU4LjhoMTcxdjIxLjNoLTE3MXonKSk7XG5leHBvcnRzLkFtYXpvbk91dGxpbmUgPSBnZXRJY29uKCdhbWF6b24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODI1IDc2OC45Yy0zLjMtLjktNy4zLS40LTExLjkgMS4zLTYxLjYgMjguMi0xMjEuNSA0OC4zLTE3OS43IDYwLjJDNTA3LjcgODU2IDM4NS4yIDg0Mi42IDI2NiA3OTAuM2MtMzMuMS0xNC42LTc5LjEtMzkuMi0xMzgtNzRhOS4zNiA5LjM2IDAgMCAwLTUuMy0yYy0yLS4xLTMuNy4xLTUuMy45LTEuNi44LTIuOCAxLjgtMy43IDMuMS0uOSAxLjMtMS4xIDMuMS0uNCA1LjQuNiAyLjIgMi4xIDQuNyA0LjYgNy40IDEwLjQgMTIuMiAyMy4zIDI1LjIgMzguNiAzOXMzNS42IDI5LjQgNjAuOSA0Ni44YzI1LjMgMTcuNCA1MS44IDMyLjkgNzkuMyA0Ni40IDI3LjYgMTMuNSA1OS42IDI0LjkgOTYuMSAzNC4xczczIDEzLjggMTA5LjQgMTMuOGMzNi4yIDAgNzEuNC0zLjcgMTA1LjUtMTAuOSAzNC4yLTcuMyA2My0xNS45IDg2LjUtMjUuOSAyMy40LTkuOSA0NS0yMSA2NC44LTMzIDE5LjgtMTIgMzQuNC0yMi4yIDQzLjktMzAuMyA5LjUtOC4yIDE2LjMtMTQuNiAyMC4yLTE5LjQgNC42LTUuNyA2LjktMTAuNiA2LjktMTQuOS4xLTQuNS0xLjctNy4xLTUtNy45ek01MjcuNCAzNDguMWMtMTUuMiAxLjMtMzMuNSA0LjEtNTUgOC4zLTIxLjUgNC4xLTQxLjQgOS4zLTU5LjggMTUuNHMtMzcuMiAxNC42LTU2LjMgMjUuNGMtMTkuMiAxMC44LTM1LjUgMjMuMi00OSAzN3MtMjQuNSAzMS4xLTMzLjEgNTJjLTguNiAyMC44LTEyLjkgNDMuNy0xMi45IDY4LjcgMCAyNy4xIDQuNyA1MS4yIDE0LjMgNzIuNSA5LjUgMjEuMyAyMi4yIDM4IDM4LjIgNTAuNCAxNS45IDEyLjQgMzQgMjIuMSA1NCAyOS4yIDIwIDcuMSA0MS4yIDEwLjMgNjMuMiA5LjQgMjItLjkgNDMuNS00LjMgNjQuNC0xMC4zIDIwLjgtNS45IDQwLjQtMTUuNCA1OC42LTI4LjMgMTguMi0xMi45IDMzLjEtMjguMiA0NC44LTQ1LjcgNC4zIDYuNiA4LjEgMTEuNSAxMS41IDE0LjdsOC43IDguOWM1LjggNS45IDE0LjcgMTQuNiAyNi43IDI2LjEgMTEuOSAxMS41IDI0LjEgMjIuNyAzNi4zIDMzLjdsMTA0LjQtOTkuOS02LTQuOWMtNC4zLTMuMy05LjQtOC0xNS4yLTE0LjMtNS44LTYuMi0xMS42LTEzLjEtMTcuMi0yMC41LTUuNy03LjQtMTAuNi0xNi4xLTE0LjctMjUuOS00LjEtOS44LTYuMi0xOS4zLTYuMi0yOC41VjI1OC43YzAtMTAuMS0xLjktMjEtNS43LTMyLjgtMy45LTExLjctMTAuNy0yNC41LTIwLjctMzguMy0xMC0xMy44LTIyLjQtMjYuMi0zNy4yLTM3LTE0LjktMTAuOC0zNC43LTIwLTU5LjYtMjcuNC0yNC44LTcuNC01Mi42LTExLjEtODMuMi0xMS4xLTMxLjMgMC02MC40IDMuNy04Ny42IDEwLjktMjcuMSA3LjMtNTAuMyAxNy02OS43IDI5LjItMTkuMyAxMi4yLTM1LjkgMjYuMy00OS43IDQyLjQtMTMuOCAxNi4xLTI0LjEgMzIuOS0zMC44IDUwLjQtNi43IDE3LjUtMTAuMSAzNS4yLTEwLjEgNTMuMUw0MDggMzEwYzUuNS0xNi40IDEyLjktMzAuNiAyMi00Mi44IDkuMi0xMi4yIDE3LjktMjEgMjUuOC0yNi41IDgtNS41IDE2LjYtOS45IDI1LjctMTMuMiA5LjItMy4zIDE1LjQtNSAxOC42LTUuNCAzLjItLjMgNS43LS40IDcuNi0uNCAyNi43IDAgNDUuMiA3LjkgNTUuNiAyMy42IDYuNSA5LjUgOS43IDIzLjkgOS43IDQzLjN2NTYuNmMtMTUuMi42LTMwLjQgMS42LTQ1LjYgMi45ek01NzMuMSA1MDBjMCAxNi42LTIuMiAzMS43LTYuNSA0NS05LjIgMjkuMS0yNi43IDQ3LjQtNTIuNCA1NC44LTIyLjQgNi42LTQzLjcgMy4zLTYzLjktOS44LTIxLjUtMTQtMzIuMi0zMy44LTMyLjItNTkuMyAwLTE5LjkgNS0zNi45IDE1LTUxLjEgMTAtMTQuMSAyMy4zLTI0LjcgNDAtMzEuN3MzMy0xMiA0OS0xNC45YzE1LjktMyAzMy00LjggNTEtNS40VjUwMHptMzM1LjIgMjE4LjljLTQuMy01LjQtMTUuOS04LjktMzQuOS0xMC43LTE5LTEuOC0zNS41LTEuNy00OS43LjQtMTUuMyAxLjgtMzEuMSA2LjItNDcuMyAxMy40LTE2LjMgNy4xLTIzLjQgMTMuMS0yMS42IDE3LjhsLjcgMS4zLjkuNyAxLjQuMmg0LjZjLjggMCAxLjgtLjEgMy4yLS4yIDEuNC0uMSAyLjctLjMgMy45LS40IDEuMi0uMSAyLjktLjMgNS4xLS40IDIuMS0uMSA0LjEtLjQgNi0uNy4zIDAgMy43LS4zIDEwLjMtLjkgNi42LS42IDExLjQtMSAxNC4zLTEuMyAyLjktLjMgNy44LS42IDE0LjUtLjkgNi43LS4zIDEyLjEtLjMgMTYuMSAwIDQgLjMgOC41LjcgMTMuNiAxLjEgNS4xLjQgOS4yIDEuMyAxMi40IDIuNyAzLjIgMS4zIDUuNiAzIDcuMSA1LjEgNS4yIDYuNiA0LjIgMjEuMi0zIDQzLjlzLTE0IDQwLjgtMjAuNCA1NC4yYy0yLjggNS43LTIuOCA5LjIgMCAxMC43czYuNy4xIDExLjktNGMxNS42LTEyLjIgMjguNi0zMC42IDM5LjEtNTUuMyA2LjEtMTQuNiAxMC41LTI5LjggMTMuMS00NS43IDIuNC0xNS45IDItMjYuMi0xLjMtMzF6JykpO1xuZXhwb3J0cy5BbnRDbG91ZE91dGxpbmUgPSBnZXRJY29uKCdhbnQtY2xvdWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzc4LjkgNzM4Yy0zLjEgMC02LjEtLjUtOC44LTEuNWw0LjQgMzAuN2gyNi4zbC0xNS41LTI5LjljLTIuMS41LTQuMi43LTYuNC43em00MjEtMjkxLjJjLTEyLjYgMC0yNC44IDEuNS0zNi41IDQuMi0yMS40LTM4LjQtNjIuMy02NC4zLTEwOS4zLTY0LjMtNi45IDAtMTMuNi42LTIwLjIgMS42LTM1LjQtNzcuNC0xMTMuNC0xMzEuMS0yMDMuOS0xMzEuMS0xMTIuMyAwLTIwNS4zIDgyLjYtMjIxLjYgMTkwLjRDMTI3LjMgNDU1LjUgNjQgNTIzLjggNjQgNjA3YzAgODguNCA3MS42IDE2MC4xIDE2MCAxNjAuMmg1MGwxMy4yLTI3LjZjLTI2LjItOC4zLTQzLjMtMjktMzkuMS00OC44IDQuNi0yMS42IDMyLjgtMzMuOSA2My4xLTI3LjUgMjIuOSA0LjkgNDAuNCAxOS4xIDQ1LjUgMzUuMWEyNi4xIDI2LjEgMCAwIDEgMjIuMS0xMi40aC4yYy0uOC0zLjItMS4yLTYuNS0xLjItOS45IDAtMjAuMSAxNC44LTM2LjcgMzQuMS0zOS42di0yNS40YzAtNC40IDMuNi04IDgtOHM4IDMuNiA4IDh2MjYuM2M0LjYgMS4yIDguOCAzLjIgMTIuNiA1LjhsMTkuNS0yMS40YzMtMy4zIDgtMy41IDExLjMtLjUgMy4zIDMgMy41IDggLjUgMTEuM2wtMjAgMjItLjIuMmE0MCA0MCAwIDAgMS00Ni45IDU5LjJjLS40IDUuNi0yLjYgMTAuNy02IDE0LjhsMjAgMzguNEg4MDR2LS4xYzg2LjUtMi4yIDE1Ni03MyAxNTYtMTYwLjEgMC04OC41LTcxLjctMTYwLjItMTYwLjEtMTYwLjJ6TTMzOC4yIDczNy4ybC00LjMgMzBoMjQuNGwtNS45LTQxLjVjLTMuNSA0LjYtOC4zIDguNS0xNC4yIDExLjV6TTc5Ny41IDMwNWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bS02NS43IDYxLjNhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMC00OCAwek0zMDMuNCA3NDIuOWwtMTEuNiAyNC4zaDI2bDMuNS0yNC43Yy01LjcuOC0xMS43IDEtMTcuOS40eicpKTtcbmV4cG9ydHMuQXBhcnRtZW50T3V0bGluZSA9IGdldEljb24oJ2FwYXJ0bWVudCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDggNjQwSDgwNFY0ODhjMC00LjQtMy42LTgtOC04SDU0OHYtOTZoMTA4YzguOCAwIDE2LTcuMiAxNi0xNlY4MGMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgxMDh2OTZIMjI4Yy00LjQgMC04IDMuNi04IDh2MTUySDExNmMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMjg4YzguOCAwIDE2LTcuMiAxNi0xNlY2NTZjMC04LjgtNy4yLTE2LTE2LTE2SDI5MnYtODhoNDQwdjg4SDYyMGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMjg4YzguOCAwIDE2LTcuMiAxNi0xNlY2NTZjMC04LjgtNy4yLTE2LTE2LTE2em0tNTY0IDc2djE2OEgxNzZWNzE2aDE2OHptODQtNDA4VjE0MGgxNjh2MTY4SDQyOHptNDIwIDU3Nkg2ODBWNzE2aDE2OHYxNjh6JykpO1xuZXhwb3J0cy5BbnREZXNpZ25PdXRsaW5lID0gZ2V0SWNvbignYW50LWRlc2lnbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MTYuMyAzMTMuOGMxOS0xOC45IDE5LTQ5LjcgMC02OC42bC02OS45LTY5LjkuMS4xYy0xOC41LTE4LjUtNTAuMy01MC4zLTk1LjMtOTUuMi0yMS4yLTIwLjctNTUuNS0yMC41LTc2LjUuNUw4MC45IDQ3NC4yYTUzLjg0IDUzLjg0IDAgMCAwIDAgNzYuNEw0NzQuNiA5NDRhNTQuMTQgNTQuMTQgMCAwIDAgNzYuNSAwbDE2NS4xLTE2NWMxOS0xOC45IDE5LTQ5LjcgMC02OC42YTQ4LjcgNDguNyAwIDAgMC02OC43IDBsLTEyNSAxMjUuMmMtNS4yIDUuMi0xMy4zIDUuMi0xOC41IDBMMTg5LjUgNTIxLjRjLTUuMi01LjItNS4yLTEzLjMgMC0xOC41bDMxNC40LTMxNC4yYy40LS40LjktLjcgMS4zLTEuMSA1LjItNC4xIDEyLjQtMy43IDE3LjIgMS4xbDEyNS4yIDEyNS4xYzE5IDE5IDQ5LjggMTkgNjguNyAwek00MDguNiA1MTQuNGExMDYuMyAxMDYuMiAwIDEgMCAyMTIuNiAwIDEwNi4zIDEwNi4yIDAgMSAwLTIxMi42IDB6bTUzNi4yLTM4LjZMODIxLjkgMzUzLjVjLTE5LTE4LjktNDkuOC0xOC45LTY4LjcuMWE0OC40IDQ4LjQgMCAwIDAgMCA2OC42bDgzIDgyLjljNS4yIDUuMiA1LjIgMTMuMyAwIDE4LjVsLTgxLjggODEuN2E0OC40IDQ4LjQgMCAwIDAgMCA2OC42IDQ4LjcgNDguNyAwIDAgMCA2OC43IDBsMTIxLjgtMTIxLjdhNTMuOTMgNTMuOTMgMCAwIDAtLjEtNzYuNHonKSk7XG5leHBvcnRzLkFyZWFDaGFydE91dGxpbmUgPSBnZXRJY29uKCdhcmVhLWNoYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MTYtNjRoNTM2YzQuNCAwIDgtMy42IDgtOFYyODRjMC03LjItOC43LTEwLjctMTMuNy01LjdMNTkyIDQ4OC42bC0xMjUuNC0xMjRhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMTg5IDE4OS42YTcuODcgNy44NyAwIDAgMC0yLjMgNS42VjcyMGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5BcnJvd0xlZnRPdXRsaW5lID0gZ2V0SWNvbignYXJyb3ctbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgNDc0SDI4Ni45bDM1MC4yLTMwNGM1LjYtNC45IDIuMi0xNC01LjItMTRoLTg4LjVjLTMuOSAwLTcuNiAxLjQtMTAuNSAzLjlMMTU1IDQ4Ny44YTMxLjk2IDMxLjk2IDAgMCAwIDAgNDguM0w1MzUuMSA4NjZjMS41IDEuMyAzLjMgMiA1LjIgMmg5MS41YzcuNCAwIDEwLjgtOS4yIDUuMi0xNEwyODYuOSA1NTBIODcyYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQXJyb3dEb3duT3V0bGluZSA9IGdldEljb24oJ2Fycm93LWRvd24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODYyIDQ2NS4zaC04MWMtNC42IDAtOSAyLTEyLjEgNS41TDU1MCA3MjMuMVYxNjBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djU2My4xTDI1NS4xIDQ3MC44Yy0zLTMuNS03LjQtNS41LTEyLjEtNS41aC04MWMtNi44IDAtMTAuNSA4LjEtNiAxMy4yTDQ4Ny45IDg2MWEzMS45NiAzMS45NiAwIDAgMCA0OC4zIDBMODY4IDQ3OC41YzQuNS01LjIuOC0xMy4yLTYtMTMuMnonKSk7XG5leHBvcnRzLkFycm93VXBPdXRsaW5lID0gZ2V0SWNvbignYXJyb3ctdXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4IDU0NS41TDUzNi4xIDE2M2EzMS45NiAzMS45NiAwIDAgMC00OC4zIDBMMTU2IDU0NS41YTcuOTcgNy45NyAwIDAgMCA2IDEzLjJoODFjNC42IDAgOS0yIDEyLjEtNS41TDQ3NCAzMDAuOVY4NjRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYzMDAuOWwyMTguOSAyNTIuM2MzIDMuNSA3LjQgNS41IDEyLjEgNS41aDgxYzYuOCAwIDEwLjUtOCA2LTEzLjJ6JykpO1xuZXhwb3J0cy5BcnJvd3NBbHRPdXRsaW5lID0gZ2V0SWNvbignYXJyb3dzLWFsdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTUgMTYwLjFsLTE4OS4yIDIzLjVjLTYuNi44LTkuMyA4LjgtNC43IDEzLjVsNTQuNyA1NC43LTE1My41IDE1My41YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDUuMSA0NS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTUzLjYtMTUzLjYgNTQuNyA1NC43YTcuOTQgNy45NCAwIDAgMCAxMy41LTQuN0w4NjMuOSAxNjlhNy45IDcuOSAwIDAgMC04LjktOC45ek00MTYuNiA1NjIuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDI1MS44IDcxNS45bC01NC43LTU0LjdhNy45NCA3Ljk0IDAgMCAwLTEzLjUgNC43TDE2MC4xIDg1NWMtLjYgNS4yIDMuNyA5LjUgOC45IDguOWwxODkuMi0yMy41YzYuNi0uOCA5LjMtOC44IDQuNy0xMy41bC01NC43LTU0LjcgMTUzLjYtMTUzLjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDUuMi00NXonKSk7XG5leHBvcnRzLkFycm93UmlnaHRPdXRsaW5lID0gZ2V0SWNvbignYXJyb3ctcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY5IDQ4Ny44TDQ5MS4yIDE1OS45Yy0yLjktMi41LTYuNi0zLjktMTAuNS0zLjloLTg4LjVjLTcuNCAwLTEwLjggOS4yLTUuMiAxNGwzNTAuMiAzMDRIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDU4NS4xTDM4Ni45IDg1NGMtNS42IDQuOS0yLjIgMTQgNS4yIDE0aDkxLjVjMS45IDAgMy44LS43IDUuMi0yTDg2OSA1MzYuMmEzMi4wNyAzMi4wNyAwIDAgMCAwLTQ4LjR6JykpO1xuZXhwb3J0cy5BdWRpdE91dGxpbmUgPSBnZXRJY29uKCdhdWRpdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yOTYgMjUwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE4NCAxNDRIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptLTQ4IDQ1OEgyMDhWMTQ4aDU2MHYzMjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjY0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00NDAtODhINzI4di0zNi42YzQ2LjMtMTMuOCA4MC01Ni42IDgwLTEwNy40IDAtNjEuOS01MC4xLTExMi0xMTItMTEycy0xMTIgNTAuMS0xMTIgMTEyYzAgNTAuNyAzMy43IDkzLjYgODAgMTA3LjRWNzY0SDUyMGMtOC44IDAtMTYgNy4yLTE2IDE2djE1MmMwIDguOCA3LjIgMTYgMTYgMTZoMzUyYzguOCAwIDE2LTcuMiAxNi0xNlY3ODBjMC04LjgtNy4yLTE2LTE2LTE2ek02NDYgNjIwYzAtMjcuNiAyMi40LTUwIDUwLTUwczUwIDIyLjQgNTAgNTAtMjIuNCA1MC01MCA1MC01MC0yMi40LTUwLTUwem0xODAgMjY2SDU2NnYtNjBoMjYwdjYweicpKTtcbmV4cG9ydHMuQmFyQ2hhcnRPdXRsaW5lID0gZ2V0SWNvbignYmFyLWNoYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MDAtODBoNTZjNC40IDAgOC0zLjYgOC04VjU2MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTQ0YzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjM4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MzIwYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjQ2MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MjQyYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDAwYzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkJhcmNvZGVPdXRsaW5lID0gZ2V0SWNvbignYmFyY29kZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xMjAgMTYwSDcyYy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOHptODMzIDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOHpNMjAwIDczNmgxMTJjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThIMjAwYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptMzIxIDBoNDhjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptMTI2IDBoMTc4YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04SDY0N2MtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDh6bS0yNTUgMGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4em0tNzkgNjRIMjAxYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDExMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMjU3IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0yNTYgMEg2NDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTc4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tMzg1IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQmFyc091dGxpbmUgPSBnZXRJY29uKCdiYXJzJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTkxMiAxOTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTA0IDIyOGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAweicpKTtcbmV4cG9ydHMuQmdDb2xvcnNPdXRsaW5lID0gZ2V0SWNvbignYmctY29sb3JzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc2Ni40IDc0NC4zYzQzLjcgMCA3OS40LTM2LjIgNzkuNC04MC41IDAtNTMuNS03OS40LTE0MC44LTc5LjQtMTQwLjhTNjg3IDYxMC4zIDY4NyA2NjMuOGMwIDQ0LjMgMzUuNyA4MC41IDc5LjQgODAuNXptLTM3Ny4xLTQ0LjFjNy4xIDcuMSAxOC42IDcuMSAyNS42IDBsMjU2LjEtMjU2YzcuMS03LjEgNy4xLTE4LjYgMC0yNS42bC0yNTYtMjU2Yy0uNi0uNi0xLjMtMS4yLTItMS43bC03OC4yLTc4LjJhOS4xMSA5LjExIDAgMCAwLTEyLjggMGwtNDggNDhhOS4xMSA5LjExIDAgMCAwIDAgMTIuOGw2Ny4yIDY3LjItMjA3LjggMjA3LjljLTcuMSA3LjEtNy4xIDE4LjYgMCAyNS42bDI1NS45IDI1NnptMTIuOS00NDguNmwxNzguOSAxNzguOUgyMjMuNGwxNzguOC0xNzguOXpNOTA0IDgxNkgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQmVoYW5jZU91dGxpbmUgPSBnZXRJY29uKCdiZWhhbmNlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYzNCAyOTQuM2gxOTkuNXY0OC40SDYzNHpNNDM0LjEgNDg1LjhjNDQuMS0yMS4xIDY3LjItNTMuMiA2Ny4yLTEwMi44IDAtOTguMS03My0xMjEuOS0xNTcuMy0xMjEuOUgxMTJ2NDkyLjRoMjM4LjVjODkuNCAwIDE3My4zLTQzIDE3My4zLTE0MyAwLTYxLjgtMjkuMi0xMDcuNS04OS43LTEyNC43ek0yMjAuMiAzNDUuMWgxMDEuNWMzOS4xIDAgNzQuMiAxMC45IDc0LjIgNTYuMyAwIDQxLjgtMjcuMyA1OC42LTY2IDU4LjZIMjIwLjJWMzQ1LjF6bTExNS41IDMyNC44SDIyMC4xVjUzNC4zSDMzOGM0Ny42IDAgNzcuNyAxOS45IDc3LjcgNzAuMyAwIDQ5LjYtMzUuOSA2NS4zLTgwIDY1LjN6bTU3NS44LTg5LjVjMC0xMDUuNS02MS43LTE5My40LTE3My4zLTE5My40LTEwOC41IDAtMTgyLjMgODEuNy0xODIuMyAxODguOCAwIDExMSA2OS45IDE4Ny4yIDE4Mi4zIDE4Ny4yIDg1LjEgMCAxNDAuMi0zOC4zIDE2Ni43LTEyMGgtODYuM2MtOS40IDMwLjUtNDcuNiA0Ni41LTc3LjMgNDYuNS01Ny40IDAtODcuNC0zMy42LTg3LjQtOTAuN2gyNTYuOWMuMy01LjkuNy0xMi4xLjctMTguNHpNNjUzLjkgNTM3YzMuMS00Ni45IDM0LjQtNzYuMiA4MS4yLTc2LjIgNDkuMiAwIDczLjggMjguOSA3OC4xIDc2LjJINjUzLjl6JykpO1xuZXhwb3J0cy5CbG9ja091dGxpbmUgPSBnZXRJY29uKCdibG9jaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTYgMzc2SDY0OFYxNjhjMC04LjgtNy4yLTE2LTE2LTE2SDE2OGMtOC44IDAtMTYgNy4yLTE2IDE2djQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMjA4djIwOGMwIDguOCA3LjIgMTYgMTYgMTZoNDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzOTJjMC04LjgtNy4yLTE2LTE2LTE2em0tNDgwIDE2djE4OEgyMjBWMjIwaDM2MHYxNTZIMzkyYy04LjggMC0xNiA3LjItMTYgMTZ6bTIwNCA1MnYxMzZINDQ0VjQ0NGgxMzZ6bTIyNCAzNjBINDQ0VjY0OGgxODhjOC44IDAgMTYtNy4yIDE2LTE2VjQ0NGgxNTZ2MzYweicpKTtcbmV4cG9ydHMuQm9sZE91dGxpbmUgPSBnZXRJY29uKCdib2xkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5Ny44IDQ4MS40YzMzLjYtMzUgNTQuMi04Mi4zIDU0LjItMTM0LjN2LTEwLjJDNzUyIDIyOS4zIDY2My45IDE0MiA1NTUuMyAxNDJIMjU5LjRjLTE1LjEgMC0yNy40IDEyLjMtMjcuNCAyNy40djY3OS4xYzAgMTYuMyAxMy4yIDI5LjUgMjkuNSAyOS41aDMxOC43YzExNyAwIDIxMS44LTk0LjIgMjExLjgtMjEwLjV2LTExYzAtNzMtMzcuNC0xMzcuMy05NC4yLTE3NS4xek0zMjggMjM4aDIyNC43YzU3LjEgMCAxMDMuMyA0NC40IDEwMy4zIDk5LjN2OS41YzAgNTQuOC00Ni4zIDk5LjMtMTAzLjMgOTkuM0gzMjhWMjM4em0zNjYuNiA0MjkuNGMwIDYyLjktNTEuNyAxMTMuOS0xMTUuNSAxMTMuOUgzMjhWNTQyLjdoMjUxLjFjNjMuOCAwIDExNS41IDUxIDExNS41IDExMy45djEwLjh6JykpO1xuZXhwb3J0cy5Cb3JkZXJCb3R0b21PdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLWJvdHRvbScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgODA4SDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS03MjAtOTRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTQ5OGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAgMzMyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0xNjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xNjYgMTY2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0zMzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zMzIgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAgMzMyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjIyLTcyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM4OC00MDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzg4IDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzg4IDQyNmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zODggNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zODgtNDA0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5Cb3JkZXJMZWZ0T3V0bGluZSA9IGdldEljb24oJ2JvcmRlci1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTIwOCAxNDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NzIwYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTUyYzAtNC40LTMuNi04LTgtOHptMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00OTggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNTQwIDMxMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzc0IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlck91dGVyT3V0bGluZSA9IGdldEljb24oJ2JvcmRlci1vdXRlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek00ODQgMzY2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHpNMzAyIDU0OGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM2NCAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTE4MiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCAxODJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuQm9yZGVySW5uZXJPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLWlubmVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiA0NzZINTQ4VjE0NGgtNzJ2MzMySDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMjR2MzMyaDcyVjU0OGgzMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTY2NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNjUwIDIxNmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU2IDU5MmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01Ni01OTJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tMTY2IDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNDI2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTYgMjYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlclJpZ2h0T3V0bGluZSA9IGdldEljb24oJ2JvcmRlci1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgMTQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djcyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE1MmMwLTQuNC0zLjYtOC04LTh6bS0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS00OTggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTY2IDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjA4IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDk4IDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzc0IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlckhvcml6b250YWxPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLWhvcml6b250YWwnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTQwIDE0NGgtNTZjLTQuNCAwLTggMy42LTggOHY3MjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNTJjMC00LjQtMy42LTgtOC04em0tMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00OTggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02NjQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjA4IDMxMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTY2NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNjY0IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjY0IDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzc0IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlclRvcE91dGxpbmUgPSBnZXRJY29uKCdib3JkZXItdG9wJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiAxNDRIMTUyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjA4IDMxMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2Ni0xNjZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzItNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Cb3JkZXJWZXJ0aWNsZU91dGxpbmUgPSBnZXRJY29uKCdib3JkZXItdmVydGljbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODcyIDQ3NkgxNTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC02NjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDQ5OGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTY1MCAyMTZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNTkyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTE2NiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNTIgMzgyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggNjQyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQm9yZGVyT3V0bGluZSA9IGdldEljb24oJ2JvcmRlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuQnJhbmNoZXNPdXRsaW5lID0gZ2V0SWNvbignYnJhbmNoZXMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQwIDE2MWMtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCA1MC4xIDMzLjEgOTIuNiA3OC41IDEwNi45djk1LjlMMzIwIDYwMi40VjMxOC4xYzQ0LjItMTUgNzYtNTYuOSA3Ni0xMDYuMSAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDQ5LjIgMzEuOCA5MSA3NiAxMDYuMVY3MDZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xdi0yNy44bDQyMy41LTEzOC43YTUwLjUyIDUwLjUyIDAgMCAwIDM0LjktNDguMlYzNzguMmM0Mi45LTE1LjggNzMuNi01NyA3My42LTEwNS4yIDAtNjEuOC01MC4yLTExMi0xMTItMTEyem0tNTA0IDUxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptOTYgNjAwYTQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDAgNDguMDEgNDguMDEgMCAwIDEgOTYgMHptNDA4LTQ5MWE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5DaGVja091dGxpbmUgPSBnZXRJY29uKCdjaGVjaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTIgMTkwaC02OS45Yy05LjggMC0xOS4xIDQuNS0yNS4xIDEyLjJMNDA0LjcgNzI0LjUgMjA3IDQ3NGEzMiAzMiAwIDAgMC0yNS4xLTEyLjJIMTEyYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOWwyNzMuOSAzNDdjMTIuOCAxNi4yIDM3LjQgMTYuMiA1MC4zIDBsNDg4LjQtNjE4LjljNC4xLTUuMS40LTEyLjgtNi4zLTEyLjh6JykpO1xuZXhwb3J0cy5DaU91dGxpbmUgPSBnZXRJY29uKCdjaScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTIxOC01NzIuMWgtNTAuNGMtNC40IDAtOCAzLjYtOCA4djM4NC4yYzAgNC40IDMuNiA4IDggOEg3MzBjNC40IDAgOC0zLjYgOC04VjMxOS45YzAtNC40LTMuNi04LTgtOHptLTI4MS40IDQ5LjZjNDkuNSAwIDgzLjEgMzEuNSA4NyA3Ny42LjQgNC4yIDMuOCA3LjQgOCA3LjRoNTIuNmMyLjQgMCA0LjQtMiA0LjQtNC40IDAtODEuMi02NC0xMzguMS0xNTIuMy0xMzguMUMzNDUuNCAzMDQgMjg2IDM3My41IDI4NiA0ODguNHY0OWMwIDExNCA1OS40IDE4Mi42IDE2Mi4zIDE4Mi42IDg4IDAgMTUyLjMtNTUuMSAxNTIuMy0xMzIuNSAwLTIuNC0yLTQuNC00LjQtNC40aC01Mi43Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0My0zNy43IDcyLjQtODcgNzIuNC02MS4xIDAtOTUuNi00NC45LTk1LjYtMTI1LjJ2LTQ5LjNjLjEtODEuNCAzNC42LTEyNi44IDk1LjctMTI2Ljh6JykpO1xuZXhwb3J0cy5DbG9zZU91dGxpbmUgPSBnZXRJY29uKCdjbG9zZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001NjMuOCA1MTJsMjYyLjUtMzEyLjljNC40LTUuMi43LTEzLjEtNi4xLTEzLjFoLTc5LjhjLTQuNyAwLTkuMiAyLjEtMTIuMyA1LjdMNTExLjYgNDQ5LjggMjk1LjEgMTkxLjdjLTMtMy42LTcuNS01LjctMTIuMy01LjdIMjAzYy02LjggMC0xMC41IDcuOS02LjEgMTMuMUw0NTkuNCA1MTIgMTk2LjkgODI0LjlBNy45NSA3Ljk1IDAgMCAwIDIwMyA4MzhoNzkuOGM0LjcgMCA5LjItMi4xIDEyLjMtNS43bDIxNi41LTI1OC4xIDIxNi41IDI1OC4xYzMgMy42IDcuNSA1LjcgMTIuMyA1LjdoNzkuOGM2LjggMCAxMC41LTcuOSA2LjEtMTMuMUw1NjMuOCA1MTJ6JykpO1xuZXhwb3J0cy5DbG91ZERvd25sb2FkT3V0bGluZSA9IGdldEljb24oJ2Nsb3VkLWRvd25sb2FkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYyNCA3MDYuM2gtNzQuMVY0NjRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djI0Mi4zSDQwMGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMTEyIDE0MS43YTggOCAwIDAgMCAxMi42IDBsMTEyLTE0MS43YzQuMS01LjIuNC0xMi45LTYuMy0xMi45eicsICdNODExLjQgMzY2LjdDNzY1LjYgMjQ1LjkgNjQ4LjkgMTYwIDUxMi4yIDE2MFMyNTguOCAyNDUuOCAyMTMgMzY2LjZDMTI3LjMgMzg5LjEgNjQgNDY3LjIgNjQgNTYwYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwSDMwNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOGgtNDAuMWMtMzMuNyAwLTY1LjQtMTMuNC04OS0zNy43LTIzLjUtMjQuMi0zNi01Ni44LTM0LjktOTAuNi45LTI2LjQgOS45LTUxLjIgMjYuMi03Mi4xIDE2LjctMjEuMyA0MC4xLTM2LjggNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMCAxIDUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBDODQ2LjEgNDU0LjUgODg0IDUwMy44IDg4NCA1NjBjMCAzMy4xLTEyLjkgNjQuMy0zNi4zIDg3LjdhMTIzLjA3IDEyMy4wNyAwIDAgMS04Ny42IDM2LjNINzIwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDQwLjFDODcwLjUgNzYwIDk2MCA2NzAuNSA5NjAgNTYwYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeicpKTtcbmV4cG9ydHMuQ2xvdWRTZXJ2ZXJPdXRsaW5lID0gZ2V0SWNvbignY2xvdWQtc2VydmVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcwNCA0NDZIMzIwYy00LjQgMC04IDMuNi04IDh2NDAyYzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04VjQ1NGMwLTQuNC0zLjYtOC04LTh6bS0zMjggNjRoMjcydjExN0gzNzZWNTEwem0yNzIgMjkwSDM3NlY2ODNoMjcydjExN3onLCAnTTQyNCA3NDhhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMC02NCAwem0wLTE3OGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwLTY0IDB6JywgJ004MTEuNCAzNjguOUM3NjUuNiAyNDggNjQ4LjkgMTYyIDUxMi4yIDE2MlMyNTguOCAyNDcuOSAyMTMgMzY4LjhDMTI2LjkgMzkxLjUgNjMuNSA0NzAuMiA2NCA1NjMuNiA2NC42IDY2OCAxNDUuNiA3NTIuOSAyNDcuNiA3NjJjNC43LjQgOC43LTMuMyA4LjctOHYtNjAuNGMwLTQtMy03LjQtNy03LjktMjctMy40LTUyLjUtMTUuMi03Mi4xLTM0LjUtMjQtMjMuNS0zNy4yLTU1LjEtMzcuMi04OC42IDAtMjggOS4xLTU0LjQgMjYuMi03Ni40IDE2LjctMjEuNCA0MC4yLTM2LjkgNjYuMS00My43bDM3LjktMTAgMTMuOS0zNi43YzguNi0yMi44IDIwLjYtNDQuMiAzNS43LTYzLjUgMTQuOS0xOS4yIDMyLjYtMzYgNTIuNC01MCA0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuM2MxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDUwIDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My41bDEzLjggMzYuNiAzNy44IDEwYzU0LjIgMTQuNCA5Mi4xIDYzLjcgOTIuMSAxMjAgMCAzMy42LTEzLjIgNjUuMS0zNy4yIDg4LjYtMTkuNSAxOS4yLTQ0LjkgMzEuMS03MS45IDM0LjUtNCAuNS02LjkgMy45LTYuOSA3LjlWNzU0YzAgNC43IDQuMSA4LjQgOC44IDggMTAxLjctOS4yIDE4Mi41LTk0IDE4My4yLTE5OC4yLjYtOTMuNC02Mi43LTE3Mi4xLTE0OC42LTE5NC45eicpKTtcbmV4cG9ydHMuQ2xvdWRTeW5jT3V0bGluZSA9IGdldEljb24oJ2Nsb3VkLXN5bmMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODExLjQgMzY4LjlDNzY1LjYgMjQ4IDY0OC45IDE2MiA1MTIuMiAxNjJTMjU4LjggMjQ3LjkgMjEzIDM2OC44QzEyNi45IDM5MS41IDYzLjUgNDcwLjIgNjQgNTYzLjYgNjQuNiA2NjggMTQ1LjYgNzUyLjkgMjQ3LjYgNzYyYzQuNy40IDguNy0zLjMgOC43LTh2LTYwLjRjMC00LTMtNy40LTctNy45LTI3LTMuNC01Mi41LTE1LjItNzIuMS0zNC41LTI0LTIzLjUtMzcuMi01NS4xLTM3LjItODguNiAwLTI4IDkuMS01NC40IDI2LjItNzYuNCAxNi43LTIxLjQgNDAuMi0zNi45IDY2LjEtNDMuN2wzNy45LTEwIDEzLjktMzYuN2M4LjYtMjIuOCAyMC42LTQ0LjIgMzUuNy02My41IDE0LjktMTkuMiAzMi42LTM2IDUyLjQtNTAgNDEuMS0yOC45IDg5LjUtNDQuMiAxNDAtNDQuMnM5OC45IDE1LjMgMTQwIDQ0LjNjMTkuOSAxNCAzNy41IDMwLjggNTIuNCA1MCAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNWwxMy44IDM2LjYgMzcuOCAxMGM1NC4yIDE0LjQgOTIuMSA2My43IDkyLjEgMTIwIDAgMzMuNi0xMy4yIDY1LjEtMzcuMiA4OC42LTE5LjUgMTkuMi00NC45IDMxLjEtNzEuOSAzNC41LTQgLjUtNi45IDMuOS02LjkgNy45Vjc1NGMwIDQuNyA0LjEgOC40IDguOCA4IDEwMS43LTkuMiAxODIuNS05NCAxODMuMi0xOTguMi42LTkzLjQtNjIuNy0xNzIuMS0xNDguNi0xOTQuOXonLCAnTTM3Ni45IDY1Ni40YzEuOC0zMy41IDE1LjctNjQuNyAzOS41LTg4LjYgMjUuNC0yNS41IDYwLTM5LjggOTYtMzkuOCAzNi4yIDAgNzAuMyAxNC4xIDk2IDM5LjggMS40IDEuNCAyLjcgMi44IDQuMSA0LjNsLTI1IDE5LjZhOCA4IDAgMCAwIDMgMTQuMWw5OC4yIDI0YzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuNS0xMDEuM2MwLTYuNy03LjYtMTAuNS0xMi45LTYuM0w2NjMgNTMyLjdjLTM2LjYtNDItOTAuNC02OC42LTE1MC41LTY4LjYtMTA3LjQgMC0xOTUgODUuMS0xOTkuNCAxOTEuNy0uMiA0LjUgMy40IDguMyA4IDguM0gzNjljNC4yLS4xIDcuNy0zLjQgNy45LTcuN3pNNzAzIDY2NGgtNDcuOWMtNC4yIDAtNy43IDMuMy04IDcuNi0xLjggMzMuNS0xNS43IDY0LjctMzkuNSA4OC42LTI1LjQgMjUuNS02MCAzOS44LTk2IDM5LjgtMzYuMiAwLTcwLjMtMTQuMS05Ni0zOS44LTEuNC0xLjQtMi43LTIuOC00LjEtNC4zbDI1LTE5LjZhOCA4IDAgMCAwLTMtMTQuMWwtOTguMi0yNGMtNS0xLjItOS45IDIuNi05LjkgNy43bC0uNCAxMDEuNGMwIDYuNyA3LjYgMTAuNSAxMi45IDYuM2wyMy4yLTE4LjJjMzYuNiA0MiA5MC40IDY4LjYgMTUwLjUgNjguNiAxMDcuNCAwIDE5NS04NS4xIDE5OS40LTE5MS43LjItNC41LTMuNC04LjMtOC04LjN6JykpO1xuZXhwb3J0cy5DbG91ZFVwbG9hZE91dGxpbmUgPSBnZXRJY29uKCdjbG91ZC11cGxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTE4LjMgNDU5YTggOCAwIDAgMC0xMi42IDBsLTExMiAxNDEuN2E3Ljk4IDcuOTggMCAwIDAgNi4zIDEyLjloNzMuOVY4NTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY2MTMuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgNDU5eicsICdNODExLjQgMzY2LjdDNzY1LjYgMjQ1LjkgNjQ4LjkgMTYwIDUxMi4yIDE2MFMyNTguOCAyNDUuOCAyMTMgMzY2LjZDMTI3LjMgMzg5LjEgNjQgNDY3LjIgNjQgNTYwYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwSDMwNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOGgtNDAuMWMtMzMuNyAwLTY1LjQtMTMuNC04OS0zNy43LTIzLjUtMjQuMi0zNi01Ni44LTM0LjktOTAuNi45LTI2LjQgOS45LTUxLjIgMjYuMi03Mi4xIDE2LjctMjEuMyA0MC4xLTM2LjggNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMCAxIDUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBDODQ2LjEgNDU0LjUgODg0IDUwMy44IDg4NCA1NjBjMCAzMy4xLTEyLjkgNjQuMy0zNi4zIDg3LjdhMTIzLjA3IDEyMy4wNyAwIDAgMS04Ny42IDM2LjNINzIwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDQwLjFDODcwLjUgNzYwIDk2MCA2NzAuNSA5NjAgNTYwYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeicpKTtcbmV4cG9ydHMuQ2x1c3Rlck91dGxpbmUgPSBnZXRJY29uKCdjbHVzdGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OCA2ODBoLTU0VjU0MEg1NDZ2LTkyaDIzOGM4LjggMCAxNi03LjIgMTYtMTZWMTY4YzAtOC44LTcuMi0xNi0xNi0xNkgyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDIzOHY5MkgxOTB2MTQwaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04ek0yNTYgODA1LjNjMCAxLjUtMS4yIDIuNy0yLjcgMi43aC01OC43Yy0xLjUgMC0yLjctMS4yLTIuNy0yLjd2LTU4LjdjMC0xLjUgMS4yLTIuNyAyLjctMi43aDU4LjdjMS41IDAgMi43IDEuMiAyLjcgMi43djU4Ljd6bTI4OCAwYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0yODggMzg0VjIxNmg0NDh2MTY4SDI4OHptNTQ0IDQyMS4zYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0zNjAgMzAwYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLkNvZGVwZW5PdXRsaW5lID0gZ2V0SWNvbignY29kZXBlbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTEuNyAzODUuM2wtLjMtMS41Yy0uMi0xLS4zLTEuOS0uNi0yLjktLjItLjYtLjQtMS4xLS41LTEuNy0uMy0uOC0uNS0xLjctLjktMi41LS4yLS42LS41LTEuMS0uOC0xLjctLjQtLjgtLjgtMS41LTEuMi0yLjMtLjMtLjUtLjYtMS4xLTEtMS42LS44LTEuMi0xLjctMi40LTIuNi0zLjYtLjUtLjYtMS4xLTEuMy0xLjctMS45LS40LS41LS45LS45LTEuNC0xLjMtLjYtLjYtMS4zLTEuMS0xLjktMS42LS41LS40LTEtLjgtMS42LTEuMi0uMi0uMS0uNC0uMy0uNi0uNEw1MzEuMSAxMTcuOGEzNC4zIDM0LjMgMCAwIDAtMzguMSAwTDEyNy4zIDM2MS4zYy0uMi4xLS40LjMtLjYuNC0uNS40LTEgLjgtMS42IDEuMi0uNy41LTEuMyAxLjEtMS45IDEuNi0uNS40LS45LjktMS40IDEuMy0uNi42LTEuMiAxLjItMS43IDEuOS0xIDEuMS0xLjggMi4zLTIuNiAzLjYtLjMuNS0uNyAxLTEgMS42LS40LjctLjggMS41LTEuMiAyLjMtLjMuNS0uNSAxLjEtLjggMS43LS4zLjgtLjYgMS43LS45IDIuNS0uMi42LS40IDEuMS0uNSAxLjctLjIuOS0uNCAxLjktLjYgMi45bC0uMyAxLjVjLS4yIDEuNS0uMyAzLS4zIDQuNXYyNDMuNWMwIDEuNS4xIDMgLjMgNC41bC4zIDEuNS42IDIuOWMuMi42LjMgMS4xLjUgMS43LjMuOS42IDEuNy45IDIuNS4yLjYuNSAxLjEuOCAxLjcuNC44LjcgMS41IDEuMiAyLjMuMy41LjYgMS4xIDEgMS42LjUuNy45IDEuNCAxLjUgMi4xbDEuMiAxLjVjLjUuNiAxLjEgMS4zIDEuNyAxLjkuNC41LjkuOSAxLjQgMS4zLjYuNiAxLjMgMS4xIDEuOSAxLjYuNS40IDEgLjggMS42IDEuMi4yLjEuNC4zLjYuNEw0OTMgOTA1LjdjNS42IDMuOCAxMi4zIDUuOCAxOS4xIDUuOCA2LjYgMCAxMy4zLTEuOSAxOS4xLTUuOGwzNjUuNi0yNDMuNWMuMi0uMS40LS4zLjYtLjQuNS0uNCAxLS44IDEuNi0xLjIuNy0uNSAxLjMtMS4xIDEuOS0xLjYuNS0uNC45LS45IDEuNC0xLjMuNi0uNiAxLjItMS4yIDEuNy0xLjlsMS4yLTEuNSAxLjUtMi4xYy4zLS41LjctMSAxLTEuNi40LS44LjgtMS41IDEuMi0yLjMuMy0uNS41LTEuMS44LTEuNy4zLS44LjYtMS43LjktMi41LjItLjUuNC0xLjEuNS0xLjcuMy0uOS40LTEuOS42LTIuOWwuMy0xLjVjLjItMS41LjMtMyAuMy00LjVWMzg5LjhjLS4zLTEuNS0uNC0zLS42LTQuNXpNNTQ2LjQgMjEwLjVsMjY5LjQgMTc5LjQtMTIwLjMgODAuNC0xNDktOTkuNlYyMTAuNXptLTY4LjggMHYxNjAuMmwtMTQ5IDk5LjYtMTIwLjMtODAuNCAyNjkuMy0xNzkuNHpNMTgwLjcgNDU0LjFsODYgNTcuNS04NiA1Ny41di0xMTV6bTI5Ni45IDM1OC41TDIwOC4zIDYzMy4ybDEyMC4zLTgwLjQgMTQ5IDk5LjZ2MTYwLjJ6TTUxMiA1OTIuOGwtMTIxLjYtODEuMkw1MTIgNDMwLjNsMTIxLjYgODEuMkw1MTIgNTkyLjh6bTM0LjQgMjE5LjhWNjUyLjRsMTQ5LTk5LjYgMTIwLjMgODAuNC0yNjkuMyAxNzkuNHpNODQzLjMgNTY5bC04Ni01Ny41IDg2LTU3LjV2MTE1eicpKTtcbmV4cG9ydHMuQ29kZVNhbmRib3hPdXRsaW5lID0gZ2V0SWNvbignY29kZS1zYW5kYm94Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcwOS42IDIxMGwuNC0uMmguMkw1MTIgOTYgMzEzLjkgMjA5LjhoLS4ybC43LjNMMTUxLjUgMzA0djQxNkw1MTIgOTI4bDM2MC41LTIwOFYzMDRsLTE2Mi45LTk0ek00ODIuNyA4NDMuNkwzMzkuNiA3NjFWNjIxLjRMMjEwIDU0Ny44VjM3Mi45bDI3Mi43IDE1Ny4zdjMxMy40ek0yMzguMiAzMjEuNWwxMzQuNy03Ny44IDEzOC45IDc5LjcgMTM5LjEtNzkuOSAxMzUuMiA3OC0yNzMuOSAxNTgtMjc0LTE1OHpNODE0IDU0OC4zbC0xMjguOCA3My4xdjEzOS4xbC0xNDMuOSA4M1Y1MzAuNEw4MTQgMzczLjF2MTc1LjJ6JykpO1xuZXhwb3J0cy5Db2x1bUhlaWdodE91dGxpbmUgPSBnZXRJY29uKCdjb2x1bS1oZWlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQwIDgzNkgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0wLTcyNEgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04ek02MTAuOCAzNzhjNiAwIDkuNC03IDUuNy0xMS43TDUxNS43IDIzOC43YTcuMTQgNy4xNCAwIDAgMC0xMS4zIDBMNDAzLjYgMzY2LjNhNy4yMyA3LjIzIDAgMCAwIDUuNyAxMS43SDQ3NnYyNjhoLTYyLjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU0OFYzNzhoNjIuOHonKSk7XG5leHBvcnRzLkNvbHVtbldpZHRoT3V0bGluZSA9IGdldEljb24oJ2NvbHVtbi13aWR0aCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xODAgMTc2aC02MGMtNC40IDAtOCAzLjYtOCA4djY1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjE4NGMwLTQuNC0zLjYtOC04LTh6bTcyNCAwaC02MGMtNC40IDAtOCAzLjYtOCA4djY1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjE4NGMwLTQuNC0zLjYtOC04LTh6TTc4NS4zIDUwNC4zTDY1Ny43IDQwMy42YTcuMjMgNy4yMyAwIDAgMC0xMS43IDUuN1Y0NzZIMzc4di02Mi44YzAtNi03LTkuNC0xMS43LTUuN0wyMzguNyA1MDguM2E3LjE0IDcuMTQgMCAwIDAgMCAxMS4zbDEyNy41IDEwMC44YzQuNyAzLjcgMTEuNy40IDExLjctNS43VjU0OGgyNjh2NjIuOGMwIDYgNyA5LjQgMTEuNyA1LjdsMTI3LjUtMTAwLjhjMy44LTIuOSAzLjgtOC41LjItMTEuNHonKSk7XG5leHBvcnRzLkNvbHVtbkhlaWdodE91dGxpbmUgPSBnZXRJY29uKCdjb2x1bW4taGVpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0MCA4MzZIMTg0Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDY1NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMC03MjRIMTg0Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDY1NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHpNNjEwLjggMzc4YzYgMCA5LjQtNyA1LjctMTEuN0w1MTUuNyAyMzguN2E3LjE0IDcuMTQgMCAwIDAtMTEuMyAwTDQwMy42IDM2Ni4zYTcuMjMgNy4yMyAwIDAgMCA1LjcgMTEuN0g0NzZ2MjY4aC02Mi44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjVjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NDhWMzc4aDYyLjh6JykpO1xuZXhwb3J0cy5Db2ZmZWVPdXRsaW5lID0gZ2V0SWNvbignY29mZmVlJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTI3NSAyODFjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2em02MTMgMTQ0SDc2OGMwLTM5LjgtMzIuMi03Mi03Mi03MkgyMDBjLTM5LjggMC03MiAzMi4yLTcyIDcydjI0OGMwIDMuNC4yIDYuNy43IDkuOS0uNSA3LS43IDE0LS43IDIxLjEgMCAxNzYuNyAxNDMuMyAzMjAgMzIwIDMyMCAxNjAuMSAwIDI5Mi43LTExNy41IDMxNi4zLTI3MUg4ODhjMzkuOCAwIDcyLTMyLjIgNzItNzJWNDk3YzAtMzkuOC0zMi4yLTcyLTcyLTcyek02OTYgNjgxaC0xLjFjLjcgNy42IDEuMSAxNS4yIDEuMSAyMyAwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTMjAwIDg0MSAyMDAgNzA0YzAtNy44LjQtMTUuNCAxLjEtMjNIMjAwVjQyNWg0OTZ2MjU2em0xOTItOEg3NzZWNDk3aDExMnYxNzZ6TTYxMyAyODFjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2em0tMTcwIDBjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2eicpKTtcbmV4cG9ydHMuQ29weXJpZ2h0T3V0bGluZSA9IGdldEljb24oJ2NvcHlyaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTUuNi01MzIuN2M1MyAwIDg5IDMzLjggOTMgODMuNC4zIDQuMiAzLjggNy40IDggNy40aDU2LjdjMi42IDAgNC43LTIuMSA0LjctNC43IDAtODYuNy02OC40LTE0Ny40LTE2Mi43LTE0Ny40QzQwNy40IDI5MCAzNDQgMzY0LjIgMzQ0IDQ4Ni44djUyLjNDMzQ0IDY2MC44IDQwNy40IDczNCA1MTcuMyA3MzRjOTQgMCAxNjIuNy01OC44IDE2Mi43LTE0MS40IDAtMi42LTIuMS00LjctNC43LTQuN2gtNTYuOGMtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDYuMS00MC4xIDc3LjgtOTMgNzcuOC02NS4zIDAtMTAyLjEtNDcuOS0xMDIuMS0xMzMuNnYtNTIuNmMuMS04NyAzNy0xMzUuNSAxMDIuMi0xMzUuNXonKSk7XG5leHBvcnRzLkRhc2hPdXRsaW5lID0gZ2V0SWNvbignZGFzaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xMTIgNDc2aDE2MHY3MkgxMTJ6bTMyMCAwaDE2MHY3Mkg0MzJ6bTMyMCAwaDE2MHY3Mkg3NTJ6JykpO1xuZXhwb3J0cy5EZXBsb3ltZW50VW5pdE91dGxpbmUgPSBnZXRJY29uKCdkZXBsb3ltZW50LXVuaXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4LjMgNjkzLjJjLTQyLjUtMjQuNi05NC4zLTE4LTEyOS4yIDEyLjhsLTUzLTMwLjdWNTIzLjZjMC0xNS43LTguNC0zMC4zLTIyLTM4LjFsLTEzNi03OC4zdi02Ny4xYzQ0LjItMTUgNzYtNTYuOCA3Ni0xMDYuMSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnMtMTEyIDUwLjEtMTEyIDExMmMwIDQ5LjMgMzEuOCA5MS4xIDc2IDEwNi4xdjY3LjFsLTEzNiA3OC4zYy0xMy42IDcuOC0yMiAyMi40LTIyIDM4LjF2MTUxLjZsLTUzIDMwLjdjLTM0LjktMzAuOC04Ni44LTM3LjQtMTI5LjItMTIuOC01My41IDMxLTcxLjcgOTkuNC00MSAxNTIuOSAzMC44IDUzLjUgOTguOSA3MS45IDE1Mi4yIDQxIDQyLjUtMjQuNiA2Mi43LTczIDUzLjYtMTE4LjhsNDguNy0yOC4zIDE0MC42IDgxYzYuOCAzLjkgMTQuNCA1LjkgMjIgNS45czE1LjItMiAyMi01LjlMNjc0LjUgNzQwbDQ4LjcgMjguM2MtOS4xIDQ1LjcgMTEuMiA5NC4yIDUzLjYgMTE4LjggNTMuMyAzMC45IDEyMS41IDEyLjYgMTUyLjItNDEgMzAuOC01My42IDEyLjYtMTIyLTQwLjctMTUyLjl6bS02NzMgMTM4LjRhNDcuNiA0Ny42IDAgMCAxLTY1LjItMTcuNmMtMTMuMi0yMi45LTUuNC01Mi4zIDE3LjUtNjUuNWE0Ny42IDQ3LjYgMCAwIDEgNjUuMiAxNy42YzEzLjIgMjIuOSA1LjQgNTIuMy0xNy41IDY1LjV6TTUyMiA0NjMuOHpNNDY0IDIzNGE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTE3MCA0NDYuMmwtMTIyIDcwLjMtMTIyLTcwLjNWNTM5LjhsMTIyLTcwLjMgMTIyIDcwLjN2MTQwLjR6bTIzOS45IDEzMy45Yy0xMy4yIDIyLjktNDIuNCAzMC44LTY1LjIgMTcuNi0yMi44LTEzLjItMzAuNy00Mi42LTE3LjUtNjUuNXM0Mi40LTMwLjggNjUuMi0xNy42YzIyLjkgMTMuMiAzMC43IDQyLjUgMTcuNSA2NS41eicpKTtcbmV4cG9ydHMuRGVza3RvcE91dGxpbmUgPSBnZXRJY29uKCdkZXNrdG9wJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNDBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzODB2MTEySDMwNGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4YzAgNC40IDMuNiA4IDggOGg0MzJjNC40IDAgOC0zLjYgOC04di00OGMwLTguOC03LjItMTYtMTYtMTZINTQ4VjcwMGgzODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDg4SDEzNlYyMTJoNzUydjQxNnonKSk7XG5leHBvcnRzLkRpbmdkaW5nT3V0bGluZSA9IGdldEljb24oJ2RpbmdkaW5nJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU3My43IDI1Mi41QzQyMi41IDE5Ny40IDIwMS4zIDk2LjcgMjAxLjMgOTYuN2MtMTUuNy00LjEtMTcuOSAxMS4xLTE3LjkgMTEuMS01IDYxLjEgMzMuNiAxNjAuNSA1My42IDE4Mi44IDE5LjkgMjIuMyAzMTkuMSAxMTMuNyAzMTkuMSAxMTMuN1MzMjYgMzU3LjkgMjcwLjUgMzQxLjljLTU1LjYtMTYtMzcuOSAxNy44LTM3LjkgMTcuOCAxMS40IDYxLjcgNjQuOSAxMzEuOCAxMDcuMiAxMzguNCA0Mi4yIDYuNiAyMjAuMSA0IDIyMC4xIDRzLTM1LjUgNC4xLTkzLjIgMTEuOWMtNDIuNyA1LjgtOTcgMTIuNS0xMTEuMSAxNy44LTMzLjEgMTIuNSAyNCA2Mi42IDI0IDYyLjYgODQuNyA3Ni44IDEyOS43IDUwLjUgMTI5LjcgNTAuNSAzMy4zLTEwLjcgNjEuNC0xOC41IDg1LjItMjQuMkw1NjUgNzQzLjFoODQuNkw2MDMgOTI4bDIwNS4zLTI3MS45SDcwMC44bDIyLjMtMzguN2MuMy41LjQuOC40LjhTNzk5LjggNDk2LjEgODI5IDQzMy44bC42LTFoLS4xYzUtMTAuOCA4LjYtMTkuNyAxMC0yNS44IDE3LTcxLjMtMTE0LjUtOTkuNC0yNjUuOC0xNTQuNXonKSk7XG5leHBvcnRzLkRpc2Nvbm5lY3RPdXRsaW5lID0gZ2V0SWNvbignZGlzY29ubmVjdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIuNiAxOTEuNGMtODQuNi04NC42LTIyMS41LTg0LjYtMzA2IDBsLTk2LjkgOTYuOSA1MSA1MSA5Ni45LTk2LjljNTMuOC01My44IDE0NC42LTU5LjUgMjA0IDAgNTkuNSA1OS41IDUzLjggMTUwLjIgMCAyMDRsLTk2LjkgOTYuOSA1MS4xIDUxLjEgOTYuOS05Ni45Yzg0LjQtODQuNiA4NC40LTIyMS41LS4xLTMwNi4xek00NDYuNSA3ODEuNmMtNTMuOCA1My44LTE0NC42IDU5LjUtMjA0IDAtNTkuNS01OS41LTUzLjgtMTUwLjIgMC0yMDRsOTYuOS05Ni45LTUxLjEtNTEuMS05Ni45IDk2LjljLTg0LjYgODQuNi04NC42IDIyMS41IDAgMzA2czIyMS41IDg0LjYgMzA2IDBsOTYuOS05Ni45LTUxLTUxLTk2LjggOTd6TTI2MC4zIDIwOS40YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMjA5LjQgMjQ5YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNTU0LjQgNTU0LjRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzOS42LTM5LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0wyNjAuMyAyMDkuNHonKSk7XG5leHBvcnRzLkRvbGxhck91dGxpbmUgPSBnZXRJY29uKCdkb2xsYXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem00Ny43LTM5NS4ybC0yNS40LTUuOVYzNDguNmMzOCA1LjIgNjEuNSAyOSA2NS41IDU4LjIuNSA0IDMuOSA2LjkgNy45IDYuOWg0NC45YzQuNyAwIDguNC00LjEgOC04LjgtNi4xLTYyLjMtNTcuNC0xMDIuMy0xMjUuOS0xMDkuMlYyNjNjMC00LjQtMy42LTgtOC04aC0yOC4xYy00LjQgMC04IDMuNi04IDh2MzNjLTcwLjggNi45LTEyNi4yIDQ2LTEyNi4yIDExOSAwIDY3LjYgNDkuOCAxMDAuMiAxMDIuMSAxMTIuN2wyNC43IDYuM3YxNDIuN2MtNDQuMi01LjktNjktMjkuNS03NC4xLTYxLjMtLjYtMy44LTQtNi42LTcuOS02LjZIMzYzYy00LjcgMC04LjQgNC04IDguNyA0LjUgNTUgNDYuMiAxMDUuNiAxMzUuMiAxMTIuMVY3NjFjMCA0LjQgMy42IDggOCA4aDI4LjRjNC40IDAgOC0zLjYgOC04LjFsLS4yLTMxLjdjNzguMy02LjkgMTM0LjMtNDguOCAxMzQuMy0xMjQtLjEtNjkuNC00NC4yLTEwMC40LTEwOS0xMTYuNHptLTY4LjYtMTYuMmMtNS42LTEuNi0xMC4zLTMuMS0xNS01LTMzLjgtMTIuMi00OS41LTMxLjktNDkuNS01Ny4zIDAtMzYuMyAyNy41LTU3IDY0LjUtNjEuN3YxMjR6TTUzNC4zIDY3N1Y1NDMuM2MzLjEuOSA1LjkgMS42IDguOCAyLjIgNDcuMyAxNC40IDYzLjIgMzQuNCA2My4yIDY1LjEgMCAzOS4xLTI5LjQgNjIuNi03MiA2Ni40eicpKTtcbmV4cG9ydHMuRG91YmxlUmlnaHRPdXRsaW5lID0gZ2V0SWNvbignZG91YmxlLXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAgMCAxODggODY0aDc3LjNjNC45IDAgOS42LTIuMyAxMi42LTYuMWwyNTUuMy0zMjYuMWM5LjEtMTEuNyA5LjEtMjcuOSAwLTM5LjV6bTMwNCAwTDU4MS45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDQ5MmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNzUxLjEgNTEyIDQ4NS43IDg1MS4xQTcuOTggNy45OCAwIDAgMCA0OTIgODY0aDc3LjNjNC45IDAgOS42LTIuMyAxMi42LTYuMWwyNTUuMy0zMjYuMWM5LjEtMTEuNyA5LjEtMjcuOSAwLTM5LjV6JykpO1xuZXhwb3J0cy5Eb3RDaGFydE91dGxpbmUgPSBnZXRJY29uKCdkb3QtY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc5MkgyMDBWMTY4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDc1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjg4IDYwNGE2NCA2NCAwIDEgMCAxMjggMCA2NCA2NCAwIDEgMC0xMjggMHptMTE4LTIyNGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTE1OCAyMjhhOTYgOTYgMCAxIDAgMTkyIDAgOTYgOTYgMCAxIDAtMTkyIDB6bTE0OC0zMTRhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6JykpO1xuZXhwb3J0cy5Eb3VibGVMZWZ0T3V0bGluZSA9IGdldEljb24oJ2RvdWJsZS1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAgMCAwIDM5LjVsMjU1LjMgMzI2LjFjMyAzLjkgNy43IDYuMSAxMi42IDYuMUg1MzJjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMMjcyLjkgNTEyem0zMDQgMGwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUw0OTAuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAgMCAwIDM5LjVsMjU1LjMgMzI2LjFjMyAzLjkgNy43IDYuMSAxMi42IDYuMUg4MzZjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTc2LjkgNTEyeicpKTtcbmV4cG9ydHMuRG93bmxvYWRPdXRsaW5lID0gZ2V0SWNvbignZG93bmxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTA1LjcgNjYxYTggOCAwIDAgMCAxMi42IDBsMTEyLTE0MS43YzQuMS01LjIuNC0xMi45LTYuMy0xMi45aC03NC4xVjE2OGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MzM4LjNINDAwYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOWwxMTIgMTQxLjh6TTg3OCA2MjZoLTYwYy00LjQgMC04IDMuNi04IDh2MTU0SDIxNFY2MzRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djE5OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjM0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkRyaWJiYmxlT3V0bGluZSA9IGdldEljb24oJ2RyaWJiYmxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA5NkMyODIuNiA5NiA5NiAyODIuNiA5NiA1MTJzMTg2LjYgNDE2IDQxNiA0MTYgNDE2LTE4Ni42IDQxNi00MTZTNzQxLjQgOTYgNTEyIDk2em0yNzUuMSAxOTEuOGM0OS41IDYwLjUgNzkuNSAxMzcuNSA4MC4yIDIyMS40LTExLjctMi41LTEyOS4yLTI2LjMtMjQ3LjQtMTEuNC0yLjUtNi4xLTUtMTIuMi03LjYtMTguMy03LjQtMTcuMy0xNS4zLTM0LjYtMjMuNi01MS41QzcyMCAzNzQuMyA3NzkuNiAyOTggNzg3LjEgMjg3Ljh6TTUxMiAxNTcuMmM5MC4zIDAgMTcyLjggMzMuOSAyMzUuNSA4OS41LTYuNCA5LjEtNTkuOSA4MS0xODYuMiAxMjguNC01OC4yLTEwNy0xMjIuNy0xOTQuOC0xMzIuNi0yMDggMjcuMy02LjYgNTUuMi05LjkgODMuMy05Ljl6TTM2MC45IDE5MWM5LjQgMTIuOCA3Mi45IDEwMC45IDEzMS43IDIwNS41QzMyNi40IDQ0MC42IDE4MCA0NDAgMTY0LjEgNDM5LjhjMjMuMS0xMTAuMyA5Ny40LTIwMS45IDE5Ni44LTI0OC44ek0xNTYuNyA1MTIuNWMwLTMuNi4xLTcuMy4yLTEwLjkgMTUuNS4zIDE4Ny43IDIuNSAzNjUuMi01MC42IDEwLjIgMTkuOSAxOS45IDQwLjEgMjguOCA2MC4zLTQuNyAxLjMtOS40IDIuNy0xNCA0LjJDMzUzLjYgNTc0LjkgMjU2LjEgNzM2LjQgMjQ4IDc1MC4xYy01Ni43LTYzLTkxLjMtMTQ2LjMtOTEuMy0yMzcuNnpNNTEyIDg2Ny44Yy04Mi4yIDAtMTU3LjktMjgtMjE4LjEtNzUgNi40LTEzLjEgNzguMy0xNTIgMjc4LjctMjIxLjlsMi4zLS44YzQ5LjkgMTI5LjYgNzAuNSAyMzguMyA3NS44IDI2OS41QTM1MC40NiAzNTAuNDYgMCAwIDEgNTEyIDg2Ny44em0xOTguNS02MC43Yy0zLjYtMjEuNi0yMi41LTEyNS42LTY5LTI1My4zQzc1Mi45IDUzNiA4NTAuNyA1NjUuMiA4NjIuOCA1NjljLTE1LjggOTguOC03Mi41IDE4NC4yLTE1Mi4zIDIzOC4xeicpKTtcbmV4cG9ydHMuRHJvcGJveE91dGxpbmUgPSBnZXRJY29uKCdkcm9wYm94Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY0IDU1Ni45bDI2NC4yIDE3My41TDUxMi41IDU3NyAyNDYuOCA0MTIuN3ptODk2LTI5MC4zem0wIDBMNjk2LjggOTUgNTEyLjUgMjQ4LjVsMjY1LjIgMTY0LjJMNTEyLjUgNTc3bDE4NC4zIDE1My40TDk2MCA1NTguOCA3NzcuNyA0MTIuN3pNNTEzIDYwOS44TDMyOC4yIDc2My4zbC03OS40LTUxLjV2NTcuOEw1MTMgOTI4bDI2My43LTE1OC40di01Ny44bC03OC45IDUxLjV6TTMyOC4yIDk1TDY0IDI2NS4xbDE4Mi44IDE0Ny42IDI2NS43LTE2NC4yek02NCA1NTYuOXonKSk7XG5leHBvcnRzLkVsbGlwc2lzT3V0bGluZSA9IGdldEljb24oJ2VsbGlwc2lzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE3NiA1MTFhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAwem0yODAgMGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHonKSk7XG5leHBvcnRzLkVudGVyT3V0bGluZSA9IGdldEljb24oJ2VudGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2NCAxNzBoLTYwYy00LjQgMC04IDMuNi04IDh2NTE4SDMxMHYtNzNjMC02LjctNy44LTEwLjUtMTMtNi4zbC0xNDEuOSAxMTJhOCA4IDAgMCAwIDAgMTIuNmwxNDEuOSAxMTJjNS4zIDQuMiAxMyAuNCAxMy02LjN2LTc1aDQ5OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNzhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuRXVyb091dGxpbmUgPSBnZXRJY29uKCdldXJvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTE3LjctNTg4LjZjLTE1LjktMy41LTM0LjQtNS40LTU1LjMtNS40LTEwNi43IDAtMTc4LjkgNTUuNy0xOTguNiAxNDkuOUgzNDRjLTQuNCAwLTggMy42LTggOHYyNy4yYzAgNC40IDMuNiA4IDggOGgyNi40Yy0uMyA0LjEtLjMgOC40LS4zIDEyLjh2MzYuOUgzNDRjLTQuNCAwLTggMy42LTggOFY1NjhjMCA0LjQgMy42IDggOCA4aDMwLjJjMTcuMiA5OS4yIDkwLjQgMTU4IDIwMC4yIDE1OCAyMC45IDAgMzkuNC0xLjcgNTUuMy01LjEgMy43LS44IDYuNC00IDYuNC03Ljh2LTQyLjhjMC01LTQuNi04LjgtOS41LTcuOC0xNC43IDIuOC0zMS45IDQuMS01MS44IDQuMS02OC41IDAtMTE0LjUtMzYuNi0xMjkuOC05OC42aDEzMC42YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDM5LjJ2LTM2YzAtNC43IDAtOS40LjMtMTMuOGgxMzUuOWM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQ0Ny4xYzE3LjItNTYuOSA2Mi4zLTkwLjQgMTI3LjYtOTAuNCAxOS45IDAgMzcuMSAxLjUgNTEuNyA0LjRhOCA4IDAgMCAwIDkuNi03Ljh2LTQyLjhjMC0zLjgtMi42LTctNi4zLTcuOHonKSk7XG5leHBvcnRzLkV4Y2VwdGlvbk91dGxpbmUgPSBnZXRJY29uKCdleGNlcHRpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjg4IDMxMnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTM3NiAxMTZjLTExOS4zIDAtMjE2IDk2LjctMjE2IDIxNnM5Ni43IDIxNiAyMTYgMjE2IDIxNi05Ni43IDIxNi0yMTYtOTYuNy0yMTYtMjE2LTIxNnptMTA3LjUgMzIzLjVDNzUwLjggODY4LjIgNzEyLjYgODg0IDY3MiA4ODRzLTc4LjgtMTUuOC0xMDcuNS00NC41QzUzNS44IDgxMC44IDUyMCA3NzIuNiA1MjAgNzMyczE1LjgtNzguOCA0NC41LTEwNy41QzU5My4yIDU5NS44IDYzMS40IDU4MCA2NzIgNTgwczc4LjggMTUuOCAxMDcuNSA0NC41QzgwOC4yIDY1My4yIDgyNCA2OTEuNCA4MjQgNzMycy0xNS44IDc4LjgtNDQuNSAxMDcuNXpNNjQwIDgxMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwLTY0IDB6bTEyLTY0aDQwYzQuNCAwIDgtMy42IDgtOFY2MjhjMC00LjQtMy42LTgtOC04aC00MGMtNC40IDAtOCAzLjYtOCA4djExMmMwIDQuNCAzLjYgOCA4IDh6TTQ0MCA4NTJIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI3MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkV4Y2xhbWF0aW9uT3V0bGluZSA9IGdldEljb24oJ2V4Y2xhbWF0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ0OCA4MDRhNjQgNjQgMCAxIDAgMTI4IDAgNjQgNjQgMCAxIDAtMTI4IDB6bTMyLTE2OGg2NGM0LjQgMCA4LTMuNiA4LThWMTY0YzAtNC40LTMuNi04LTgtOGgtNjRjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuRXhwb3J0T3V0bGluZSA9IGdldEljb24oJ2V4cG9ydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODguMyA3NTcuNGgtNTMuOGMtNC4yIDAtNy43IDMuNS03LjcgNy43djYxLjhIMTk3LjFWMTk3LjFoNjI5Ljh2NjEuOGMwIDQuMiAzLjUgNy43IDcuNyA3LjdoNTMuOGM0LjIgMCA3LjctMy40IDcuNy03LjdWMTU4LjdjMC0xNy0xMy43LTMwLjctMzAuNy0zMC43SDE1OC43Yy0xNyAwLTMwLjcgMTMuNy0zMC43IDMwLjd2NzA2LjZjMCAxNyAxMy43IDMwLjcgMzAuNyAzMC43aDcwNi42YzE3IDAgMzAuNy0xMy43IDMwLjctMzAuN1Y3NjUuMWMwLTQuMy0zLjUtNy43LTcuNy03Ljd6bTE4LjYtMjUxLjdMNzY1IDM5My43Yy01LjMtNC4yLTEzLS40LTEzIDYuM3Y3Nkg0MzhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMzE0djc2YzAgNi43IDcuOCAxMC41IDEzIDYuM2wxNDEuOS0xMTJhOCA4IDAgMCAwIDAtMTIuNnonKSk7XG5leHBvcnRzLkZhbGxPdXRsaW5lID0gZ2V0SWNvbignZmFsbCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjUuOSA4MDRsLTI0LTE5OS4yYy0uOC02LjYtOC45LTkuNC0xMy42LTQuN0w4MjkgNjU5LjUgNTU3LjcgMzg4LjNjLTYuMy02LjItMTYuNC02LjItMjIuNiAwTDQzMy4zIDQ5MCAxNTYuNiAyMTMuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC00NSA0NS4yYTguMDMgOC4wMyAwIDAgMCAwIDExLjNMNDIyIDU5MS43YzYuMiA2LjMgMTYuNCA2LjMgMjIuNiAwTDU0Ni40IDQ5MGwyMjYuMSAyMjYtNTkuMyA1OS4zYTguMDEgOC4wMSAwIDAgMCA0LjcgMTMuNmwxOTkuMiAyNGM1LjEuNyA5LjUtMy43IDguOC04Ljl6JykpO1xuZXhwb3J0cy5GaWxlRG9uZU91dGxpbmUgPSBnZXRJY29uKCdmaWxlLWRvbmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjg4IDMxMnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTM3NiAxMTZjLTExOS4zIDAtMjE2IDk2LjctMjE2IDIxNnM5Ni43IDIxNiAyMTYgMjE2IDIxNi05Ni43IDIxNi0yMTYtOTYuNy0yMTYtMjE2LTIxNnptMTA3LjUgMzIzLjVDNzUwLjggODY4LjIgNzEyLjYgODg0IDY3MiA4ODRzLTc4LjgtMTUuOC0xMDcuNS00NC41QzUzNS44IDgxMC44IDUyMCA3NzIuNiA1MjAgNzMyczE1LjgtNzguOCA0NC41LTEwNy41QzU5My4yIDU5NS44IDYzMS40IDU4MCA2NzIgNTgwczc4LjggMTUuOCAxMDcuNSA0NC41QzgwOC4yIDY1My4yIDgyNCA2OTEuNCA4MjQgNzMycy0xNS44IDc4LjgtNDQuNSAxMDcuNXpNNzYxIDY1NmgtNDQuM2MtMi42IDAtNSAxLjItNi41IDMuM2wtNjMuNSA4Ny44LTIzLjEtMzEuOWE3LjkyIDcuOTIgMCAwIDAtNi41LTMuM0g1NzNjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDczLjggMTAyLjFjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxMTQuMi0xNThjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6TTQ0MCA4NTJIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI3MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkZpbGVTeW5jT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtc3luYycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yOTYgMjU2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE5MiAyMDB2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHptLTQ4IDM5NkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xMDQuMS0xMTUuNmMxLjgtMzQuNSAxNi4yLTY2LjggNDAuOC05MS40IDI2LjItMjYuMiA2Mi00MSA5OS4xLTQxIDM3LjQgMCA3Mi42IDE0LjYgOTkuMSA0MSAzLjIgMy4yIDYuMyA2LjYgOS4yIDEwLjFMNzY5LjIgNjczYTggOCAwIDAgMCAzIDE0LjFsOTMuMyAyMi41YzUgMS4yIDkuOC0yLjYgOS45LTcuN2wuNi05NS40YTggOCAwIDAgMC0xMi45LTYuNGwtMjAuMyAxNS44QzgwNS40IDU2OS42IDc0OC4xIDU0MCA2ODQgNTQwYy0xMDkuOSAwLTE5OS42IDg2LjktMjA0IDE5NS43LS4yIDQuNSAzLjUgOC4zIDggOC4zaDQ4LjFjNC4zIDAgNy44LTMuMyA4LTcuNnpNODgwIDc0NGgtNDguMWMtNC4zIDAtNy44IDMuMy04IDcuNi0xLjggMzQuNS0xNi4yIDY2LjgtNDAuOCA5MS40LTI2LjIgMjYuMi02MiA0MS05OS4xIDQxLTM3LjQgMC03Mi42LTE0LjYtOTkuMS00MS0zLjItMy4yLTYuMy02LjYtOS4yLTEwLjFsMjMuMS0xNy45YTggOCAwIDAgMC0zLTE0LjFsLTkzLjMtMjIuNWMtNS0xLjItOS44IDIuNi05LjkgNy43bC0uNiA5NS40YTggOCAwIDAgMCAxMi45IDYuNGwyMC4zLTE1LjhDNTYyLjYgOTE4LjQgNjE5LjkgOTQ4IDY4NCA5NDhjMTA5LjkgMCAxOTkuNi04Ni45IDIwNC0xOTUuNy4yLTQuNS0zLjUtOC4zLTgtOC4zeicpKTtcbmV4cG9ydHMuRmlsZVByb3RlY3RPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1wcm90ZWN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY0NC43IDY2OS4yYTcuOTIgNy45MiAwIDAgMC02LjUtMy4zSDU5NGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsNzMuOCAxMDIuMWMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDExNC4yLTE1OGMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNDQuM2MtMi42IDAtNSAxLjItNi41IDMuM2wtNjMuNSA4Ny44LTIyLjktMzEuOXpNNjg4IDMwNnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE4NCA0NThIMjA4VjE0OGg1NjB2Mjk2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMxMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDAyLjYtMzIwLjhsLTE5Mi02Ni43Yy0uOS0uMy0xLjctLjQtMi42LS40cy0xLjguMS0yLjYuNGwtMTkyIDY2LjdhNy45NiA3Ljk2IDAgMCAwLTUuNCA3LjV2MjUxLjFjMCAyLjUgMS4xIDQuOCAzLjEgNi4zbDE5MiAxNTAuMmMxLjQgMS4xIDMuMiAxLjcgNC45IDEuN3MzLjUtLjYgNC45LTEuN2wxOTItMTUwLjJjMS45LTEuNSAzLjEtMy44IDMuMS02LjNWNTM4LjdjMC0zLjQtMi4yLTYuNC01LjQtNy41ek04MjYgNzYzLjdMNjg4IDg3MS42IDU1MCA3NjMuN1Y1NzdsMTM4LTQ4IDEzOCA0OHYxODYuN3onKSk7XG5leHBvcnRzLkZpbGVTZWFyY2hPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1zZWFyY2gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjg4IDMxMnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE0NCA0NTJIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI3MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDQ1LjcgNTEuNWwtOTMuMy05My4zQzgxNC43IDc4MC43IDgyOCA3NDMuOSA4MjggNzA0YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2cy0xNzYgNzguOC0xNzYgMTc2IDc4LjggMTc2IDE3NiAxNzZjMzUuOCAwIDY5LTEwLjcgOTYuOC0yOWw5NC43IDk0LjdjMS42IDEuNiAzLjYgMi4zIDUuNiAyLjNzNC4xLS44IDUuNi0yLjNsMzEtMzFhNy45IDcuOSAwIDAgMCAwLTExLjJ6TTY1MiA4MTZjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyczUwLjEtMTEyIDExMi0xMTIgMTEyIDUwLjEgMTEyIDExMi01MC4xIDExMi0xMTIgMTEyeicpKTtcbmV4cG9ydHMuRmlsZUpwZ091dGxpbmUgPSBnZXRJY29uKCdmaWxlLWpwZycsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004NzQuNiAzMDEuOEw1OTYuOCAyMS4zYy00LjUtNC41LTkuNC04LjMtMTQuNy0xMS41LTEuNC0uOC0yLjgtMS42LTQuMy0yLjMtLjktLjUtMS45LS45LTIuOC0xLjMtOS00LTE4LjktNi4yLTI5LTYuMkgyMDFjLTM5LjggMC03MyAzMi4yLTczIDcydjg4MGMwIDM5LjggMzMuMiA3MiA3MyA3Mmg2MjNjMzkuOCAwIDcxLTMyLjIgNzEtNzJWMzUyLjVjMC0xOS03LTM3LjItMjAuNC01MC43ek01ODMgMTEwLjRMNzgzLjggMzEySDU4M1YxMTAuNHpNODIzIDk1MkgyMDBWNzJoMzExdjI0MGMwIDM5LjggMzMuMiA3MiA3MyA3MmgyMzl2NTY4ek0zNTAgNjk2LjVjMCAyNC4yLTcuNSAzMS40LTIxLjkgMzEuNC05IDAtMTguNC01LjgtMjQuOC0xOC41TDI3Mi45IDczMmMxMy40IDIyLjkgMzIuMyAzNC4yIDYxLjMgMzQuMiA0MS42IDAgNjAuOC0yOS45IDYwLjgtNjYuMlY1NzdoLTQ1djExOS41ek01MDEuMyA1NzdINDM3djE4Nmg0NHYtNjJoMjEuNmMzOS4xIDAgNzMuMS0xOS42IDczLjEtNjMuNiAwLTQ1LjgtMzMuNS02MC40LTc0LjQtNjAuNHptLS44IDg5SDQ4MXYtNTNoMTguMmMyMS41IDAgMzMuNCA2LjIgMzMuNCAyNC45IDAgMTguMS0xMC41IDI4LjEtMzIuMSAyOC4xem0xODIuNS05djM2aDMwdjMwLjFjLTQgMi45LTExIDQuNy0xNy43IDQuNy0zNC4zIDAtNTAuNy0yMS40LTUwLjctNTguMiAwLTM2LjEgMTkuNy01Ny40IDQ3LjEtNTcuNCAxNS4zIDAgMjUgNi4yIDM0IDE0LjRsMjMuNy0yOC4zYy0xMi43LTEyLjgtMzIuMS0yNC4yLTU5LjItMjQuMi00OS42IDAtOTEuMSAzNS4zLTkxLjEgOTcgMCA2Mi43IDQwIDk1LjEgOTEuNSA5NS4xIDI1LjkgMCA0OS4yLTEwLjIgNjEuNS0yMi42VjY1N0g2ODN6JykpO1xuZXhwb3J0cy5Gb250Q29sb3JzT3V0bGluZSA9IGdldEljb24oJ2ZvbnQtY29sb3JzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCA4MTZIMTIwYy00LjQgMC04IDMuNi04IDh2ODBjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOHptLTY1MC4zLTgwaDg1YzQuMiAwIDgtMi43IDkuMy02LjhsNTMuNy0xNjZoMjE5LjJsNTMuMiAxNjZjMS4zIDQgNSA2LjggOS4zIDYuOGg4OS4xYzEuMSAwIDIuMi0uMiAzLjItLjVhOS43IDkuNyAwIDAgMCA2LTEyLjRMNTczLjYgMTE4LjZhOS45IDkuOSAwIDAgMC05LjItNi42SDQ2Mi4xYy00LjIgMC03LjkgMi42LTkuMiA2LjZMMjQ0LjUgNzIzLjFjLS40IDEtLjUgMi4xLS41IDMuMi0uMSA1LjMgNC4zIDkuNyA5LjcgOS43em0yNTUuOS01MTYuMWg0LjFsODMuOCAyNjMuOEg0MjQuOWw4NC43LTI2My44eicpKTtcbmV4cG9ydHMuRm9udFNpemVPdXRsaW5lID0gZ2V0SWNvbignZm9udC1zaXplJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyMCA0MTZINjE2Yy00LjQgMC04IDMuNi04IDh2MTEyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTU2aDYwdjMyMGgtNDZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTY0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04aC00NlY0ODBoNjB2NTZjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MjRjMC00LjQtMy42LTgtOC04ek02NTYgMjk2VjE2OGMwLTQuNC0zLjYtOC04LThIMTA0Yy00LjQgMC04IDMuNi04IDh2MTI4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY0aDE2OHY1NjBoLTkyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtOTJWMjMyaDE2OHY2NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04eicpKTtcbmV4cG9ydHMuRm9ya091dGxpbmUgPSBnZXRJY29uKCdmb3JrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc1MiAxMDBjLTYxLjggMC0xMTIgNTAuMi0xMTIgMTEyIDAgNDcuNyAyOS45IDg4LjUgNzIgMTA0LjZ2MjcuNkw1MTIgNjAxLjQgMzEyIDM0NC4ydi0yNy42YzQyLjEtMTYuMSA3Mi01Ni45IDcyLTEwNC42IDAtNjEuOC01MC4yLTExMi0xMTItMTEycy0xMTIgNTAuMi0xMTIgMTEyYzAgNTAuNiAzMy44IDkzLjUgODAgMTA3LjN2MzQuNGMwIDkuNyAzLjMgMTkuMyA5LjMgMjdMNDc2IDY3Mi4zdjMzLjZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xdi0zMy42bDIyNi43LTI5MS42YzYtNy43IDkuMy0xNy4zIDkuMy0yN3YtMzQuNGM0Ni4yLTEzLjggODAtNTYuNyA4MC0xMDcuMyAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnpNMjI0IDIxMmE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTMzNiA2MDBhNDguMDEgNDguMDEgMCAwIDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAgMSA5NiAwem0xOTItNTUyYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLkZvcm1PdXRsaW5lID0gZ2V0SWNvbignZm9ybScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDQgNTEyaC01NmMtNC40IDAtOCAzLjYtOCA4djMyMEgxODRWMTg0aDMyMGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTIwYzAtNC40LTMuNi04LTgtOHonLCAnTTM1NS45IDUzNC45TDM1NCA2NTMuOGMtLjEgOC45IDcuMSAxNi4yIDE2IDE2LjJoLjRsMTE4LTIuOWMyLS4xIDQtLjkgNS40LTIuM2w0MTUuOS00MTVjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w3ODUuNCAxMTQuM2MtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTQxNS44IDQxNWE4LjMgOC4zIDAgMCAwLTIuMyA1LjZ6bTYzLjUgMjMuNkw3NzkuNyAxOTlsNDUuMiA0NS4xLTM2MC41IDM1OS43LTQ1LjcgMS4xLjctNDYuNHonKSk7XG5leHBvcnRzLkZ1bGxzY3JlZW5FeGl0T3V0bGluZSA9IGdldEljb24oJ2Z1bGxzY3JlZW4tZXhpdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zOTEgMjQwLjljLS44LTYuNi04LjktOS40LTEzLjYtNC43bC00My43IDQzLjdMMjAwIDE0Ni4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTQyLjQgNDIuM2E4LjAzIDguMDMgMCAwIDAgMCAxMS4zTDI4MCAzMzMuNmwtNDMuOSA0My45YTguMDEgOC4wMSAwIDAgMCA0LjcgMTMuNkw0MDEgNDEwYzUuMS42IDkuNS0zLjcgOC45LTguOUwzOTEgMjQwLjl6bTEwLjEgMzczLjJMMjQwLjggNjMzYy02LjYuOC05LjQgOC45LTQuNyAxMy42bDQzLjkgNDMuOUwxNDYuMyA4MjRhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0Mi40IDQyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEwzMzMuNyA3NDRsNDMuNyA0My43QTguMDEgOC4wMSAwIDAgMCAzOTEgNzgzbDE4LjktMTYwLjFjLjYtNS4xLTMuNy05LjQtOC44LTguOHptMjIxLjgtMjA0LjJMNzgzLjIgMzkxYzYuNi0uOCA5LjQtOC45IDQuNy0xMy42TDc0NCAzMzMuNiA4NzcuNyAyMDBjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDIuNC00Mi4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNjkwLjMgMjc5LjlsLTQzLjctNDMuN2E4LjAxIDguMDEgMCAwIDAtMTMuNiA0LjdMNjE0LjEgNDAxYy0uNiA1LjIgMy43IDkuNSA4LjggOC45ek03NDQgNjkwLjRsNDMuOS00My45YTguMDEgOC4wMSAwIDAgMC00LjctMTMuNkw2MjMgNjE0Yy01LjEtLjYtOS41IDMuNy04LjkgOC45TDYzMyA3ODMuMWMuOCA2LjYgOC45IDkuNCAxMy42IDQuN2w0My43LTQzLjdMODI0IDg3Ny43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDIuNC00Mi4zYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNzQ0IDY5MC40eicpKTtcbmV4cG9ydHMuRnVsbHNjcmVlbk91dGxpbmUgPSBnZXRJY29uKCdmdWxsc2NyZWVuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI5MCAyMzYuNGw0My45LTQzLjlhOC4wMSA4LjAxIDAgMCAwLTQuNy0xMy42TDE2OSAxNjBjLTUuMS0uNi05LjUgMy43LTguOSA4LjlMMTc5IDMyOS4xYy44IDYuNiA4LjkgOS40IDEzLjYgNC43bDQzLjctNDMuN0wzNzAgNDIzLjdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0Mi40LTQyLjNjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0wyOTAgMjM2LjR6bTM1Mi43IDE4Ny4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTMzLjctMTMzLjYgNDMuNyA0My43YTguMDEgOC4wMSAwIDAgMCAxMy42LTQuN0w4NjMuOSAxNjljLjYtNS4xLTMuNy05LjUtOC45LTguOUw2OTQuOCAxNzljLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNDMuOSA0My45TDYwMC4zIDM3MGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNHpNODQ1IDY5NC45Yy0uOC02LjYtOC45LTkuNC0xMy42LTQuN2wtNDMuNyA0My43TDY1NCA2MDAuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC00Mi40IDQyLjNhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w3MzQgNzg3LjZsLTQzLjkgNDMuOWE4LjAxIDguMDEgMCAwIDAgNC43IDEzLjZMODU1IDg2NGM1LjEuNiA5LjUtMy43IDguOS04LjlMODQ1IDY5NC45em0tNDYzLjctOTQuNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDIzNi4zIDczMy45bC00My43LTQzLjdhOC4wMSA4LjAxIDAgMCAwLTEzLjYgNC43TDE2MC4xIDg1NWMtLjYgNS4xIDMuNyA5LjUgOC45IDguOUwzMjkuMiA4NDVjNi42LS44IDkuNC04LjkgNC43LTEzLjZMMjkwIDc4Ny42IDQyMy43IDY1NGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00Mi40LTQyLjR6JykpO1xuZXhwb3J0cy5HYXRld2F5T3V0bGluZSA9IGdldEljb24oJ2dhdGV3YXknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDM5MmM4LjggMCAxNi03LjIgMTYtMTZWMTkyYzAtOC44LTcuMi0xNi0xNi0xNkg3NDRjLTguOCAwLTE2IDcuMi0xNiAxNnY1NkgyOTZ2LTU2YzAtOC44LTcuMi0xNi0xNi0xNkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2djE4NGMwIDguOCA3LjIgMTYgMTYgMTZoNTZ2MjQwSDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTg0YzAgOC44IDcuMiAxNiAxNiAxNmgxODRjOC44IDAgMTYtNy4yIDE2LTE2di01Nmg0MzJ2NTZjMCA4LjggNy4yIDE2IDE2IDE2aDE4NGM4LjggMCAxNi03LjIgMTYtMTZWNjQ4YzAtOC44LTcuMi0xNi0xNi0xNmgtNTZWMzkyaDU2ek03OTIgMjQwaDg4djg4aC04OHYtODh6bS02NDggODh2LTg4aDg4djg4aC04OHptODggNDU2aC04OHYtODhoODh2ODh6bTY0OC04OHY4OGgtODh2LTg4aDg4em0tODAtNjRoLTU2Yy04LjggMC0xNiA3LjItMTYgMTZ2NTZIMjk2di01NmMwLTguOC03LjItMTYtMTYtMTZoLTU2VjM5Mmg1NmM4LjggMCAxNi03LjIgMTYtMTZ2LTU2aDQzMnY1NmMwIDguOCA3LjIgMTYgMTYgMTZoNTZ2MjQweicpKTtcbmV4cG9ydHMuRG93bk91dGxpbmUgPSBnZXRJY29uKCdkb3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3onKSk7XG5leHBvcnRzLkRyYWdPdXRsaW5lID0gZ2V0SWNvbignZHJhZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDkuMyA1MDYuM0w3ODEuNyA0MDUuNmE3LjIzIDcuMjMgMCAwIDAtMTEuNyA1LjdWNDc2SDU0OFYyNTRoNjQuOGM2IDAgOS40LTcgNS43LTExLjdMNTE3LjcgMTE0LjdhNy4xNCA3LjE0IDAgMCAwLTExLjMgMEw0MDUuNiAyNDIuM2E3LjIzIDcuMjMgMCAwIDAgNS43IDExLjdINDc2djIyMkgyNTR2LTY0LjhjMC02LTctOS40LTExLjctNS43TDExNC43IDUwNi4zYTcuMTQgNy4xNCAwIDAgMCAwIDExLjNsMTI3LjUgMTAwLjhjNC43IDMuNyAxMS43LjQgMTEuNy01LjdWNTQ4aDIyMnYyMjJoLTY0LjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU0OFY1NDhoMjIydjY0LjhjMCA2IDcgOS40IDExLjcgNS43bDEyNy41LTEwMC44YTcuMyA3LjMgMCAwIDAgLjEtMTEuNHonKSk7XG5leHBvcnRzLkdsb2JhbE91dGxpbmUgPSBnZXRJY29uKCdnbG9iYWwnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjQgODAwLjljLjItLjMuNS0uNi43LS45QzkyMC42IDcyMi4xIDk2MCA2MjEuNyA5NjAgNTEycy0zOS40LTIxMC4xLTEwNC44LTI4OGMtLjItLjMtLjUtLjUtLjctLjgtMS4xLTEuMy0yLjEtMi41LTMuMi0zLjctLjQtLjUtLjgtLjktMS4yLTEuNGwtNC4xLTQuNy0uMS0uMWMtMS41LTEuNy0zLjEtMy40LTQuNi01LjFsLS4xLS4xYy0zLjItMy40LTYuNC02LjgtOS43LTEwLjFsLS4xLS4xLTQuOC00LjgtLjMtLjNjLTEuNS0xLjUtMy0yLjktNC41LTQuMy0uNS0uNS0xLTEtMS42LTEuNS0xLTEtMi0xLjktMy0yLjgtLjMtLjMtLjctLjYtMS0xQzczNi40IDEwOS4yIDYyOS41IDY0IDUxMiA2NHMtMjI0LjQgNDUuMi0zMDQuMyAxMTkuMmMtLjMuMy0uNy42LTEgMS0xIC45LTIgMS45LTMgMi45LS41LjUtMSAxLTEuNiAxLjUtMS41IDEuNC0zIDIuOS00LjUgNC4zbC0uMy4zLTQuOCA0LjgtLjEuMWMtMy4zIDMuMy02LjUgNi43LTkuNyAxMC4xbC0uMS4xYy0xLjYgMS43LTMuMSAzLjQtNC42IDUuMWwtLjEuMWMtMS40IDEuNS0yLjggMy4xLTQuMSA0LjctLjQuNS0uOC45LTEuMiAxLjQtMS4xIDEuMi0yLjEgMi41LTMuMiAzLjctLjIuMy0uNS41LS43LjhDMTAzLjQgMzAxLjkgNjQgNDAyLjMgNjQgNTEyczM5LjQgMjEwLjEgMTA0LjggMjg4Yy4yLjMuNS42LjcuOWwzLjEgMy43Yy40LjUuOC45IDEuMiAxLjRsNC4xIDQuN2MwIC4xLjEuMS4xLjIgMS41IDEuNyAzIDMuNCA0LjYgNWwuMS4xYzMuMiAzLjQgNi40IDYuOCA5LjYgMTAuMWwuMS4xYzEuNiAxLjYgMy4xIDMuMiA0LjcgNC43bC4zLjNjMy4zIDMuMyA2LjcgNi41IDEwLjEgOS42IDgwLjEgNzQgMTg3IDExOS4yIDMwNC41IDExOS4yczIyNC40LTQ1LjIgMzA0LjMtMTE5LjJhMzAwIDMwMCAwIDAgMCAxMC05LjZsLjMtLjNjMS42LTEuNiAzLjItMy4xIDQuNy00LjdsLjEtLjFjMy4zLTMuMyA2LjUtNi43IDkuNi0xMC4xbC4xLS4xYzEuNS0xLjcgMy4xLTMuMyA0LjYtNSAwLS4xLjEtLjEuMS0uMiAxLjQtMS41IDIuOC0zLjEgNC4xLTQuNy40LS41LjgtLjkgMS4yLTEuNGE5OSA5OSAwIDAgMCAzLjMtMy43em00LjEtMTQyLjZjLTEzLjggMzIuNi0zMiA2Mi44LTU0LjIgOTAuMmE0NDQuMDcgNDQ0LjA3IDAgMCAwLTgxLjUtNTUuOWMxMS42LTQ2LjkgMTguOC05OC40IDIwLjctMTUyLjZIODg3Yy0zIDQwLjktMTIuNiA4MC42LTI4LjUgMTE4LjN6TTg4NyA0ODRINzQzLjVjLTEuOS01NC4yLTkuMS0xMDUuNy0yMC43LTE1Mi42IDI5LjMtMTUuNiA1Ni42LTM0LjQgODEuNS01NS45QTM3My44NiAzNzMuODYgMCAwIDEgODg3IDQ4NHpNNjU4LjMgMTY1LjVjMzkuNyAxNi44IDc1LjggNDAgMTA3LjYgNjkuMmEzOTQuNzIgMzk0LjcyIDAgMCAxLTU5LjQgNDEuOGMtMTUuNy00NS0zNS44LTg0LjEtNTkuMi0xMTUuNCAzLjcgMS40IDcuNCAyLjkgMTEgNC40em0tOTAuNiA3MDAuNmMtOS4yIDcuMi0xOC40IDEyLjctMjcuNyAxNi40VjY5N2EzODkuMSAzODkuMSAwIDAgMSAxMTUuNyAyNi4yYy04LjMgMjQuNi0xNy45IDQ3LjMtMjkgNjcuOC0xNy40IDMyLjQtMzcuOCA1OC4zLTU5IDc1LjF6bTU5LTYzMy4xYzExIDIwLjYgMjAuNyA0My4zIDI5IDY3LjhBMzg5LjEgMzg5LjEgMCAwIDEgNTQwIDMyN1YxNDEuNmM5LjIgMy43IDE4LjUgOS4xIDI3LjcgMTYuNCAyMS4yIDE2LjcgNDEuNiA0Mi42IDU5IDc1ek01NDAgNjQwLjlWNTQwaDE0Ny41Yy0xLjYgNDQuMi03LjEgODcuMS0xNi4zIDEyNy44bC0uMyAxLjJBNDQ1LjAyIDQ0NS4wMiAwIDAgMCA1NDAgNjQwLjl6bTAtMTU2LjlWMzgzLjFjNDUuOC0yLjggODkuOC0xMi41IDEzMC45LTI4LjFsLjMgMS4yYzkuMiA0MC43IDE0LjcgODMuNSAxNi4zIDEyNy44SDU0MHptLTU2IDU2djEwMC45Yy00NS44IDIuOC04OS44IDEyLjUtMTMwLjkgMjguMWwtLjMtMS4yYy05LjItNDAuNy0xNC43LTgzLjUtMTYuMy0xMjcuOEg0ODR6bS0xNDcuNS01NmMxLjYtNDQuMiA3LjEtODcuMSAxNi4zLTEyNy44bC4zLTEuMmM0MS4xIDE1LjYgODUgMjUuMyAxMzAuOSAyOC4xVjQ4NEgzMzYuNXpNNDg0IDY5N3YxODUuNGMtOS4yLTMuNy0xOC41LTkuMS0yNy43LTE2LjQtMjEuMi0xNi43LTQxLjctNDIuNy01OS4xLTc1LjEtMTEtMjAuNi0yMC43LTQzLjMtMjktNjcuOCAzNy4yLTE0LjYgNzUuOS0yMy4zIDExNS44LTI2LjF6bTAtMzcwYTM4OS4xIDM4OS4xIDAgMCAxLTExNS43LTI2LjJjOC4zLTI0LjYgMTcuOS00Ny4zIDI5LTY3LjggMTcuNC0zMi40IDM3LjgtNTguNCA1OS4xLTc1LjEgOS4yLTcuMiAxOC40LTEyLjcgMjcuNy0xNi40VjMyN3pNMzY1LjcgMTY1LjVjMy43LTEuNSA3LjMtMyAxMS00LjQtMjMuNCAzMS4zLTQzLjUgNzAuNC01OS4yIDExNS40LTIxLTEyLTQwLjktMjYtNTkuNC00MS44IDMxLjgtMjkuMiA2Ny45LTUyLjQgMTA3LjYtNjkuMnpNMTY1LjUgMzY1LjdjMTMuOC0zMi42IDMyLTYyLjggNTQuMi05MC4yIDI0LjkgMjEuNSA1Mi4yIDQwLjMgODEuNSA1NS45LTExLjYgNDYuOS0xOC44IDk4LjQtMjAuNyAxNTIuNkgxMzdjMy00MC45IDEyLjYtODAuNiAyOC41LTExOC4zek0xMzcgNTQwaDE0My41YzEuOSA1NC4yIDkuMSAxMDUuNyAyMC43IDE1Mi42YTQ0NC4wNyA0NDQuMDcgMCAwIDAtODEuNSA1NS45QTM3My44NiAzNzMuODYgMCAwIDEgMTM3IDU0MHptMjI4LjcgMzE4LjVjLTM5LjctMTYuOC03NS44LTQwLTEwNy42LTY5LjIgMTguNS0xNS44IDM4LjQtMjkuNyA1OS40LTQxLjggMTUuNyA0NSAzNS44IDg0LjEgNTkuMiAxMTUuNC0zLjctMS40LTcuNC0yLjktMTEtNC40em0yOTIuNiAwYy0zLjcgMS41LTcuMyAzLTExIDQuNCAyMy40LTMxLjMgNDMuNS03MC40IDU5LjItMTE1LjQgMjEgMTIgNDAuOSAyNiA1OS40IDQxLjhhMzczLjgxIDM3My44MSAwIDAgMS0xMDcuNiA2OS4yeicpKTtcbmV4cG9ydHMuR29vZ2xlUGx1c091dGxpbmUgPSBnZXRJY29uKCdnb29nbGUtcGx1cycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzkuNSA0NzAuNGMtLjMtMjctLjQtNTQuMi0uNS04MS4zaC04MC44Yy0uMyAyNy0uNSA1NC4xLS43IDgxLjMtMjcuMi4xLTU0LjIuMy04MS4yLjZ2ODAuOWMyNyAuMyA1NC4yLjUgODEuMi44LjMgMjcgLjMgNTQuMS41IDgxLjFoODAuOWMuMS0yNyAuMy01NC4xLjUtODEuMyAyNy4yLS4zIDU0LjItLjQgODEuMi0uN3YtODAuOWMtMjYuOS0uMi01NC4xLS4yLTgxLjEtLjV6bS01MzAgLjRjLS4xIDMyLjMgMCA2NC43LjEgOTcgNTQuMiAxLjggMTA4LjUgMSAxNjIuNyAxLjgtMjMuOSAxMjAuMy0xODcuNCAxNTkuMy0yNzMuOSA4MC43LTg5LTY4LjktODQuOC0yMjAgNy43LTI4NCA2NC43LTUxLjYgMTU2LjYtMzguOSAyMjEuMyA1LjggMjUuNC0yMy41IDQ5LjItNDguNyA3Mi4xLTc0LjctNTMuOC00Mi45LTExOS44LTczLjUtMTkwLTcwLjMtMTQ2LjYtNC45LTI4MS4zIDEyMy41LTI4My43IDI3MC4yLTkuNCAxMTkuOSA2OS40IDIzNy40IDE4MC42IDI3OS44IDExMC44IDQyLjcgMjUyLjkgMTMuNiAzMjMuNy04NiA0Ni43LTYyLjkgNTYuOC0xNDMuOSA1MS4zLTIyMC05MC43LS43LTE4MS4zLS42LTI3MS45LS4zeicpKTtcbmV4cG9ydHMuR29vZ2xlT3V0bGluZSA9IGdldEljb24oJ2dvb2dsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODEgNDQyLjRINTE5Ljd2MTQ4LjVoMjA2LjRjLTguOSA0OC0zNS45IDg4LjYtNzYuNiAxMTUuOC0zNC40IDIzLTc4LjMgMzYuNi0xMjkuOSAzNi42LTk5LjkgMC0xODQuNC02Ny41LTIxNC42LTE1OC4yLTcuNi0yMy0xMi00Ny42LTEyLTcyLjlzNC40LTQ5LjkgMTItNzIuOWMzMC4zLTkwLjYgMTE0LjgtMTU4LjEgMjE0LjctMTU4LjEgNTYuMyAwIDEwNi44IDE5LjQgMTQ2LjYgNTcuNGwxMTAtMTEwLjFjLTY2LjUtNjItMTUzLjItMTAwLTI1Ni42LTEwMC0xNDkuOSAwLTI3OS42IDg2LTM0Mi43IDIxMS40LTI2IDUxLjgtNDAuOCAxMTAuNC00MC44IDE3Mi40UzE1MSA2MzIuOCAxNzcgNjg0LjZDMjQwLjEgODEwIDM2OS44IDg5NiA1MTkuNyA4OTZjMTAzLjYgMCAxOTAuNC0zNC40IDI1My44LTkzIDcyLjUtNjYuOCAxMTQuNC0xNjUuMiAxMTQuNC0yODIuMSAwLTI3LjItMi40LTUzLjMtNi45LTc4LjV6JykpO1xuZXhwb3J0cy5IZWF0TWFwT3V0bGluZSA9IGdldEljb24oJ2hlYXQtbWFwJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1NS43IDg1NmwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHptLTc5MC40LTIzLjlMNTEyIDIzMS45IDg1OC43IDgzMkgxNjUuM3ptMzE5LTQ3NC4xbC0yMjggMzk0Yy0xMi4zIDIxLjMgMy4xIDQ4IDI3LjcgNDhoNDU1LjhjMjQuNyAwIDQwLjEtMjYuNyAyNy43LTQ4TDUzOS43IDM1OGMtNi4yLTEwLjctMTctMTYtMjcuNy0xNi0xMC44IDAtMjEuNiA1LjMtMjcuNyAxNnptMjE0IDM4NkgzMjUuN0w1MTIgNDIybDE4Ni4zIDMyMnptLTIxNC0xOTQuMWwtNTcgOTguNEM0MTUgNjY5LjUgNDMwLjQgNjk2IDQ1NSA2OTZoMTE0YzI0LjYgMCAzOS45LTI2LjUgMjcuNy00Ny43bC01Ny05OC40Yy02LjEtMTAuNi0xNi45LTE1LjktMjcuNy0xNS45cy0yMS41IDUuMy0yNy43IDE1Ljl6bTU3LjEgOTguNGgtNTguN2wyOS40LTUwLjcgMjkuMyA1MC43eicpKTtcbmV4cG9ydHMuR29sZE91dGxpbmUgPSBnZXRJY29uKCdnb2xkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM0MiA0NzJoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDM4Mi4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOHptOTEuMi0xOTZoMTU5LjVsMjAuNyAxMjhoLTIwMWwyMC44LTEyOHptMi41IDI4Mi43Yy0uNi0zLjktNC02LjctNy45LTYuN0gxNjYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDh6TTE5Ni41IDc0OGwyMC43LTEyOGgxNTkuNWwyMC43IDEyOEgxOTYuNXptNzA5LjQgNTguN2wtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDU5Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjMtLjcgNy4zLTQuOCA2LjYtOS4yek02MjYuNSA3NDhsMjAuNy0xMjhoMTU5LjVsMjAuNyAxMjhINjI2LjV6JykpO1xuZXhwb3J0cy5IaXN0b3J5T3V0bGluZSA9IGdldEljb24oJ2hpc3RvcnknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTM2LjEgMjczSDQ4OGMtNC40IDAtOCAzLjYtOCA4djI3NS4zYzAgMi42IDEuMiA1IDMuMyA2LjVsMTY1LjMgMTIwLjdjMy42IDIuNiA4LjYgMS45IDExLjItMS43bDI4LjYtMzljMi43LTMuNyAxLjktOC43LTEuNy0xMS4yTDU0NC4xIDUyOC41VjI4MWMwLTQuNC0zLjYtOC04LTh6bTIxOS44IDc1LjJsMTU2LjggMzguM2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTYxLjVjMC02LjctNy43LTEwLjUtMTIuOS02LjNMNzUyLjkgMzM0LjFhOCA4IDAgMCAwIDMgMTQuMXptMTY3LjcgMzAxLjFsLTU2LjctMTkuNWE4IDggMCAwIDAtMTAuMSA0LjhjLTEuOSA1LjEtMy45IDEwLjEtNiAxNS4xLTE3LjggNDIuMS00My4zIDgwLTc1LjkgMTEyLjVhMzUzIDM1MyAwIDAgMS0xMTIuNSA3NS45IDM1Mi4xOCAzNTIuMTggMCAwIDEtMTM3LjcgMjcuOGMtNDcuOCAwLTk0LjEtOS4zLTEzNy43LTI3LjhhMzUzIDM1MyAwIDAgMS0xMTIuNS03NS45Yy0zMi41LTMyLjUtNTgtNzAuNC03NS45LTExMi41QTM1My40NCAzNTMuNDQgMCAwIDEgMTcxIDUxMmMwLTQ3LjggOS4zLTk0LjIgMjcuOC0xMzcuOCAxNy44LTQyLjEgNDMuMy04MCA3NS45LTExMi41YTM1MyAzNTMgMCAwIDEgMTEyLjUtNzUuOUM0MzAuNiAxNjcuMyA0NzcgMTU4IDUyNC44IDE1OHM5NC4xIDkuMyAxMzcuNyAyNy44QTM1MyAzNTMgMCAwIDEgNzc1IDI2MS43YzEwLjIgMTAuMyAxOS44IDIxIDI4LjYgMzIuM2w1OS44LTQ2LjhDNzg0LjcgMTQ2LjYgNjYyLjIgODEuOSA1MjQuNiA4MiAyODUgODIuMSA5Mi42IDI3Ni43IDk1IDUxNi40IDk3LjQgNzUxLjkgMjg4LjkgOTQyIDUyNC44IDk0MmMxODUuNSAwIDM0My41LTExNy42IDQwMy43LTI4Mi4zIDEuNS00LjItLjctOC45LTQuOS0xMC40eicpKTtcbmV4cG9ydHMuSWVPdXRsaW5lID0gZ2V0SWNvbignaWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODUyLjYgMzY3LjZjMTYuMy0zNi45IDMyLjEtOTAuNyAzMi4xLTEzMS44IDAtMTA5LjEtMTE5LjUtMTQ3LjYtMzE0LjUtNTcuOS0xNjEuNC0xMC44LTMxNi44IDExMC41LTM1NS42IDI3OS43IDQ2LjMtNTIuMyAxMTcuNC0xMjMuNCAxODMtMTUxLjdDMzE2LjEgMzc4LjMgMjQ2LjcgNDcwIDE5NCA1NjUuNmMtMzEuMSA1Ni45LTY2IDE0OC44LTY2IDIxNy41IDAgMTQ3LjkgMTM5LjMgMTI5LjggMjcwLjQgNjMgNDcuMSAyMy4xIDk5LjggMjMuNCAxNTIuNSAyMy40IDE0NS43IDAgMjc2LjQtODEuNCAzMjUuMi0yMTlINjk0LjljLTc4LjggMTMyLjktMjk1LjIgNzkuNS0yOTUuMi03MS4yaDQ5My4yYzkuNi02NS40LTIuNS0xNDMuNi00MC4zLTIxMS43ek0yMjQuOCA2NDguM2MyNi42IDc2LjcgODAuNiAxNDMuOCAxNTAuNCAxODUtMTMzLjEgNzMuNC0yNTkuOSA0My42LTE1MC40LTE4NXptMTc0LTE2My4zYzMtODIuNyA3NS40LTE0Mi4zIDE1Ni0xNDIuMyA4MC4xIDAgMTUzIDU5LjYgMTU2IDE0Mi4zaC0zMTJ6bTI3Ni44LTI4MS40YzMyLjEtMTUuNCA3Mi44LTMzIDEwOC44LTMzIDQ3LjEgMCA4MS40IDMyLjYgODEuNCA4MC42IDAgMzAtMTEuMSA3My41LTIxLjkgMTAxLjgtMzkuMy02My41LTk4LjktMTIyLjQtMTY4LjMtMTQ5LjR6JykpO1xuZXhwb3J0cy5JbmJveE91dGxpbmUgPSBnZXRJY29uKCdpbmJveCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004ODUuMiA0NDYuM2wtLjItLjgtMTEyLjItMjg1LjFjLTUtMTYuMS0xOS45LTI3LjItMzYuOC0yNy4ySDI4MS4yYy0xNyAwLTMyLjEgMTEuMy0zNi45IDI3LjZMMTM5LjQgNDQzbC0uMy43LS4yLjhjLTEuMyA0LjktMS43IDkuOS0xIDE0LjgtLjEgMS42LS4yIDMuMi0uMiA0LjhWODMwYTYwLjkgNjAuOSAwIDAgMCA2MC44IDYwLjhoNjI3LjJjMzMuNSAwIDYwLjgtMjcuMyA2MC45LTYwLjhWNDY0LjFjMC0xLjMgMC0yLjYtLjEtMy43LjQtNC45IDAtOS42LTEuMy0xNC4xem0tMjk1LjgtNDNsLS4zIDE1LjdjLS44IDQ0LjktMzEuOCA3NS4xLTc3LjEgNzUuMS0yMi4xIDAtNDEuMS03LjEtNTQuOC0yMC42UzQzNiA0NDEuMiA0MzUuNiA0MTlsLS4zLTE1LjdIMjI5LjVMMzA5IDIxMGgzOTkuMmw4MS43IDE5My4zSDU4OS40em0tMzc1IDc2LjhoMTU3LjNjMjQuMyA1Ny4xIDc2IDkwLjggMTQwLjQgOTAuOCAzMy43IDAgNjUtOS40IDkwLjMtMjcuMiAyMi4yLTE1LjYgMzkuNS0zNy40IDUwLjctNjMuNmgxNTYuNVY4MTRIMjE0LjRWNDgwLjF6JykpO1xuZXhwb3J0cy5JbXBvcnRPdXRsaW5lID0gZ2V0SWNvbignaW1wb3J0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OC4zIDc1Ny40aC01My44Yy00LjIgMC03LjcgMy41LTcuNyA3Ljd2NjEuOEgxOTcuMVYxOTcuMWg2MjkuOHY2MS44YzAgNC4yIDMuNSA3LjcgNy43IDcuN2g1My44YzQuMiAwIDcuNy0zLjQgNy43LTcuN1YxNTguN2MwLTE3LTEzLjctMzAuNy0zMC43LTMwLjdIMTU4LjdjLTE3IDAtMzAuNyAxMy43LTMwLjcgMzAuN3Y3MDYuNmMwIDE3IDEzLjcgMzAuNyAzMC43IDMwLjdoNzA2LjZjMTcgMCAzMC43LTEzLjcgMzAuNy0zMC43Vjc2NS4xYzAtNC4zLTMuNS03LjctNy43LTcuN3pNOTAyIDQ3Nkg1ODh2LTc2YzAtNi43LTcuOC0xMC41LTEzLTYuM2wtMTQxLjkgMTEyYTggOCAwIDAgMCAwIDEyLjZsMTQxLjkgMTEyYzUuMyA0LjIgMTMgLjQgMTMtNi4zdi03NmgzMTRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5JbmZvT3V0bGluZSA9IGdldEljb24oJ2luZm8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQ4IDIyNGE2NCA2NCAwIDEgMCAxMjggMCA2NCA2NCAwIDEgMC0xMjggMHptOTYgMTY4aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjQwMGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5JdGFsaWNPdXRsaW5lID0gZ2V0SWNvbignaXRhbGljJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc5OCAxNjBIMzY2Yy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDE4MS4ybC0xNTYgNTQ0SDIyOWMtNC40IDAtOCAzLjYtOCA4djY0YzAgNC40IDMuNiA4IDggOGg0MzJjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LThINDc0LjRsMTU2LTU0NEg3OThjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Jc3N1ZXNDbG9zZU91dGxpbmUgPSBnZXRJY29uKCdpc3N1ZXMtY2xvc2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDY0IDY4OGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTcyLTExMmM0LjQgMCA4LTMuNiA4LThWMjk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4aDQ4em00MDAtMTg4aC01OS4zYy0yLjYgMC01IDEuMi02LjUgMy4zTDc2My43IDUzOC4xbC00OS45LTY4LjhhNy45MiA3LjkyIDAgMCAwLTYuNS0zLjNINjQ4Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMDkuMiAxNTAuN2ExNi4xIDE2LjEgMCAwIDAgMjYgMGwxNjUuOC0yMjguN2MzLjgtNS4zIDAtMTIuNy02LjUtMTIuN3ptLTQ0IDMwNmgtNjQuMmMtNS41IDAtMTAuNiAyLjktMTMuNiA3LjVhMzUyLjIgMzUyLjIgMCAwIDEtNDkuOCA2Mi4yQTM1NS45MiAzNTUuOTIgMCAwIDEgNjUxLjEgODQwYTM1NSAzNTUgMCAwIDEtMTM4LjcgMjcuOWMtNDguMSAwLTk0LjgtOS40LTEzOC43LTI3LjlhMzU1LjkyIDM1NS45MiAwIDAgMS0xMTMuMy03Ni4zQTM1My4wNiAzNTMuMDYgMCAwIDEgMTg0IDY1MC41Yy0xOC42LTQzLjgtMjgtOTAuNS0yOC0xMzguNXM5LjQtOTQuNyAyOC0xMzguNWMxNy45LTQyLjQgNDMuNi04MC41IDc2LjQtMTEzLjIgMzIuOC0zMi43IDcwLjktNTguNCAxMTMuMy03Ni4zYTM1NSAzNTUgMCAwIDEgMTM4LjctMjcuOWM0OC4xIDAgOTQuOCA5LjQgMTM4LjcgMjcuOSA0Mi40IDE3LjkgODAuNSA0My42IDExMy4zIDc2LjMgMTkgMTkgMzUuNiAzOS44IDQ5LjggNjIuMiAyLjkgNC43IDguMSA3LjUgMTMuNiA3LjVIODkyYzYgMCA5LjgtNi4zIDcuMi0xMS42QzgyOC44IDE3OC41IDY4NC43IDgyIDUxNy43IDgwIDI3OC45IDc3LjIgODAuNSAyNzIuNSA4MCA1MTEuMiA3OS41IDc1MC4xIDI3My4zIDk0NCA1MTIuNCA5NDRjMTY5LjIgMCAzMTUuNi05NyAzODYuNy0yMzguNEE4IDggMCAwIDAgODkyIDY5NHonKSk7XG5leHBvcnRzLktleU91dGxpbmUgPSBnZXRJY29uKCdrZXknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjA4IDExMmMtMTY3LjkgMC0zMDQgMTM2LjEtMzA0IDMwNCAwIDcwLjMgMjMuOSAxMzUgNjMuOSAxODYuNWwtNDEuMSA0MS4xLTYyLjMtNjIuM2E4LjE1IDguMTUgMCAwIDAtMTEuNCAwbC0zOS44IDM5LjhhOC4xNSA4LjE1IDAgMCAwIDAgMTEuNGw2Mi4zIDYyLjMtNDQuOSA0NC45LTYyLjMtNjIuM2E4LjE1IDguMTUgMCAwIDAtMTEuNCAwbC0zOS44IDM5LjhhOC4xNSA4LjE1IDAgMCAwIDAgMTEuNGw2Mi4zIDYyLjMtNjUuMyA2NS4zYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuMyA0Mi4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjUzLjYtMjUzLjZBMzA0LjA2IDMwNC4wNiAwIDAgMCA2MDggNzIwYzE2Ny45IDAgMzA0LTEzNi4xIDMwNC0zMDRTNzc1LjkgMTEyIDYwOCAxMTJ6bTE2MS4yIDQ2NS4yQzcyNi4yIDYyMC4zIDY2OC45IDY0NCA2MDggNjQ0Yy02MC45IDAtMTE4LjItMjMuNy0xNjEuMi02Ni44LTQzLjEtNDMtNjYuOC0xMDAuMy02Ni44LTE2MS4yIDAtNjAuOSAyMy43LTExOC4yIDY2LjgtMTYxLjIgNDMtNDMuMSAxMDAuMy02Ni44IDE2MS4yLTY2LjggNjAuOSAwIDExOC4yIDIzLjcgMTYxLjIgNjYuOCA0My4xIDQzIDY2LjggMTAwLjMgNjYuOCAxNjEuMiAwIDYwLjktMjMuNyAxMTguMi02Ni44IDE2MS4yeicpKTtcbmV4cG9ydHMuTGFwdG9wT3V0bGluZSA9IGdldEljb24oJ2xhcHRvcCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTYuOSA4NDUuMUw4OTYuNCA2MzJWMTY4YzAtMTcuNy0xNC4zLTMyLTMyLTMyaC03MDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ2NEw2Ny45IDg0NS4xQzYwLjQgODY2IDc1LjggODg4IDk4IDg4OGg4MjguOGMyMi4yIDAgMzcuNi0yMiAzMC4xLTQyLjl6TTIwMC40IDIwOGg2MjR2Mzk1aC02MjRWMjA4em0yMjguMyA2MDhsOC4xLTM3aDE1MC4zbDguMSAzN0g0MjguN3ptMjI0IDBsLTE5LjEtODYuN2MtLjgtMy43LTQuMS02LjMtNy44LTYuM0gzOTguMmMtMy44IDAtNyAyLjYtNy44IDYuM0wzNzEuMyA4MTZIMTUxbDQyLjMtMTQ5aDYzOC4ybDQyLjMgMTQ5SDY1Mi43eicpKTtcbmV4cG9ydHMuTGVmdE91dGxpbmUgPSBnZXRJY29uKCdsZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwIDAgMCA1MC4zbDQ1MC44IDM1Mi4xYzUuMyA0LjEgMTIuOS40IDEyLjktNi4zdi03Ny4zYzAtNC45LTIuMy05LjYtNi4xLTEyLjZsLTM2MC0yODEgMzYwLTI4MS4xYzMuOC0zIDYuMS03LjcgNi4xLTEyLjZ6JykpO1xuZXhwb3J0cy5MaW5rT3V0bGluZSA9IGdldEljb24oJ2xpbmsnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTc0IDY2NS40YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNDQ2LjUgNzgxLjZjLTUzLjggNTMuOC0xNDQuNiA1OS41LTIwNCAwLTU5LjUtNTkuNS01My44LTE1MC4yIDAtMjA0bDExNi4yLTExNi4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM5LjgtMzkuOGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDE5MS40IDUyNi41Yy04NC42IDg0LjYtODQuNiAyMjEuNSAwIDMwNnMyMjEuNSA4NC42IDMwNiAwbDExNi4yLTExNi4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNTc0IDY2NS40em0yNTguNi00NzRjLTg0LjYtODQuNi0yMjEuNS04NC42LTMwNiAwTDQxMC4zIDMwNy42YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzkuNyAzOS43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTE2LjItMTE2LjJjNTMuOC01My44IDE0NC42LTU5LjUgMjA0IDAgNTkuNSA1OS41IDUzLjggMTUwLjIgMCAyMDRMNjY1LjMgNTYyLjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzOS44IDM5LjhjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMTYuMi0xMTYuMmM4NC41LTg0LjYgODQuNS0yMjEuNSAwLTMwNi4xek02MTAuMSAzNzIuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDM3Mi4zIDU5OC43YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzkuNiAzOS42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjI2LjQtMjI2LjRjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzkuNS0zOS42eicpKTtcbmV4cG9ydHMuTGluZUNoYXJ0T3V0bGluZSA9IGdldEljb24oJ2xpbmUtY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc5MkgyMDBWMTY4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDc1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzA1LjggNjM3LjdjMy4xIDMuMSA4LjEgMy4xIDExLjMgMGwxMzguMy0xMzcuNkw1ODMgNjI4LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyNzUuNC0yNzUuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS42LTM5LjZhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMjMwIDIyOS45TDQ2MS40IDQwNGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDI2Ni4zIDU4Ni43YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzkuNSAzOS43eicpKTtcbmV4cG9ydHMuTGluZUhlaWdodE91dGxpbmUgPSBnZXRJY29uKCdsaW5lLWhlaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NDggMTYwSDEwNGMtNC40IDAtOCAzLjYtOCA4djEyOGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02NGgxNjh2NTYwaC05MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgyNjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTkyVjIzMmgxNjh2NjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04em0yNzIuOCA1NDZIODU2VjMxOGg2NC44YzYgMCA5LjQtNyA1LjctMTEuN0w4MjUuNyAxNzguN2E3LjE0IDcuMTQgMCAwIDAtMTEuMyAwTDcxMy42IDMwNi4zYTcuMjMgNy4yMyAwIDAgMCA1LjcgMTEuN0g3ODR2Mzg4aC02NC44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjVjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWE3LjIgNy4yIDAgMCAwLTUuNi0xMS43eicpKTtcbmV4cG9ydHMuTGluZU91dGxpbmUgPSBnZXRJY29uKCdsaW5lJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCA0NzZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkxvYWRpbmczUXVhcnRlcnNPdXRsaW5lID0gZ2V0SWNvbignbG9hZGluZy0zLXF1YXJ0ZXJzJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTUxMiAxMDI0Yy02OS4xIDAtMTM2LjItMTMuNS0xOTkuMy00MC4yQzI1MS43IDk1OCAxOTcgOTIxIDE1MCA4NzRjLTQ3LTQ3LTg0LTEwMS43LTEwOS44LTE2Mi43QzEzLjUgNjQ4LjIgMCA1ODEuMSAwIDUxMmMwLTE5LjkgMTYuMS0zNiAzNi0zNnMzNiAxNi4xIDM2IDM2YzAgNTkuNCAxMS42IDExNyAzNC42IDE3MS4zIDIyLjIgNTIuNCA1My45IDk5LjUgOTQuMyAxMzkuOSA0MC40IDQwLjQgODcuNSA3Mi4yIDEzOS45IDk0LjNDMzk1IDk0MC40IDQ1Mi42IDk1MiA1MTIgOTUyYzU5LjQgMCAxMTctMTEuNiAxNzEuMy0zNC42IDUyLjQtMjIuMiA5OS41LTUzLjkgMTM5LjktOTQuMyA0MC40LTQwLjQgNzIuMi04Ny41IDk0LjMtMTM5LjlDOTQwLjQgNjI5IDk1MiA1NzEuNCA5NTIgNTEyYzAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwIDAtOTQuMy0xMzkuOSA0MzcuNzEgNDM3LjcxIDAgMCAwLTEzOS45LTk0LjNDNjI5IDgzLjYgNTcxLjQgNzIgNTEyIDcyYy0xOS45IDAtMzYtMTYuMS0zNi0zNnMxNi4xLTM2IDM2LTM2YzY5LjEgMCAxMzYuMiAxMy41IDE5OS4zIDQwLjJDNzcyLjMgNjYgODI3IDEwMyA4NzQgMTUwYzQ3IDQ3IDgzLjkgMTAxLjggMTA5LjcgMTYyLjcgMjYuNyA2My4xIDQwLjIgMTMwLjIgNDAuMiAxOTkuM3MtMTMuNSAxMzYuMi00MC4yIDE5OS4zQzk1OCA3NzIuMyA5MjEgODI3IDg3NCA4NzRjLTQ3IDQ3LTEwMS44IDgzLjktMTYyLjcgMTA5LjctNjMuMSAyNi44LTEzMC4yIDQwLjMtMTk5LjMgNDAuM3onKSk7XG5leHBvcnRzLkxvYWRpbmdPdXRsaW5lID0gZ2V0SWNvbignbG9hZGluZycsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ005ODggNTQ4Yy0xOS45IDAtMzYtMTYuMS0zNi0zNiAwLTU5LjQtMTEuNi0xMTctMzQuNi0xNzEuM2E0NDAuNDUgNDQwLjQ1IDAgMCAwLTk0LjMtMTM5LjkgNDM3LjcxIDQzNy43MSAwIDAgMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6JykpO1xuZXhwb3J0cy5Mb2dpbk91dGxpbmUgPSBnZXRJY29uKCdsb2dpbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MjEuNyA4MmMtMTUyLjUtLjQtMjg2LjcgNzguNS0zNjMuNCAxOTcuNy0zLjQgNS4zLjQgMTIuMyA2LjcgMTIuM2g3MC4zYzQuOCAwIDkuMy0yLjEgMTIuMy01LjggNy04LjUgMTQuNS0xNi43IDIyLjQtMjQuNSAzMi42LTMyLjUgNzAuNS01OC4xIDExMi43LTc1LjkgNDMuNi0xOC40IDkwLTI3LjggMTM3LjktMjcuOCA0Ny45IDAgOTQuMyA5LjMgMTM3LjkgMjcuOCA0Mi4yIDE3LjggODAuMSA0My40IDExMi43IDc1LjkgMzIuNiAzMi41IDU4LjEgNzAuNCA3NiAxMTIuNUM4NjUuNyA0MTcuOCA4NzUgNDY0LjEgODc1IDUxMmMwIDQ3LjktOS40IDk0LjItMjcuOCAxMzcuOC0xNy44IDQyLjEtNDMuNCA4MC03NiAxMTIuNXMtNzAuNSA1OC4xLTExMi43IDc1LjlBMzUyLjggMzUyLjggMCAwIDEgNTIwLjYgODY2Yy00Ny45IDAtOTQuMy05LjQtMTM3LjktMjcuOEEzNTMuODQgMzUzLjg0IDAgMCAxIDI3MCA3NjIuM2MtNy45LTcuOS0xNS4zLTE2LjEtMjIuNC0yNC41LTMtMy43LTcuNi01LjgtMTIuMy01LjhIMTY1Yy02LjMgMC0xMC4yIDctNi43IDEyLjNDMjM0LjkgODYzLjIgMzY4LjUgOTQyIDUyMC42IDk0MmMyMzYuMiAwIDQyOC0xOTAuMSA0MzAuNC00MjUuNkM5NTMuNCAyNzcuMSA3NjEuMyA4Mi42IDUyMS43IDgyek0zOTUuMDIgNjI0di03NmgtMzE0Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGgzMTR2LTc2YzAtNi43IDcuOC0xMC41IDEzLTYuM2wxNDEuOSAxMTJhOCA4IDAgMCAxIDAgMTIuNmwtMTQxLjkgMTEyYy01LjIgNC4xLTEzIC40LTEzLTYuM3onKSk7XG5leHBvcnRzLkxvZ291dE91dGxpbmUgPSBnZXRJY29uKCdsb2dvdXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4IDczMmgtNzAuM2MtNC44IDAtOS4zIDIuMS0xMi4zIDUuOC03IDguNS0xNC41IDE2LjctMjIuNCAyNC41YTM1My44NCAzNTMuODQgMCAwIDEtMTEyLjcgNzUuOUEzNTIuOCAzNTIuOCAwIDAgMSA1MTIuNCA4NjZjLTQ3LjkgMC05NC4zLTkuNC0xMzcuOS0yNy44YTM1My44NCAzNTMuODQgMCAwIDEtMTEyLjctNzUuOSAzNTMuMjggMzUzLjI4IDAgMCAxLTc2LTExMi41QzE2Ny4zIDYwNi4yIDE1OCA1NTkuOSAxNTggNTEyczkuNC05NC4yIDI3LjgtMTM3LjhjMTcuOC00Mi4xIDQzLjQtODAgNzYtMTEyLjVzNzAuNS01OC4xIDExMi43LTc1LjljNDMuNi0xOC40IDkwLTI3LjggMTM3LjktMjcuOCA0Ny45IDAgOTQuMyA5LjMgMTM3LjkgMjcuOCA0Mi4yIDE3LjggODAuMSA0My40IDExMi43IDc1LjkgNy45IDcuOSAxNS4zIDE2LjEgMjIuNCAyNC41IDMgMy43IDcuNiA1LjggMTIuMyA1LjhIODY4YzYuMyAwIDEwLjItNyA2LjctMTIuM0M3OTggMTYwLjUgNjYzLjggODEuNiA1MTEuMyA4MiAyNzEuNyA4Mi42IDc5LjYgMjc3LjEgODIgNTE2LjQgODQuNCA3NTEuOSAyNzYuMiA5NDIgNTEyLjQgOTQyYzE1Mi4xIDAgMjg1LjctNzguOCAzNjIuMy0xOTcuNyAzLjQtNS4zLS40LTEyLjMtNi43LTEyLjN6bTg4LjktMjI2LjNMODE1IDM5My43Yy01LjMtNC4yLTEzLS40LTEzIDYuM3Y3Nkg0ODhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMzE0djc2YzAgNi43IDcuOCAxMC41IDEzIDYuM2wxNDEuOS0xMTJhOCA4IDAgMCAwIDAtMTIuNnonKSk7XG5leHBvcnRzLk1hbk91dGxpbmUgPSBnZXRJY29uKCdtYW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc0IDEyMEg2MjJjLTMuMyAwLTYgMi43LTYgNnY1NmMwIDMuMyAyLjcgNiA2IDZoMTYwLjRMNTgzLjEgMzg3LjNjLTUwLTM4LjUtMTExLTU5LjMtMTc1LjEtNTkuMy03Ni45IDAtMTQ5LjMgMzAtMjAzLjYgODQuNFMxMjAgNTM5LjEgMTIwIDYxNnMzMCAxNDkuMyA4NC40IDIwMy42QzI1OC43IDg3NCAzMzEuMSA5MDQgNDA4IDkwNHMxNDkuMy0zMCAyMDMuNi04NC40QzY2NiA3NjUuMyA2OTYgNjkyLjkgNjk2IDYxNmMwLTY0LjEtMjAuOC0xMjQuOS01OS4yLTE3NC45TDgzNiAyNDEuOVY0MDJjMCAzLjMgMi43IDYgNiA2aDU2YzMuMyAwIDYtMi43IDYtNlYxNTBjMC0xNi41LTEzLjUtMzAtMzAtMzB6TTQwOCA4MjhjLTExNi45IDAtMjEyLTk1LjEtMjEyLTIxMnM5NS4xLTIxMiAyMTItMjEyIDIxMiA5NS4xIDIxMiAyMTItOTUuMSAyMTItMjEyIDIxMnonKSk7XG5leHBvcnRzLk1lZGl1bU91dGxpbmUgPSBnZXRJY29uKCdtZWRpdW0nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM0LjcgMjc5LjhsNjEuMy01OC45VjIwOEg2ODMuN0w1MzIuNCA1ODYuNCAzNjAuMyAyMDhIMTM3Ljd2MTIuOWw3MS42IDg2LjZjNyA2LjQgMTAuNiAxNS44IDkuNyAyNS4yVjY3M2MyLjIgMTIuMy0xLjcgMjQuOC0xMC4zIDMzLjdMMTI4IDgwNXYxMi43aDIyOC42di0xMi45bC04MC42LTk4YTM5Ljk5IDM5Ljk5IDAgMCAxLTExLjEtMzMuN1YzNzguN2wyMDAuNyA0MzkuMmgyMy4zbDE3Mi42LTQzOS4ydjM0OS45YzAgOS4yIDAgMTEuMS02IDE3LjJsLTYyLjEgNjAuM1Y4MTloMzAxLjJ2LTEyLjlsLTU5LjktNTguOWMtNS4yLTQtNy45LTEwLjctNi44LTE3LjJWMjk3YTE4LjEgMTguMSAwIDAgMSA2LjgtMTcuMnonKSk7XG5leHBvcnRzLk1lZGl1bVdvcmttYXJrT3V0bGluZSA9IGdldEljb24oJ21lZGl1bS13b3JrbWFyaycsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ001MTcuMiA1OTAuNTVjMCAzLjU1IDAgNC4zNiAyLjQgNi41NWwxMy40MyAxMy4yNXYuNTdoLTU5LjU3di0yNS40N2E0MS40NCA0MS40NCAwIDAgMS0zOS41IDI3LjY1Yy0zMC42MSAwLTUyLjg0LTI0LjI1LTUyLjg0LTY4Ljg3IDAtNDEuOCAyMy45OS02OS42OSA1Ny42NS02OS42OWEzNS4xNSAzNS4xNSAwIDAgMSAzNC42MSAyMS42N3YtNTYuMTlhNi45OSA2Ljk5IDAgMCAwLTIuNzEtNi43OWwtMTIuOC0xMi40NXYtLjU2bDU5LjMzLTcuMDR2MTc3LjM3em0tNDMuNzQtOC4wOXYtODMuODNhMjIuMiAyMi4yIDAgMCAwLTE3Ljc0LTguNGMtMTQuNDggMC0yOC40NyAxMy4yNS0yOC40NyA1Mi42MiAwIDM2Ljg2IDEyLjA3IDQ5Ljg4IDI3LjEgNDkuODhhMjMuOTEgMjMuOTEgMCAwIDAgMTkuMTEtMTAuMjd6bTgzLjIzIDI4LjQ2VjQ5Ny43NGE3LjY1IDcuNjUgMCAwIDAtMi40LTYuNzlsLTEzLjE5LTEzLjc0di0uNTdoNTkuNTZ2MTE0LjhjMCAzLjU1IDAgNC4zNiAyLjQgNi41NGwxMy4xMiAxMi40NXYuNTdsLTU5LjQ5LS4wOHptLTIuMTYtMTc1LjY3YzAtMTMuNCAxMC43NC0yNC4yNSAyMy45OS0yNC4yNSAxMy4yNSAwIDIzLjk4IDEwLjg2IDIzLjk4IDI0LjI1IDAgMTMuNC0xMC43MyAyNC4yNS0yMy45OCAyNC4yNXMtMjMuOTktMTAuODUtMjMuOTktMjQuMjV6bTIwNi44MyAxNTUuMDZjMCAzLjU1IDAgNC42IDIuNCA2Ljc5bDEzLjQzIDEzLjI1di41N2gtNTkuODhWNTgxLjlhNDMuNCA0My40IDAgMCAxLTQxLjAxIDMxLjJjLTI2LjU1IDAtNDAuNzgtMTkuNTYtNDAuNzgtNTYuNTkgMC0xNy44NiAwLTM3LjQzLjU2LTU5LjQxYTYuOTEgNi45MSAwIDAgMC0yLjQtNi41NUw2MjAuNSA0NzcuMnYtLjU3aDU5LjA5djczLjgxYzAgMjQuMjUgMy41MSA0MC40MiAxOC41NCA0MC40MmEyMy45NiAyMy45NiAwIDAgMCAxOS4zNS0xMi4ydi04MC44NWE3LjY1IDcuNjUgMCAwIDAtMi40LTYuNzlsLTEzLjI3LTEzLjgydi0uNTdoNTkuNTZWNTkwLjN6bTIwMi43NiAyMC42YzAtNC4zNi44LTU5Ljk3LjgtNzIuNzUgMC0yNC4yNS0zLjc2LTQwLjk4LTIwLjYzLTQwLjk4YTI2LjcgMjYuNyAwIDAgMC0yMS4xOSAxMS42NCA5OS42OCA5OS42OCAwIDAgMSAyLjQgMjMuMDRjMCAxNi44MS0uNTYgMzguMjMtLjggNTkuNjZhNi45MSA2LjkxIDAgMCAwIDIuNCA2LjU1bDEzLjQzIDEyLjQ1di41NmgtNjAuMTJjMC00LjA0LjgtNTkuOTguOC03Mi43NiAwLTI0LjY1LTMuNzYtNDAuOTgtMjAuMzktNDAuOTgtOC4yLjMtMTUuNjggNC44LTE5LjgzIDExLjk2djgyLjQ2YzAgMy41NiAwIDQuMzcgMi40IDYuNTVsMTMuMTEgMTIuNDV2LjU2aC01OS40OFY0OTguMTVhNy42NSA3LjY1IDAgMCAwLTIuNC02LjhsLTEzLjE5LTE0LjE0di0uNTdIODQxdjI4Ljc4YzUuNTMtMTkgMjMuMTMtMzEuNzYgNDIuNy0zMC45NiAxOS44MiAwIDMzLjI2IDExLjE2IDM4LjkzIDMyLjM0YTQ2LjQxIDQ2LjQxIDAgMCAxIDQ0Ljc3LTMyLjM0YzI2LjU1IDAgNDEuNTggMTkuOCA0MS41OCA1Ny4yMyAwIDE3Ljg3LS41NiAzOC4yNC0uOCA1OS42NmE2LjUgNi41IDAgMCAwIDIuNzIgNi41NWwxMy4xMSAxMi40NXYuNTdoLTU5Ljg4ek0yMTUuODcgNTkzLjNsMTcuNjYgMTcuMDV2LjU3aC04OS42MnYtLjU3bDE3Ljk5LTE3LjA1YTYuOTEgNi45MSAwIDAgMCAyLjQtNi41NVY0NzcuNjljMC00LjYgMC0xMC44My44LTE2LjE2TDEwNC42NiA2MTMuMWgtLjcybC02Mi42LTEzOS40NWMtMS4zNy0zLjQ3LTEuNzctMy43Mi0yLjY1LTYuMDZ2OTEuNDNhMzIuMDggMzIuMDggMCAwIDAgMi45NiAxNy44N2wyNS4xOSAzMy40NnYuNTdIMHYtLjU3bDI1LjE4LTMzLjU1YTMyLjE2IDMyLjE2IDAgMCAwIDIuOTYtMTcuNzhWNDU3Ljk3QTE5LjcxIDE5LjcxIDAgMCAwIDI0IDQ0NC4xNUw2LjE2IDQyMC43OHYtLjU2aDYzLjk2bDUzLjU2IDExOC4xIDQ3LjE3LTExOC4xaDYyLjZ2LjU2bC0xNy41OCAxOS44YTYuOTkgNi45OSAwIDAgMC0yLjcyIDYuOHYxMzkuMzdhNi41IDYuNSAwIDAgMCAyLjcyIDYuNTV6bTcwLjExLTU0LjY1di41NmMwIDM0LjYgMTcuNjcgNDguNSAzOC4zOCA0OC41YTQzLjUgNDMuNSAwIDAgMCA0MC43Ny0yNC45N2guNTZjLTcuMiAzNC4yLTI4LjE0IDUwLjM2LTU5LjQ4IDUwLjM2LTMzLjgyIDAtNjUuNzItMjAuNjEtNjUuNzItNjguMzkgMC01MC4yIDMxLjk4LTcwLjI1IDY3LjMyLTcwLjI1IDI4LjQ2IDAgNTguNzYgMTMuNTggNTguNzYgNTcuMjR2Ni45NWgtODAuNTl6bTAtNi45NWgzOS40MnYtNy4wNGMwLTM1LjU3LTcuMjgtNDUuMDMtMTguMjMtNDUuMDMtMTMuMjcgMC0yMS4zNSAxNC4xNS0yMS4zNSA1Mi4wN2guMTZ6JykpO1xuZXhwb3J0cy5NZW51VW5mb2xkT3V0bGluZSA9IGdldEljb24oJ21lbnUtdW5mb2xkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQwOCA0NDJoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTggMjA0YzAgNC40IDMuNiA4IDggOGg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTUwNC00ODZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA2MzJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTQyLjQgNjQyLjFMMjk4LjcgNTE5YTguODQgOC44NCAwIDAgMCAwLTEzLjlMMTQyLjQgMzgxLjljLTUuOC00LjYtMTQuNC0uNS0xNC40IDYuOXYyNDYuM2E4LjkgOC45IDAgMCAwIDE0LjQgN3onKSk7XG5leHBvcnRzLk1lbnVGb2xkT3V0bGluZSA9IGdldEljb24oJ21lbnUtZm9sZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MDggNDQyaDQ4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg0MDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bS04IDIwNGMwIDQuNCAzLjYgOCA4IDhoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2em01MDQtNDg2SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNjMySDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTExNS40IDUxOC45TDI3MS43IDY0MmM1LjggNC42IDE0LjQuNSAxNC40LTYuOVYzODguOWMwLTcuNC04LjUtMTEuNS0xNC40LTYuOUwxMTUuNCA1MDUuMWE4Ljc0IDguNzQgMCAwIDAgMCAxMy44eicpKTtcbmV4cG9ydHMuTWVudU91dGxpbmUgPSBnZXRJY29uKCdtZW51Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCAxNjBIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHptMCA2MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHptMC0zMTJIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLk1pbnVzT3V0bGluZSA9IGdldEljb24oJ21pbnVzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiA0NzRIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLk1vbml0b3JPdXRsaW5lID0gZ2V0SWNvbignbW9uaXRvcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTIuOCA0MTIuN2wuMi0uMi0zNC42LTQ0LjNhNy45NyA3Ljk3IDAgMCAwLTExLjItMS40bC01MC40IDM5LjMtNzAuNS05MC4xYTcuOTcgNy45NyAwIDAgMC0xMS4yLTEuNGwtMzcuOSAyOS43YTcuOTcgNy45NyAwIDAgMC0xLjQgMTEuMmw3MC41IDkwLjItLjIuMSAzNC42IDQ0LjNjMi43IDMuNSA3LjcgNC4xIDExLjIgMS40bDUwLjQtMzkuMyA2NC4xIDgyYzIuNyAzLjUgNy43IDQuMSAxMS4yIDEuNGwzNy45LTI5LjZjMy41LTIuNyA0LjEtNy43IDEuNC0xMS4ybC02NC4xLTgyLjF6TTYwOCAxMTJjLTE2Ny45IDAtMzA0IDEzNi4xLTMwNCAzMDQgMCA3MC4zIDIzLjkgMTM1IDYzLjkgMTg2LjVMMTE0LjMgODU2LjFhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0Mi4zIDQyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyNTMuNi0yNTMuNkM0NzMgNjk2LjEgNTM3LjcgNzIwIDYwOCA3MjBjMTY3LjkgMCAzMDQtMTM2LjEgMzA0LTMwNFM3NzUuOSAxMTIgNjA4IDExMnptMTYxLjIgNDY1LjJDNzI2LjIgNjIwLjMgNjY4LjkgNjQ0IDYwOCA2NDRzLTExOC4yLTIzLjctMTYxLjItNjYuOEM0MDMuNyA1MzQuMiAzODAgNDc2LjkgMzgwIDQxNnMyMy43LTExOC4yIDY2LjgtMTYxLjJjNDMtNDMuMSAxMDAuMy02Ni44IDE2MS4yLTY2LjhzMTE4LjIgMjMuNyAxNjEuMiA2Ni44YzQzLjEgNDMgNjYuOCAxMDAuMyA2Ni44IDE2MS4ycy0yMy43IDExOC4yLTY2LjggMTYxLjJ6JykpO1xuZXhwb3J0cy5Nb3JlT3V0bGluZSA9IGdldEljb24oJ21vcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDU2IDIzMWE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMCAyODBhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTAgMjgwYTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAweicpKTtcbmV4cG9ydHMuT3JkZXJlZExpc3RPdXRsaW5lID0gZ2V0SWNvbignb3JkZXJlZC1saXN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyMCA3NjBIMzM2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC01NjhIMzM2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzM2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjE2IDcxMkgxMDBjLTIuMiAwLTQgMS44LTQgNHYzNGMwIDIuMiAxLjggNCA0IDRoNzIuNHYyMC41aC0zNS43Yy0yLjIgMC00IDEuOC00IDR2MzRjMCAyLjIgMS44IDQgNCA0aDM1LjdWODM4SDEwMGMtMi4yIDAtNCAxLjgtNCA0djM0YzAgMi4yIDEuOCA0IDQgNGgxMTZjMi4yIDAgNC0xLjggNC00VjcxNmMwLTIuMi0xLjgtNC00LTR6TTEwMCAxODhoMzh2MTIwYzAgMi4yIDEuOCA0IDQgNGg0MGMyLjIgMCA0LTEuOCA0LTRWMTUyYzAtNC40LTMuNi04LTgtOGgtNzhjLTIuMiAwLTQgMS44LTQgNHYzNmMwIDIuMiAxLjggNCA0IDR6bTExNiAyNDBIMTAwYy0yLjIgMC00IDEuOC00IDR2MzZjMCAyLjIgMS44IDQgNCA0aDY4LjRsLTcwLjMgNzcuN2E4LjMgOC4zIDAgMCAwLTIuMSA1LjRWNTkyYzAgMi4yIDEuOCA0IDQgNGgxMTZjMi4yIDAgNC0xLjggNC00di0zNmMwLTIuMi0xLjgtNC00LTRoLTY4LjRsNzAuMy03Ny43YTguMyA4LjMgMCAwIDAgMi4xLTUuNFY0MzJjMC0yLjItMS44LTQtNC00eicpKTtcbmV4cG9ydHMuTnVtYmVyT3V0bGluZSA9IGdldEljb24oJ251bWJlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgMzk0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04SDcwOFYxNTJjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djE2Nkg0MDBWMTUyYzAtNC40LTMuNi04LTgtOGgtNjRjLTQuNCAwLTggMy42LTggOHYxNjZIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDE2OHYyMzZIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDE2OHYxNjZjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFY3MDZoMjI4djE2NmMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjcwNmgxNjRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LThINzA4VjM5NGgxNjR6TTYyOCA2MzBINDAwVjM5NGgyMjh2MjM2eicpKTtcbmV4cG9ydHMuUGF1c2VPdXRsaW5lID0gZ2V0SWNvbigncGF1c2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzA0IDE3Nmg4MHY2NzJoLTgwem00MDggMGgtNjRjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUGVyY2VudGFnZU91dGxpbmUgPSBnZXRJY29uKCdwZXJjZW50YWdlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NS43IDIxMC44bC00Mi40LTQyLjRhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEwxNjguMyA4MDEuOWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwTDg1NS42IDIyMmMzLjItMyAzLjItOC4xLjEtMTEuMnpNMzA0IDQ0OGM3OS40IDAgMTQ0LTY0LjYgMTQ0LTE0NHMtNjQuNi0xNDQtMTQ0LTE0NC0xNDQgNjQuNi0xNDQgMTQ0IDY0LjYgMTQ0IDE0NCAxNDR6bTAtMjE2YzM5LjcgMCA3MiAzMi4zIDcyIDcycy0zMi4zIDcyLTcyIDcyLTcyLTMyLjMtNzItNzIgMzIuMy03MiA3Mi03MnptNDE2IDM0NGMtNzkuNCAwLTE0NCA2NC42LTE0NCAxNDRzNjQuNiAxNDQgMTQ0IDE0NCAxNDQtNjQuNiAxNDQtMTQ0LTY0LjYtMTQ0LTE0NC0xNDR6bTAgMjE2Yy0zOS43IDAtNzItMzIuMy03Mi03MnMzMi4zLTcyIDcyLTcyIDcyIDMyLjMgNzIgNzItMzIuMyA3Mi03MiA3MnonKSk7XG5leHBvcnRzLlBhcGVyQ2xpcE91dGxpbmUgPSBnZXRJY29uKCdwYXBlci1jbGlwJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc3OS4zIDE5Ni42Yy05NC4yLTk0LjItMjQ3LjYtOTQuMi0zNDEuNyAwbC0yNjEgMjYwLjhjLTEuNyAxLjctMi42IDQtMi42IDYuNHMuOSA0LjcgMi42IDYuNGwzNi45IDM2LjlhOSA5IDAgMCAwIDEyLjcgMGwyNjEtMjYwLjhjMzIuNC0zMi40IDc1LjUtNTAuMiAxMjEuMy01MC4yczg4LjkgMTcuOCAxMjEuMiA1MC4yYzMyLjQgMzIuNCA1MC4yIDc1LjUgNTAuMiAxMjEuMiAwIDQ1LjgtMTcuOCA4OC44LTUwLjIgMTIxLjJsLTI2NiAyNjUuOS00My4xIDQzLjFjLTQwLjMgNDAuMy0xMDUuOCA0MC4zLTE0Ni4xIDAtMTkuNS0xOS41LTMwLjItNDUuNC0zMC4yLTczczEwLjctNTMuNSAzMC4yLTczbDI2My45LTI2My44YzYuNy02LjYgMTUuNS0xMC4zIDI0LjktMTAuM2guMWM5LjQgMCAxOC4xIDMuNyAyNC43IDEwLjMgNi43IDYuNyAxMC4zIDE1LjUgMTAuMyAyNC45IDAgOS4zLTMuNyAxOC4xLTEwLjMgMjQuN0wzNzIuNCA2NTNjLTEuNyAxLjctMi42IDQtMi42IDYuNHMuOSA0LjcgMi42IDYuNGwzNi45IDM2LjlhOSA5IDAgMCAwIDEyLjcgMGwyMTUuNi0yMTUuNmMxOS45LTE5LjkgMzAuOC00Ni4zIDMwLjgtNzQuNHMtMTEtNTQuNi0zMC44LTc0LjRjLTQxLjEtNDEuMS0xMDcuOS00MS0xNDkgMEw0NjMgMzY0IDIyNC44IDYwMi4xQTE3Mi4yMiAxNzIuMjIgMCAwIDAgMTc0IDcyNC44YzAgNDYuMyAxOC4xIDg5LjggNTAuOCAxMjIuNSAzMy45IDMzLjggNzguMyA1MC43IDEyMi43IDUwLjcgNDQuNCAwIDg4LjgtMTYuOSAxMjIuNi01MC43bDMwOS4yLTMwOUM4MjQuOCA0OTIuNyA4NTAgNDMyIDg1MCAzNjcuNWMuMS02NC42LTI1LjEtMTI1LjMtNzAuNy0xNzAuOXonKSk7XG5leHBvcnRzLlBpY0NlbnRlck91dGxpbmUgPSBnZXRJY29uKCdwaWMtY2VudGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1MiA3OTJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTYzMkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTg0OCA2NjBjOC44IDAgMTYtNy4yIDE2LTE2VjM4MGMwLTguOC03LjItMTYtMTYtMTZIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmg2NzJ6TTIzMiA0MzZoNTYwdjE1MkgyMzJWNDM2eicpKTtcbmV4cG9ydHMuUGljTGVmdE91dGxpbmUgPSBnZXRJY29uKCdwaWMtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgNzkySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC02MzJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek02MDggNjYwYzguOCAwIDE2LTcuMiAxNi0xNlYzODBjMC04LjgtNy4yLTE2LTE2LTE2SDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmg1MTJ6TTE1MiA0MzZoNDAwdjE1MkgxNTJWNDM2em01NTIgMjEwYzAgNC40IDMuNiA4IDggOGgyMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINzEyYy00LjQgMC04IDMuNi04IDh2NTZ6bTgtMjA0aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg3MTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5QbHVzT3V0bGluZSA9IGdldEljb24oJ3BsdXMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDgyIDE1Mmg2MHE4IDAgOCA4djcwNHEwIDgtOCA4aC02MHEtOCAwLTgtOFYxNjBxMC04IDgtOHonLCAnTTE3NiA0NzRoNjcycTggMCA4IDh2NjBxMCA4LTggOEgxNzZxLTggMC04LTh2LTYwcTAtOCA4LTh6JykpO1xuZXhwb3J0cy5QaWNSaWdodE91dGxpbmUgPSBnZXRJY29uKCdwaWMtcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTUyIDc5Mkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNjMySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTI0IDUwMGM4LjggMCAxNi03LjIgMTYtMTZWMzgwYzAtOC44LTcuMi0xNi0xNi0xNkg0MTZjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDUxMnpNNDcyIDQzNmg0MDB2MTUySDQ3MlY0MzZ6TTgwIDY0NmMwIDQuNCAzLjYgOCA4IDhoMjI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDg4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTgtMjA0aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg4OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLlBvdW5kT3V0bGluZSA9IGdldEljb24oJ3BvdW5kJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTM4LTIwOS44SDQ2OS44di00LjdjMjcuNC0xNy4yIDQzLjktNTAuNCA0My45LTkxLjEgMC0xNC4xLTIuMi0yNy45LTUuMy00MUg2MDdjNC40IDAgOC0zLjYgOC04di0zMGMwLTQuNC0zLjYtOC04LThINDk1Yy03LjItMjIuNi0xMy40LTQ1LjctMTMuNC03MC41IDAtNDMuNSAzNC03MC4yIDg3LjMtNzAuMiAyMS41IDAgNDIuNSA0LjEgNjAuNCAxMC41IDUuMiAxLjkgMTAuNi0yIDEwLjYtNy42di0zOS41YzAtMy4zLTIuMS02LjMtNS4yLTcuNS0xOC44LTcuMi00My44LTEyLjctNzAuMy0xMi43LTkyLjkgMC0xNTEuNSA0NC41LTE1MS41IDEyMC4zIDAgMjYuMyA2LjkgNTIgMTQuNiA3Ny4xSDM3NGMtNC40IDAtOCAzLjYtOCA4djMwYzAgNC40IDMuNiA4IDggOGg2Ny4xYzMuNCAxNC43IDUuOSAyOS40IDUuOSA0NC4yIDAgNDUuMi0yOC44IDgzLjMtNzIuOCA5NC4yLTMuNi45LTYuMSA0LjEtNi4xIDcuOFY3MjJjMCA0LjQgMy42IDggOCA4SDY1MGM0LjQgMCA4LTMuNiA4LTh2LTM5LjhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUG93ZXJvZmZPdXRsaW5lID0gZ2V0SWNvbigncG93ZXJvZmYnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzA1LjYgMTI0LjlhOCA4IDAgMCAwLTExLjYgNy4ydjY0LjJjMCA1LjUgMi45IDEwLjYgNy41IDEzLjZhMzUyLjIgMzUyLjIgMCAwIDEgNjIuMiA0OS44YzMyLjcgMzIuOCA1OC40IDcwLjkgNzYuMyAxMTMuM2EzNTUgMzU1IDAgMCAxIDI3LjkgMTM4LjdjMCA0OC4xLTkuNCA5NC44LTI3LjkgMTM4LjdhMzU1LjkyIDM1NS45MiAwIDAgMS03Ni4zIDExMy4zIDM1My4wNiAzNTMuMDYgMCAwIDEtMTEzLjIgNzYuNGMtNDMuOCAxOC42LTkwLjUgMjgtMTM4LjUgMjhzLTk0LjctOS40LTEzOC41LTI4YTM1My4wNiAzNTMuMDYgMCAwIDEtMTEzLjItNzYuNEEzNTUuOTIgMzU1LjkyIDAgMCAxIDE4NCA2NTAuNGEzNTUgMzU1IDAgMCAxLTI3LjktMTM4LjdjMC00OC4xIDkuNC05NC44IDI3LjktMTM4LjcgMTcuOS00Mi40IDQzLjYtODAuNSA3Ni4zLTExMy4zIDE5LTE5IDM5LjgtMzUuNiA2Mi4yLTQ5LjggNC43LTIuOSA3LjUtOC4xIDcuNS0xMy42VjEzMmMwLTYtNi4zLTkuOC0xMS42LTcuMkMxNzguNSAxOTUuMiA4MiAzMzkuMyA4MCA1MDYuMyA3Ny4yIDc0NS4xIDI3Mi41IDk0My41IDUxMS4yIDk0NGMyMzkgLjUgNDMyLjgtMTkzLjMgNDMyLjgtNDMyLjQgMC0xNjkuMi05Ny0zMTUuNy0yMzguNC0zODYuN3pNNDgwIDU2MGg2NGM0LjQgMCA4LTMuNiA4LThWODhjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5QdWxsUmVxdWVzdE91dGxpbmUgPSBnZXRJY29uKCdwdWxsLXJlcXVlc3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzg4IDcwNS45VjE5MmMwLTguOC03LjItMTYtMTYtMTZINjAydi02OC44YzAtNi03LTkuNC0xMS43LTUuN0w0NjIuNyAyMDIuM2E3LjE0IDcuMTQgMCAwIDAgMCAxMS4zbDEyNy41IDEwMC44YzQuNyAzLjcgMTEuNy40IDExLjctNS43VjI0MGgxMTR2NDY1LjljLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYy4xLTQ5LjItMzEuNy05MS03NS45LTEwNi4xek03NTIgODYwYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnpNMzg0IDIxMmMwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDQ5LjIgMzEuOCA5MSA3NiAxMDYuMVY3MDZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xVjMxOC4xYzQ0LjItMTUuMSA3Ni01Ni45IDc2LTEwNi4xem0tMTYwIDBhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem05NiA2MDBhNDguMDEgNDguMDEgMCAwIDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAgMSA5NiAweicpKTtcbmV4cG9ydHMuUXFPdXRsaW5lID0gZ2V0SWNvbigncXEnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODI0LjggNjEzLjJjLTE2LTUxLjQtMzQuNC05NC42LTYyLjctMTY1LjNDNzY2LjUgMjYyLjIgNjg5LjMgMTEyIDUxMS41IDExMiAzMzEuNyAxMTIgMjU2LjIgMjY1LjIgMjYxIDQ0Ny45Yy0yOC40IDcwLjgtNDYuNyAxMTMuNy02Mi43IDE2NS4zLTM0IDEwOS41LTIzIDE1NC44LTE0LjYgMTU1LjggMTggMi4yIDcwLjEtODIuNCA3MC4xLTgyLjQgMCA0OSAyNS4yIDExMi45IDc5LjggMTU5LTI2LjQgOC4xLTg1LjcgMjkuOS03MS42IDUzLjggMTEuNCAxOS4zIDE5Ni4yIDEyLjMgMjQ5LjUgNi4zIDUzLjMgNiAyMzguMSAxMyAyNDkuNS02LjMgMTQuMS0yMy44LTQ1LjMtNDUuNy03MS42LTUzLjggNTQuNi00Ni4yIDc5LjgtMTEwLjEgNzkuOC0xNTkgMCAwIDUyLjEgODQuNiA3MC4xIDgyLjQgOC41LTEuMSAxOS41LTQ2LjQtMTQuNS0xNTUuOHonKSk7XG5leHBvcnRzLlF1ZXN0aW9uT3V0bGluZSA9IGdldEljb24oJ3F1ZXN0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc2NCAyODAuOWMtMTQtMzAuNi0zMy45LTU4LjEtNTkuMy04MS42QzY1My4xIDE1MS40IDU4NC42IDEyNSA1MTIgMTI1cy0xNDEuMSAyNi40LTE5Mi43IDc0LjJjLTI1LjQgMjMuNi00NS4zIDUxLTU5LjMgODEuNy0xNC42IDMyLTIyIDY1LjktMjIgMTAwLjl2MjdjMCA2LjIgNSAxMS4yIDExLjIgMTEuMmg1NGM2LjIgMCAxMS4yLTUgMTEuMi0xMS4ydi0yN2MwLTk5LjUgODguNi0xODAuNCAxOTcuNi0xODAuNHMxOTcuNiA4MC45IDE5Ny42IDE4MC40YzAgNDAuOC0xNC41IDc5LjItNDIgMTExLjItMjcuMiAzMS43LTY1LjYgNTQuNC0xMDguMSA2NC0yNC4zIDUuNS00Ni4yIDE5LjItNjEuNyAzOC44YTExMC44NSAxMTAuODUgMCAwIDAtMjMuOSA2OC42djMxLjRjMCA2LjIgNSAxMS4yIDExLjIgMTEuMmg1NGM2LjIgMCAxMS4yLTUgMTEuMi0xMS4ydi0zMS40YzAtMTUuNyAxMC45LTI5LjUgMjYtMzIuOSA1OC40LTEzLjIgMTExLjQtNDQuNyAxNDkuMy04OC43IDE5LjEtMjIuMyAzNC00Ny4xIDQ0LjMtNzQgMTAuNy0yNy45IDE2LjEtNTcuMiAxNi4xLTg3IDAtMzUtNy40LTY5LTIyLTEwMC45ek01MTIgNzg3Yy0zMC45IDAtNTYgMjUuMS01NiA1NnMyNS4xIDU2IDU2IDU2IDU2LTI1LjEgNTYtNTYtMjUuMS01Ni01Ni01NnonKSk7XG5leHBvcnRzLlJhZGFyQ2hhcnRPdXRsaW5lID0gZ2V0SWNvbigncmFkYXItY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI2LjggMzk3LjFsLTM5Ni0yODhhMzEuODEgMzEuODEgMCAwIDAtMzcuNiAwbC0zOTYgMjg4YTMxLjk5IDMxLjk5IDAgMCAwLTExLjYgMzUuOGwxNTEuMyA0NjZhMzIgMzIgMCAwIDAgMzAuNCAyMi4xaDQ4OS41YzEzLjkgMCAyNi4xLTguOSAzMC40LTIyLjFsMTUxLjMtNDY2YzQuMi0xMy4yLS41LTI3LjYtMTEuNy0zNS44ek04MzguNiA0MTdsLTk4LjUgMzItMjAwLTE0NC43VjE5OS45TDgzOC42IDQxN3pNNDY2IDU2Ny4ybC04OS4xIDEyMi4zLTU1LjItMTY5LjJMNDY2IDU2Ny4yem0tMTE2LjMtOTYuOEw0ODQgMzczLjN2MTQwLjhsLTEzNC4zLTQzLjd6TTUxMiA1OTkuMmw5My45IDEyOC45SDQxOC4xTDUxMiA1OTkuMnptMjguMS0yMjUuOWwxMzQuMiA5Ny4xTDU0MC4xIDUxNFYzNzMuM3pNNTU4IDU2Ny4ybDE0NC4zLTQ2LjktNTUuMiAxNjkuMkw1NTggNTY3LjJ6bS03NC0zNjcuM3YxMDQuNEwyODMuOSA0NDlsLTk4LjUtMzJMNDg0IDE5OS45ek0xNjkuMyA0NzAuOGw4Ni41IDI4LjEgODAuNCAyNDYuNC01My44IDczLjktMTEzLjEtMzQ4LjR6TTMyNy4xIDg1M2w1MC4zLTY5aDI2OS4zbDUwLjMgNjlIMzI3LjF6bTQxNC41LTMzLjhsLTUzLjgtNzMuOSA4MC40LTI0Ni40IDg2LjUtMjguMS0xMTMuMSAzNDguNHonKSk7XG5leHBvcnRzLlFyY29kZU91dGxpbmUgPSBnZXRJY29uKCdxcmNvZGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDY4IDEyOEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMwOGMwIDQuNCAzLjYgOCA4IDhoMzMyYzQuNCAwIDgtMy42IDgtOFYxMzZjMC00LjQtMy42LTgtOC04em0tNTYgMjg0SDE5MlYxOTJoMjIwdjIyMHptLTEzOC03NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTE5NCAyMTBIMTM2Yy00LjQgMC04IDMuNi04IDh2MzA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMwOGM0LjQgMCA4LTMuNiA4LThWNTU2YzAtNC40LTMuNi04LTgtOHptLTU2IDI4NEgxOTJWNjEyaDIyMHYyMjB6bS0xMzgtNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01OTAtNjMwSDU1NmMtNC40IDAtOCAzLjYtOCA4djMzMmMwIDQuNCAzLjYgOCA4IDhoMzMyYzQuNCAwIDgtMy42IDgtOFYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiAyODRINjEyVjE5MmgyMjB2MjIwem0tMTM4LTc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMTk0IDIxMGgtNDhjLTQuNCAwLTggMy42LTggOHYxMzRoLTc4VjU1NmMwLTQuNC0zLjYtOC04LThINTU2Yy00LjQgMC04IDMuNi04IDh2MzMyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjQ0aDc4djEwMmMwIDQuNCAzLjYgOCA4IDhoMTkwYzQuNCAwIDgtMy42IDgtOFY1NTZjMC00LjQtMy42LTgtOC04ek03NDYgODMyaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMTQyIDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUmFkaXVzQm90dG9tbGVmdE91dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtYm90dG9tbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MTIgODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMi02OTZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMzYgMzc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0xNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em03NTIgNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMjMwIDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjMwIDYyNEgzNThjLTg3LjMgMC0xNTgtNzAuNy0xNTgtMTU4VjQ4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgyYzAgMTI3IDEwMyAyMzAgMjMwIDIzMGgxODJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5SYWRpdXNCb3R0b21yaWdodE91dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtYm90dG9tcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzY4IDgyNGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01OC02MjRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NzggMTAyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0yOTIgNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xNzQgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTIzMCAyNzZoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgyYzAgODcuMy03MC43IDE1OC0xNTggMTU4SDQ4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxODJjMTI3IDAgMjMwLTEwMyAyMzAtMjMwVjQ4NGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5SYWRpdXNVcGxlZnRPdXRsaW5lID0gZ2V0SWNvbigncmFkaXVzLXVwbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NTYgMjAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTggNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDY1MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjk2LTY5NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM0OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTE3NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTc0LTY5NkgzNThjLTEyNyAwLTIzMCAxMDMtMjMwIDIzMHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC04Ny4zIDcwLjctMTU4IDE1OC0xNThoMTgyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUmFkaXVzVXByaWdodE91dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtdXByaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNjggMTI4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTIgNjk2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNTIyLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDEyOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNzQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS00OC02OTZINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE4MmM4Ny4zIDAgMTU4IDcwLjcgMTU4IDE1OHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC0xMjctMTAzLTIzMC0yMzAtMjMweicpKTtcbmV4cG9ydHMuUmFkaXVzU2V0dGluZ091dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtc2V0dGluZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zOTYgMTQwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTQ0IDY4NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTUyNC0yMDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgMzQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzIwIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjAgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE0MC0yODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNzBjMC0xMjctMTAzLTIzMC0yMzAtMjMwSDQ4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNzBjODcuMyAwIDE1OCA3MC43IDE1OCAxNTh2MTcwek0yMzYgOTZIOTJjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDE0NGM0LjQgMCA4LTMuNiA4LThWMTA0YzAtNC40LTMuNi04LTgtOHptLTQ4IDEwMS42YzAgMS4zLTEuMSAyLjQtMi40IDIuNGgtNDMuMmMtMS4zIDAtMi40LTEuMS0yLjQtMi40di00My4yYzAtMS4zIDEuMS0yLjQgMi40LTIuNGg0My4yYzEuMyAwIDIuNCAxLjEgMi40IDIuNHY0My4yek05MjAgNzgwSDc3NmMtNC40IDAtOCAzLjYtOCA4djE0NGMwIDQuNCAzLjYgOCA4IDhoMTQ0YzQuNCAwIDgtMy42IDgtOFY3ODhjMC00LjQtMy42LTgtOC04em0tNDggMTAxLjZjMCAxLjMtMS4xIDIuNC0yLjQgMi40aC00My4yYy0xLjMgMC0yLjQtMS4xLTIuNC0yLjR2LTQzLjJjMC0xLjMgMS4xLTIuNCAyLjQtMi40aDQzLjJjMS4zIDAgMi40IDEuMSAyLjQgMi40djQzLjJ6JykpO1xuZXhwb3J0cy5SZWRkaXRPdXRsaW5lID0gZ2V0SWNvbigncmVkZGl0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI4OCA1NjhhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTMzOC43IDExOS43Yy0yMy4xIDE4LjItNjguOSAzNy44LTExNC43IDM3LjhzLTkxLjYtMTkuNi0xMTQuNy0zNy44Yy0xNC40LTExLjMtMzUuMy04LjktNDYuNyA1LjVzLTguOSAzNS4zIDUuNSA0Ni43QzM5Ni4zIDc3MS42IDQ1Ny41IDc5MiA1MTIgNzkyczExNS43LTIwLjQgMTU1LjktNTIuMWEzMy4yNSAzMy4yNSAwIDEgMC00MS4yLTUyLjJ6TTk2MCA0NTZjMC02MS45LTUwLjEtMTEyLTExMi0xMTItNDIuMSAwLTc4LjcgMjMuMi05Ny45IDU3LjYtNTcuNi0zMS41LTEyNy43LTUxLjgtMjA0LjEtNTYuNUw2MTIuOSAxOTVsMTI3LjkgMzYuOWMxMS41IDMyLjYgNDIuNiA1Ni4xIDc5LjIgNTYuMSA0Ni40IDAgODQtMzcuNiA4NC04NHMtMzcuNi04NC04NC04NGMtMzIgMC01OS44IDE3LjktNzQgNDQuMkw2MDMuNSAxMjNhMzMuMiAzMy4yIDAgMCAwLTM5LjYgMTguNGwtOTAuOCAyMDMuOWMtNzQuNSA1LjItMTQyLjkgMjUuNC0xOTkuMiA1Ni4yQTExMS45NCAxMTEuOTQgMCAwIDAgMTc2IDM0NGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA0NS44IDI3LjUgODUuMSA2Ni44IDEwMi41LTcuMSAyMS0xMC44IDQzLTEwLjggNjUuNSAwIDE1NC42IDE3NS41IDI4MCAzOTIgMjgwczM5Mi0xMjUuNCAzOTItMjgwYzAtMjIuNi0zLjgtNDQuNS0xMC44LTY1LjVDOTMyLjUgNTQxLjEgOTYwIDUwMS44IDk2MCA0NTZ6TTgyMCAxNzIuNWEzMS41IDMxLjUgMCAxIDEgMCA2MyAzMS41IDMxLjUgMCAwIDEgMC02M3pNMTIwIDQ1NmMwLTMwLjkgMjUuMS01NiA1Ni01NmE1NiA1NiAwIDAgMSA1MC42IDMyLjFjLTI5LjMgMjIuMi01My41IDQ3LjgtNzEuNSA3NS45YTU2LjIzIDU2LjIzIDAgMCAxLTM1LjEtNTJ6bTM5MiAzODEuNWMtMTc5LjggMC0zMjUuNS05NS42LTMyNS41LTIxMy41UzMzMi4yIDQxMC41IDUxMiA0MTAuNSA4MzcuNSA1MDYuMSA4MzcuNSA2MjQgNjkxLjggODM3LjUgNTEyIDgzNy41ek04NjguOCA1MDhjLTE3LjktMjguMS00Mi4yLTUzLjctNzEuNS03NS45IDktMTguOSAyOC4zLTMyLjEgNTAuNi0zMi4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IC4xIDIzLjUtMTQuNSA0My43LTM1LjEgNTJ6TTYyNCA1NjhhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6JykpO1xuZXhwb3J0cy5SZWRvT3V0bGluZSA9IGdldEljb24oJ3JlZG8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzU4LjIgODM5LjFDODUxLjggNzY1LjkgOTEyIDY1MS45IDkxMiA1MjMuOSA5MTIgMzAzIDczMy41IDEyNC4zIDUxMi42IDEyNCAyOTEuNCAxMjMuNyAxMTIgMzAyLjggMTEyIDUyMy45YzAgMTI1LjIgNTcuNSAyMzYuOSAxNDcuNiAzMTAuMiAzLjUgMi44IDguNiAyLjIgMTEuNC0xLjNsMzkuNC01MC41YzIuNy0zLjQgMi4xLTguMy0xLjItMTEuMS04LjEtNi42LTE1LjktMTMuNy0yMy40LTIxLjJhMzE4LjY0IDMxOC42NCAwIDAgMS02OC42LTEwMS43QzIwMC40IDYwOSAxOTIgNTY3LjEgMTkyIDUyMy45czguNC04NS4xIDI1LjEtMTI0LjVjMTYuMS0zOC4xIDM5LjItNzIuMyA2OC42LTEwMS43IDI5LjQtMjkuNCA2My42LTUyLjUgMTAxLjctNjguNkM0MjYuOSAyMTIuNCA0NjguOCAyMDQgNTEyIDIwNHM4NS4xIDguNCAxMjQuNSAyNS4xYzM4LjEgMTYuMSA3Mi4zIDM5LjIgMTAxLjcgNjguNiAyOS40IDI5LjQgNTIuNSA2My42IDY4LjYgMTAxLjcgMTYuNyAzOS40IDI1LjEgODEuMyAyNS4xIDEyNC41cy04LjQgODUuMS0yNS4xIDEyNC41YTMxOC42NCAzMTguNjQgMCAwIDEtNjguNiAxMDEuN2MtOS4zIDkuMy0xOS4xIDE4LTI5LjMgMjZMNjY4LjIgNzI0YTggOCAwIDAgMC0xNC4xIDNsLTM5LjYgMTYyLjJjLTEuMiA1IDIuNiA5LjkgNy43IDkuOWwxNjcgLjhjNi43IDAgMTAuNS03LjcgNi4zLTEyLjlsLTM3LjMtNDcuOXonKSk7XG5leHBvcnRzLlJlbG9hZE91dGxpbmUgPSBnZXRJY29uKCdyZWxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA5LjEgMjA5LjNsLTU2LjQgNDQuMUM3NzUuOCAxNTUuMSA2NTYuMiA5MiA1MjEuOSA5MiAyOTAgOTIgMTAyLjMgMjc5LjUgMTAyIDUxMS41IDEwMS43IDc0My43IDI4OS44IDkzMiA1MjEuOSA5MzJjMTgxLjMgMCAzMzUuOC0xMTUgMzk0LjYtMjc2LjEgMS41LTQuMi0uNy04LjktNC45LTEwLjNsLTU2LjctMTkuNWE4IDggMCAwIDAtMTAuMSA0LjhjLTEuOCA1LTMuOCAxMC01LjkgMTQuOS0xNy4zIDQxLTQyLjEgNzcuOC03My43IDEwOS40QTM0NC43NyAzNDQuNzcgMCAwIDEgNjU1LjkgODI5Yy00Mi4zIDE3LjktODcuNCAyNy0xMzMuOCAyNy00Ni41IDAtOTEuNS05LjEtMTMzLjgtMjdBMzQxLjUgMzQxLjUgMCAwIDEgMjc5IDc1NS4yYTM0Mi4xNiAzNDIuMTYgMCAwIDEtNzMuNy0xMDkuNGMtMTcuOS00Mi40LTI3LTg3LjQtMjctMTMzLjlzOS4xLTkxLjUgMjctMTMzLjljMTcuMy00MSA0Mi4xLTc3LjggNzMuNy0xMDkuNCAzMS42LTMxLjYgNjguNC01Ni40IDEwOS4zLTczLjggNDIuMy0xNy45IDg3LjQtMjcgMTMzLjgtMjcgNDYuNSAwIDkxLjUgOS4xIDEzMy44IDI3YTM0MS41IDM0MS41IDAgMCAxIDEwOS4zIDczLjhjOS45IDkuOSAxOS4yIDIwLjQgMjcuOCAzMS40bC02MC4yIDQ3YTggOCAwIDAgMCAzIDE0LjFsMTc1LjYgNDNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE4MC45Yy0uMS02LjYtNy44LTEwLjMtMTMtNi4yeicpKTtcbmV4cG9ydHMuUmV0d2VldE91dGxpbmUgPSBnZXRJY29uKCdyZXR3ZWV0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTEzNiA1NTJoNjMuNmM0LjQgMCA4LTMuNiA4LThWMjg4LjdoNTI4LjZ2NzIuNmMwIDEuOS42IDMuNyAxLjggNS4yYTguMyA4LjMgMCAwIDAgMTEuNyAxLjRMODkzIDI1NS40YzQuMy01IDMuNi0xMC4zIDAtMTMuMkw3NDkuNyAxMjkuOGE4LjIyIDguMjIgMCAwIDAtNS4yLTEuOGMtNC42IDAtOC40IDMuOC04LjQgOC40VjIwOUgxOTkuN2MtMzkuNSAwLTcxLjcgMzIuMi03MS43IDcxLjhWNTQ0YzAgNC40IDMuNiA4IDggOHptNzUyLTgwaC02My42Yy00LjQgMC04IDMuNi04IDh2MjU1LjNIMjg3Ljh2LTcyLjZjMC0xLjktLjYtMy43LTEuOC01LjJhOC4zIDguMyAwIDAgMC0xMS43LTEuNEwxMzEgNzY4LjZjLTQuMyA1LTMuNiAxMC4zIDAgMTMuMmwxNDMuMyAxMTIuNGMxLjUgMS4yIDMuMyAxLjggNS4yIDEuOCA0LjYgMCA4LjQtMy44IDguNC04LjRWODE1aDUzNi42YzM5LjUgMCA3MS43LTMyLjIgNzEuNy03MS44VjQ4MGMtLjItNC40LTMuOC04LTguMi04eicpKTtcbmV4cG9ydHMuUmlnaHRPdXRsaW5lID0gZ2V0SWNvbigncmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzY1LjcgNDg2LjhMMzE0LjkgMTM0LjdBNy45NyA3Ljk3IDAgMCAwIDMwMiAxNDF2NzcuM2MwIDQuOSAyLjMgOS42IDYuMSAxMi42bDM2MCAyODEuMS0zNjAgMjgxLjFjLTMuOSAzLTYuMSA3LjctNi4xIDEyLjZWODgzYzAgNi43IDcuNyAxMC40IDEyLjkgNi4zbDQ1MC44LTM1Mi4xYTMxLjk2IDMxLjk2IDAgMCAwIDAtNTAuNHonKSk7XG5leHBvcnRzLlJpc2VPdXRsaW5lID0gZ2V0SWNvbigncmlzZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTcgMjExLjFsLTE5OS4yIDI0Yy02LjYuOC05LjQgOC45LTQuNyAxMy42bDU5LjMgNTkuMy0yMjYgMjI2LTEwMS44LTEwMS43Yy02LjMtNi4zLTE2LjQtNi4yLTIyLjYgMEwxMDAuMyA3NTQuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQ1IDQ1LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEw0MzMuMyA1MzQgNTM1IDYzNS43YzYuMyA2LjIgMTYuNCA2LjIgMjIuNiAwTDgyOSAzNjQuNWw1OS4zIDU5LjNhOC4wMSA4LjAxIDAgMCAwIDEzLjYtNC43bDI0LTE5OS4yYy43LTUuMS0zLjctOS41LTguOS04Ljh6JykpO1xuZXhwb3J0cy5Sb2xsYmFja091dGxpbmUgPSBnZXRJY29uKCdyb2xsYmFjaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003OTMgMjQySDM2NnYtNzRjMC02LjctNy43LTEwLjQtMTIuOS02LjNsLTE0MiAxMTJhOCA4IDAgMCAwIDAgMTIuNmwxNDIgMTEyYzUuMiA0LjEgMTIuOS40IDEyLjktNi4zdi03NGg0MTV2NDcwSDE3NWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2MThjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzA2YzAtMzUuMy0yOC43LTY0LTY0LTY0eicpKTtcbmV4cG9ydHMuU2FmZXR5T3V0bGluZSA9IGdldEljb24oJ3NhZmV0eScsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ001MTIgNjRMMTI4IDE5MnYzODRjMCAyMTIuMSAxNzEuOSAzODQgMzg0IDM4NHMzODQtMTcxLjkgMzg0LTM4NFYxOTJMNTEyIDY0em0zMTIgNTEyYzAgMTcyLjMtMTM5LjcgMzEyLTMxMiAzMTJTMjAwIDc0OC4zIDIwMCA1NzZWMjQ2bDMxMi0xMTAgMzEyIDExMHYzMzB6JywgJ00zNzguNCA0NzUuMWEzNS45MSAzNS45MSAwIDAgMC01MC45IDAgMzUuOTEgMzUuOTEgMCAwIDAgMCA1MC45bDEyOS40IDEyOS40IDIuMSAyLjFhMzMuOTggMzMuOTggMCAwIDAgNDguMSAwTDczMC42IDQzNGEzMy45OCAzMy45OCAwIDAgMCAwLTQ4LjFsLTIuOC0yLjhhMzMuOTggMzMuOTggMCAwIDAtNDguMSAwTDQ4MyA1NzkuNyAzNzguNCA0NzUuMXonKSk7XG5leHBvcnRzLlJvYm90T3V0bGluZSA9IGdldEljb24oJ3JvYm90Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMwMCAzMjhhNjAgNjAgMCAxIDAgMTIwIDAgNjAgNjAgMCAxIDAtMTIwIDB6TTg1MiA2NEgxNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiA2NjBIMjA0VjEyOGg2MTZ2NTk2ek02MDQgMzI4YTYwIDYwIDAgMSAwIDEyMCAwIDYwIDYwIDAgMSAwLTEyMCAwem0yNTAuMiA1NTZIMTY5LjhjLTE2LjUgMC0yOS44IDE0LjMtMjkuOCAzMnYzNmMwIDQuNCAzLjMgOCA3LjQgOGg3MjkuMWM0LjEgMCA3LjQtMy42IDcuNC04di0zNmMuMS0xNy43LTEzLjItMzItMjkuNy0zMnpNNjY0IDUwOEgzNjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuU2VhcmNoT3V0bGluZSA9IGdldEljb24oJ3NlYXJjaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDkuNiA4NTQuNUw2NDkuOSA1OTQuOEM2OTAuMiA1NDIuNyA3MTIgNDc5IDcxMiA0MTJjMC04MC4yLTMxLjMtMTU1LjQtODcuOS0yMTIuMS01Ni42LTU2LjctMTMyLTg3LjktMjEyLjEtODcuOXMtMTU1LjUgMzEuMy0yMTIuMSA4Ny45QzE0My4yIDI1Ni41IDExMiAzMzEuOCAxMTIgNDEyYzAgODAuMSAzMS4zIDE1NS41IDg3LjkgMjEyLjFDMjU2LjUgNjgwLjggMzMxLjggNzEyIDQxMiA3MTJjNjcgMCAxMzAuNi0yMS44IDE4Mi43LTYybDI1OS43IDI1OS42YTguMiA4LjIgMCAwIDAgMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMCAwIDAtMTEuNnpNNTcwLjQgNTcwLjRDNTI4IDYxMi43IDQ3MS44IDYzNiA0MTIgNjM2cy0xMTYtMjMuMy0xNTguNC02NS42QzIxMS4zIDUyOCAxODggNDcxLjggMTg4IDQxMnMyMy4zLTExNi4xIDY1LjYtMTU4LjRDMjk2IDIxMS4zIDM1Mi4yIDE4OCA0MTIgMTg4czExNi4xIDIzLjIgMTU4LjQgNjUuNlM2MzYgMzUyLjIgNjM2IDQxMnMtMjMuMyAxMTYuMS02NS42IDE1OC40eicpKTtcbmV4cG9ydHMuU2Nhbk91dGxpbmUgPSBnZXRJY29uKCdzY2FuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTEzNiAzODRoNTZjNC40IDAgOC0zLjYgOC04VjIwMGgxNzZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTk2Yy0zNy42IDAtNjggMzAuNC02OCA2OHYxODBjMCA0LjQgMy42IDggOCA4em01MTItMTg0aDE3NnYxNzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxOTZjMC0zNy42LTMwLjQtNjgtNjgtNjhINjQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0zNzYgODI0SDIwMFY2NDhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djE4MGMwIDM3LjYgMzAuNCA2OCA2OCA2OGgxODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTUxMi0xODRoLTU2Yy00LjQgMC04IDMuNi04IDh2MTc2SDY0OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxODBjMzcuNiAwIDY4LTMwLjQgNjgtNjhWNjQ4YzAtNC40LTMuNi04LTgtOHptMTYtMTY0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5TY2lzc29yT3V0bGluZSA9IGdldEljb24oJ3NjaXNzb3InLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTY3LjEgNTEybDMxOC41LTMxOS4zYzUtNSAxLjUtMTMuNy01LjYtMTMuN2gtOTAuNWMtMi4xIDAtNC4yLjgtNS42IDIuM2wtMjczLjMgMjc0LTkwLjItOTAuNWMxMi41LTIyLjEgMTkuNy00Ny42IDE5LjctNzQuOCAwLTgzLjktNjguMS0xNTItMTUyLTE1MnMtMTUyIDY4LjEtMTUyIDE1MiA2OC4xIDE1MiAxNTIgMTUyYzI3LjcgMCA1My42LTcuNCA3NS45LTIwLjNsOTAgOTAuMy05MC4xIDkwLjNBMTUxLjA0IDE1MS4wNCAwIDAgMCAyODggNTgyYy04My45IDAtMTUyIDY4LjEtMTUyIDE1MnM2OC4xIDE1MiAxNTIgMTUyIDE1Mi02OC4xIDE1Mi0xNTJjMC0yNy4yLTcuMi01Mi43LTE5LjctNzQuOGw5MC4yLTkwLjUgMjczLjMgMjc0YzEuNSAxLjUgMy41IDIuMyA1LjYgMi4zSDg4MGM3LjEgMCAxMC43LTguNiA1LjYtMTMuN0w1NjcuMSA1MTJ6TTI4OCAzNzBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwem0wIDQ0NGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6JykpO1xuZXhwb3J0cy5TZWxlY3RPdXRsaW5lID0gZ2V0SWNvbignc2VsZWN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzYwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE4NFYxODRoNjU2djMyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjUzLjMgNTk5LjRsNTIuMi01Mi4yYTguMDEgOC4wMSAwIDAgMC00LjctMTMuNmwtMTc5LjQtMjFjLTUuMS0uNi05LjUgMy43LTguOSA4LjlsMjEgMTc5LjRjLjggNi42IDguOSA5LjQgMTMuNiA0LjdsNTIuNC01Mi40IDI1Ni4yIDI1Ni4yYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDIuNC00Mi40YzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNjUzLjMgNTk5LjR6JykpO1xuZXhwb3J0cy5TaGFrZU91dGxpbmUgPSBnZXRJY29uKCdzaGFrZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMjQgNjY2YTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptNjE2LjctMzA5LjZMNjY3LjYgODMuMkM2NTUuMiA3MC45IDYzOC43IDY0IDYyMS4xIDY0cy0zNC4xIDYuOC00Ni41IDE5LjJMODMuMyA1NzQuNWE2NS44NSA2NS44NSAwIDAgMCAwIDkzLjFsMjczLjIgMjczLjJjMTIuMyAxMi4zIDI4LjkgMTkuMiA0Ni41IDE5LjJzMzQuMS02LjggNDYuNS0xOS4ybDQ5MS4zLTQ5MS4zYzI1LjYtMjUuNyAyNS42LTY3LjUtLjEtOTMuMXpNNDAzIDg4MC4xTDE0My45IDYyMWw0NzcuMi00NzcuMiAyNTkgMjU5LjJMNDAzIDg4MC4xek0xNTIuOCAzNzMuN2E3LjkgNy45IDAgMCAwIDExLjIgMEwzNzMuNyAxNjRhNy45IDcuOSAwIDAgMCAwLTExLjJsLTM4LjQtMzguNGE3LjkgNy45IDAgMCAwLTExLjIgMEwxMTQuMyAzMjMuOWE3LjkgNy45IDAgMCAwIDAgMTEuMmwzOC41IDM4LjZ6bTcxOC42IDI3Ni42YTcuOSA3LjkgMCAwIDAtMTEuMiAwTDY1MC4zIDg2MC4xYTcuOSA3LjkgMCAwIDAgMCAxMS4ybDM4LjQgMzguNGE3LjkgNy45IDAgMCAwIDExLjIgMEw5MDkuNyA3MDBhNy45IDcuOSAwIDAgMCAwLTExLjJsLTM4LjMtMzguNXonKSk7XG5leHBvcnRzLlNoYXJlQWx0T3V0bGluZSA9IGdldEljb24oJ3NoYXJlLWFsdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NTIgNjY0Yy0yOC41IDAtNTQuOCAxMC03NS40IDI2LjdMNDY5LjQgNTQwLjhhMTYwLjY4IDE2MC42OCAwIDAgMCAwLTU3LjZsMjA3LjItMTQ5LjlDNjk3LjIgMzUwIDcyMy41IDM2MCA3NTIgMzYwYzY2LjIgMCAxMjAtNTMuOCAxMjAtMTIwcy01My44LTEyMC0xMjAtMTIwLTEyMCA1My44LTEyMCAxMjBjMCAxMS42IDEuNiAyMi43IDQuNyAzMy4zTDQzOS45IDQxNS44QzQxMC43IDM3Ny4xIDM2NC4zIDM1MiAzMTIgMzUyYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHM3MS42IDE2MCAxNjAgMTYwYzUyLjMgMCA5OC43LTI1LjEgMTI3LjktNjMuOGwxOTYuOCAxNDIuNWMtMy4xIDEwLjYtNC43IDIxLjgtNC43IDMzLjMgMCA2Ni4yIDUzLjggMTIwIDEyMCAxMjBzMTIwLTUzLjggMTIwLTEyMC01My44LTEyMC0xMjAtMTIwem0wLTQ3NmMyOC43IDAgNTIgMjMuMyA1MiA1MnMtMjMuMyA1Mi01MiA1Mi01Mi0yMy4zLTUyLTUyIDIzLjMtNTIgNTItNTJ6TTMxMiA2MDBjLTQ4LjUgMC04OC0zOS41LTg4LTg4czM5LjUtODggODgtODggODggMzkuNSA4OCA4OC0zOS41IDg4LTg4IDg4em00NDAgMjM2Yy0yOC43IDAtNTItMjMuMy01Mi01MnMyMy4zLTUyIDUyLTUyIDUyIDIzLjMgNTIgNTItMjMuMyA1Mi01MiA1MnonKSk7XG5leHBvcnRzLlNob3BwaW5nQ2FydE91dGxpbmUgPSBnZXRJY29uKCdzaG9wcGluZy1jYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTkyMi45IDcwMS45SDMyNy40bDI5LjktNjAuOSA0OTYuOC0uOWMxNi44IDAgMzEuMi0xMiAzNC4yLTI4LjZsNjguOC0zODUuMWMxLjgtMTAuMS0uOS0yMC41LTcuNS0yOC40YTM0Ljk5IDM0Ljk5IDAgMCAwLTI2LjYtMTIuNWwtNjMyLTIuMS01LjQtMjUuNGMtMy40LTE2LjItMTgtMjgtMzQuNi0yOEg5Ni41YTM1LjMgMzUuMyAwIDEgMCAwIDcwLjZoMTI1LjlMMjQ2IDMxMi44bDU4LjEgMjgxLjMtNzQuOCAxMjIuMWEzNC45NiAzNC45NiAwIDAgMC0zIDM2LjhjNiAxMS45IDE4LjEgMTkuNCAzMS41IDE5LjRoNjIuOGExMDIuNDMgMTAyLjQzIDAgMCAwLTIwLjYgNjEuN2MwIDU2LjYgNDYgMTAyLjYgMTAyLjYgMTAyLjZzMTAyLjYtNDYgMTAyLjYtMTAyLjZjMC0yMi4zLTcuNC00NC0yMC42LTYxLjdoMTYxLjFhMTAyLjQzIDEwMi40MyAwIDAgMC0yMC42IDYxLjdjMCA1Ni42IDQ2IDEwMi42IDEwMi42IDEwMi42czEwMi42LTQ2IDEwMi42LTEwMi42YzAtMjIuMy03LjQtNDQtMjAuNi02MS43SDkyM2MxOS40IDAgMzUuMy0xNS44IDM1LjMtMzUuM2EzNS40MiAzNS40MiAwIDAgMC0zNS40LTM1LjJ6TTMwNS43IDI1M2w1NzUuOCAxLjktNTYuNCAzMTUuOC00NTIuMy44TDMwNS43IDI1M3ptOTYuOSA2MTIuN2MtMTcuNCAwLTMxLjYtMTQuMi0zMS42LTMxLjYgMC0xNy40IDE0LjItMzEuNiAzMS42LTMxLjZzMzEuNiAxNC4yIDMxLjYgMzEuNmEzMS42IDMxLjYgMCAwIDEtMzEuNiAzMS42em0zMjUuMSAwYy0xNy40IDAtMzEuNi0xNC4yLTMxLjYtMzEuNiAwLTE3LjQgMTQuMi0zMS42IDMxLjYtMzEuNnMzMS42IDE0LjIgMzEuNiAzMS42YTMxLjYgMzEuNiAwIDAgMS0zMS42IDMxLjZ6JykpO1xuZXhwb3J0cy5TaHJpbmtPdXRsaW5lID0gZ2V0SWNvbignc2hyaW5rJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MS43IDE4Ny40bC00NS4xLTQ1LjFhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw2NjcuOCAyOTkuOWwtNTQuNy01NC43YTcuOTQgNy45NCAwIDAgMC0xMy41IDQuN0w1NzYuMSA0MzljLS42IDUuMiAzLjcgOS41IDguOSA4LjlsMTg5LjItMjMuNWM2LjYtLjggOS4zLTguOCA0LjctMTMuNWwtNTQuNy01NC43IDE1Ny42LTE1Ny42YzMtMyAzLTguMS0uMS0xMS4yek00MzkgNTc2LjFsLTE4OS4yIDIzLjVjLTYuNi44LTkuMyA4LjktNC43IDEzLjVsNTQuNyA1NC43LTE1Ny41IDE1Ny41YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDUuMSA0NS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTU3LjYtMTU3LjYgNTQuNyA1NC43YTcuOTQgNy45NCAwIDAgMCAxMy41LTQuN0w0NDcuOSA1ODVhNy45IDcuOSAwIDAgMC04LjktOC45eicpKTtcbmV4cG9ydHMuU2xhY2tPdXRsaW5lID0gZ2V0SWNvbignc2xhY2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDA5LjQgMTI4Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOCAwIDIwLjMgOC4xIDM5LjkgMjIuNCA1NC4zYTc2Ljc0IDc2Ljc0IDAgMCAwIDU0LjMgMjIuNWg3Ni43di03Ni44YzAtNDIuMy0zNC4zLTc2LjctNzYuNy03Ni44em0wIDIwNC44SDIwNC43Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOHMzNC40IDc2LjggNzYuNyA3Ni44aDIwNC42YzQyLjQgMCA3Ni43LTM0LjQgNzYuNy03Ni44LjEtNDIuNC0zNC4zLTc2LjgtNzYuNi03Ni44ek02MTQgNDg2LjRjNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2LjhWMjA0LjhjMC00Mi40LTM0LjMtNzYuOC03Ni43LTc2LjgtNDIuNCAwLTc2LjcgMzQuNC03Ni43IDc2Ljh2MjA0LjhjMCA0Mi41IDM0LjMgNzYuOCA3Ni43IDc2Ljh6bTI4MS40LTc2LjhjMC00Mi40LTM0LjQtNzYuOC03Ni43LTc2LjhTNzQyIDM2Ny4yIDc0MiA0MDkuNnY3Ni44aDc2LjdjNDIuMyAwIDc2LjctMzQuNCA3Ni43LTc2Ljh6bS03Ni44IDEyOEg2MTRjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44IDAgMjAuMyA4LjEgMzkuOSAyMi40IDU0LjNhNzYuNzQgNzYuNzQgMCAwIDAgNTQuMyAyMi41aDIwNC42YzQyLjQgMCA3Ni43LTM0LjQgNzYuNy03Ni44LjEtNDIuNC0zNC4zLTc2LjctNzYuNy03Ni44ek02MTQgNzQyLjRoLTc2Ljd2NzYuOGMwIDQyLjQgMzQuNCA3Ni44IDc2LjcgNzYuOCA0Mi40IDAgNzYuOC0zNC40IDc2LjctNzYuOC4xLTQyLjQtMzQuMy03Ni43LTc2LjctNzYuOHpNNDA5LjQgNTM3LjZjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44djIwNC44YzAgNDIuNCAzNC40IDc2LjggNzYuNyA3Ni44IDQyLjQgMCA3Ni44LTM0LjQgNzYuNy03Ni44VjYxNC40YzAtMjAuMy04LjEtMzkuOS0yMi40LTU0LjNhNzYuOTIgNzYuOTIgMCAwIDAtNTQuMy0yMi41ek0xMjggNjE0LjRjMCAyMC4zIDguMSAzOS45IDIyLjQgNTQuM2E3Ni43NCA3Ni43NCAwIDAgMCA1NC4zIDIyLjVjNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2Ljh2LTc2LjhoLTc2LjdjLTQyLjMgMC03Ni43IDM0LjQtNzYuNyA3Ni44eicpKTtcbmV4cG9ydHMuU21hbGxEYXNoT3V0bGluZSA9IGdldEljb24oJ3NtYWxsLWRhc2gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTEyIDQ3Nmg3MnY3MmgtNzJ6bTE4MiAwaDcydjcyaC03MnptMzY0IDBoNzJ2NzJoLTcyem0xODIgMGg3MnY3MmgtNzJ6bS0zNjQgMGg3MnY3MmgtNzJ6JykpO1xuZXhwb3J0cy5Tb2x1dGlvbk91dGxpbmUgPSBnZXRJY29uKCdzb2x1dGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002ODggMjY0YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDh6bS04IDEzNkgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek00ODAgNTQ0SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bS00OCAzMDhIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzU2LjgtNzQuNGMyOS0yNi4zIDQ3LjItNjQuMyA0Ny4yLTEwNi42IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0cy0xNDQgNjQuNS0xNDQgMTQ0YzAgNDIuMyAxOC4yIDgwLjMgNDcuMiAxMDYuNi01NyAzMi41LTk2LjIgOTIuNy05OS4yIDE2Mi4xLS4yIDQuNSAzLjUgOC4zIDggOC4zaDQ4LjFjNC4yIDAgNy43LTMuMyA4LTcuNkM1NjQgODcxLjIgNjIxLjcgODE2IDY5MiA4MTZzMTI4IDU1LjIgMTMxLjkgMTI0LjRjLjIgNC4yIDMuNyA3LjYgOCA3LjZIODgwYzQuNiAwIDguMi0zLjggOC04LjMtMi45LTY5LjUtNDIuMi0xMjkuNi05OS4yLTE2Mi4xek02OTIgNTkxYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHonKSk7XG5leHBvcnRzLlNrZXRjaE91dGxpbmUgPSBnZXRJY29uKCdza2V0Y2gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI1LjYgNDA1LjFsLTIwMy0yNTMuN2E2LjUgNi41IDAgMCAwLTUtMi40SDMwNi40Yy0xLjkgMC0zLjguOS01IDIuNGwtMjAzIDI1My43YTYuNSA2LjUgMCAwIDAgLjIgOC4zbDQwOC42IDQ1OS41YzEuMiAxLjQgMyAyLjEgNC44IDIuMSAxLjggMCAzLjUtLjggNC44LTIuMWw0MDguNi00NTkuNWE2LjUgNi41IDAgMCAwIC4yLTguM3pNNjQ1LjIgMjA2LjRsMzQuNCAxMzMuOS0xMzIuNS0xMzMuOWg5OC4xem04LjIgMTc4LjVIMzcwLjZMNTEyIDI0MmwxNDEuNCAxNDIuOXpNMzc4LjggMjA2LjRoOTguMUwzNDQuMyAzNDAuM2wzNC41LTEzMy45em0tNTMuNCA3bC00NC4xIDE3MS41aC05My4xbDEzNy4yLTE3MS41ek0xOTQuNiA0MzQuOUgyODlsMTI1LjggMjQ3LjctMjIwLjItMjQ3Ljd6TTUxMiA3NjMuNEwzNDUuMSA0MzQuOWgzMzMuN0w1MTIgNzYzLjR6bTk3LjEtODAuOEw3MzUgNDM0LjloOTQuNEw2MDkuMSA2ODIuNnptMTMzLjYtMjk3LjdsLTQ0LjEtMTcxLjUgMTM3LjIgMTcxLjVoLTkzLjF6JykpO1xuZXhwb3J0cy5Tb3J0RGVzY2VuZGluZ091dGxpbmUgPSBnZXRJY29uKCdzb3J0LWRlc2NlbmRpbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM5LjYgNDMzLjhMNzQ5IDE1MC41YTkuMjQgOS4yNCAwIDAgMC04LjktNi41aC03Ny40Yy00LjEgMC03LjYgMi42LTguOSA2LjVsLTkxLjMgMjgzLjNjLS4zLjktLjUgMS45LS41IDIuOSAwIDUuMSA0LjIgOS4zIDkuMyA5LjNoNTYuNGM0LjIgMCA3LjgtMi44IDktNi44bDE3LjUtNjEuNmg4OWwxNy4zIDYxLjVjMS4xIDQgNC44IDYuOCA5IDYuOGg2MS4yYzEgMCAxLjktLjEgMi44LS40IDIuNC0uOCA0LjMtMi40IDUuNS00LjYgMS4xLTIuMiAxLjMtNC43LjYtNy4xek02NjMuMyAzMjUuNWwzMi44LTExNi45aDYuM2wzMi4xIDExNi45aC03MS4yem0xNDMuNSA0OTIuOUg2NzcuMnYtLjRsMTMyLjYtMTg4LjljMS4xLTEuNiAxLjctMy40IDEuNy01LjR2LTM2LjRjMC01LjEtNC4yLTkuMy05LjMtOS4zaC0yMDRjLTUuMSAwLTkuMyA0LjItOS4zIDkuM3Y0M2MwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMTIyLjZ2LjRMNTg3LjcgODI4LjlhOS4zNSA5LjM1IDAgMCAwLTEuNyA1LjR2MzYuNGMwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMjExLjRjNS4xIDAgOS4zLTQuMiA5LjMtOS4zdi00M2E5LjIgOS4yIDAgMCAwLTkuMi05LjN6TTMxMC4zIDE2Ny4xYTggOCAwIDAgMC0xMi42IDBMMTg1LjcgMzA5Yy00LjIgNS4zLS40IDEzIDYuMyAxM2g3NnY1MzBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjJoNzZjNi43IDAgMTAuNS03LjggNi4zLTEzbC0xMTItMTQxLjl6JykpO1xuZXhwb3J0cy5Tb3J0QXNjZW5kaW5nT3V0bGluZSA9IGdldEljb24oJ3NvcnQtYXNjZW5kaW5nJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzOS42IDQzMy44TDc0OSAxNTAuNWE5LjI0IDkuMjQgMCAwIDAtOC45LTYuNWgtNzcuNGMtNC4xIDAtNy42IDIuNi04LjkgNi41bC05MS4zIDI4My4zYy0uMy45LS41IDEuOS0uNSAyLjkgMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDU2LjRjNC4yIDAgNy44LTIuOCA5LTYuOGwxNy41LTYxLjZoODlsMTcuMyA2MS41YzEuMSA0IDQuOCA2LjggOSA2LjhoNjEuMmMxIDAgMS45LS4xIDIuOC0uNCAyLjQtLjggNC4zLTIuNCA1LjUtNC42IDEuMS0yLjIgMS4zLTQuNy42LTcuMXpNNjYzLjMgMzI1LjVsMzIuOC0xMTYuOWg2LjNsMzIuMSAxMTYuOWgtNzEuMnptMTQzLjUgNDkyLjlINjc3LjJ2LS40bDEzMi42LTE4OC45YzEuMS0xLjYgMS43LTMuNCAxLjctNS40di0zNi40YzAtNS4xLTQuMi05LjMtOS4zLTkuM2gtMjA0Yy01LjEgMC05LjMgNC4yLTkuMyA5LjN2NDNjMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDEyMi42di40TDU4Ny43IDgyOC45YTkuMzUgOS4zNSAwIDAgMC0xLjcgNS40djM2LjRjMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDIxMS40YzUuMSAwIDkuMy00LjIgOS4zLTkuM3YtNDNhOS4yIDkuMiAwIDAgMC05LjItOS4zek00MTYgNzAyaC03NlYxNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djUzMGgtNzZjLTYuNyAwLTEwLjUgNy44LTYuMyAxM2wxMTIgMTQxLjlhOCA4IDAgMCAwIDEyLjYgMGwxMTItMTQxLjljNC4xLTUuMi40LTEzLTYuMy0xM3onKSk7XG5leHBvcnRzLlN0b2NrT3V0bGluZSA9IGdldEljb24oJ3N0b2NrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCA3NDdIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTY1LjcgNjIxLjhsMzkuNyAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjM0LjctMjMzLjkgOTcuNiA5Ny4zYTMyLjExIDMyLjExIDAgMCAwIDQ1LjIgMGwyNjQuMi0yNjMuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS43LTM5LjZhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMjM1LjcgMjM1LTk3LjctOTcuM2EzMi4xMSAzMi4xMSAwIDAgMC00NS4yIDBMMTY1LjcgNjEwLjVhNy45NCA3Ljk0IDAgMCAwIDAgMTEuM3onKSk7XG5leHBvcnRzLlN3YXBMZWZ0T3V0bGluZSA9IGdldEljb24oJ3N3YXAtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004NzIgNTcySDI2Ni44bDE0NC4zLTE4M2M0LjEtNS4yLjQtMTMtNi4zLTEzSDM0MGMtOS44IDAtMTkuMSA0LjUtMjUuMSAxMi4ybC0xNjQgMjA4Yy0xNi41IDIxLTEuNiA1MS44IDI1LjEgNTEuOGg2OTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Td2FwUmlnaHRPdXRsaW5lID0gZ2V0SWNvbignc3dhcC1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004NzMuMSA1OTYuMmwtMTY0LTIwOEEzMiAzMiAwIDAgMCA2ODQgMzc2aC02NC44Yy02LjcgMC0xMC40IDcuNy02LjMgMTNsMTQ0LjMgMTgzSDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2OTUuOWMyNi44IDAgNDEuNy0zMC44IDI1LjItNTEuOHonKSk7XG5leHBvcnRzLlN0cmlrZXRocm91Z2hPdXRsaW5lID0gZ2V0SWNvbignc3RyaWtldGhyb3VnaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgNDc0SDU2OS45Yy0xMC0yLTIwLjUtNC0zMS42LTYtMTUuOS0yLjktMjIuMi00LjEtMzAuOC01LjgtNTEuMy0xMC04Mi4yLTIwLTEwNi44LTM0LjItMzUuMS0yMC41LTUyLjItNDguMy01Mi4yLTg1LjEgMC0zNyAxNS4yLTY3LjcgNDQtODkgMjguNC0yMSA2OC44LTMyLjEgMTE2LjgtMzIuMSA1NC44IDAgOTcuMSAxNC40IDEyNS44IDQyLjggMTQuNiAxNC40IDI1LjMgMzIuMSAzMS44IDUyLjYgMS4zIDQuMSAyLjggMTAgNC4zIDE3LjguOSA0LjggNS4yIDguMiA5LjkgOC4yaDcyLjhjNS42IDAgMTAuMS00LjYgMTAuMS0xMC4xdi0xYy0uNy02LjgtMS4zLTEyLjEtMi0xNi03LjMtNDMuNS0yOC04MS43LTU5LjctMTEwLjMtNDQuNC00MC41LTEwOS43LTYxLjgtMTg4LjctNjEuOC03Mi4zIDAtMTM3LjQgMTguMS0xODMuMyA1MC45LTI1LjYgMTguNC00NS40IDQxLjItNTguNiA2Ny43LTEzLjUgMjcuMS0yMC4zIDU4LjQtMjAuMyA5Mi45IDAgMjkuNSA1LjcgNTQuNSAxNy4zIDc2LjUgOC4zIDE1LjcgMTkuNiAyOS41IDM0LjEgNDJINzJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNDMzLjJjMi4xLjQgMy45LjggNS45IDEuMiAzMC45IDYuMiA0OS41IDEwLjQgNjYuNiAxNS4yIDIzIDYuNSA0MC42IDEzLjMgNTUuMiAyMS41IDM1LjggMjAuMiA1My4zIDQ5LjIgNTMuMyA4OSAwIDM1LjMtMTUuNSA2Ni44LTQzLjYgODguOC0zMC41IDIzLjktNzUuNiAzNi40LTEzMC41IDM2LjQtNDMuNyAwLTgwLjctOC41LTExMC4yLTI1LTI5LjEtMTYuMy00OS4xLTM5LjgtNTkuNy02OS41LS44LTIuMi0xLjctNS4yLTIuNy05LTEuMi00LjQtNS4zLTcuNS05LjctNy41aC03OS43Yy01LjYgMC0xMC4xIDQuNi0xMC4xIDEwLjF2MWMuMiAyLjMuNCA0LjIuNiA1LjcgNi41IDQ4LjggMzAuMyA4OC44IDcwLjcgMTE4LjggNDcuMSAzNC44IDExMy40IDUzLjIgMTkxLjggNTMuMiA4NC4yIDAgMTU0LjgtMTkuOCAyMDQuMi01Ny4zIDI1LTE4LjkgNDQuMi00Mi4yIDU3LjEtNjkgMTMtMjcuMSAxOS43LTU3LjkgMTkuNy05MS41IDAtMzEuOC01LjgtNTguNC0xNy44LTgxLjQtNS44LTExLjItMTMuMS0yMS41LTIxLjgtMzAuOEg5NTJjNC40IDAgOC0zLjYgOC04di02MGE4IDggMCAwIDAtOC03Ljl6JykpO1xuZXhwb3J0cy5Td2FwT3V0bGluZSA9IGdldEljb24oJ3N3YXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQ3LjkgNTkySDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2MDUuMkw2MTIuOSA4NTFjLTQuMSA1LjItLjQgMTMgNi4zIDEzaDcyLjVjNC45IDAgOS41LTIuMiAxMi42LTYuMWwxNjguOC0yMTQuMWMxNi41LTIxIDEuNi01MS44LTI1LjItNTEuOHpNODcyIDM1NkgyNjYuOGwxNDQuMy0xODNjNC4xLTUuMi40LTEzLTYuMy0xM2gtNzIuNWMtNC45IDAtOS41IDIuMi0xMi42IDYuMUwxNTAuOSAzODAuMmMtMTYuNSAyMS0xLjYgNTEuOCAyNS4xIDUxLjhoNjk2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuU3luY091dGxpbmUgPSBnZXRJY29uKCdzeW5jJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE2OCA1MDQuMmMxLTQzLjcgMTAtODYuMSAyNi45LTEyNiAxNy4zLTQxIDQyLjEtNzcuNyA3My43LTEwOS40UzMzNyAyMTIuMyAzNzggMTk1YzQyLjQtMTcuOSA4Ny40LTI3IDEzMy45LTI3czkxLjUgOS4xIDEzMy44IDI3QTM0MS41IDM0MS41IDAgMCAxIDc1NSAyNjguOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMCAwIDMgMTQuMWwxNzUuNyA0M2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTgwLjljMC02LjctNy43LTEwLjUtMTIuOS02LjNsLTU2LjQgNDQuMUM3NjUuOCAxNTUuMSA2NDYuMiA5MiA1MTEuOCA5MiAyODIuNyA5MiA5Ni4zIDI3NS42IDkyIDUwMy44YTggOCAwIDAgMCA4IDguMmg2MGM0LjQgMCA3LjktMy41IDgtNy44em03NTYgNy44aC02MGMtNC40IDAtNy45IDMuNS04IDcuOC0xIDQzLjctMTAgODYuMS0yNi45IDEyNi0xNy4zIDQxLTQyLjEgNzcuOC03My43IDEwOS40QTM0Mi40NSAzNDIuNDUgMCAwIDEgNTEyLjEgODU2YTM0Mi4yNCAzNDIuMjQgMCAwIDEtMjQzLjItMTAwLjhjLTkuOS05LjktMTkuMi0yMC40LTI3LjgtMzEuNGw2MC4yLTQ3YTggOCAwIDAgMC0zLTE0LjFsLTE3NS43LTQzYy01LTEuMi05LjkgMi42LTkuOSA3LjdsLS43IDE4MWMwIDYuNyA3LjcgMTAuNSAxMi45IDYuM2w1Ni40LTQ0LjFDMjU4LjIgODY4LjkgMzc3LjggOTMyIDUxMi4yIDkzMmMyMjkuMiAwIDQxNS41LTE4My43IDQxOS44LTQxMS44YTggOCAwIDAgMC04LTguMnonKSk7XG5leHBvcnRzLlRhYmxlT3V0bGluZSA9IGdldEljb24oJ3RhYmxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMjA4SDY3NlYyMzJoMjEydjEzNnptMCAyMjRINjc2VjQzMmgyMTJ2MTYwek00MTIgNDMyaDIwMHYxNjBINDEyVjQzMnptMjAwLTY0SDQxMlYyMzJoMjAwdjEzNnptLTQ3NiA2NGgyMTJ2MTYwSDEzNlY0MzJ6bTAtMjAwaDIxMnYxMzZIMTM2VjIzMnptMCA0MjRoMjEydjEzNkgxMzZWNjU2em0yNzYgMGgyMDB2MTM2SDQxMlY2NTZ6bTQ3NiAxMzZINjc2VjY1NmgyMTJ2MTM2eicpKTtcbmV4cG9ydHMuVGVhbU91dGxpbmUgPSBnZXRJY29uKCd0ZWFtJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgyNC4yIDY5OS45YTMwMS41NSAzMDEuNTUgMCAwIDAtODYuNC02MC40Qzc4My4xIDYwMi44IDgxMiA1NDYuOCA4MTIgNDg0YzAtMTEwLjgtOTIuNC0yMDEuNy0yMDMuMi0yMDAtMTA5LjEgMS43LTE5NyA5MC42LTE5NyAyMDAgMCA2Mi44IDI5IDExOC44IDc0LjIgMTU1LjVhMzAwLjk1IDMwMC45NSAwIDAgMC04Ni40IDYwLjRDMzQ1IDc1NC42IDMxNCA4MjYuOCAzMTIgOTAzLjhhOCA4IDAgMCAwIDggOC4yaDU2YzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNUEyMjYuNjIgMjI2LjYyIDAgMCAxIDYxMiA2ODRjNjAuOSAwIDExOC4yIDIzLjcgMTYxLjMgNjYuOEM4MTQuNSA3OTIgODM4IDg0Ni4zIDg0MCA5MDQuM2MuMSA0LjMgMy43IDcuNyA4IDcuN2g1NmE4IDggMCAwIDAgOC04LjJjLTItNzctMzMtMTQ5LjItODcuOC0yMDMuOXpNNjEyIDYxMmMtMzQuMiAwLTY2LjQtMTMuMy05MC41LTM3LjVhMTI2Ljg2IDEyNi44NiAwIDAgMS0zNy41LTkxLjhjLjMtMzIuOCAxMy40LTY0LjUgMzYuMy04OCAyNC0yNC42IDU2LjEtMzguMyA5MC40LTM4LjcgMzMuOS0uMyA2Ni44IDEyLjkgOTEgMzYuNiAyNC44IDI0LjMgMzguNCA1Ni44IDM4LjQgOTEuNCAwIDM0LjItMTMuMyA2Ni4zLTM3LjUgOTAuNUExMjcuMyAxMjcuMyAwIDAgMSA2MTIgNjEyek0zNjEuNSA1MTAuNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMCAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOS0xLjctMjAzLjMgODkuMi0yMDMuMyAxOTkuOSAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwIDAgOCA4LjJoNTYuMWM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjUgMjkuNC0yOS40IDY1LjQtNDkuOCAxMDQuNy01OS43IDMuOS0xIDYuNS00LjcgNi04Ljd6JykpO1xuZXhwb3J0cy5UYW9iYW9PdXRsaW5lID0gZ2V0SWNvbigndGFvYmFvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE2OC41IDI3My43YTY4LjcgNjguNyAwIDEgMCAxMzcuNCAwIDY4LjcgNjguNyAwIDEgMC0xMzcuNCAwem03MzAgNzkuMnMtMjMuNy0xODQuNC00MjYuOS03MC4xYzE3LjMtMzAgMjUuNi00OS41IDI1LjYtNDkuNUwzOTYuNCAyMDVzLTQwLjYgMTMyLjYtMTEzIDE5NC40YzAgMCA3MC4xIDQwLjYgNjkuNCAzOS40IDIwLjEtMjAuMSAzOC4yLTQwLjYgNTMuNy02MC40IDE2LjEtNyAzMS41LTEzLjYgNDYuNy0xOS44LTE4LjYgMzMuNS00OC43IDgzLjgtNzguOCAxMTUuNmw0Mi40IDM3czI4LjgtMjcuNyA2MC40LTYxLjJoMzZ2NjEuOEgzNzIuOXY0OS41aDE0MC4zdjExOC41Yy0xLjcgMC0zLjYgMC01LjQtLjItMTUuNC0uNy0zOS41LTMuMy00OS0xOC4yLTExLjUtMTguMS0zLTUxLjUtMi40LTcxLjloLTk3bC0zLjQgMS44cy0zNS41IDE1OS4xIDEwMi4zIDE1NS41YzEyOS4xIDMuNiAyMDMtMzYgMjM4LjYtNjMuMWwxNC4yIDUyLjYgNzkuNi0zMy4yLTUzLjktMTMxLjktNjQuNiAyMC4xIDEyLjEgNDUuMmMtMTYuNiAxMi40LTM1LjYgMjEuNy01Ni4yIDI4LjRWNTYxLjNoMTM3LjF2LTQ5LjVINjI4LjFWNDUwaDEzNy42di00OS41SDUyMS4zYzE3LjYtMjEuNCAzMS41LTQxLjEgMzUtNTMuNmwtNDIuNS0xMS42YzE4Mi44LTY1LjUgMjg0LjUtNTQuMiAyODMuNiA1My4ydjI4Mi44czEwLjggOTcuMS0xMDAuNCA5MC4xbC02MC4yLTEyLjktMTQuMiA1Ny4xUzg4Mi41IDg4MCA5MDMuNyA2ODAuMmMyMS4zLTIwMC01LjItMzI3LjMtNS4yLTMyNy4zem0tNzA3LjQgMTguM2wtNDUuNCA2OS43IDgzLjYgNTIuMXM1NiAyOC41IDI5LjQgODEuOUMyMzMuOCA2MjUuNSAxMTIgNzM2LjMgMTEyIDczNi4zbDEwOSA2OC4xYzc1LjQtMTYzLjcgNzAuNS0xNDIgODkuNS0yMDAuNyAxOS41LTYwLjEgMjMuNy0xMDUuOS05LjQtMTM5LjEtNDIuNC00Mi42LTQ3LTQ2LjYtMTEwLTkzLjR6JykpO1xuZXhwb3J0cy5Ub1RvcE91dGxpbmUgPSBnZXRJY29uKCd0by10b3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg1IDc4MEgxNjVjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04ek00MDAgMzI1LjdoNzMuOVY2NjRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYzMjUuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgMTcxYTggOCAwIDAgMC0xMi42IDBsLTExMiAxNDEuN2MtNC4xIDUuMy0uNCAxMyA2LjMgMTN6JykpO1xuZXhwb3J0cy5UcmFkZW1hcmtPdXRsaW5lID0gZ2V0SWNvbigndHJhZGVtYXJrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptODcuNS0zMzQuN2MzNC44LTEyLjggNzguNC00OSA3OC40LTExOS4yIDAtNzEuMi00NS41LTEzMS4xLTE0NC4yLTEzMS4xSDM3OGMtNC40IDAtOCAzLjYtOCA4djQxMGMwIDQuNCAzLjYgOCA4IDhoNTQuNWM0LjQgMCA4LTMuNiA4LThWNTYxLjJoODguN2w3NC42IDE1OS4yYzEuMyAyLjggNC4xIDQuNiA3LjIgNC42aDYyYTcuOSA3LjkgMCAwIDAgNy4xLTExLjVsLTgwLjYtMTY0LjJ6TTUyMiA1MDVoLTgxLjVWMzU3aDgzLjRjNDggMCA4MC45IDI1LjMgODAuOSA3NS41IDAgNDYuOS0yOS44IDcyLjUtODIuOCA3Mi41eicpKTtcbmV4cG9ydHMuVHJhbnNhY3Rpb25PdXRsaW5lID0gZ2V0SWNvbigndHJhbnNhY3Rpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjY4LjYgMzIwYzAtNC40LTMuNi04LTgtOGgtNTQuNWMtMyAwLTUuOCAxLjctNy4xIDQuNGwtODQuNyAxNjguOEg1MTFsLTg0LjctMTY4LjhhOCA4IDAgMCAwLTcuMS00LjRoLTU1LjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjhsMTAzLjkgMTkxLjZoLTU3Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZ2MzloLTc2Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZWNzA0YzAgNC40IDMuNiA4IDggOGg0OS45YzQuNCAwIDgtMy42IDgtOHYtNjMuNWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThoLTc2LjN2LTM5aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOEg1NjRsMTAzLjctMTkxLjZjLjUtMS4xLjktMi40LjktMy43ek0xNTcuOSA1MDQuMmEzNTIuNyAzNTIuNyAwIDAgMSAxMDMuNS0yNDIuNGMzMi41LTMyLjUgNzAuMy01OC4xIDExMi40LTc1LjkgNDMuNi0xOC40IDg5LjktMjcuOCAxMzcuNi0yNy44IDQ3LjggMCA5NC4xIDkuMyAxMzcuNiAyNy44IDQyLjEgMTcuOCA3OS45IDQzLjQgMTEyLjQgNzUuOSAxMCAxMCAxOS4zIDIwLjUgMjcuOSAzMS40bC01MCAzOS4xYTggOCAwIDAgMCAzIDE0LjFsMTU2LjggMzguM2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTYxLjVjMC02LjctNy43LTEwLjUtMTIuOS02LjNsLTQ3LjggMzcuNEM3NzAuNyAxNDYuMyA2NDguNiA4MiA1MTEuNSA4MiAyNzcgODIgODYuMyAyNzAuMSA4MiA1MDMuOGE4IDggMCAwIDAgOCA4LjJoNjBjNC4zIDAgNy44LTMuNSA3LjktNy44ek05MzQgNTEyaC02MGMtNC4zIDAtNy45IDMuNS04IDcuOGEzNTIuNyAzNTIuNyAwIDAgMS0xMDMuNSAyNDIuNCAzNTIuNTcgMzUyLjU3IDAgMCAxLTExMi40IDc1LjljLTQzLjYgMTguNC04OS45IDI3LjgtMTM3LjYgMjcuOHMtOTQuMS05LjMtMTM3LjYtMjcuOGEzNTIuNTcgMzUyLjU3IDAgMCAxLTExMi40LTc1LjljLTEwLTEwLTE5LjMtMjAuNS0yNy45LTMxLjRsNDkuOS0zOS4xYTggOCAwIDAgMC0zLTE0LjFsLTE1Ni44LTM4LjNjLTUtMS4yLTkuOSAyLjYtOS45IDcuN2wtLjggMTYxLjdjMCA2LjcgNy43IDEwLjUgMTIuOSA2LjNsNDcuOC0zNy40QzI1My4zIDg3Ny43IDM3NS40IDk0MiA1MTIuNSA5NDIgNzQ3IDk0MiA5MzcuNyA3NTMuOSA5NDIgNTIwLjJhOCA4IDAgMCAwLTgtOC4yeicpKTtcbmV4cG9ydHMuVHdpdHRlck91dGxpbmUgPSBnZXRJY29uKCd0d2l0dGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAyNTQuM2MtMzAuNiAxMy4yLTYzLjkgMjIuNy05OC4yIDI2LjRhMTcwLjEgMTcwLjEgMCAwIDAgNzUtOTQgMzM2LjY0IDMzNi42NCAwIDAgMS0xMDguMiA0MS4yQTE3MC4xIDE3MC4xIDAgMCAwIDY3MiAxNzRjLTk0LjUgMC0xNzAuNSA3Ni42LTE3MC41IDE3MC42IDAgMTMuMiAxLjYgMjYuNCA0LjIgMzkuMS0xNDEuNS03LjQtMjY3LjctNzUtMzUxLjYtMTc4LjVhMTY5LjMyIDE2OS4zMiAwIDAgMC0yMy4yIDg2LjFjMCA1OS4yIDMwLjEgMTExLjQgNzYgMTQyLjFhMTcyIDE3MiAwIDAgMS03Ny4xLTIxLjd2Mi4xYzAgODIuOSA1OC42IDE1MS42IDEzNi43IDE2Ny40YTE4MC42IDE4MC42IDAgMCAxLTQ0LjkgNS44Yy0xMS4xIDAtMjEuNi0xLjEtMzIuMi0yLjZDMjExIDY1MiAyNzMuOSA3MDEuMSAzNDguOCA3MDIuN2MtNTguNiA0NS45LTEzMiA3Mi45LTIxMS43IDcyLjktMTQuMyAwLTI3LjUtLjUtNDEuMi0yLjFDMTcxLjUgODIyIDI2MS4yIDg1MCAzNTcuOCA4NTAgNjcxLjQgODUwIDg0MyA1OTAuMiA4NDMgMzY0LjdjMC03LjQgMC0xNC44LS41LTIyLjIgMzMuMi0yNC4zIDYyLjMtNTQuNCA4NS41LTg4LjJ6JykpO1xuZXhwb3J0cy5VbmRlcmxpbmVPdXRsaW5lID0gZ2V0SWNvbigndW5kZXJsaW5lJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgyNCA4MDRIMjAwYy00LjQgMC04IDMuNC04IDcuNnY2MC44YzAgNC4yIDMuNiA3LjYgOCA3LjZoNjI0YzQuNCAwIDgtMy40IDgtNy42di02MC44YzAtNC4yLTMuNi03LjYtOC03LjZ6bS0zMTItNzZjNjkuNCAwIDEzNC42LTI3LjEgMTgzLjgtNzYuMkM3NDUgNjAyLjcgNzcyIDUzNy40IDc3MiA0NjhWMTU2YzAtNi42LTUuNC0xMi0xMi0xMmgtNjBjLTYuNiAwLTEyIDUuNC0xMiAxMnYzMTJjMCA5Ny03OSAxNzYtMTc2IDE3NnMtMTc2LTc5LTE3Ni0xNzZWMTU2YzAtNi42LTUuNC0xMi0xMi0xMmgtNjBjLTYuNiAwLTEyIDUuNC0xMiAxMnYzMTJjMCA2OS40IDI3LjEgMTM0LjYgNzYuMiAxODMuOEMzNzcuMyA3MDEgNDQyLjYgNzI4IDUxMiA3Mjh6JykpO1xuZXhwb3J0cy5VbmRvT3V0bGluZSA9IGdldEljb24oJ3VuZG8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTExLjQgMTI0QzI5MC41IDEyNC4zIDExMiAzMDMgMTEyIDUyMy45YzAgMTI4IDYwLjIgMjQyIDE1My44IDMxNS4ybC0zNy41IDQ4Yy00LjEgNS4zLS4zIDEzIDYuMyAxMi45bDE2Ny0uOGM1LjIgMCA5LTQuOSA3LjctOS45TDM2OS44IDcyN2E4IDggMCAwIDAtMTQuMS0zTDMxNSA3NzYuMWMtMTAuMi04LTIwLTE2LjctMjkuMy0yNmEzMTguNjQgMzE4LjY0IDAgMCAxLTY4LjYtMTAxLjdDMjAwLjQgNjA5IDE5MiA1NjcuMSAxOTIgNTIzLjlzOC40LTg1LjEgMjUuMS0xMjQuNWMxNi4xLTM4LjEgMzkuMi03Mi4zIDY4LjYtMTAxLjcgMjkuNC0yOS40IDYzLjYtNTIuNSAxMDEuNy02OC42QzQyNi45IDIxMi40IDQ2OC44IDIwNCA1MTIgMjA0czg1LjEgOC40IDEyNC41IDI1LjFjMzguMSAxNi4xIDcyLjMgMzkuMiAxMDEuNyA2OC42IDI5LjQgMjkuNCA1Mi41IDYzLjYgNjguNiAxMDEuNyAxNi43IDM5LjQgMjUuMSA4MS4zIDI1LjEgMTI0LjVzLTguNCA4NS4xLTI1LjEgMTI0LjVhMzE4LjY0IDMxOC42NCAwIDAgMS02OC42IDEwMS43Yy03LjUgNy41LTE1LjMgMTQuNS0yMy40IDIxLjJhNy45MyA3LjkzIDAgMCAwLTEuMiAxMS4xbDM5LjQgNTAuNWMyLjggMy41IDcuOSA0LjEgMTEuNCAxLjNDODU0LjUgNzYwLjggOTEyIDY0OS4xIDkxMiA1MjMuOWMwLTIyMS4xLTE3OS40LTQwMC4yLTQwMC42LTM5OS45eicpKTtcbmV4cG9ydHMuVW5vcmRlcmVkTGlzdE91dGxpbmUgPSBnZXRJY29uKCd1bm9yZGVyZWQtbGlzdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTIgMTkySDMyOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjg0SDMyOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjg0SDMyOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTEwNCAyMjhhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAwem0wIDI4NGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHonKSk7XG5leHBvcnRzLlVwT3V0bGluZSA9IGdldEljb24oJ3VwJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5MC41IDc1NS4zTDUzNy45IDI2OS4yYy0xMi44LTE3LjYtMzktMTcuNi01MS43IDBMMTMzLjUgNzU1LjNBOCA4IDAgMCAwIDE0MCA3NjhoNzVjNS4xIDAgOS45LTIuNSAxMi45LTYuNkw1MTIgMzY5LjhsMjg0LjEgMzkxLjZjMyA0LjEgNy44IDYuNiAxMi45IDYuNmg3NWM2LjUgMCAxMC4zLTcuNCA2LjUtMTIuN3onKSk7XG5leHBvcnRzLlVwbG9hZE91dGxpbmUgPSBnZXRJY29uKCd1cGxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDAwIDMxNy43aDczLjlWNjU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMzE3LjdINjI0YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDUxOC4zIDE2M2E4IDggMCAwIDAtMTIuNiAwbC0xMTIgMTQxLjdjLTQuMSA1LjMtLjQgMTMgNi4zIDEzek04NzggNjI2aC02MGMtNC40IDAtOCAzLjYtOCA4djE1NEgyMTRWNjM0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxOThjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjYzNGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Vc2VyQWRkT3V0bGluZSA9IGdldEljb24oJ3VzZXItYWRkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY3OC4zIDY0Mi40YzI0LjItMTMgNTEuOS0yMC40IDgxLjQtMjAuNGguMWMzIDAgNC40LTMuNiAyLjItNS42YTM3MS42NyAzNzEuNjcgMCAwIDAtMTAzLjctNjUuOGMtLjQtLjItLjgtLjMtMS4yLS41QzcxOS4yIDUwNSA3NTkuNiA0MzEuNyA3NTkuNiAzNDljMC0xMzctMTEwLjgtMjQ4LTI0Ny41LTI0OFMyNjQuNyAyMTIgMjY0LjcgMzQ5YzAgODIuNyA0MC40IDE1NiAxMDIuNiAyMDEuMS0uNC4yLS44LjMtMS4yLjUtNDQuNyAxOC45LTg0LjggNDYtMTE5LjMgODAuNmEzNzMuNDIgMzczLjQyIDAgMCAwLTgwLjQgMTE5LjVBMzczLjYgMzczLjYgMCAwIDAgMTM3IDg4OC44YTggOCAwIDAgMCA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTcgNjI4LjIgNDMyLjIgNTk3IDUxMi4yIDU5N2M1Ni43IDAgMTExLjEgMTUuNyAxNTggNDUuMWE4LjEgOC4xIDAgMCAwIDguMS4zek01MTIuMiA1MjFjLTQ1LjggMC04OC45LTE3LjktMTIxLjQtNTAuNEExNzEuMiAxNzEuMiAwIDAgMSAzNDAuNSAzNDljMC00NS45IDE3LjktODkuMSA1MC4zLTEyMS42UzQ2Ni4zIDE3NyA1MTIuMiAxNzdzODguOSAxNy45IDEyMS40IDUwLjRBMTcxLjIgMTcxLjIgMCAwIDEgNjgzLjkgMzQ5YzAgNDUuOS0xNy45IDg5LjEtNTAuMyAxMjEuNkM2MDEuMSA1MDMuMSA1NTggNTIxIDUxMi4yIDUyMXpNODgwIDc1OWgtODR2LTg0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY4NGgtODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODR2ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODRoODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Vc2VyZ3JvdXBBZGRPdXRsaW5lID0gZ2V0SWNvbigndXNlcmdyb3VwLWFkZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004OTIgNzcyaC04MHYtODBjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djgwaC04MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg4MHY4MGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di04MGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzczLjUgNDk4LjRjLS45LTguNy0xLjQtMTcuNS0xLjQtMjYuNCAwLTE1LjkgMS41LTMxLjQgNC4zLTQ2LjUuNy0zLjYtMS4yLTcuMy00LjUtOC44LTEzLjYtNi4xLTI2LjEtMTQuNS0zNi45LTI1LjFhMTI3LjU0IDEyNy41NCAwIDAgMS0zOC43LTk1LjRjLjktMzIuMSAxMy44LTYyLjYgMzYuMy04NS42IDI0LjctMjUuMyA1Ny45LTM5LjEgOTMuMi0zOC43IDMxLjkuMyA2Mi43IDEyLjYgODYgMzQuNCA3LjkgNy40IDE0LjcgMTUuNiAyMC40IDI0LjQgMiAzLjEgNS45IDQuNCA5LjMgMy4yIDE3LjYtNi4xIDM2LjItMTAuNCA1NS4zLTEyLjQgNS42LS42IDguOC02LjYgNi4zLTExLjYtMzIuNS02NC4zLTk4LjktMTA4LjctMTc1LjctMTA5LjktMTEwLjgtMS43LTIwMy4yIDg5LjItMjAzLjIgMjAwIDAgNjIuOCAyOC45IDExOC44IDc0LjIgMTU1LjUtMzEuOCAxNC43LTYxLjEgMzUtODYuNSA2MC40LTU0LjggNTQuNy04NS44IDEyNi45LTg3LjggMjA0YTggOCAwIDAgMCA4IDguMmg1Ni4xYzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNSAyOS40LTI5LjQgNjUuNC00OS44IDEwNC43LTU5LjcgMy44LTEuMSA2LjQtNC44IDUuOS04Ljh6TTgyNCA0NzJjMC0xMDkuNC04Ny45LTE5OC4zLTE5Ni45LTIwMEM1MTYuMyAyNzAuMyA0MjQgMzYxLjIgNDI0IDQ3MmMwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMCAwLTg2LjQgNjAuNEMzNTcgNzQyLjYgMzI2IDgxNC44IDMyNCA4OTEuOGE4IDggMCAwIDAgOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QzUwNS44IDY5NS43IDU2MyA2NzIgNjI0IDY3MmMxMTAuNCAwIDIwMC04OS41IDIwMC0yMDB6bS0xMDkuNSA5MC41QzY5MC4zIDU4Ni43IDY1OC4yIDYwMCA2MjQgNjAwcy02Ni4zLTEzLjMtOTAuNS0zNy41YTEyNy4yNiAxMjcuMjYgMCAwIDEtMzcuNS05MS44Yy4zLTMyLjggMTMuNC02NC41IDM2LjMtODggMjQtMjQuNiA1Ni4xLTM4LjMgOTAuNC0zOC43IDMzLjktLjMgNjYuOCAxMi45IDkxIDM2LjYgMjQuOCAyNC4zIDM4LjQgNTYuOCAzOC40IDkxLjQtLjEgMzQuMi0xMy40IDY2LjMtMzcuNiA5MC41eicpKTtcbmV4cG9ydHMuVXNlck91dGxpbmUgPSBnZXRJY29uKCd1c2VyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1OC41IDc2My42YTM3NCAzNzQgMCAwIDAtODAuNi0xMTkuNSAzNzUuNjMgMzc1LjYzIDAgMCAwLTExOS41LTgwLjZjLS40LS4yLS44LS4zLTEuMi0uNUM3MTkuNSA1MTggNzYwIDQ0NC43IDc2MCAzNjJjMC0xMzctMTExLTI0OC0yNDgtMjQ4UzI2NCAyMjUgMjY0IDM2MmMwIDgyLjcgNDAuNSAxNTYgMTAyLjggMjAxLjEtLjQuMi0uOC4zLTEuMi41LTQ0LjggMTguOS04NSA0Ni0xMTkuNSA4MC42YTM3NS42MyAzNzUuNjMgMCAwIDAtODAuNiAxMTkuNUEzNzEuNyAzNzEuNyAwIDAgMCAxMzYgOTAxLjhhOCA4IDAgMCAwIDggOC4yaDYwYzQuNCAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMzLTE0OS41IDg3LjgtMjA0LjMgNTYuNy01Ni43IDEzMi04Ny45IDIxMi4yLTg3LjlzMTU1LjUgMzEuMiAyMTIuMiA4Ny45Qzc3OSA3NTIuNyA4MTAgODI1IDgxMiA5MDIuMmMuMSA0LjQgMy42IDcuOCA4IDcuOGg2MGE4IDggMCAwIDAgOC04LjJjLTEtNDcuOC0xMC45LTk0LjMtMjkuNS0xMzguMnpNNTEyIDUzNGMtNDUuOSAwLTg5LjEtMTcuOS0xMjEuNi01MC40UzM0MCA0MDcuOSAzNDAgMzYyYzAtNDUuOSAxNy45LTg5LjEgNTAuNC0xMjEuNlM0NjYuMSAxOTAgNTEyIDE5MHM4OS4xIDE3LjkgMTIxLjYgNTAuNFM2ODQgMzE2LjEgNjg0IDM2MmMwIDQ1LjktMTcuOSA4OS4xLTUwLjQgMTIxLjZTNTU3LjkgNTM0IDUxMiA1MzR6JykpO1xuZXhwb3J0cy5Vc2VyRGVsZXRlT3V0bGluZSA9IGdldEljb24oJ3VzZXItZGVsZXRlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY3OC4zIDY1NS40YzI0LjItMTMgNTEuOS0yMC40IDgxLjQtMjAuNGguMWMzIDAgNC40LTMuNiAyLjItNS42YTM3MS42NyAzNzEuNjcgMCAwIDAtMTAzLjctNjUuOGMtLjQtLjItLjgtLjMtMS4yLS41QzcxOS4yIDUxOCA3NTkuNiA0NDQuNyA3NTkuNiAzNjJjMC0xMzctMTEwLjgtMjQ4LTI0Ny41LTI0OFMyNjQuNyAyMjUgMjY0LjcgMzYyYzAgODIuNyA0MC40IDE1NiAxMDIuNiAyMDEuMS0uNC4yLS44LjMtMS4yLjUtNDQuNyAxOC45LTg0LjggNDYtMTE5LjMgODAuNmEzNzMuNDIgMzczLjQyIDAgMCAwLTgwLjQgMTE5LjVBMzczLjYgMzczLjYgMCAwIDAgMTM3IDkwMS44YTggOCAwIDAgMCA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTcgNjQxLjIgNDMyLjIgNjEwIDUxMi4yIDYxMGM1Ni43IDAgMTExLjEgMTUuNyAxNTggNDUuMWE4LjEgOC4xIDAgMCAwIDguMS4zek01MTIuMiA1MzRjLTQ1LjggMC04OC45LTE3LjktMTIxLjQtNTAuNEExNzEuMiAxNzEuMiAwIDAgMSAzNDAuNSAzNjJjMC00NS45IDE3LjktODkuMSA1MC4zLTEyMS42UzQ2Ni4zIDE5MCA1MTIuMiAxOTBzODguOSAxNy45IDEyMS40IDUwLjRBMTcxLjIgMTcxLjIgMCAwIDEgNjgzLjkgMzYyYzAgNDUuOS0xNy45IDg5LjEtNTAuMyAxMjEuNkM2MDEuMSA1MTYuMSA1NTggNTM0IDUxMi4yIDUzNHpNODgwIDc3Mkg2NDBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjQwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuVXNlcmdyb3VwRGVsZXRlT3V0bGluZSA9IGdldEljb24oJ3VzZXJncm91cC1kZWxldGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc4NEg2NjRjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMjI0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zNzMuNSA1MTAuNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMCAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOS0xLjctMjAzLjMgODkuMi0yMDMuMyAxOTkuOSAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwIDAgOCA4LjJoNTYuMWM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjUgMjkuNC0yOS40IDY1LjQtNDkuOCAxMDQuNy01OS43IDMuOS0xIDYuNS00LjcgNi04Ljd6TTgyNCA0ODRjMC0xMDkuNC04Ny45LTE5OC4zLTE5Ni45LTIwMEM1MTYuMyAyODIuMyA0MjQgMzczLjIgNDI0IDQ4NGMwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMCAwLTg2LjQgNjAuNEMzNTcgNzU0LjYgMzI2IDgyNi44IDMyNCA5MDMuOGE4IDggMCAwIDAgOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QzUwNS44IDcwNy43IDU2MyA2ODQgNjI0IDY4NGMxMTAuNCAwIDIwMC04OS41IDIwMC0yMDB6bS0xMDkuNSA5MC41QzY5MC4zIDU5OC43IDY1OC4yIDYxMiA2MjQgNjEycy02Ni4zLTEzLjMtOTAuNS0zNy41YTEyNy4yNiAxMjcuMjYgMCAwIDEtMzcuNS05MS44Yy4zLTMyLjggMTMuNC02NC41IDM2LjMtODggMjQtMjQuNiA1Ni4xLTM4LjMgOTAuNC0zOC43IDMzLjktLjMgNjYuOCAxMi45IDkxIDM2LjYgMjQuOCAyNC4zIDM4LjQgNTYuOCAzOC40IDkxLjQtLjEgMzQuMi0xMy40IDY2LjMtMzcuNiA5MC41eicpKTtcbmV4cG9ydHMuVmVydGljYWxBbGlnbkJvdHRvbU91dGxpbmUgPSBnZXRJY29uKCd2ZXJ0aWNhbC1hbGlnbi1ib3R0b20nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU5LjkgNzgwSDE2NC4xYy00LjUgMC04LjEgMy42LTguMSA4djYwYzAgNC40IDMuNiA4IDguMSA4aDY5NS44YzQuNSAwIDguMS0zLjYgOC4xLTh2LTYwYzAtNC40LTMuNi04LTguMS04ek01MDUuNyA2NjlhOCA4IDAgMCAwIDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTc2YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHonKSk7XG5leHBvcnRzLlZlcnRpY2FsQWxpZ25NaWRkbGVPdXRsaW5lID0gZ2V0SWNvbigndmVydGljYWwtYWxpZ24tbWlkZGxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1OS45IDQ3NEgxNjQuMWMtNC41IDAtOC4xIDMuNi04LjEgOHY2MGMwIDQuNCAzLjYgOCA4LjEgOGg2OTUuOGM0LjUgMCA4LjEtMy42IDguMS04di02MGMwLTQuNC0zLjYtOC04LjEtOHptLTM1My42LTc0LjdjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NTBWMTA0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxNTZoLTYyLjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNnptMTEuNCAyMjUuNGE3LjE0IDcuMTQgMCAwIDAtMTEuMyAwTDQwNS42IDc1Mi4zYTcuMjMgNy4yMyAwIDAgMCA1LjcgMTEuN0g0NzR2MTU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNzY0aDYyLjhjNiAwIDkuNC03IDUuNy0xMS43TDUxNy43IDYyNC43eicpKTtcbmV4cG9ydHMuVmVydGljYWxBbGlnblRvcE91dGxpbmUgPSBnZXRJY29uKCd2ZXJ0aWNhbC1hbGlnbi10b3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU5LjkgMTY4SDE2NC4xYy00LjUgMC04LjEgMy42LTguMSA4djYwYzAgNC40IDMuNiA4IDguMSA4aDY5NS44YzQuNSAwIDguMS0zLjYgOC4xLTh2LTYwYzAtNC40LTMuNi04LTguMS04ek01MTguMyAzNTVhOCA4IDAgMCAwLTEyLjYgMGwtMTEyIDE0MS43YTcuOTggNy45OCAwIDAgMCA2LjMgMTIuOWg3My45Vjg0OGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjUwOS43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyAzNTV6JykpO1xuZXhwb3J0cy5WZXJ0aWNhbFJpZ2h0T3V0bGluZSA9IGdldEljb24oJ3ZlcnRpY2FsLXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMyNiAxNjRoLTY0Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWMTcyYzAtNC40LTMuNi04LTgtOHptNDQ0IDcyLjRWMTY0YzAtNi44LTcuOS0xMC41LTEzLjEtNi4xTDMzNSA1MTJsNDIxLjkgMzU0LjFjNS4yIDQuNCAxMy4xLjcgMTMuMS02LjF2LTcyLjRjMC05LjQtNC4yLTE4LjQtMTEuNC0yNC41TDQ1OS40IDUxMmwyOTkuMi0yNTEuMWM3LjItNi4xIDExLjQtMTUuMSAxMS40LTI0LjV6JykpO1xuZXhwb3J0cy5WZXJ0aWNhbExlZnRPdXRsaW5lID0gZ2V0SWNvbigndmVydGljYWwtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NjIgMTY0aC02NGMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjE3MmMwLTQuNC0zLjYtOC04LTh6bS01MDggMHY3Mi40YzAgOS41IDQuMiAxOC40IDExLjQgMjQuNUw1NjQuNiA1MTIgMjY1LjQgNzYzLjFjLTcuMiA2LjEtMTEuNCAxNS0xMS40IDI0LjVWODYwYzAgNi44IDcuOSAxMC41IDEzLjEgNi4xTDY4OSA1MTIgMjY3LjEgMTU3LjlBNy45NSA3Ljk1IDAgMCAwIDI1NCAxNjR6JykpO1xuZXhwb3J0cy5XaWZpT3V0bGluZSA9IGdldEljb24oJ3dpZmknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzIzIDYyMC41QzY2Ni44IDU3MS42IDU5My40IDU0MiA1MTMgNTQycy0xNTMuOCAyOS42LTIxMC4xIDc4LjZhOC4xIDguMSAwIDAgMC0uOCAxMS4ybDM2IDQyLjljMi45IDMuNCA4IDMuOCAxMS40LjlDMzkzLjEgNjM3LjIgNDUwLjMgNjE0IDUxMyA2MTRzMTE5LjkgMjMuMiAxNjMuNSA2MS41YzMuNCAyLjkgOC41IDIuNSAxMS40LS45bDM2LTQyLjljMi44LTMuMyAyLjQtOC4zLS45LTExLjJ6bTExNy40LTE0MC4xQzc1MS43IDQwNi41IDYzNy42IDM2MiA1MTMgMzYycy0yMzguNyA0NC41LTMyNy41IDExOC40YTguMDUgOC4wNSAwIDAgMC0xIDExLjNsMzYgNDIuOWMyLjggMy40IDcuOSAzLjggMTEuMiAxQzMwOCA0NzIuMiA0MDYuMSA0MzQgNTEzIDQzNHMyMDUgMzguMiAyODEuMiAxMDEuNmMzLjQgMi44IDguNCAyLjQgMTEuMi0xbDM2LTQyLjljMi44LTMuNCAyLjQtOC41LTEtMTEuM3ptMTE2LjctMTM5QzgzNS43IDI0MS44IDY4MC4zIDE4MiA1MTEgMTgyYy0xNjguMiAwLTMyMi42IDU5LTQ0My43IDE1Ny40YTggOCAwIDAgMC0xLjEgMTEuNGwzNiA0Mi45YzIuOCAzLjMgNy44IDMuOCAxMS4xIDEuMUMyMjIgMzA2LjcgMzYwLjMgMjU0IDUxMSAyNTRjMTUxLjggMCAyOTEgNTMuNSA0MDAgMTQyLjcgMy40IDIuOCA4LjQgMi4zIDExLjItMS4xbDM2LTQyLjljMi45LTMuNCAyLjQtOC41LTEuMS0xMS4zek00NDggNzc4YTY0IDY0IDAgMSAwIDEyOCAwIDY0IDY0IDAgMSAwLTEyOCAweicpKTtcbmV4cG9ydHMuWmhpaHVPdXRsaW5lID0gZ2V0SWNvbignemhpaHUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTY0LjcgMjMwLjFWODAzaDYwbDI1LjIgNzEuNEw3NTYuMyA4MDNoMTMxLjVWMjMwLjFINTY0Ljd6bTI0Ny43IDQ5N2gtNTkuOWwtNzUuMSA1MC40LTE3LjgtNTAuNGgtMThWMzA4LjNoMTcwLjd2NDE4Ljh6TTUyNi4xIDQ4Ni45SDM5My4zYzIuMS00NC45IDQuMy0xMDQuMyA2LjYtMTcyLjloMTMwLjlsLS4xLTguMWMwLS42LS4yLTE0LjctMi4zLTI5LjEtMi4xLTE1LTYuNi0zNC45LTIxLTM0LjlIMjg3LjhjNC40LTIwLjYgMTUuNy02OS43IDI5LjQtOTMuOGw2LjQtMTEuMi0xMi45LS43Yy0uOCAwLTE5LjYtLjktNDEuNCAxMC42LTM1LjcgMTktNTEuNyA1Ni40LTU4LjcgODQuNC0xOC40IDczLjEtNDQuNiAxMjMuOS01NS43IDE0NS42LTMuMyA2LjQtNS4zIDEwLjItNi4yIDEyLjgtMS44IDQuOS0uOCA5LjggMi44IDEzIDEwLjUgOS41IDM4LjItMi45IDM4LjUtMyAuNi0uMyAxLjMtLjYgMi4yLTEgMTMuOS02LjMgNTUuMS0yNSA2OS44LTg0LjVoNTYuN2MuNyAzMi4yIDMuMSAxMzguNCAyLjkgMTcyLjloLTE0MWwtMi4xIDEuNWMtMjMuMSAxNi45LTMwLjUgNjMuMi0zMC44IDY1LjJsLTEuNCA5LjJoMTY3Yy0xMi4zIDc4LjMtMjYuNSAxMTMuNC0zNCAxMjcuNC0zLjcgNy03LjMgMTQtMTAuNyAyMC44LTIxLjMgNDIuMi00My40IDg1LjgtMTI2LjMgMTUzLjYtMy42IDIuOC03IDgtNC44IDEzLjcgMi40IDYuMyA5LjMgOS4xIDI0LjYgOS4xIDUuNCAwIDExLjgtLjMgMTkuNC0xIDQ5LjktNC40IDEwMC44LTE4IDEzNS4xLTg3LjYgMTctMzUuMSAzMS43LTcxLjcgNDMuOS0xMDguOUw0OTcgODUwbDUtMTJjLjgtMS45IDE5LTQ2LjMgNS4xLTk1LjlsLS41LTEuOC0xMDguMS0xMjMtMjIgMTYuNmM2LjQtMjYuMSAxMC42LTQ5LjkgMTIuNS03MS4xaDE1OC43di04YzAtNDAuMS0xOC41LTYzLjktMTkuMi02NC45bC0yLjQtM3onKSk7XG5leHBvcnRzLldlaWJvT3V0bGluZSA9IGdldEljb24oJ3dlaWJvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ1Ny4zIDU0M2MtNjguMS0xNy43LTE0NSAxNi4yLTE3NC42IDc2LjItMzAuMSA2MS4yLTEgMTI5LjEgNjcuOCAxNTEuMyA3MS4yIDIzIDE1NS4yLTEyLjIgMTg0LjQtNzguMyAyOC43LTY0LjYtNy4yLTEzMS03Ny42LTE0OS4yem0tNTIgMTU2LjJjLTEzLjggMjIuMS00My41IDMxLjctNjUuOCAyMS42LTIyLTEwLTI4LjUtMzUuNy0xNC42LTU3LjIgMTMuNy0yMS40IDQyLjMtMzEgNjQuNC0yMS43IDIyLjQgOS41IDI5LjYgMzUgMTYgNTcuM3ptNDUuNS01OC41Yy01IDguNi0xNi4xIDEyLjctMjQuNyA5LjEtOC41LTMuNS0xMS4yLTEzLjEtNi40LTIxLjUgNS04LjQgMTUuNi0xMi40IDI0LjEtOS4xIDguNyAzLjIgMTEuOCAxMi45IDcgMjEuNXptMzM0LjUtMTk3LjJjMTUgNC44IDMxLTMuNCAzNS45LTE4LjMgMTEuOC0zNi42IDQuNC03OC40LTIzLjItMTA5YTExMS4zOSAxMTEuMzkgMCAwIDAtMTA2LTM0LjMgMjguNDUgMjguNDUgMCAwIDAtMjEuOSAzMy44IDI4LjM5IDI4LjM5IDAgMCAwIDMzLjggMjEuOGMxOC40LTMuOSAzOC4zIDEuOCA1MS45IDE2LjdhNTQuMiA1NC4yIDAgMCAxIDExLjMgNTMuMyAyOC40NSAyOC40NSAwIDAgMCAxOC4yIDM2em05OS44LTIwNmMtNTYuNy02Mi45LTE0MC40LTg2LjktMjE3LjctNzAuNWEzMi45OCAzMi45OCAwIDAgMC0yNS40IDM5LjMgMzMuMTIgMzMuMTIgMCAwIDAgMzkuMyAyNS41YzU1LTExLjcgMTE0LjQgNS40IDE1NC44IDUwLjEgNDAuMyA0NC43IDUxLjIgMTA1LjcgMzQgMTU5LjEtNS42IDE3LjQgMy45IDM2IDIxLjMgNDEuNyAxNy40IDUuNiAzNi0zLjkgNDEuNi0yMS4ydi0uMWMyNC4xLTc1LjQgOC45LTE2MS4xLTQ3LjktMjIzLjl6TTcyOSA0OTljLTEyLjItMy42LTIwLjUtNi4xLTE0LjEtMjIuMSAxMy44LTM0LjcgMTUuMi02NC43LjMtODYtMjgtNDAuMS0xMDQuOC0zNy45LTE5Mi44LTEuMSAwIDAtMjcuNiAxMi4xLTIwLjYtOS44IDEzLjUtNDMuNSAxMS41LTc5LjktOS42LTEwMS00Ny43LTQ3LjgtMTc0LjYgMS44LTI4My41IDExMC42QzEyNy4zIDQ3MS4xIDgwIDU1Ny41IDgwIDYzMi4yIDgwIDc3NS4xIDI2My4yIDg2MiA0NDIuNSA4NjJjMjM1IDAgMzkxLjMtMTM2LjUgMzkxLjMtMjQ1IDAtNjUuNS01NS4yLTEwMi42LTEwNC44LTExOHpNNDQzIDgxMC44Yy0xNDMgMTQuMS0yNjYuNS01MC41LTI3NS44LTE0NC41LTkuMy05My45IDk5LjItMTgxLjUgMjQyLjItMTk1LjYgMTQzLTE0LjIgMjY2LjUgNTAuNSAyNzUuOCAxNDQuNEM2OTQuNCA3MDkgNTg2IDc5Ni42IDQ0MyA4MTAuOHonKSk7XG5leHBvcnRzLldvbWFuT3V0bGluZSA9IGdldEljb24oJ3dvbWFuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcxMi44IDU0OC44YzUzLjYtNTMuNiA4My4yLTEyNSA4My4yLTIwMC44IDAtNzUuOS0yOS41LTE0Ny4yLTgzLjItMjAwLjhDNjU5LjIgOTMuNiA1ODcuOCA2NCA1MTIgNjRzLTE0Ny4yIDI5LjUtMjAwLjggODMuMkMyNTcuNiAyMDAuOSAyMjggMjcyLjEgMjI4IDM0OGMwIDYzLjggMjAuOSAxMjQuNCA1OS40IDE3My45IDcuMyA5LjQgMTUuMiAxOC4zIDIzLjcgMjYuOSA4LjUgOC41IDE3LjUgMTYuNCAyNi44IDIzLjcgMzkuNiAzMC44IDg2LjMgNTAuNCAxMzYuMSA1N1Y3MzZIMzYwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDExNHYxNDBjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY4MTJoMTE0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04SDU1MFY2MjkuNWM2MS41LTguMiAxMTguMi0zNi4xIDE2Mi44LTgwLjd6TTUxMiA1NTZjLTU1LjYgMC0xMDcuNy0yMS42LTE0Ny4xLTYwLjlDMzI1LjYgNDU1LjggMzA0IDQwMy42IDMwNCAzNDhzMjEuNi0xMDcuNyA2MC45LTE0Ny4xQzQwNC4yIDE2MS41IDQ1Ni40IDE0MCA1MTIgMTQwczEwNy43IDIxLjYgMTQ3LjEgNjAuOUM2OTguNCAyNDAuMiA3MjAgMjkyLjQgNzIwIDM0OHMtMjEuNiAxMDcuNy02MC45IDE0Ny4xQzYxOS43IDUzNC40IDU2Ny42IDU1NiA1MTIgNTU2eicpKTtcbmV4cG9ydHMuWm9vbUluT3V0bGluZSA9IGdldEljb24oJ3pvb20taW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjM3IDQ0M0g1MTlWMzA5YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxMzRIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDExOHYxMzRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY1MTloMTE4YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0yODQgNDI0TDc3NSA3MjFjMTIyLjEtMTQ4LjkgMTEzLjYtMzY5LjUtMjYtNTA5LTE0OC0xNDguMS0zODguNC0xNDguMS01MzcgMC0xNDguMSAxNDguNi0xNDguMSAzODkgMCA1MzcgMTM5LjUgMTM5LjYgMzYwLjEgMTQ4LjEgNTA5IDI2bDE0NiAxNDZjMy4yIDIuOCA4LjMgMi44IDExIDBsNDMtNDNjMi44LTIuNyAyLjgtNy44IDAtMTF6TTY5NiA2OTZjLTExOC44IDExOC43LTMxMS4yIDExOC43LTQzMCAwLTExOC43LTExOC44LTExOC43LTMxMS4yIDAtNDMwIDExOC44LTExOC43IDMxMS4yLTExOC43IDQzMCAwIDExOC43IDExOC44IDExOC43IDMxMS4yIDAgNDMweicpKTtcbmV4cG9ydHMuQWNjb3VudEJvb2tUd29Ub25lID0gZ2V0SWNvbignYWNjb3VudC1ib29rJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2NTg0aDY1NlYyNTZINzEydjQ4em0tNjUuNiAxMjEuOGwtODkuMyAxNjQuMWg0OS4xYzQuNCAwIDggMy42IDggOHYyMS4zYzAgNC40LTMuNiA4LTggOGgtNjUuNHYzMy43aDY1LjRjNC40IDAgOCAzLjYgOCA4djIxLjNjMCA0LjQtMy42IDgtOCA4aC02NS40Vjc1MmMwIDQuNC0zLjYgOC04IDhoLTQxLjNjLTQuNCAwLTgtMy42LTgtOHYtNTMuOGgtNjUuMWMtNC40IDAtOC0zLjYtOC04di0yMS4zYzAtNC40IDMuNi04IDgtOGg2NS4xdi0zMy43aC02NS4xYy00LjQgMC04LTMuNi04LTh2LTIxLjNjMC00LjQgMy42LTggOC04SDQ2N2wtODkuMy0xNjRjLTIuMS0zLjktLjctOC44IDMuMi0xMC45IDEuMS0uNyAyLjUtMSAzLjgtMWg0NmE4IDggMCAwIDEgNy4xIDQuNGw3My40IDE0NS40aDIuOGw3My40LTE0NS40YzEuMy0yLjcgNC4xLTQuNCA3LjEtNC40aDQ1YzQuNSAwIDggMy42IDcuOSA4IDAgMS4zLS40IDIuNi0xIDMuOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjM5LjUgNDE0aC00NWMtMyAwLTUuOCAxLjctNy4xIDQuNEw1MTQgNTYzLjhoLTIuOGwtNzMuNC0xNDUuNGE4IDggMCAwIDAtNy4xLTQuNGgtNDZjLTEuMyAwLTIuNy4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjlsODkuMyAxNjRoLTQ4LjZjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xdjMzLjdoLTY1LjFjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xVjc1MmMwIDQuNCAzLjYgOCA4IDhoNDEuM2M0LjQgMCA4LTMuNiA4LTh2LTUzLjhoNjUuNGM0LjQgMCA4LTMuNiA4LTh2LTIxLjNjMC00LjQtMy42LTgtOC04aC02NS40di0zMy43aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNDkuMWw4OS4zLTE2NC4xYy42LTEuMiAxLTIuNSAxLTMuOC4xLTQuNC0zLjQtOC03LjktOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5ab29tT3V0T3V0bGluZSA9IGdldEljb24oJ3pvb20tb3V0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYzNyA0NDNIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDMxMmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHonKSk7XG5leHBvcnRzLkFsZXJ0VHdvVG9uZSA9IGdldEljb24oJ2FsZXJ0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM0MCA1ODVjMC01LjUgNC41LTEwIDEwLTEwaDQ0YzUuNSAwIDEwIDQuNSAxMCAxMHYxNzFoMzU1VjU2M2MwLTEzNi40LTExMC42LTI0Ny0yNDctMjQ3UzI2NSA0MjYuNiAyNjUgNTYzdjE5M2g3NVY1ODV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTIxNi45IDMxMC41bDM5LjYtMzkuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC02Ny45LTY3LjlhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzkuNiAzOS42YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNjcuOSA2Ny45YzMuMSAzLjEgOC4xIDMuMSAxMS4zIDB6bTY2OS42LTc5LjJsLTM5LjYtMzkuNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC02Ny45IDY3LjlhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzOS42IDM5LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw2Ny45LTY3LjljMy4xLTMuMiAzLjEtOC4yIDAtMTEuM3pNNDg0IDE4MGg1NmM0LjQgMCA4LTMuNiA4LThWNzZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djk2YzAgNC40IDMuNiA4IDggOHptMzQ4IDcxMkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI0YzAgNC40IDMuNiA4IDggOGg2ODhjNC40IDAgOC0zLjYgOC04di0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYzOS05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NzRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTYzYzAtMTc2LjItMTQyLjgtMzE5LTMxOS0zMTlTMTkzIDM4Ni44IDE5MyA1NjN2MjMzem03Mi0yMzNjMC0xMzYuNCAxMTAuNi0yNDcgMjQ3LTI0N3MyNDcgMTEwLjYgMjQ3IDI0N3YxOTNINDA0VjU4NWMwLTUuNS00LjUtMTAtMTAtMTBoLTQ0Yy01LjUgMC0xMCA0LjUtMTAgMTB2MTcxaC03NVY1NjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkFwaVR3b1RvbmUgPSBnZXRJY29uKCdhcGknLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTQ4LjIgNjc0LjZ6bTEwNi43LTkyLjNjLTI1IDI1LTM4LjcgNTguMS0zOC43IDkzLjRzMTMuOCA2OC41IDM4LjcgOTMuNGMyNSAyNSA1OC4xIDM4LjcgOTMuNCAzOC43IDM1LjMgMCA2OC41LTEzLjggOTMuNC0zOC43bDU5LjQtNTkuNC0xODYuOC0xODYuOC01OS40IDU5LjR6bTQyMC44LTM2Ni4xYy0zNS4zIDAtNjguNSAxMy44LTkzLjQgMzguN2wtNTkuNCA1OS40IDE4Ni44IDE4Ni44IDU5LjQtNTkuNGMyNC45LTI1IDM4LjctNTguMSAzOC43LTkzLjRzLTEzLjgtNjguNS0zOC43LTkzLjRjLTI1LTI1LTU4LjEtMzguNy05My40LTM4Ljd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU3OC45IDU0Ni43YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNTAxIDYxMy4zIDQxMC43IDUyM2w2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w0NDEgNDA4LjZhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEwzNjMgNDc1LjNsLTQzLTQzYTcuODUgNy44NSAwIDAgMC01LjctMi4zYy0yIDAtNC4xLjgtNS43IDIuM0wyMDYuOCA1MzQuMmExOTkuNDUgMTk5LjQ1IDAgMCAwLTU4LjYgMTQwLjRjLS4yIDM5LjUgMTEuMiA3OS4xIDM0LjMgMTEzLjFsLTc2LjEgNzYuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNGMxLjYgMS42IDMuNiAyLjMgNS43IDIuM3M0LjEtLjggNS43LTIuM2w3Ni4xLTc2LjFjMzMuNyAyMi45IDcyLjkgMzQuMyAxMTIuMSAzNC4zIDUxLjIgMCAxMDIuNC0xOS41IDE0MS41LTU4LjZsMTAxLjktMTAxLjljMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDMtNDMgNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjYtMzYuMnpNNDQxLjcgNzY5LjFhMTMxLjMyIDEzMS4zMiAwIDAgMS05My40IDM4LjdjLTM1LjMgMC02OC40LTEzLjctOTMuNC0zOC43LTI0LjktMjQuOS0zOC43LTU4LjEtMzguNy05My40czEzLjctNjguNCAzOC43LTkzLjRsNTkuNC01OS40IDE4Ni44IDE4Ni44LTU5LjQgNTkuNHptNDc2LTYyMC4zbC00Mi40LTQyLjRjLTEuNi0xLjYtMy42LTIuMy01LjctMi4zcy00LjEuOC01LjcgMi4zbC03Ni4xIDc2LjFhMTk5LjI3IDE5OS4yNyAwIDAgMC0xMTIuMS0zNC4zYy01MS4yIDAtMTAyLjQgMTkuNS0xNDEuNSA1OC42TDQzMi4zIDMwOC43YTguMDMgOC4wMyAwIDAgMCAwIDExLjNMNzA0IDU5MS43YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zIDIgMCA0LjEtLjggNS43LTIuM2wxMDEuOS0xMDEuOWM2OC45LTY5IDc3LTE3NS43IDI0LjMtMjUzLjVsNzYuMS03Ni4xYzMuMS0zLjIgMy4xLTguMyAwLTExLjR6TTc2OS4xIDQ0MS43bC01OS40IDU5LjQtMTg2LjgtMTg2LjggNTkuNC01OS40YzI0LjktMjQuOSA1OC4xLTM4LjcgOTMuNC0zOC43czY4LjQgMTMuNyA5My40IDM4LjdjMjQuOSAyNC45IDM4LjcgNTguMSAzOC43IDkzLjRzLTEzLjggNjguNC0zOC43IDkzLjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkFwcHN0b3JlVHdvVG9uZSA9IGdldEljb24oJ2FwcHN0b3JlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjQgMTQ0SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlYyMTJoMjAwdjIwMHpNNDY0IDU0NEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWNjEyaDIwMHYyMDB6bTUyLTY2OEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWMjEyaDIwMHYyMDB6bTQ1MiAxMzJINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjYxMmgyMDB2MjAweidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxMiAyMTJoMjAwdjIwMEgyMTJ6bTQwMCAwaDIwMHYyMDBINjEyek0yMTIgNjEyaDIwMHYyMDBIMjEyem00MDAgMGgyMDB2MjAwSDYxMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQmFua1R3b1RvbmUgPSBnZXRJY29uKCdiYW5rJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMjQwLjkgMzkzLjloNTQyLjJMNTEyIDE5Ni43eiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004OTQgNDYyYzMwLjkgMCA0My44LTM5LjcgMTguNy01OEw1MzAuOCAxMjYuMmEzMS44MSAzMS44MSAwIDAgMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek0zODEgODM2SDI2NFY0NjJoMTE3djM3NHptMTg5IDBINDUzVjQ2MmgxMTd2Mzc0em0xOTAgMEg2NDJWNDYyaDExOHYzNzR6TTI0MC45IDM5My45TDUxMiAxOTYuN2wyNzEuMSAxOTcuMkgyNDAuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQXVkaW9Ud29Ub25lID0gZ2V0SWNvbignYXVkaW8nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDU1MmM1NC4zIDAgOTgtNDMuMiA5OC05NlYyMzJjMC01Mi44LTQzLjctOTYtOTgtOTZzLTk4IDQzLjItOTggOTZ2MjI0YzAgNTIuOCA0My43IDk2IDk4IDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NDIgNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2MjRjOTMuOSAwIDE3MC03NS4yIDE3MC0xNjhWMjMyYzAtOTIuOC03Ni4xLTE2OC0xNzAtMTY4cy0xNzAgNzUuMi0xNzAgMTY4djIyNGMwIDkyLjggNzYuMSAxNjggMTcwIDE2OHptLTk4LTM5MmMwLTUyLjggNDMuNy05NiA5OC05NnM5OCA0My4yIDk4IDk2djIyNGMwIDUyLjgtNDMuNyA5Ni05OCA5NnMtOTgtNDMuMi05OC05NlYyMzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJlbGxUd29Ub25lID0gZ2V0SWNvbignYmVsbCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMjIwYy01NS42IDAtMTA3LjggMjEuNi0xNDcuMSA2MC45UzMwNCAzNzIuNCAzMDQgNDI4djM0MGg0MTZWNDI4YzAtNTUuNi0yMS42LTEwNy44LTYwLjktMTQ3LjFTNTY3LjYgMjIwIDUxMiAyMjB6bTI4MCAyMDhjMC0xNDEuMS0xMDQuMy0yNTcuOC0yNDAtMjc3LjJ2LjFjMTM1LjcgMTkuNCAyNDAgMTM2IDI0MCAyNzcuMXpNNDcyIDE1MC45di0uMUMzMzYuMyAxNzAuMiAyMzIgMjg2LjkgMjMyIDQyOGMwLTE0MS4xIDEwNC4zLTI1Ny43IDI0MC0yNzcuMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjctMjQwLTI3Ny4xVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC45Yy0xMzUuNyAxOS40LTI0MCAxMzYtMjQwIDI3Ny4xdjM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTIwOC0xMjBIMzA0VjQyOGMwLTU1LjYgMjEuNi0xMDcuOCA2MC45LTE0Ny4xUzQ1Ni40IDIyMCA1MTIgMjIwYzU1LjYgMCAxMDcuOCAyMS42IDE0Ny4xIDYwLjlTNzIwIDM3Mi40IDcyMCA0Mjh2MzQweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Cb29rVHdvVG9uZSA9IGdldEljb24oJ2Jvb2snLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0yNjAgNzJoOTZ2MjA5LjlMNjIxLjUgMzEyIDU3MiAzNDcuNFYxMzZ6TTIzMiA4ODhWMTM2aDI4MHYyOTYuOWMwIDMuMyAxIDYuNiAzIDkuM2ExNS45IDE1LjkgMCAwIDAgMjIuMyAzLjdsODMuOC01OS45IDgxLjQgNTkuNGMyLjcgMiA2IDMuMSA5LjQgMy4xIDguOCAwIDE2LTcuMiAxNi0xNlYxMzZoNjR2NzUySDIzMnonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTY2OCAzNDUuOVYxMzZoLTk2djIxMS40bDQ5LjUtMzUuNHonXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MjcuOSAxMzZ2Mjk2LjVjMCA4LjgtNy4yIDE2LTE2IDE2LTMuNCAwLTYuNy0xLjEtOS40LTMuMUw2MjEuMSAzODZsLTgzLjggNTkuOWExNS45IDE1LjkgMCAwIDEtMjIuMy0zLjdjLTItMi43LTMtNi0zLTkuM1YxMzZIMjMydjc1Mmg1NTkuOVYxMzZoLTY0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Cb3hQbG90VHdvVG9uZSA9IGdldEljb24oJ2JveC1wbG90JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMjk2IDM2OGg4OHYyODhoLTg4em0xNTIgMGgyODB2Mjg4SDQ0OHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTUyIDIyNGgtNTJjLTQuNCAwLTggMy42LTggOHYyNDhoLTkyVjMwNGMwLTQuNC0zLjYtOC04LThIMjMyYy00LjQgMC04IDMuNi04IDh2MTc2aC05MlYyMzJjMC00LjQtMy42LTgtOC04SDcyYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjE3MmMwIDQuNCAzLjYgOCA4IDhoNTYwYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MjQ0YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWMjMyYzAtNC40LTMuNi04LTgtOHpNMzg0IDY1NmgtODhWMzY4aDg4djI4OHptMzQ0IDBINDQ4VjM2OGgyODB2Mjg4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5CdWdUd29Ub25lID0gZ2V0SWNvbignYnVnJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMDggNDEydjI2OGMwIDM2Ljc4IDkuNjggNzEuOTYgMjcuOCAxMDIuOWEyMDUuMzkgMjA1LjM5IDAgMCAwIDczLjMgNzMuM0EyMDIuNjggMjAyLjY4IDAgMCAwIDUxMiA4ODRjMzYuNzggMCA3MS45Ni05LjY4IDEwMi45LTI3LjhhMjA1LjM5IDIwNS4zOSAwIDAgMCA3My4zLTczLjNBMjAyLjY4IDIwMi42OCAwIDAgMCA3MTYgNjgwVjQxMkgzMDh6bTQ4NCAxNzJ2OTZjMCA2LjUtLjIyIDEyLjk1LS42NiAxOS4zNUM4NTkuOTQgNzI4LjY0IDkwOCA3OTYuNyA5MDggODc2YTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThjMC00NC4yNC0yMy45NC04Mi44OS01OS41Ny0xMDMuN2EyNzguNjMgMjc4LjYzIDAgMCAxLTIyLjY2IDQ5LjAyIDI4MS4zOSAyODEuMzkgMCAwIDEtMTAwLjQ1IDEwMC40NUM2MTEuODQgOTQ2LjA3IDU2My41NSA5NjAgNTEyIDk2MHMtOTkuODQtMTMuOTMtMTQxLjMyLTM4LjIzYTI4MS4zOSAyODEuMzkgMCAwIDEtMTAwLjQ1LTEwMC40NSAyNzguNjMgMjc4LjYzIDAgMCAxLTIyLjY2LTQ5LjAyQTExOS45NSAxMTkuOTUgMCAwIDAgMTg4IDg3NmE4IDggMCAwIDEtOCA4aC01NmE4IDggMCAwIDEtOC04YzAtNzkuMyA0OC4wNy0xNDcuMzYgMTE2LjY2LTE3Ni42NUEyODQuMTIgMjg0LjEyIDAgMCAxIDIzMiA2ODB2LTk2SDg0YTggOCAwIDAgMS04LTh2LTU2YTggOCAwIDAgMSA4LThoMTQ4VjQxMmMtNzYuNzcgMC0xMzktNjIuMjMtMTM5LTEzOWE4IDggMCAwIDEgOC04aDYwYTggOCAwIDAgMSA4IDggNjMgNjMgMCAwIDAgNjMgNjNoNTYwYTYzIDYzIDAgMCAwIDYzLTYzIDggOCAwIDAgMSA4LThoNjBhOCA4IDAgMCAxIDggOGMwIDc2Ljc3LTYyLjIzIDEzOS0xMzkgMTM5djEwMGgxNDhhOCA4IDAgMCAxIDggOHY1NmE4IDggMCAwIDEtOCA4SDc5MnpNMzY4IDI3MmE4IDggMCAwIDEtOCA4aC01NmE4IDggMCAwIDEtOC04YzAtNDAuMDQgOC43OC03Ni43NSAyNS45LTEwOC4wN2ExODQuNTcgMTg0LjU3IDAgMCAxIDc0LjAzLTc0LjAzQzQyNy4yNSA3Mi43OCA0NjMuOTYgNjQgNTA0IDY0aDE2YzQwLjA0IDAgNzYuNzUgOC43OCAxMDguMDcgMjUuOWExODQuNTcgMTg0LjU3IDAgMCAxIDc0LjAzIDc0LjAzQzcxOS4yMiAxOTUuMjUgNzI4IDIzMS45NiA3MjggMjcyYTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThjMC0yOC4zMy01Ljk0LTUzLjE1LTE3LjA4LTczLjUzYTExMi41NiAxMTIuNTYgMCAwIDAtNDUuMzktNDUuNEM1NzMuMTUgMTQxLjk1IDU0OC4zMyAxMzYgNTIwIDEzNmgtMTZjLTI4LjMzIDAtNTMuMTUgNS45NC03My41MyAxNy4wOGExMTIuNTYgMTEyLjU2IDAgMCAwLTQ1LjQgNDUuMzlDMzczLjk1IDIxOC44NSAzNjggMjQzLjY3IDM2OCAyNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzA4IDQxMnYyNjhjMCAzNi43OCA5LjY4IDcxLjk2IDI3LjggMTAyLjlhMjA1LjM5IDIwNS4zOSAwIDAgMCA3My4zIDczLjNBMjAyLjY4IDIwMi42OCAwIDAgMCA1MTIgODg0YzM2Ljc4IDAgNzEuOTYtOS42OCAxMDIuOS0yNy44YTIwNS4zOSAyMDUuMzkgMCAwIDAgNzMuMy03My4zQTIwMi42OCAyMDIuNjggMCAwIDAgNzE2IDY4MFY0MTJIMzA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5CdWxiVHdvVG9uZSA9IGdldEljb24oJ2J1bGInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDEzNmMtMTQxLjQgMC0yNTYgMTE0LjYtMjU2IDI1NiAwIDkyLjUgNDkuNCAxNzYuMyAxMjguMSAyMjEuOGwzNS45IDIwLjhWNzUyaDE4NFY2MzQuNmwzNS45LTIwLjhDNzE4LjYgNTY4LjMgNzY4IDQ4NC41IDc2OCAzOTJjMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjMyIDg4OEgzOTJjLTQuNCAwLTggMy42LTggOHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxOTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTMyYzAtNC40LTMuNi04LTgtOHpNNTEyIDY0Yy0xODEuMSAwLTMyOCAxNDYuOS0zMjggMzI4IDAgMTIxLjQgNjYgMjI3LjQgMTY0IDI4NC4xVjc5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjc2LjFjOTgtNTYuNyAxNjQtMTYyLjcgMTY0LTI4NC4xIDAtMTgxLjEtMTQ2LjktMzI4LTMyOC0zMjh6bTEyNy45IDU0OS44TDYwNCA2MzQuNlY3NTJINDIwVjYzNC42bC0zNS45LTIwLjhDMzA1LjQgNTY4LjMgMjU2IDQ4NC41IDI1NiAzOTJjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NnMyNTYgMTE0LjYgMjU2IDI1NmMwIDkyLjUtNDkuNCAxNzYuMy0xMjguMSAyMjEuOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2FsY3VsYXRvclR3b1RvbmUgPSBnZXRJY29uKCdjYWxjdWxhdG9yJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yNTYuMi03NWgtNTAuOGMtMi4yIDAtNC41LTEuMS01LjktMi45TDM0OCA3MTguNmwtMzUuNSA0My41YTcuMzggNy4zOCAwIDAgMS01LjkgMi45aC01MC44Yy02LjYgMC0xMC4yLTcuOS01LjgtMTMuMWw2Mi43LTc2LjgtNjEuMi03NC45Yy00LjMtNS4yLS43LTEzLjEgNS45LTEzLjFoNTAuOWMyLjIgMCA0LjUgMS4xIDUuOSAyLjlsMzQgNDEuNiAzNC00MS42YzEuNS0xLjkgMy42LTIuOSA1LjktMi45aDUwLjhjNi42IDAgMTAuMiA3LjkgNS45IDEzLjFMMzgzLjUgNjc1bDYyLjcgNzYuOGM0LjIgNS4zLjYgMTMuMi02IDEzLjJ6TTU3NiAzMzVjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OGMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDh6bTAgMjY1YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDhjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4em0wIDEwNGMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OHpNMjQ4IDMzNWMwLTIuMiAxLjQtNCAzLjItNEgzMjB2LTY4LjhjMC0xLjggMS44LTMuMiA0LTMuMmg0OGMyLjIgMCA0IDEuNCA0IDMuMlYzMzFoNjguN2MxLjkgMCAzLjMgMS44IDMuMyA0djQ4YzAgMi4yLTEuNCA0LTMuMiA0SDM3NnY2OC43YzAgMS45LTEuOCAzLjMtNCAzLjNoLTQ4Yy0yLjIgMC00LTEuNC00LTMuMlYzODdoLTY4LjhjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zODMuNSA2NzVsNjEuMy03NC44YzQuMy01LjIuNy0xMy4xLTUuOS0xMy4xaC01MC44Yy0yLjMgMC00LjQgMS01LjkgMi45bC0zNCA0MS42LTM0LTQxLjZhNy42OSA3LjY5IDAgMCAwLTUuOS0yLjloLTUwLjljLTYuNiAwLTEwLjIgNy45LTUuOSAxMy4xbDYxLjIgNzQuOS02Mi43IDc2LjhjLTQuNCA1LjItLjggMTMuMSA1LjggMTMuMWg1MC44YzIuMyAwIDQuNC0xIDUuOS0yLjlsMzUuNS00My41IDM1LjUgNDMuNWMxLjQgMS44IDMuNyAyLjkgNS45IDIuOWg1MC44YzYuNiAwIDEwLjItNy45IDYtMTMuMkwzODMuNSA2NzV6TTI1MS4yIDM4N0gzMjB2NjguOGMwIDEuOCAxLjggMy4yIDQgMy4yaDQ4YzIuMiAwIDQtMS40IDQtMy4zVjM4N2g2OC44YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDM3NnYtNjguOGMwLTEuOC0xLjgtMy4yLTQtMy4yaC00OGMtMi4yIDAtNCAxLjQtNCAzLjJWMzMxaC02OC44Yy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0zMjggMzY5aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0wLTEwNGgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMC0yNjVoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJ1aWxkVHdvVG9uZSA9IGdldEljb24oJ2J1aWxkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMTQ0IDU0NmgyMDB2MjAwSDE0NHptMjY4LTI2OGgyMDB2MjAwSDQxMnonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTE2IDIxMEgzNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIzNkgxMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTQ2aDIzNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM0NCA3NDZIMTQ0VjU0NmgyMDB2MjAwem0yNjggMEg0MTJWNTQ2aDIwMHYyMDB6bTAtMjY4SDQxMlYyNzhoMjAwdjIwMHptMjY4IDBINjgwVjI3OGgyMDB2MjAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DYWxlbmRhclR3b1RvbmUgPSBnZXRJY29uKCdjYWxlbmRhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MTIgMzA0YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMzg0djQ4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMTg0djEzNmg2NTZWMjU2SDcxMnY0OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFY0NjBoNjU2djM4MHptMC00NDhIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHYxMzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNhbWVyYVR3b1RvbmUgPSBnZXRJY29uKCdjYW1lcmEnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDMyMEg2NzcuMmwtMTcuMS00Ny44LTIyLjktNjQuMkgzODYuN2wtMjIuOSA2NC4yLTE3LjEgNDcuOEgxNjBjLTQuNCAwLTggMy42LTggOHY0NTZjMCA0LjQgMy42IDggOCA4aDcwNGM0LjQgMCA4LTMuNiA4LThWMzI4YzAtNC40LTMuNi04LTgtOHpNNTEyIDcwNGMtODguNCAwLTE2MC03MS42LTE2MC0xNjBzNzEuNi0xNjAgMTYwLTE2MCAxNjAgNzEuNiAxNjAgMTYwLTcxLjYgMTYwLTE2MCAxNjB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAzODRjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwczcxLjYgMTYwIDE2MCAxNjAgMTYwLTcxLjYgMTYwLTE2MC03MS42LTE2MC0xNjAtMTYwem0wIDI1NmMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDI0OEg3MjhsLTMyLjQtOTAuOGEzMi4wNyAzMi4wNyAwIDAgMC0zMC4yLTIxLjJIMzU4LjZjLTEzLjUgMC0yNS42IDguNS0zMC4xIDIxLjJMMjk2IDI0OEgxNjBjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjQ1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGg3MDRjNDQuMiAwIDgwLTM1LjggODAtODBWMzI4YzAtNDQuMi0zNS44LTgwLTgwLTgwem04IDUzNmMwIDQuNC0zLjYgOC04IDhIMTYwYy00LjQgMC04LTMuNi04LThWMzI4YzAtNC40IDMuNi04IDgtOGgxODYuN2wxNy4xLTQ3LjggMjIuOS02NC4yaDI1MC41bDIyLjkgNjQuMiAxNy4xIDQ3LjhIODY0YzQuNCAwIDggMy42IDggOHY0NTZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNhclR3b1RvbmUgPSBnZXRJY29uKCdjYXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTk5LjYgNDc0TDE4NCA1MTd2MjM3aDY1NlY1MTdsLTE1LjYtNDNIMTk5LjZ6TTI2NCA2MjFjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0zODggNzVjMCA0LjQtMy42IDgtOCA4SDM4MGMtNC40IDAtOC0zLjYtOC04di04NGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djM2aDE2OHYtMzZjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHY4NHptMTA4LTc1Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHonXG4gICAgXSwgW3ByaW1hcnlDb2xvciwgJ003MjAgNTgxYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTU5IDQxMy40TDkzNS4zIDM3MmE4IDggMCAwIDAtMTAuOS0yLjlsLTUwLjcgMjkuNi03OC4zLTIxNi4yYTYzLjkgNjMuOSAwIDAgMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwIDAtMTAuOSAyLjlMNjUgNDEzLjRjLTIuMiAzLjgtLjkgOC42IDIuOSAxMC44bDYwLjQgMzUuMi0xNC41IDQwYy0xLjIgMy4yLTEuOCA2LjYtMS44IDEwdjM0OC4yYzAgMTUuNyAxMS44IDI4LjQgMjYuMyAyOC40aDY3LjZjMTIuMyAwIDIzLTkuMyAyNS42LTIyLjNsNy43LTM3LjdoNTQ1LjZsNy43IDM3LjdjMi43IDEzIDEzLjMgMjIuMyAyNS42IDIyLjNoNjcuNmMxNC41IDAgMjYuMy0xMi43IDI2LjMtMjguNFY1MDkuNGMwLTMuNC0uNi02LjgtMS44LTEwbC0xNC41LTQwIDYwLjMtMzUuMmE4IDggMCAwIDAgMy0xMC44ek0yOTIuNyAyMTguMWwuNS0xLjMuNC0xLjNjMS4xLTMuMyA0LjEtNS41IDcuNi01LjVoNDI3LjZsNzUuNCAyMDhIMjIwbDcyLjctMTk5Ljl6TTg0MCA3NTRIMTg0VjUxN2wxNS42LTQzaDYyNC44bDE1LjYgNDN2MjM3eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yMjQgNTgxYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptNDIwIDIzaC00MGMtNC40IDAtOCAzLjYtOCA4djM2SDQyOHYtMzZjMC00LjQtMy42LTgtOC04aC00MGMtNC40IDAtOCAzLjYtOCA4djg0YzAgNC40IDMuNiA4IDggOGgyNjRjNC40IDAgOC0zLjYgOC04di04NGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNhcnJ5T3V0VHdvVG9uZSA9IGdldEljb24oJ2NhcnJ5LW91dCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2NTg0aDY1NlYyNTZINzEydjQ4em0tMTcuNSAxMjguOEw0ODEuOSA3MjUuNWExNi4xIDE2LjEgMCAwIDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMiAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OSAxNTAuOS0yMDcuOGMzLTQuMSA3LjktNi42IDEzLTYuNkg2ODhjNi41IDAgMTAuMyA3LjQgNi41IDEyLjh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4OCA0MjBoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNjM0LjRsLTY0LjctODljLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAgMCAyNiAwbDIxMi42LTI5Mi43YzMuOC01LjQgMC0xMi44LTYuNS0xMi44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DaGVja0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdjaGVjay1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xOTMuNCAyMjUuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAgMS01MS43IDBMMzE4LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDQ2LjljMTAuMyAwIDE5LjkgNSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguNCAxNS43LTEzLjMgMjUuOS0xMy4zSDY5OWM2LjUgMCAxMC4zIDcuNCA2LjQgMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjk5IDM1M2gtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuM0w0NjkgNTg0LjNsLTcxLjItOTguOGMtNi04LjMtMTUuNi0xMy4zLTI1LjktMTMuM0gzMjVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNC42IDE3Mi44YTMxLjggMzEuOCAwIDAgMCA1MS43IDBsMjEwLjYtMjkyYzMuOS01LjMuMS0xMi43LTYuNC0xMi43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DaGVja1NxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdjaGVjay1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTEzMC0zNjcuOGg0Ni45YzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguMyAxNS42LTEzLjMgMjUuOS0xMy4zSDY4OGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAgMS01MS43IDBMMzA3LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000MzIuMiA2NTcuN2EzMS44IDMxLjggMCAwIDAgNTEuNyAwbDIxMC42LTI5MmMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNDYuOWMtMTAuMyAwLTE5LjkgNS0yNS45IDEzLjNMNDU4IDU4NC4zbC03MS4yLTk4LjhjLTYtOC40LTE1LjctMTMuMy0yNS45LTEzLjNIMzE0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjQuNyAxNzIuOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2xvY2tDaXJjbGVUd29Ub25lID0gZ2V0SWNvbignY2xvY2stY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTc2LjUgNTA5LjdsLTI4LjYgMzlhNy45OSA3Ljk5IDAgMCAxLTExLjIgMS43TDQ4My4zIDU2OS44YTcuOTIgNy45MiAwIDAgMS0zLjMtNi41VjI4OGMwLTQuNCAzLjYtOCA4LThoNDguMWM0LjQgMCA4IDMuNiA4IDh2MjQ3LjVsMTQyLjYgMTAzLjFjMy42IDIuNSA0LjQgNy41IDEuOCAxMS4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002ODYuNyA2MzguNkw1NDQuMSA1MzUuNVYyODhjMC00LjQtMy42LTgtOC04SDQ4OGMtNC40IDAtOCAzLjYtOCA4djI3NS4zYzAgMi42IDEuMiA1IDMuMyA2LjVsMTY1LjQgMTIwLjZjMy42IDIuNiA4LjYgMS45IDExLjItMS43bDI4LjYtMzljMi42LTMuNiAxLjgtOC42LTEuOC0xMS4xeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DbG9zZUNpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdjbG9zZS1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzEuOCA1MjcuMWMxLjIgMS41IDEuOSAzLjMgMS45IDUuMiAwIDQuNS0zLjYgOC04IDhsLTY2LS4zLTk5LjMtMTE4LjQtOTkuMyAxMTguNS02Ni4xLjNjLTQuNCAwLTgtMy42LTgtOCAwLTEuOS43LTMuNyAxLjktNS4yTDQ3MSA1MTIuM2wtMTMwLjEtMTU1YTguMzIgOC4zMiAwIDAgMS0xLjktNS4yYzAtNC41IDMuNi04IDgtOGw2Ni4xLjMgOTkuMyAxMTguNCA5OS40LTExOC41IDY2LS4zYzQuNCAwIDggMy42IDggOCAwIDEuOS0uNiAzLjgtMS44IDUuMmwtMTMwLjEgMTU1IDEyOS45IDE1NC45eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002ODUuOCAzNTJjMC00LjQtMy42LTgtOC04bC02NiAuMy05OS40IDExOC41LTk5LjMtMTE4LjQtNjYuMS0uM2MtNC40IDAtOCAzLjUtOCA4IDAgMS45LjcgMy43IDEuOSA1LjJsMTMwLjEgMTU1LTEzMC4xIDE1NC45YTguMzIgOC4zMiAwIDAgMC0xLjkgNS4yYzAgNC40IDMuNiA4IDggOGw2Ni4xLS4zIDk5LjMtMTE4LjVMNjExLjcgNjgwbDY2IC4zYzQuNCAwIDgtMy41IDgtOCAwLTEuOS0uNy0zLjctMS45LTUuMkw1NTMuOSA1MTIuMmwxMzAuMS0xNTVjMS4yLTEuNCAxLjgtMy4zIDEuOC01LjJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNsb3VkVHdvVG9uZSA9IGdldEljb24oJ2Nsb3VkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc5MS45IDQ5MmwtMzcuOC0xMC0xMy44LTM2LjVjLTguNi0yMi43LTIwLjYtNDQuMS0zNS43LTYzLjRhMjQ1LjczIDI0NS43MyAwIDAgMC01Mi40LTQ5LjljLTQxLjEtMjguOS04OS41LTQ0LjItMTQwLTQ0LjJzLTk4LjkgMTUuMy0xNDAgNDQuMmEyNDUuNiAyNDUuNiAwIDAgMC01Mi40IDQ5LjkgMjQwLjQ3IDI0MC40NyAwIDAgMC0zNS43IDYzLjRsLTEzLjkgMzYuNi0zNy45IDkuOWExMjUuNyAxMjUuNyAwIDAgMC02Ni4xIDQzLjdBMTIzLjEgMTIzLjEgMCAwIDAgMTQwIDYxMmMwIDMzLjEgMTIuOSA2NC4zIDM2LjMgODcuNyAyMy40IDIzLjQgNTQuNSAzNi4zIDg3LjYgMzYuM2g0OTYuMmMzMy4xIDAgNjQuMi0xMi45IDg3LjYtMzYuM0ExMjMuMyAxMjMuMyAwIDAgMCA4ODQgNjEyYzAtNTYuMi0zNy44LTEwNS41LTkyLjEtMTIweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MTEuNCA0MTguN0M3NjUuNiAyOTcuOSA2NDguOSAyMTIgNTEyLjIgMjEyUzI1OC44IDI5Ny44IDIxMyA0MTguNkMxMjcuMyA0NDEuMSA2NCA1MTkuMSA2NCA2MTJjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBoNDk2LjJDODcwLjUgODEyIDk2MCA3MjIuNSA5NjAgNjEyYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zem0zNi4zIDI4MWExMjMuMDcgMTIzLjA3IDAgMCAxLTg3LjYgMzYuM0gyNjMuOWMtMzMuMSAwLTY0LjItMTIuOS04Ny42LTM2LjNBMTIzLjMgMTIzLjMgMCAwIDEgMTQwIDYxMmMwLTI4IDkuMS01NC4zIDI2LjItNzYuM2ExMjUuNyAxMjUuNyAwIDAgMSA2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwIDEgNTIuNC00OS45YzQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4yYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNDkuOSAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNGwxMy44IDM2LjUgMzcuOCAxMGM1NC4zIDE0LjUgOTIuMSA2My44IDkyLjEgMTIwIDAgMzMuMS0xMi45IDY0LjMtMzYuMyA4Ny43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DbG9zZVNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdjbG9zZS1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTE2My45LTQ3My45QTcuOTUgNy45NSAwIDAgMSAzNTQgMzUzaDU4LjljNC43IDAgOS4yIDIuMSAxMi4zIDUuN0w1MTIgNDYyLjJsODYuOC0xMDMuNWMzLTMuNiA3LjUtNS43IDEyLjMtNS43SDY3MGM2LjggMCAxMC41IDcuOSA2LjEgMTMuMUw1NTMuOCA1MTJsMTIyLjMgMTQ1LjljNC40IDUuMi43IDEzLjEtNi4xIDEzLjFoLTU4LjljLTQuNyAwLTkuMi0yLjEtMTIuMy01LjdMNTEyIDU2MS44bC04Ni44IDEwMy41Yy0zIDMuNi03LjUgNS43LTEyLjMgNS43SDM1NGMtNi44IDAtMTAuNS03LjktNi4xLTEzLjFMNDcwLjIgNTEyIDM0Ny45IDM2Ni4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zNTQgNjcxaDU4LjljNC44IDAgOS4zLTIuMSAxMi4zLTUuN0w1MTIgNTYxLjhsODYuOCAxMDMuNWMzLjEgMy42IDcuNiA1LjcgMTIuMyA1LjdINjcwYzYuOCAwIDEwLjUtNy45IDYuMS0xMy4xTDU1My44IDUxMmwxMjIuMy0xNDUuOWM0LjQtNS4yLjctMTMuMS02LjEtMTMuMWgtNTguOWMtNC44IDAtOS4zIDIuMS0xMi4zIDUuN0w1MTIgNDYyLjJsLTg2LjgtMTAzLjVjLTMuMS0zLjYtNy42LTUuNy0xMi4zLTUuN0gzNTRjLTYuOCAwLTEwLjUgNy45LTYuMSAxMy4xTDQ3MC4yIDUxMiAzNDcuOSA2NTcuOUE3Ljk1IDcuOTUgMCAwIDAgMzU0IDY3MXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29kZVR3b1RvbmUgPSBnZXRJY29uKCdjb2RlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0zMzkuNS0yMjNoMTg1YzQuMSAwIDcuNSAzLjYgNy41IDh2NDhjMCA0LjQtMy40IDgtNy41IDhoLTE4NWMtNC4xIDAtNy41LTMuNi03LjUtOHYtNDhjMC00LjQgMy40LTggNy41LTh6TTMwOCA2MTAuM2MwLTIuMyAxLjEtNC42IDIuOS02LjFMNDIwLjcgNTEybC0xMDkuOC05Mi4yYTcuNjMgNy42MyAwIDAgMS0yLjktNi4xVjM1MWMwLTYuOCA3LjktMTAuNSAxMy4xLTYuMWwxOTIgMTYwLjljMy45IDMuMiAzLjkgOS4xIDAgMTIuM2wtMTkyIDE2MWMtNS4yIDQuNC0xMy4xLjctMTMuMS02LjF2LTYyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMyMS4xIDY3OS4xbDE5Mi0xNjFjMy45LTMuMiAzLjktOS4xIDAtMTIuM2wtMTkyLTE2MC45QTcuOTUgNy45NSAwIDAgMCAzMDggMzUxdjYyLjdjMCAyLjQgMSA0LjYgMi45IDYuMUw0MjAuNyA1MTJsLTEwOS44IDkyLjJhOC4xIDguMSAwIDAgMC0yLjkgNi4xVjY3M2MwIDYuOCA3LjkgMTAuNSAxMy4xIDYuMXpNNTE2IDY3M2MwIDQuNCAzLjQgOCA3LjUgOGgxODVjNC4xIDAgNy41LTMuNiA3LjUtOHYtNDhjMC00LjQtMy40LTgtNy41LThoLTE4NWMtNC4xIDAtNy41IDMuNi03LjUgOHY0OHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29tcGFzc1R3b1RvbmUgPSBnZXRJY29uKCdjb21wYXNzJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTMyNy42IDcwMS43Yy0yIC45LTQuNCAwLTUuMy0yLjEtLjQtMS0uNC0yLjIgMC0zLjJMNDIxIDQ3MC45IDU1My4xIDYwM2wtMjI1LjUgOTguN3ptMzc1LjEtMzc1LjFMNjA0IDU1Mi4xIDQ3MS45IDQyMGwyMjUuNS05OC43YzItLjkgNC40IDAgNS4zIDIuMS40IDEgLjQgMi4xIDAgMy4yeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMjIuMyA2OTYuNGMtLjQgMS0uNCAyLjIgMCAzLjIuOSAyLjEgMy4zIDMgNS4zIDIuMUw1NTMuMSA2MDMgNDIxIDQ3MC45bC05OC43IDIyNS41em0zNzUuMS0zNzUuMUw0NzEuOSA0MjAgNjA0IDU1Mi4xbDk4LjctMjI1LjVjLjQtMS4xLjQtMi4yIDAtMy4yLS45LTIuMS0zLjMtMy01LjMtMi4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNvbnRhY3RzVHdvVG9uZSA9IGdldEljb24oJ2NvbnRhY3RzJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ2MC4zIDUyNmE1MS43IDUyIDAgMSAwIDEwMy40IDAgNTEuNyA1MiAwIDEgMC0xMDMuNCAweidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc2OCAzNTJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01Nkg1NDh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgzMjh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgxMzZ2NDk2aDc1MlYyOTZINzY4djU2ek02NjEgNzM2aC00My44Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgMzkuOS05Ny4yIDkwLjVjLS4zIDQuMi0zLjcgNy41LTcuOSA3LjVoLTQzLjlhOCA4IDAgMCAxLTgtOC40YzIuOC01My4zIDMxLjktOTkuNiA3NC42LTEyNi4xLTE4LjEtMjAtMjkuMS00Ni40LTI5LjEtNzUuNSAwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyczExMS40IDUwLjEgMTExLjQgMTEyYzAgMjkuMS0xMSA1NS42LTI5LjEgNzUuNSA0Mi43IDI2LjQgNzEuOSA3Mi44IDc0LjcgMTI2LjFhOCA4IDAgMCAxLTggOC40eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001OTQuMyA2MDEuNWExMTEuOCAxMTEuOCAwIDAgMCAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwIDAtNzQuNiAxMjYuMSA4IDggMCAwIDAgOCA4LjRINDA3YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNiA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDY2MWE4IDggMCAwIDAgOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNy0xMjYuMXpNNTEyIDU3OGMtMjguNSAwLTUxLjctMjMuMy01MS43LTUyczIzLjItNTIgNTEuNy01MiA1MS43IDIzLjMgNTEuNyA1Mi0yMy4yIDUyLTUxLjcgNTJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29udGFpbmVyVHdvVG9uZSA9IGdldEljb24oJ2NvbnRhaW5lcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ002MzUgNzcxLjdjLTM0LjUgMjguNi03OC4yIDQ0LjMtMTIzIDQ0LjNzLTg4LjUtMTUuOC0xMjMtNDQuM2ExOTQuMDIgMTk0LjAyIDAgMCAxLTU5LjEtODQuN0gyMzJ2MjAxaDU2MFY2ODdoLTk3LjljLTExLjYgMzIuOC0zMiA2Mi4zLTU5LjEgODQuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzIwIDUwMWgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODdoOTcuOWMxMS42IDMyLjggMzIgNjIuMyA1OS4xIDg0LjcgMzQuNSAyOC41IDc4LjIgNDQuMyAxMjMgNDQuM3M4OC41LTE1LjcgMTIzLTQ0LjNjMjcuMS0yMi40IDQ3LjUtNTEuOSA1OS4xLTg0LjdINzkydjIwMXptMC0yNjRINjQzLjZsLTUuMiAyNC43QzYyNi40IDcwOC41IDU3My4yIDc1MiA1MTIgNzUycy0xMTQuNC00My41LTEyNi41LTEwMy4zbC01LjItMjQuN0gyMzJWMTM2aDU2MHY0ODh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMyMCAzNDFoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29udHJvbFR3b1RvbmUgPSBnZXRJY29uKCdjb250cm9sJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTYxNiA0NDBhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAwek0zNDAuNCA2MDEuNWwxLjUgMi40YzAgLjEuMS4xLjEuMmwuOSAxLjJjLjEuMS4yLjIuMi4zIDEgMS4zIDIgMi41IDMuMiAzLjZsLjIuMmMuNC40LjguOCAxLjIgMS4xLjguOCAxLjcgMS41IDIuNiAyLjFoLjFsMS4yLjljLjEuMS4zLjIuNC4zIDEuMi44IDIuNSAxLjYgMy45IDIuMi4yLjEuNS4yLjcuNC40LjIuNy4zIDEuMS41LjMuMS43LjMgMSAuNC41LjIgMSAuNCAxLjUuNS40LjEuOS4zIDEuMy40bC45LjMgMS40LjNjLjIuMS41LjEuNy4yLjcuMSAxLjQuMyAyLjEuNC4yIDAgLjQgMCAuNi4xLjYuMSAxLjEuMSAxLjcuMi4yIDAgLjQgMCAuNy4xLjggMCAxLjUuMSAyLjMuMXMxLjUgMCAyLjMtLjFjLjIgMCAuNCAwIC43LS4xLjYgMCAxLjItLjEgMS43LS4yLjIgMCAuNCAwIC42LS4xLjctLjEgMS40LS4yIDIuMS0uNC4yLS4xLjUtLjEuNy0uMmwxLjQtLjMuOS0uM2MuNC0uMS45LS4zIDEuMy0uNC41LS4yIDEtLjQgMS41LS41LjMtLjEuNy0uMyAxLS40LjQtLjIuNy0uMyAxLjEtLjUuMi0uMS41LS4yLjctLjQgMS4zLS43IDIuNi0xLjQgMy45LTIuMi4xLS4xLjMtLjIuNC0uM2wxLjItLjloLjFjLjktLjcgMS44LTEuNCAyLjYtMi4xLjQtLjQuOC0uNyAxLjItMS4xbC4yLS4yYzEuMS0xLjEgMi4yLTIuNCAzLjItMy42LjEtLjEuMi0uMi4yLS4zbC45LTEuMmMwLS4xLjEtLjEuMS0uMmwxLjUtMi40Yy4xLS4yLjItLjMuMy0uNSAyLjctNS4xIDQuMy0xMC45IDQuMy0xN3MtMS42LTEyLTQuMy0xN2MtLjEtLjItLjItLjQtLjMtLjVsLTEuNS0yLjRjMC0uMS0uMS0uMS0uMS0uMmwtLjktMS4yYy0uMS0uMS0uMi0uMi0uMi0uMy0xLTEuMy0yLTIuNS0zLjItMy42bC0uMi0uMmMtLjQtLjQtLjgtLjgtMS4yLTEuMS0uOC0uOC0xLjctMS41LTIuNi0yLjFoLS4xbC0xLjItLjljLS4xLS4xLS4zLS4yLS40LS4zLTEuMi0uOC0yLjUtMS42LTMuOS0yLjItLjItLjEtLjUtLjItLjctLjQtLjQtLjItLjctLjMtMS4xLS41LS4zLS4xLS43LS4zLTEtLjQtLjUtLjItMS0uNC0xLjUtLjUtLjQtLjEtLjktLjMtMS4zLS40bC0uOS0uMy0xLjQtLjNjLS4yLS4xLS41LS4xLS43LS4yLS43LS4xLTEuNC0uMy0yLjEtLjQtLjIgMC0uNCAwLS42LS4xLS42LS4xLTEuMS0uMS0xLjctLjItLjIgMC0uNCAwLS43LS4xLS44IDAtMS41LS4xLTIuMy0uMXMtMS41IDAtMi4zLjFjLS4yIDAtLjQgMC0uNy4xLS42IDAtMS4yLjEtMS43LjItLjIgMC0uNCAwLS42LjEtLjcuMS0xLjQuMi0yLjEuNC0uMi4xLS41LjEtLjcuMmwtMS40LjMtLjkuM2MtLjQuMS0uOS4zLTEuMy40LS41LjItMSAuNC0xLjUuNS0uMy4xLS43LjMtMSAuNC0uNC4yLS43LjMtMS4xLjUtLjIuMS0uNS4yLS43LjQtMS4zLjctMi42IDEuNC0zLjkgMi4yLS4xLjEtLjMuMi0uNC4zbC0xLjIuOWgtLjFjLS45LjctMS44IDEuNC0yLjYgMi4xLS40LjQtLjguNy0xLjIgMS4xbC0uMi4yYTU0LjggNTQuOCAwIDAgMC0zLjIgMy42Yy0uMS4xLS4yLjItLjIuM2wtLjkgMS4yYzAgLjEtLjEuMS0uMS4ybC0xLjUgMi40Yy0uMS4yLS4yLjMtLjMuNS0yLjcgNS4xLTQuMyAxMC45LTQuMyAxN3MxLjYgMTIgNC4zIDE3Yy4xLjIuMi4zLjMuNXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptNDM2LjQtNDk5LjFjLS4yIDAtLjMuMS0uNC4xdi03N2MwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djc3Yy0uMiAwLS4zLS4xLS40LS4xIDQyIDEzLjQgNzIuNCA1Mi43IDcyLjQgOTkuMSAwIDQ2LjQtMzAuNCA4NS43LTcyLjQgOTkuMS4yIDAgLjMtLjEuNC0uMXYyMjFjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjUzOWMuMiAwIC4zLjEuNC4xLTQyLTEzLjQtNzIuNC01Mi43LTcyLjQtOTkuMSAwLTQ2LjQgMzAuNC04NS43IDcyLjQtOTkuMXpNMzQwIDQ4NVYyNjRjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyMjFjNDEuNyAxMy42IDcyIDUyLjggNzIgOTlzLTMwLjMgODUuNS03MiA5OXY3N2MwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTc3Yy00MS43LTEzLjYtNzItNTIuOC03Mi05OXMzMC4zLTg1LjUgNzItOTl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM0MCA2ODN2NzdjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNzdjNDEuNy0xMy41IDcyLTUyLjggNzItOTlzLTMwLjMtODUuNC03Mi05OVYyNjRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djIyMWMtNDEuNyAxMy41LTcyIDUyLjgtNzIgOTlzMzAuMyA4NS40IDcyIDk5em0uMS0xMTZjLjEtLjIuMi0uMy4zLS41bDEuNS0yLjRjMC0uMS4xLS4xLjEtLjJsLjktMS4yYzAtLjEuMS0uMi4yLS4zIDEtMS4yIDIuMS0yLjUgMy4yLTMuNmwuMi0uMmMuNC0uNC44LS43IDEuMi0xLjEuOC0uNyAxLjctMS40IDIuNi0yLjFoLjFsMS4yLS45Yy4xLS4xLjMtLjIuNC0uMyAxLjMtLjggMi42LTEuNSAzLjktMi4yLjItLjIuNS0uMy43LS40LjQtLjIuNy0uMyAxLjEtLjUuMy0uMS43LS4zIDEtLjQuNS0uMSAxLS4zIDEuNS0uNS40LS4xLjktLjMgMS4zLS40bC45LS4zIDEuNC0uM2MuMi0uMS41LS4xLjctLjIuNy0uMiAxLjQtLjMgMi4xLS40LjItLjEuNC0uMS42LS4xLjUtLjEgMS4xLS4yIDEuNy0uMi4zLS4xLjUtLjEuNy0uMS44LS4xIDEuNS0uMSAyLjMtLjFzMS41LjEgMi4zLjFjLjMuMS41LjEuNy4xLjYuMSAxLjEuMSAxLjcuMi4yLjEuNC4xLjYuMS43LjEgMS40LjMgMi4xLjQuMi4xLjUuMS43LjJsMS40LjMuOS4zYy40LjEuOS4zIDEuMy40LjUuMSAxIC4zIDEuNS41LjMuMS43LjMgMSAuNC40LjIuNy4zIDEuMS41LjIuMi41LjMuNy40IDEuNC42IDIuNyAxLjQgMy45IDIuMi4xLjEuMy4yLjQuM2wxLjIuOWguMWMuOS42IDEuOCAxLjMgMi42IDIuMS40LjMuOC43IDEuMiAxLjFsLjIuMmMxLjIgMS4xIDIuMiAyLjMgMy4yIDMuNiAwIC4xLjEuMi4yLjNsLjkgMS4yYzAgLjEuMS4xLjEuMmwxLjUgMi40QTM2LjAzIDM2LjAzIDAgMCAxIDQwOCA1ODRjMCA2LjEtMS42IDExLjktNC4zIDE3LS4xLjItLjIuMy0uMy41bC0xLjUgMi40YzAgLjEtLjEuMS0uMS4ybC0uOSAxLjJjMCAuMS0uMS4yLS4yLjMtMSAxLjItMi4xIDIuNS0zLjIgMy42bC0uMi4yYy0uNC40LS44LjctMS4yIDEuMS0uOC43LTEuNyAxLjQtMi42IDIuMWgtLjFsLTEuMi45Yy0uMS4xLS4zLjItLjQuMy0xLjMuOC0yLjYgMS41LTMuOSAyLjItLjIuMi0uNS4zLS43LjQtLjQuMi0uNy4zLTEuMS41LS4zLjEtLjcuMy0xIC40LS41LjEtMSAuMy0xLjUuNS0uNC4xLS45LjMtMS4zLjRsLS45LjMtMS40LjNjLS4yLjEtLjUuMS0uNy4yLS43LjItMS40LjMtMi4xLjQtLjIuMS0uNC4xLS42LjEtLjUuMS0xLjEuMi0xLjcuMi0uMy4xLS41LjEtLjcuMS0uOC4xLTEuNS4xLTIuMy4xcy0xLjUtLjEtMi4zLS4xYy0uMy0uMS0uNS0uMS0uNy0uMS0uNi0uMS0xLjEtLjEtMS43LS4yLS4yLS4xLS40LS4xLS42LS4xLS43LS4xLTEuNC0uMy0yLjEtLjQtLjItLjEtLjUtLjEtLjctLjJsLTEuNC0uMy0uOS0uM2MtLjQtLjEtLjktLjMtMS4zLS40LS41LS4xLTEtLjMtMS41LS41LS4zLS4xLS43LS4zLTEtLjQtLjQtLjItLjctLjMtMS4xLS41LS4yLS4yLS41LS4zLS43LS40LTEuNC0uNi0yLjctMS40LTMuOS0yLjItLjEtLjEtLjMtLjItLjQtLjNsLTEuMi0uOWgtLjFjLS45LS42LTEuOC0xLjMtMi42LTIuMS0uNC0uMy0uOC0uNy0xLjItMS4xbC0uMi0uMmMtMS4yLTEuMS0yLjItMi4zLTMuMi0zLjYgMC0uMS0uMS0uMi0uMi0uM2wtLjktMS4yYzAtLjEtLjEtLjEtLjEtLjJsLTEuNS0yLjRjLS4xLS4yLS4yLS4zLS4zLS41LTIuNy01LTQuMy0xMC45LTQuMy0xN3MxLjYtMTEuOSA0LjMtMTd6bTI4MC4zLTI3LjljLS4xIDAtLjItLjEtLjQtLjF2MjIxYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTM5Yy0uMSAwLS4yLjEtLjQuMSA0Mi0xMy40IDcyLjQtNTIuNyA3Mi40LTk5LjEgMC00Ni40LTMwLjQtODUuNy03Mi40LTk5LjEuMSAwIC4yLjEuNC4xdi03N2MwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NzdjLjEgMCAuMi0uMS40LS4xLTQyIDEzLjQtNzIuNCA1Mi43LTcyLjQgOTkuMSAwIDQ2LjQgMzAuNCA4NS43IDcyLjQgOTkuMXpNNjUyIDQwNGMxOS45IDAgMzYgMTYuMSAzNiAzNnMtMTYuMSAzNi0zNiAzNi0zNi0xNi4xLTM2LTM2IDE2LjEtMzYgMzYtMzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNvcHlUd29Ub25lID0gZ2V0SWNvbignY29weScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTIzMiA3MDZoMTQyYzIyLjEgMCA0MCAxNy45IDQwIDQwdjE0MmgyNTBWMjY0SDIzMnY0NDJ6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ003MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNyZWRpdENhcmRUd29Ub25lID0gZ2V0SWNvbignY3JlZGl0LWNhcmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTM2IDc5Mmg3NTJWNDQwSDEzNnYzNTJ6bTUwNy0xNDRjMC00LjQgMy42LTggOC04aDE2NWM0LjQgMCA4IDMuNiA4IDh2NzJjMCA0LjQtMy42IDgtOCA4SDY1MWMtNC40IDAtOC0zLjYtOC04di03MnpNMTM2IDIzMmg3NTJ2MTIwSDEzNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjUxIDcyOGgxNjVjNC40IDAgOC0zLjYgOC04di03MmMwLTQuNC0zLjYtOC04LThINjUxYy00LjQgMC04IDMuNi04IDh2NzJjMCA0LjQgMy42IDggOCA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWNDQwaDc1MnYzNTJ6bTAtNDQwSDEzNlYyMzJoNzUydjEyMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ3Jvd25Ud29Ub25lID0gZ2V0SWNvbignY3Jvd24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNOTExLjkgMjgzLjl2LjVMODM1LjUgODY1Yy0xIDgtNy45IDE0LTE1LjkgMTRIMjA0LjVjLTguMSAwLTE0LjktNi4xLTE2LTE0bC03Ni40LTU4MC42di0uNiAxLjZMMTg4LjUgODY2YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42Yy4xLS41LjEtMSAwLTEuNXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003NzMuNiA4MTAuNmw1My45LTQwOS40LTEzOS44IDg2LjFMNTEyIDI1Mi45IDMzNi4zIDQ4Ny4zbC0xMzkuOC04Ni4xIDUzLjggNDA5LjRoNTIzLjN6bS0zNzQuMi0xODljMC02Mi4xIDUwLjUtMTEyLjYgMTEyLjYtMTEyLjZzMTEyLjYgNTAuNSAxMTIuNiAxMTIuNnYxYzAgNjIuMS01MC41IDExMi42LTExMi42IDExMi42cy0xMTIuNi01MC41LTExMi42LTExMi42di0xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNzM0LjJjNjEuOSAwIDExMi4zLTUwLjIgMTEyLjYtMTEyLjF2LS41YzAtNjIuMS01MC41LTExMi42LTExMi42LTExMi42cy0xMTIuNiA1MC41LTExMi42IDExMi42di41Yy4zIDYxLjkgNTAuNyAxMTIuMSAxMTIuNiAxMTIuMXptMC0xNjAuOWMyNi42IDAgNDguMiAyMS42IDQ4LjIgNDguMyAwIDI2LjYtMjEuNiA0OC4zLTQ4LjIgNDguM3MtNDguMi0yMS42LTQ4LjItNDguM2MwLTI2LjYgMjEuNi00OC4zIDQ4LjItNDguM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMTg4LjUgODY1YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42di0uNWMuMy02LjQtNi43LTEwLjgtMTIuMy03LjRMNzA1IDM5Ni40IDUxOC40IDE0Ny41YTguMDYgOC4wNiAwIDAgMC0xMi45IDBMMzE5IDM5Ni40IDEyNC4zIDI3Ni41Yy01LjUtMy40LTEyLjYuOS0xMi4yIDcuM3YuNkwxODguNSA4NjV6bTE0Ny44LTM3Ny43TDUxMiAyNTIuOWwxNzUuNyAyMzQuNCAxMzkuOC04Ni4xLTUzLjkgNDA5LjRIMjUwLjNsLTUzLjgtNDA5LjQgMTM5LjggODYuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ3VzdG9tZXJTZXJ2aWNlVHdvVG9uZSA9IGdldEljb24oJ2N1c3RvbWVyLXNlcnZpY2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ002OTYgNjMyaDEyOHYxOTJINjk2em0tNDk2IDBoMTI4djE5MkgyMDB6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHpNMzI4IDYzMnYxOTJIMjAwVjYzMmgxMjh6bTQ5NiAxOTJINjk2VjYzMmgxMjh2MTkyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5EYXNoYm9hcmRUd29Ub25lID0gZ2V0SWNvbignZGFzaGJvYXJkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxODhjLTk5LjMgMC0xOTIuNyAzOC43LTI2MyAxMDktNzAuMyA3MC4yLTEwOSAxNjMuNi0xMDkgMjYzIDAgMTA1LjYgNDQuNSAyMDUuNSAxMjIuNiAyNzZoNDk4LjhBMzcxLjEyIDM3MS4xMiAwIDAgMCA4ODQgNTYwYzAtOTkuMy0zOC43LTE5Mi43LTEwOS0yNjMtNzAuMi03MC4zLTE2My42LTEwOS0yNjMtMTA5em0tMzAgNDRjMC00LjQgMy42LTggOC04aDQ0YzQuNCAwIDggMy42IDggOHY4MGMwIDQuNC0zLjYgOC04IDhoLTQ0Yy00LjQgMC04LTMuNi04LTh2LTgwek0yNzAgNTgyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOHYtNDRjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NHptOTAuNy0yMDQuNGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTU2LjYtNTYuNmE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDMxLjEtMzEuMWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDU2LjYgNTYuNmMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zem0yOTEuMSA4My41bC04NC41IDg0LjVjNSAxOC43LjIgMzkuNC0xNC41IDU0LjFhNTUuOTUgNTUuOTUgMCAwIDEtNzkuMiAwIDU1Ljk1IDU1Ljk1IDAgMCAxIDAtNzkuMiA1NS44NyA1NS44NyAwIDAgMSA1NC4xLTE0LjVsODQuNS04NC41YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjN6bTQzLTUyLjRsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDU2LjYtNTYuNmMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDMxLjEgMzEuMWMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC01Ni42IDU2LjZhOC4wMyA4LjAzIDAgMCAxLTExLjMgMHpNODQ2IDUzOHY0NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LTh2LTQ0YzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTYyMy41IDQyMS41YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNTI3LjcgNTA2Yy0xOC43LTUtMzkuNC0uMi01NC4xIDE0LjVhNTUuOTUgNTUuOTUgMCAwIDAgMCA3OS4yIDU1Ljk1IDU1Ljk1IDAgMCAwIDc5LjIgMCA1NS44NyA1NS44NyAwIDAgMCAxNC41LTU0LjFsODQuNS04NC41YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTI4LjMtMjguM3pNNDkwIDMyMGg0NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOGgtNDRjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyNC44IDM4NS42YTQ0Ni43IDQ0Ni43IDAgMCAwLTk2LTE0Mi40IDQ0Ni43IDQ0Ni43IDAgMCAwLTE0Mi40LTk2QzYzMS4xIDEyMy44IDU3Mi41IDExMiA1MTIgMTEycy0xMTkuMSAxMS44LTE3NC40IDM1LjJhNDQ2LjcgNDQ2LjcgMCAwIDAtMTQyLjQgOTYgNDQ2LjcgNDQ2LjcgMCAwIDAtOTYgMTQyLjRDNzUuOCA0NDAuOSA2NCA0OTkuNSA2NCA1NjBjMCAxMzIuNyA1OC4zIDI1Ny43IDE1OS45IDM0My4xbDEuNyAxLjRjNS44IDQuOCAxMy4xIDcuNSAyMC42IDcuNWg1MzEuN2M3LjUgMCAxNC44LTIuNyAyMC42LTcuNWwxLjctMS40QzkwMS43IDgxNy43IDk2MCA2OTIuNyA5NjAgNTYwYzAtNjAuNS0xMS45LTExOS4xLTM1LjItMTc0LjR6TTc2MS40IDgzNkgyNjIuNkEzNzEuMTIgMzcxLjEyIDAgMCAxIDE0MCA1NjBjMC05OS40IDM4LjctMTkyLjggMTA5LTI2MyA3MC4zLTcwLjMgMTYzLjctMTA5IDI2My0xMDkgOTkuNCAwIDE5Mi44IDM4LjcgMjYzIDEwOSA3MC4zIDcwLjMgMTA5IDE2My43IDEwOSAyNjMgMCAxMDUuNi00NC41IDIwNS41LTEyMi42IDI3NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzYyLjcgMzQwLjhsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC01Ni42IDU2LjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzMS4xIDMxLjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw1Ni42LTU2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3pNNzUwIDUzOHY0NGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04di00NGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh6TTMwNC4xIDMwOS43YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTMxLjEgMzEuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDU2LjYgNTYuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMxLjEtMzEuMWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC01Ni42LTU2LjZ6TTI2MiA1MzBoLTgwYy00LjQgMC04IDMuNi04IDh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5EZWxldGVUd29Ub25lID0gZ2V0SWNvbignZGVsZXRlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMjkyLjcgODQwaDQzOC42bDI0LjItNTEyaC00ODd6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg2NCAyNTZINzM2di04MGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djgwSDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDYwLjRsMjQuNyA1MjNjMS42IDM0LjEgMjkuOCA2MSA2My45IDYxaDQ1NGMzNC4yIDAgNjIuMy0yNi44IDYzLjktNjFsMjQuNy01MjNIODg4YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS01MDQtNzJoMzA0djcySDM2MHYtNzJ6bTM3MS4zIDY1NkgyOTIuN2wtMjQuMi01MTJoNDg3bC0yNC4yIDUxMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRGlmZlR3b1RvbmUgPSBnZXRJY29uKCdkaWZmJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiAyNjR2NjI0aDQzMlY0MTMuOEw1MTQuMiAyNjRIMjMyem0zMzYgNDg5YzAgMy44LTMuNCA3LTcuNSA3aC0yMjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy44IDMuNC03IDcuNS03aDIyNWM0LjEgMCA3LjUgMy4yIDcuNSA3djQyem0wLTI2MnY0MmMwIDMuOC0zLjQgNy03LjUgN0g0NzZ2ODQuOWMwIDMuOS0zLjEgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTQwaC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOSAzLjQtNyA3LjUtN0g0MjB2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjkgMCA3IDMuMiA3IDcuMVY0ODRoODQuNWM0LjEgMCA3LjUgMy4xIDcuNSA3eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuMiAzMDYuNkw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001NTMuNCAyMDEuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzOTcuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkw1NTMuNCAyMDEuNHpNNjY0IDg4OEgyMzJWMjY0aDI4Mi4yTDY2NCA0MTMuOFY4ODh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ3NiAzOTkuMWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjFWNDg0aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQyMHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTQwaDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINDc2di04NC45ek01NjAuNSA3MDRoLTIyNWMtNC4xIDAtNy41IDMuMi03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN2gyMjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjgtMy40LTctNy41LTd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRhdGFiYXNlVHdvVG9uZSA9IGdldEljb24oJ2RhdGFiYXNlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiA2MTZoNTYwVjQwOEgyMzJ2MjA4em0xMTItMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHpNMjMyIDg4OGg1NjBWNjgwSDIzMnYyMDh6bTExMi0xNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0yMzIgMzQ0aDU2MFYxMzZIMjMydjIwOHptMTEyLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMwNCA1MTJhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDI3MmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAtNTQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDgyNEgyMzJWNjgwaDU2MHYyMDh6bTAtMjcySDIzMlY0MDhoNTYwdjIwOHptMC0yNzJIMjMyVjEzNmg1NjB2MjA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5EaXNsaWtlVHdvVG9uZSA9IGdldEljb24oJ2Rpc2xpa2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjczIDEwMC4xdjQyOGguM2wtLjMtNDI4ek04MjAuNCA1MjVsLTIxLjktMTkgMTQtMjUuNWE1Ni4yIDU2LjIgMCAwIDAgNi45LTI3LjNjMC0xNi41LTcuMS0zMi4yLTE5LjYtNDNsLTIxLjktMTkgMTMuOS0yNS40YTU2LjIgNTYuMiAwIDAgMCA2LjktMjcuM2MwLTE2LjUtNy4xLTMyLjItMTkuNi00M2wtMjEuOS0xOSAxMy45LTI1LjRhNTYuMiA1Ni4yIDAgMCAwIDYuOS0yNy4zYzAtMjIuNC0xMy4yLTQyLjYtMzMuNi01MS44SDM0NXYzNDUuMmMxOC42IDY3LjIgNDYuNCAxNjggODMuNSAzMDIuNWE0NC4yOCA0NC4yOCAwIDAgMCA0Mi4yIDMyLjNjNy41LjEgMTUtMi4yIDIxLjEtNi43IDkuOS03LjQgMTUuMi0xOC42IDE0LjYtMzAuNWwtOS42LTE5OC40aDMxNC40QzgyOSA2MDUuNSA4NDAgNTg3LjEgODQwIDU2OGMwLTE2LjUtNy4xLTMyLjItMTkuNi00M3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMTEyIDEzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjVWMTAwaC02NWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTc3My45IDM1OC4zYzMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTUxLjYtMzAuNy05OC4xLTc4LjMtMTE4LjRhNjYuMSA2Ni4xIDAgMCAwLTI2LjUtNS40SDI3M2wuMyA0MjggODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3ptLTc0LjcgMTI2LjFINDk2LjhsOS42IDE5OC40Yy42IDExLjktNC43IDIzLjEtMTQuNiAzMC41LTYuMSA0LjUtMTMuNiA2LjgtMjEuMSA2LjdhNDQuMjggNDQuMjggMCAwIDEtNDIuMi0zMi4zYy0zNy4xLTEzNC40LTY0LjktMjM1LjItODMuNS0zMDIuNVYxNzJoMzk5LjRhNTYuODUgNTYuODUgMCAwIDEgMzMuNiA1MS44YzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xNCAyNS41IDIxLjkgMTlhNTYuNzYgNTYuNzYgMCAwIDEgMTkuNiA0M2MwIDE5LjEtMTEgMzcuNS0yOC44IDQ4LjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRvd25DaXJjbGVUd29Ub25lID0gZ2V0SWNvbignZG93bi1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTg0LjQgMjc3LjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMCAxLTEyLjkgMGwtMTc4LTI0NmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4zIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NjMuNmwxMDUuMi0xNDUuNGM2LTguMyAxNS43LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjQgMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002OTAgNDA1aC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4yTDUxMiA1NjMuNiA0MDYuOCA0MTguMmMtNi04LjMtMTUuNi0xMy4yLTI1LjktMTMuMkgzMzRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDE3OCAyNDZjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOS01LjMuMS0xMi43LTYuNC0xMi43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Eb3duU3F1YXJlVHdvVG9uZSA9IGdldEljb24oJ2Rvd24tc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xNTAtNDQwaDQ2LjljMTAuMyAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTU4LjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNy0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi40IDEyLjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMCAxLTEyLjkgMGwtMTc4LTI0NmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUwNS41IDY1OC43YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN2gtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTU4LjYgNDA2LjggNDEzLjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5FbnZpcm9ubWVudFR3b1RvbmUgPSBnZXRJY29uKCdlbnZpcm9ubWVudCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MjQuNCAyMjQuOUM2NjcuNyAxNjkuNSA1OTIuMyAxMzkgNTEyIDEzOXMtMTU1LjcgMzAuNS0yMTIuNCA4NS44QzI0My4xIDI4MCAyMTIgMzUzLjIgMjEyIDQzMS4xYzAgMjQxLjMgMjM0LjEgNDA3LjIgMzAwIDQ0OS4xIDY1LjktNDEuOSAzMDAtMjA3LjggMzAwLTQ0OS4xIDAtNzcuOS0zMS4xLTE1MS4xLTg3LjYtMjA2LjJ6TTUxMiA2MTVjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzYgMTc2IDc4LjggMTc2IDE3Ni03OC44IDE3Ni0xNzYgMTc2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgMjYzYy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzYtNzguOC0xNzYtMTc2LTE3NnptNzkuMiAyNTUuMkExMTEuNiAxMTEuNiAwIDAgMSA1MTIgNTUxYy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwIDEgNDAwIDQzOWMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDMzOC42IDQ4Mi4xIDMyNyA1MTIgMzI3YzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOFM2MjQgNDA5LjEgNjI0IDQzOWMwIDI5LjktMTEuNiA1OC0zMi44IDc5LjJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OS4xYTM2Mi40OSAzNjIuNDkgMCAwIDAtNzkuOS0xMTUuNyAzNzAuODMgMzcwLjgzIDAgMCAwLTExOC4yLTc3LjhDNjEwLjcgNzYuNiA1NjIuMSA2NyA1MTIgNjdjLTUwLjEgMC05OC43IDkuNi0xNDQuNSAyOC41LTQ0LjMgMTguMy04NCA0NC41LTExOC4yIDc3LjhBMzYzLjYgMzYzLjYgMCAwIDAgMTY5LjQgMjg5Yy0xOS41IDQ1LTI5LjQgOTIuOC0yOS40IDE0MiAwIDcwLjYgMTYuOSAxNDAuOSA1MC4xIDIwOC43IDI2LjcgNTQuNSA2NCAxMDcuNiAxMTEgMTU4LjEgODAuMyA4Ni4yIDE2NC41IDEzOC45IDE4OC40IDE1M2E0My45IDQzLjkgMCAwIDAgMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA4ODAuMmMtNjUuOS00MS45LTMwMC0yMDcuOC0zMDAtNDQ5LjEgMC03Ny45IDMxLjEtMTUxLjEgODcuNi0yMDYuM0MzNTYuMyAxNjkuNSA0MzEuNyAxMzkgNTEyIDEzOXMxNTUuNyAzMC41IDIxMi40IDg1LjlDNzgwLjkgMjgwIDgxMiAzNTMuMiA4MTIgNDMxLjFjMCAyNDEuMy0yMzQuMSA0MDcuMi0zMDAgNDQ5LjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkVkaXRUd29Ub25lID0gZ2V0SWNvbignZWRpdCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTc2MS4xIDI4OC4zTDY4Ny44IDIxNSAzMjUuMSA1NzcuNmwtMTUuNiA4OSA4OC45LTE1Ljd6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MjIuMy04NGMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwIDAgMC0xNC4xTDY5NC45IDExNC45Yy0xLjktMS45LTQuNC0yLjktNy4xLTIuOXMtNS4yIDEtNy4xIDIuOUwyNTYuOCA1MzguOGMtMS41IDEuNS0yLjQgMy4zLTIuOCA1LjNsLTI5LjUgMTY4LjJhMzMuNSAzMy41IDAgMCAwIDkuNCAyOS44YzYuNiA2LjQgMTQuOSA5LjkgMjMuOCA5Ljl6bTY3LjQtMTc0LjRMNjg3LjggMjE1bDczLjMgNzMuMy0zNjIuNyAzNjIuNi04OC45IDE1LjcgMTUuNi04OXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRXhjbGFtYXRpb25DaXJjbGVUd29Ub25lID0gZ2V0SWNvbignZXhjbGFtYXRpb24tY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptLTMyIDE1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWMjk2em0zMiA0NDBhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODggNTc2aDQ4YzQuNCAwIDgtMy42IDgtOFYyOTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djI3MmMwIDQuNCAzLjYgOCA4IDh6bS0yNCAxMTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5FeHBlcmltZW50VHdvVG9uZSA9IGdldEljb24oJ2V4cGVyaW1lbnQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTUxLjkgNTEzYzE5LjYgMCAzNS45LTE0LjIgMzkuMy0zMi44QTQwLjAyIDQwLjAyIDAgMCAxIDU1MiA1MTJhNDAgNDAgMCAwIDEtNDAtMzkuNHYuNWMwIDIyIDE3LjkgMzkuOSAzOS45IDM5Ljl6TTc1MiA2ODcuOGwtLjMtLjNjLTI5LTE3LjUtNjIuMy0yNi44LTk3LTI2LjgtNDQuOSAwLTg3LjIgMTUuNy0xMjEgNDMuOGEyNTYuMjcgMjU2LjI3IDAgMCAxLTE2NC45IDU5LjljLTQxLjIgMC04MS05LjgtMTE2LjctMjhMMjEwLjUgODQ0aDYwM2wtNTkuOS0xNTUuMi0xLjYtMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODc5IDgyNC45TDY5Ni4zIDM1MlYxNzhINzY4di02OEgyNTZ2NjhoNzEuN3YxNzRMMTQ1IDgyNC45Yy0yLjggNy40LTQuMyAxNS4yLTQuMyAyMy4xIDAgMzUuMyAyOC43IDY0IDY0IDY0aDYxNC42YzcuOSAwIDE1LjctMS41IDIzLjEtNC4zIDMzLTEyLjcgNDkuNC00OS44IDM2LjYtODIuOHpNMzk1LjcgMzY0LjdWMTgwaDIzMi42djE4NC43TDcxOS4yIDYwMGMtMjAuNy01LjMtNDIuMS04LTYzLjktOC02MS4yIDAtMTE5LjIgMjEuNS0xNjUuMyA2MGExODguNzggMTg4Ljc4IDAgMCAxLTEyMS4zIDQzLjljLTMyLjcgMC02NC4xLTguMy05MS44LTIzLjdsMTE4LjgtMzA3LjV6TTIxMC41IDg0NGw0MS42LTEwNy42LjEtLjJjMzUuNyAxOC4xIDc1LjQgMjcuOCAxMTYuNiAyNy44IDYxLjIgMCAxMTkuMi0yMS41IDE2NS4zLTYwIDMzLjktMjguMiA3Ni4zLTQzLjkgMTIxLjMtNDMuOSAzNSAwIDY4LjQgOS41IDk3LjYgMjcuMWwuNiAxLjZMODEzLjUgODQ0aC02MDN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU1MiA1MTJjMTkuMyAwIDM1LjQtMTMuNiAzOS4yLTMxLjguNi0yLjcuOC01LjQuOC04LjIgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2LjZhNDAgNDAgMCAwIDAgNDAgMzkuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRXllSW52aXNpYmxlVHdvVG9uZSA9IGdldEljb24oJ2V5ZS1pbnZpc2libGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjU0Ljg5IDc1OC44NWwxMjUuNTctMTI1LjU3YTE3NiAxNzYgMCAwIDEgMjQ4LjgyLTI0OC44Mkw3NTcgMjU2LjcyUTY1MS42OSAxODYuMDcgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41cTY5LjI3IDE0NS45MSAxNzMuMDkgMjIxLjA1ek05NDIuMiA0ODYuMlE4ODkuNDYgMzc1LjExIDgxNi43IDMwNUw2NzIuNDggNDQ5LjI3YTE3Ni4wOSAxNzYuMDkgMCAwIDEtMjI3LjIyIDIyNy4yMUwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMCAwIDAtNTEuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTQyLjIgNDg2LjJRODg5LjQ3IDM3NS4xMSA4MTYuNyAzMDVsLTUwLjg4IDUwLjg4QzgwNy4zMSAzOTUuNTMgODQzLjQ1IDQ0Ny40IDg3NC43IDUxMiA3OTEuNSA2ODQuMiA2NzMuNCA3NjYgNTEyIDc2NnEtNzIuNjcgMC0xMzMuODctMjIuMzhMMzIzIDc5OC43NVE0MDggODM4IDUxMiA4MzhxMjg4LjMgMCA0MzAuMi0zMDAuM2E2MC4yOSA2MC4yOSAwIDAgMCAwLTUxLjV6TTg3OC42MyAxNjUuNTZMODM2IDEyMi44OGE4IDggMCAwIDAtMTEuMzIgMEw3MTUuMzEgMjMyLjJRNjI0Ljg2IDE4NiA1MTIgMTg2cS0yODguMyAwLTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVxNTYuNjkgMTE5LjQgMTM2LjUgMTkxLjQxTDExMi40OCA4MzVhOCA4IDAgMCAwIDAgMTEuMzFMMTU1LjE3IDg4OWE4IDggMCAwIDAgMTEuMzEgMGw3MTIuMTUtNzEyLjEyYTggOCAwIDAgMCAwLTExLjMyek0xNDkuMyA1MTJDMjMyLjYgMzM5LjggMzUwLjcgMjU4IDUxMiAyNThjNTQuNTQgMCAxMDQuMTMgOS4zNiAxNDkuMTIgMjguMzlsLTcwLjMgNzAuM2ExNzYgMTc2IDAgMCAwLTIzOC4xMyAyMzguMTNsLTgzLjQyIDgzLjQyQzIyMy4xIDYzNy40OSAxODMuMyA1ODIuMjggMTQ5LjMgNTEyem0yNDYuNyAwYTExMi4xMSAxMTIuMTEgMCAwIDEgMTQ2LjItMTA2LjY5TDQwMS4zMSA1NDYuMkExMTIgMTEyIDAgMCAxIDM5NiA1MTJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUwOCA2MjRjLTMuNDYgMC02Ljg3LS4xNi0xMC4yNS0uNDdsLTUyLjgyIDUyLjgyYTE3Ni4wOSAxNzYuMDkgMCAwIDAgMjI3LjQyLTIyNy40MmwtNTIuODIgNTIuODJjLjMxIDMuMzguNDcgNi43OS40NyAxMC4yNWExMTEuOTQgMTExLjk0IDAgMCAxLTExMiAxMTJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkV5ZVR3b1RvbmUgPSBnZXRJY29uKCdleWUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODEuOCA1MzcuOGE2MC4zIDYwLjMgMCAwIDEgMC01MS41QzE3Ni42IDI4Ni41IDMxOS44IDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjLTE5Mi4xIDAtMzM1LjQtMTAwLjUtNDMwLjItMzAwLjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDI1OGMtMTYxLjMgMC0yNzkuNCA4MS44LTM2Mi43IDI1NEMyMzIuNiA2ODQuMiAzNTAuNyA3NjYgNTEyIDc2NmMxNjEuNCAwIDI3OS41LTgxLjggMzYyLjctMjU0Qzc5MS40IDMzOS44IDY3My4zIDI1OCA1MTIgMjU4em0tNCA0MzBjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzYgMTc2IDc4LjggMTc2IDE3Ni03OC44IDE3Ni0xNzYgMTc2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NDIuMiA0ODYuMkM4NDcuNCAyODYuNSA3MDQuMSAxODYgNTEyIDE4NmMtMTkyLjIgMC0zMzUuNCAxMDAuNS00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OHMyNzkuNCA4MS44IDM2Mi43IDI1NEM3OTEuNSA2ODQuMiA2NzMuNCA3NjYgNTEyIDc2NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTA4IDMzNmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTAgMjg4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZUFkZFR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLWFkZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem0xMjYgMjM2djQ4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2NDRIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDcyYzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001NDQgNDcyYzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxMDhIMzcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDEwOHYxMDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY2NDRoMTA4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDU0NFY0NzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVFeGNsYW1hdGlvblR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLWV4Y2xhbWF0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bS01NCA5NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDQ4em0zMiAzMzZjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDg4IDY0MGg0OGM0LjQgMCA4LTMuNiA4LThWNDQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4em0tMTYgMTA0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZUltYWdlVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtaW1hZ2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptLTEzNCA1MGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6bTI5NiAyOTRIMzI4LjFjLTYuNyAwLTEwLjQtNy43LTYuMy0xMi45bDk5LjgtMTI3LjJhOCA4IDAgMCAxIDEyLjYgMGw0MS4xIDUyLjQgNzcuOC05OS4yYTguMSA4LjEgMCAwIDEgMTIuNyAwbDEzNi41IDE3NGM0LjEgNS4yLjQgMTIuOS02LjMgMTIuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU1My4xIDUwOS4xbC03Ny44IDk5LjItNDEuMS01Mi40YTggOCAwIDAgMC0xMi42IDBsLTk5LjggMTI3LjJhNy45OCA3Ljk4IDAgMCAwIDYuMyAxMi45SDY5NmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOWwtMTM2LjUtMTc0YTguMSA4LjEgMCAwIDAtMTIuNyAwek0zNjAgNDQyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZUV4Y2VsVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtZXhjZWwnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptNTEuNiAxMjBoMzUuN2ExMi4wNCAxMi4wNCAwIDAgMSAxMC4xIDE4LjVMNTQ2LjEgNjIzbDg0IDEzMC40YzMuNiA1LjYgMiAxMy0zLjYgMTYuNi0yIDEuMi00LjIgMS45LTYuNSAxLjloLTM3LjVjLTQuMSAwLTgtMi4xLTEwLjItNS43TDUxMCA2NjQuOGwtNjIuNyAxMDEuNWMtMi4yIDMuNS02IDUuNy0xMC4yIDUuN2gtMzQuNWExMi4wNCAxMi4wNCAwIDAgMS0xMC4yLTE4LjRsODMuNC0xMzIuOC04Mi4zLTEzMC40Yy0zLjYtNS43LTEuOS0xMy4xIDMuNy0xNi42IDEuOS0xLjMgNC4xLTEuOSA2LjQtMS45SDQ0MmM0LjIgMCA4LjEgMi4yIDEwLjMgNS44bDYxLjggMTAyLjQgNjEuMi0xMDIuM2MyLjItMy42IDYuMS01LjggMTAuMy01Ljh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTQuMSA1ODAuMWwtNjEuOC0xMDIuNGMtMi4yLTMuNi02LjEtNS44LTEwLjMtNS44aC0zOC40Yy0yLjMgMC00LjUuNi02LjQgMS45LTUuNiAzLjUtNy4zIDEwLjktMy43IDE2LjZsODIuMyAxMzAuNC04My40IDEzMi44YTEyLjA0IDEyLjA0IDAgMCAwIDEwLjIgMTguNGgzNC41YzQuMiAwIDgtMi4yIDEwLjItNS43TDUxMCA2NjQuOGw2Mi4zIDEwMS40YzIuMiAzLjYgNi4xIDUuNyAxMC4yIDUuN0g2MjBjMi4zIDAgNC41LS43IDYuNS0xLjkgNS42LTMuNiA3LjItMTEgMy42LTE2LjZsLTg0LTEzMC40IDg1LjMtMTMyLjVhMTIuMDQgMTIuMDQgMCAwIDAtMTAuMS0xOC41aC0zNS43Yy00LjIgMC04LjEgMi4yLTEwLjMgNS44bC02MS4yIDEwMi4zeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlTWFya2Rvd25Ud29Ub25lID0gZ2V0SWNvbignZmlsZS1tYXJrZG93bicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem03Mi4zIDEyMkg2NDFjNi42IDAgMTIgNS40IDEyIDEydjI3MmMwIDYuNi01LjQgMTItMTIgMTJoLTI3LjJjLTYuNiAwLTEyLTUuNC0xMi0xMlY1ODEuN0w1MzUgNzMyLjNjLTIgNC4zLTYuMyA3LjEtMTEgNy4xaC0yNC4xYTEyIDEyIDAgMCAxLTExLTcuMWwtNjYuOC0xNTAuMlY3NThjMCA2LjYtNS40IDEyLTEyIDEySDM4M2MtNi42IDAtMTItNS40LTEyLTEyVjQ4NmMwLTYuNiA1LjQtMTIgMTItMTJoMzVjNC44IDAgOS4xIDIuOCAxMSA3LjJsODMuMiAxOTEgODMuMS0xOTFjMS45LTQuNCA2LjItNy4yIDExLTcuMnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQyOSA0ODEuMmMtMS45LTQuNC02LjItNy4yLTExLTcuMmgtMzVjLTYuNiAwLTEyIDUuNC0xMiAxMnYyNzJjMCA2LjYgNS40IDEyIDEyIDEyaDI3LjFjNi42IDAgMTItNS40IDEyLTEyVjU4Mi4xbDY2LjggMTUwLjJhMTIgMTIgMCAwIDAgMTEgNy4xSDUyNGM0LjcgMCA5LTIuOCAxMS03LjFsNjYuOC0xNTAuNlY3NThjMCA2LjYgNS40IDEyIDEyIDEySDY0MWM2LjYgMCAxMi01LjQgMTItMTJWNDg2YzAtNi42LTUuNC0xMi0xMi0xMmgtMzQuN2MtNC44IDAtOS4xIDIuOC0xMSA3LjJsLTgzLjEgMTkxLTgzLjItMTkxeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlUGRmVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtcGRmJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUwOS4yIDQ5MC44Yy0uNy0xLjMtMS40LTEuOS0yLjItMi0yLjkgMy4zLTIuMiAzMS41IDIuNyA1MS40IDQtMTMuNiA0LjctNDAuNS0uNS00OS40em0tMS42IDEyMC41Yy03LjcgMjAtMTguOCA0Ny4zLTMyLjEgNzEuNCA0LTEuNiA4LjEtMy4zIDEyLjMtNSAxNy42LTcuMiAzNy4zLTE1LjMgNTguOS0yMC4yLTE0LjktMTEuOC0yOC40LTI3LjctMzkuMS00Ni4yeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTU1IDI4Ny42YzE2LjEtMS45IDMwLjYtMi44IDQ0LjMtMi4zIDEyLjguNCAyMy42IDIgMzIgNS4xLjIuMS4zLjEuNS4yLjQuMi44LjMgMS4yLjUuNS4yIDEuMS40IDEuNi43LjEuMS4zLjEuNC4yIDQuMSAxLjggNy41IDQgMTAuMSA2LjYgOS4xIDkuMSAxMS44IDI2LjEgNi4yIDM5LjYtMy4yIDcuNy0xMS43IDIwLjUtMzMuMyAyMC41LTIxLjggMC01My45LTkuNy04Mi4xLTI0LjgtMjUuNSA0LjMtNTMuNyAxMy45LTgwLjkgMjMuMS01LjggMi0xMS44IDQtMTcuNiA1LjktMzggNjUuMi02Ni41IDc5LjQtODQuMSA3OS40LTQuMiAwLTcuOC0uOS0xMC44LTItNi45LTIuNi0xMi44LTgtMTYuNS0xNS0uOS0xLjctMS42LTMuNC0yLjItNS4yLTEuNi00LjgtMi4xLTkuNi0xLjMtMTMuNmwuNi0yLjdjLjEtLjIuMS0uNC4yLS42LjItLjcuNC0xLjQuNy0yLjEgMC0uMS4xLS4yLjEtLjMgNC4xLTExLjkgMTMuNi0yMy40IDI3LjctMzQuNiAxMi4zLTkuOCAyNy4xLTE4LjcgNDUuOS0yOC40IDE1LjktMjggMzcuNi03NS4xIDUxLjItMTA3LjQtMTAuOC00MS44LTE2LjctNzQuNi0xMC4xLTk4LjYuOS0zLjMgMi41LTYuNCA0LjYtOS4xLjItLjIuMy0uNC41LS42LjEtLjEuMS0uMi4yLS4yIDYuMy03LjUgMTYuOS0xMS45IDI4LjEtMTEuNSAxNi42LjcgMjkuNyAxMS41IDMzIDMwLjEgMS43IDggMi4yIDE2LjUgMS45IDI1Ljd2LjdjMCAuNSAwIDEtLjEgMS41LS43IDEzLjMtMyAyNi42LTcuMyA0NC43LS40IDEuNi0uOCAzLjItMS4yIDUuMmwtMSA0LjEtLjEuM2MuMS4yLjEuMy4yLjVsMS44IDQuNWMuMS4zLjMuNy40IDEgLjcgMS42IDEuNCAzLjMgMi4xIDQuOHYuMWM4LjcgMTguOCAxOS43IDMzLjQgMzMuOSA0NS4xIDQuMyAzLjUgOC45IDYuNyAxMy45IDkuOCAxLjgtLjUgMy41LS43IDUuMy0uOXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zOTEuNSA3NjFjNS43LTQuNCAxNi4yLTE0LjUgMzAuMS0zNC43LTEwLjMgOS40LTIzLjQgMjIuNC0zMC4xIDM0Ljd6bTI3MC45LTgzbC4yLS4zaC4yYy42LS40LjUtLjcuNC0uOS0uMS0uMS00LjUtOS4zLTQ1LjEtNy40IDM1LjMgMTMuOSA0My41IDkuMSA0NC4zIDguNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUzNS45IDU4NS4zYy0uOC0xLjctMS41LTMuMy0yLjItNC45LS4xLS4zLS4zLS43LS40LTFsLTEuOC00LjVjLS4xLS4yLS4xLS4zLS4yLS41bC4xLS4zLjItMS4xYzQtMTYuMyA4LjYtMzUuMyA5LjQtNTQuNHYtLjdjLjMtOC42LS4yLTE3LjItMi0yNS42LTMuOC0yMS4zLTE5LjUtMjkuNi0zMi45LTMwLjItMTEuMy0uNS0yMS44IDQtMjguMSAxMS40LS4xLjEtLjEuMi0uMi4yLS4yLjItLjQuNC0uNS42LTIuMSAyLjctMy43IDUuOC00LjYgOS4xLTYuNiAyNC0uNyA1Ni44IDEwLjEgOTguNi0xMy42IDMyLjQtMzUuMyA3OS40LTUxLjIgMTA3LjR2LjFjLTI3LjcgMTQuMy02NC4xIDM1LjgtNzMuNiA2Mi45IDAgLjEtLjEuMi0uMS4zLS4yLjctLjUgMS40LS43IDIuMS0uMS4yLS4xLjQtLjIuNi0uMi45LS41IDEuOC0uNiAyLjctLjkgNC0uNCA4LjggMS4zIDEzLjYuNiAxLjggMS4zIDMuNSAyLjIgNS4yIDMuNyA3IDkuNiAxMi40IDE2LjUgMTUgMyAxLjEgNi42IDIgMTAuOCAyIDE3LjYgMCA0Ni4xLTE0LjIgODQuMS03OS40IDUuOC0xLjkgMTEuOC0zLjkgMTcuNi01LjkgMjcuMi05LjIgNTUuNC0xOC44IDgwLjktMjMuMSAyOC4yIDE1LjEgNjAuMyAyNC44IDgyLjEgMjQuOCAyMS42IDAgMzAuMS0xMi44IDMzLjMtMjAuNSA1LjYtMTMuNSAyLjktMzAuNS02LjItMzkuNi0yLjYtMi42LTYtNC44LTEwLjEtNi42LS4xLS4xLS4zLS4xLS40LS4yLS41LS4yLTEuMS0uNC0xLjYtLjctLjQtLjItLjgtLjMtMS4yLS41LS4yLS4xLS4zLS4xLS41LS4yLTE2LjItNS44LTQxLjctNi43LTc2LjMtMi44bC01LjMuNmMtNS0zLTkuNi02LjMtMTMuOS05LjgtMTQuMi0xMS4zLTI1LjEtMjUuOC0zMy44LTQ0Ljd6TTM5MS41IDc2MWM2LjctMTIuMyAxOS44LTI1LjMgMzAuMS0zNC43LTEzLjkgMjAuMi0yNC40IDMwLjMtMzAuMSAzNC43ek01MDcgNDg4LjhjLjguMSAxLjUuNyAyLjIgMiA1LjIgOC45IDQuNSAzNS44LjUgNDkuNC00LjktMTkuOS01LjYtNDguMS0yLjctNTEuNHptLTE5LjIgMTg4LjljLTQuMiAxLjctOC4zIDMuNC0xMi4zIDUgMTMuMy0yNC4xIDI0LjQtNTEuNCAzMi4xLTcxLjQgMTAuNyAxOC41IDI0LjIgMzQuNCAzOS4xIDQ2LjItMjEuNiA0LjktNDEuMyAxMy01OC45IDIwLjJ6bTE3NS40LS45Yy4xLjIuMi41LS40LjloLS4ybC0uMi4zYy0uOC41LTkgNS4zLTQ0LjMtOC42IDQwLjYtMS45IDQ1IDcuMyA0NS4xIDcuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVBwdFR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLXBwdCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NjQuNSA1MTYuMnYxMDguNGgzOC45YzQ0LjcgMCA3MS4yLTEwLjkgNzEuMi01NC4zIDAtMzQuNC0yMC4xLTU0LjEtNTMuOS01NC4xaC01Ni4yeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTkwIDIxOC40YzAgNTUuMi0zNi44IDk0LjEtOTYuMiA5NC4xaC02My4zVjc2MGMwIDQuNC0zLjYgOC04IDhINDI0Yy00LjQgMC04LTMuNi04LThWNDg0YzAtNC40IDMuNi04IDgtOHYuMWgxMDRjNTkuNyAwIDk2IDM5LjggOTYgOTQuM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQyNCA0NzYuMWMtNC40LS4xLTggMy41LTggNy45djI3NmMwIDQuNCAzLjYgOCA4IDhoMzIuNWM0LjQgMCA4LTMuNiA4LTh2LTk1LjVoNjMuM2M1OS40IDAgOTYuMi0zOC45IDk2LjItOTQuMSAwLTU0LjUtMzYuMy05NC4zLTk2LTk0LjNINDI0em0xNTAuNiA5NC4yYzAgNDMuNC0yNi41IDU0LjMtNzEuMiA1NC4zaC0zOC45VjUxNi4yaDU2LjJjMzMuOCAwIDUzLjkgMTkuNyA1My45IDU0LjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVUZXh0VHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtdGV4dCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem0tMjIgMzIyYzAgNC40LTMuNiA4LTggOEgzMjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTIwMC0xODR2NDhjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMxMiA0OTB2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHptMTkyIDEyOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlVW5rbm93blR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLXVua25vd24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptLTIyIDQyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTExMC0yMjguNGMuNyA0NC45LTI5LjcgODQuNS03NC4zIDk4LjktNS43IDEuOC05LjcgNy4zLTkuNyAxMy4zVjY3MmMwIDUuNS00LjUgMTAtMTAgMTBoLTMyYy01LjUgMC0xMC00LjUtMTAtMTB2LTMyYy4yLTE5LjggMTUuNC0zNy4zIDM0LjctNDAuMUM1NDkgNTk2LjIgNTcwIDU3NC4zIDU3MCA1NDljMC0yOC4xLTI1LjgtNTEuNS01OC01MS41cy01OCAyMy40LTU4IDUxLjZjMCA1LjItNC40IDkuNC05LjggOS40aC0zMi40Yy01LjQgMC05LjgtNC4xLTkuOC05LjUgMC01Ny40IDUwLjEtMTAzLjcgMTExLjUtMTAzIDU5LjMuOCAxMDcuNyA0Ni4xIDEwOC41IDEwMS42eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguN0w2MzkuNCA3My40Yy02LTYtMTQuMi05LjQtMjIuNy05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDgwIDc0NGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwLTY0IDB6bS03OC0xOTVjMCA1LjQgNC40IDkuNSA5LjggOS41aDMyLjRjNS40IDAgOS44LTQuMiA5LjgtOS40IDAtMjguMiAyNS44LTUxLjYgNTgtNTEuNnM1OCAyMy40IDU4IDUxLjVjMCAyNS4zLTIxIDQ3LjItNDkuMyA1MC45LTE5LjMgMi44LTM0LjUgMjAuMy0zNC43IDQwLjF2MzJjMCA1LjUgNC41IDEwIDEwIDEwaDMyYzUuNSAwIDEwLTQuNSAxMC0xMHYtMTIuMmMwLTYgNC0xMS41IDkuNy0xMy4zIDQ0LjYtMTQuNCA3NS01NCA3NC4zLTk4LjktLjgtNTUuNS00OS4yLTEwMC44LTEwOC41LTEwMS42LTYxLjQtLjctMTExLjUgNDUuNi0xMTEuNSAxMDN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVaaXBUd29Ub25lID0gZ2V0SWNvbignZmlsZS16aXAnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00zNDQgNjMwaDMydjJoLTMyeiddLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDM2MHY2NGg2NHY2NGgtNjR2NjRoNjR2NjRoLTY0djY0aDY0djY0aC02NHY2Mmg2NHYxNjBIMjk2VjUyMGg2NHYtNjRoLTY0di02NGg2NHYtNjRoLTY0di02NGg2NHYtNjRoLTY0di02NGgtNjR2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDY0djY0aDY0di02NGgxNzR2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI5NiAzOTJoNjR2NjRoLTY0em0wLTEyOGg2NHY2NGgtNjR6bTAgMzE4djE2MGgxMjhWNTgyaC02NHYtNjJoLTY0djYyem00OCA1MHYtMmgzMnY2NGgtMzJ2LTYyem0xNi00MzJoNjR2NjRoLTY0em0wIDI1Nmg2NHY2NGgtNjR6bTAtMTI4aDY0djY0aC02NHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVdvcmRUd29Ub25lID0gZ2V0SWNvbignZmlsZS13b3JkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTEwMS4zIDEyOS4zYzEuMy01LjQgNi4xLTkuMyAxMS43LTkuM2gzNS42YTEyLjA0IDEyLjA0IDAgMCAxIDExLjYgMTUuMWwtNzQuNCAyNzZjLTEuNCA1LjMtNi4yIDguOS0xMS42IDguOWgtMzEuOGMtNS40IDAtMTAuMi0zLjctMTEuNi04LjlsLTUyLjgtMTk3LTUyLjggMTk3Yy0xLjQgNS4zLTYuMiA4LjktMTEuNiA4LjloLTMyYy01LjQgMC0xMC4yLTMuNy0xMS42LTguOWwtNzQuMi0yNzZhMTIuMDIgMTIuMDIgMCAwIDEgMTEuNi0xNS4xaDM1LjRjNS42IDAgMTAuNCAzLjkgMTEuNyA5LjNMNDM0LjYgNjgwbDQ5LjctMTk4LjljMS4zLTUuNCA2LjEtOS4xIDExLjYtOS4xaDMyLjJjNS41IDAgMTAuMyAzLjcgMTEuNiA5LjFsNDkuOCAxOTkuMyA0NS44LTE5OS4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTI4LjEgNDcyaC0zMi4yYy01LjUgMC0xMC4zIDMuNy0xMS42IDkuMUw0MzQuNiA2ODBsLTQ2LjEtMTk4LjdjLTEuMy01LjQtNi4xLTkuMy0xMS43LTkuM2gtMzUuNGExMi4wMiAxMi4wMiAwIDAgMC0xMS42IDE1LjFsNzQuMiAyNzZjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMyYzUuNCAwIDEwLjItMy42IDExLjYtOC45bDUyLjgtMTk3IDUyLjggMTk3YzEuNCA1LjIgNi4yIDguOSAxMS42IDguOWgzMS44YzUuNCAwIDEwLjItMy42IDExLjYtOC45bDc0LjQtMjc2YTEyLjA0IDEyLjA0IDAgMCAwLTExLjYtMTUuMUg2NDdjLTUuNiAwLTEwLjQgMy45LTExLjcgOS4zbC00NS44IDE5OS4xLTQ5LjgtMTk5LjNjLTEuMy01LjQtNi4xLTkuMS0xMS42LTkuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVR3b1RvbmUgPSBnZXRJY29uKCdmaWxlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbHRlclR3b1RvbmUgPSBnZXRJY29uKCdmaWx0ZXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDIwLjYgNzk4aDE4Mi45VjY0Mkg0MjAuNnpNNDExIDU2MS40bDkuNSAxNi42aDE4M2w5LjUtMTYuNkw4MTEuMyAyMjZIMjEyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MC4xIDE1NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4TDM0OSA1OTcuNFY4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNTk3LjRMOTA3LjcgMjAyYzEyLjItMjEuMy0zLjEtNDgtMjcuNi00OHpNNjAzLjUgNzk4SDQyMC42VjY0MmgxODIuOXYxNTZ6bTkuNS0yMzYuNmwtOS41IDE2LjZoLTE4M2wtOS41LTE2LjZMMjEyLjcgMjI2aDU5OC42TDYxMyA1NjEuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlyZVR3b1RvbmUgPSBnZXRJY29uKCdmaXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTczNyA0MzguNmMtOS42IDE1LjUtMjEuMSAzMC43LTM0LjQgNDUuNmE3My4xIDczLjEgMCAwIDEtNTEgMjQuNCA3My4zNiA3My4zNiAwIDAgMS01My40LTE4LjggNzQuMDEgNzQuMDEgMCAwIDEtMjQuNC01OS44YzMtNDcuNC0xMi40LTEwMy4xLTQ1LjgtMTY1LjctMTYuOS0zMS40LTM3LjEtNTguMi02MS4yLTgwLjRhMjQwIDI0MCAwIDAgMS0xMi4xIDQ2LjUgMzU0LjI2IDM1NC4yNiAwIDAgMS01OC4yIDEwMSAzNDkuNiAzNDkuNiAwIDAgMS01OC42IDU2LjhjLTM0IDI2LjEtNjIgNjAtODAuOCA5Ny45YTI3NS45NiAyNzUuOTYgMCAwIDAtMjkuMSAxMjRjMCA3NC45IDI5LjUgMTQ1LjMgODMgMTk4LjQgNTMuNyA1My4yIDEyNSA4Mi40IDIwMSA4Mi40czE0Ny4zLTI5LjIgMjAxLTgyLjRjNTMuNS01MyA4My0xMjMuNSA4My0xOTguNCAwLTM5LjItOC4xLTc3LjMtMjQtMTEzLjEtOS4zLTIxLTIxLTQwLjUtMzUtNTguNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODM0LjEgNDY5LjJBMzQ3LjQ5IDM0Ny40OSAwIDAgMCA3NTEuMiAzNTRsLTI5LjEtMjYuN2E4LjA5IDguMDkgMCAwIDAtMTMgMy4zbC0xMyAzNy4zYy04LjEgMjMuNC0yMyA0Ny4zLTQ0LjEgNzAuOC0xLjQgMS41LTMgMS45LTQuMSAyLTEuMS4xLTIuOC0uMS00LjMtMS41LTEuNC0xLjItMi4xLTMtMi00LjggMy43LTYwLjItMTQuMy0xMjguMS01My43LTIwMkM1NTUuMyAxNzEgNTEwIDEyMy4xIDQ1My40IDg5LjdsLTQxLjMtMjQuM2MtNS40LTMuMi0xMi4zIDEtMTIgNy4zbDIuMiA0OGMxLjUgMzIuOC0yLjMgNjEuOC0xMS4zIDg1LjktMTEgMjkuNS0yNi44IDU2LjktNDcgODEuNWEyOTUuNjQgMjk1LjY0IDAgMCAxLTQ3LjUgNDYuMSAzNTIuNiAzNTIuNiAwIDAgMC0xMDAuMyAxMjEuNUEzNDcuNzUgMzQ3Ljc1IDAgMCAwIDE2MCA2MTBjMCA0Ny4yIDkuMyA5Mi45IDI3LjcgMTM2YTM0OS40IDM0OS40IDAgMCAwIDc1LjUgMTEwLjljMzIuNCAzMiA3MCA1Ny4yIDExMS45IDc0LjdDNDE4LjUgOTQ5LjggNDY0LjUgOTU5IDUxMiA5NTlzOTMuNS05LjIgMTM2LjktMjcuM0EzNDguNiAzNDguNiAwIDAgMCA3NjAuOCA4NTdjMzIuNC0zMiA1Ny44LTY5LjQgNzUuNS0xMTAuOWEzNDQuMiAzNDQuMiAwIDAgMCAyNy43LTEzNmMwLTQ4LjgtMTAtOTYuMi0yOS45LTE0MC45ek03MTMgODA4LjVjLTUzLjcgNTMuMi0xMjUgODIuNC0yMDEgODIuNHMtMTQ3LjMtMjkuMi0yMDEtODIuNGMtNTMuNS01My4xLTgzLTEyMy41LTgzLTE5OC40IDAtNDMuNSA5LjgtODUuMiAyOS4xLTEyNCAxOC44LTM3LjkgNDYuOC03MS44IDgwLjgtOTcuOWEzNDkuNiAzNDkuNiAwIDAgMCA1OC42LTU2LjhjMjUtMzAuNSA0NC42LTY0LjUgNTguMi0xMDFhMjQwIDI0MCAwIDAgMCAxMi4xLTQ2LjVjMjQuMSAyMi4yIDQ0LjMgNDkgNjEuMiA4MC40IDMzLjQgNjIuNiA0OC44IDExOC4zIDQ1LjggMTY1LjdhNzQuMDEgNzQuMDEgMCAwIDAgMjQuNCA1OS44IDczLjM2IDczLjM2IDAgMCAwIDUzLjQgMTguOGMxOS43LTEgMzcuOC05LjcgNTEtMjQuNCAxMy4zLTE0LjkgMjQuOC0zMC4xIDM0LjQtNDUuNiAxNCAxNy45IDI1LjcgMzcuNCAzNSA1OC40IDE1LjkgMzUuOCAyNCA3My45IDI0IDExMy4xIDAgNzQuOS0yOS41IDE0NS40LTgzIDE5OC40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Gb2xkZXJBZGRUd29Ub25lID0gZ2V0SWNvbignZm9sZGVyLWFkZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zNzIuNSAyNTZIMTg0djUxMmg2NTZWMzcwLjRINDkyLjFMMzcyLjUgMjU2ek01NDAgNDQzLjFWNTI4aDg0LjVjNC4xIDAgNy41IDMuMSA3LjUgN3Y0MmMwIDMuOC0zLjQgNy03LjUgN0g1NDB2ODQuOWMwIDMuOS0zLjEgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTg0aC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOSAzLjQtNyA3LjUtN0g0ODR2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjkgMCA3IDMuMiA3IDcuMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDI5OC40SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODQgNDQzLjFWNTI4aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQ4NHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTg0aDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINTQwdi04NC45YzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmxhZ1R3b1RvbmUgPSBnZXRJY29uKCdmbGFnJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMTg0IDIzMmgzNjh2MzM2SDE4NHonXSwgW3NlY29uZGFyeUNvbG9yLCAnTTYyNCA2MzJjMCA0LjQtMy42IDgtOCA4SDUwNHY3M2gzMzZWMzc3SDYyNHYyNTV6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAzMDVINjI0VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxODR2LTQwYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY3ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY2NDBoMjQ4djExM2MwIDE3LjcgMTQuMyAzMiAzMiAzMmg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM3YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xODQgNTY4VjIzMmgzNjh2MzM2SDE4NHptNjU2IDE0NUg1MDR2LTczaDExMmM0LjQgMCA4LTMuNiA4LThWMzc3aDIxNnYzMzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZvbGRlclR3b1RvbmUgPSBnZXRJY29uKCdmb2xkZXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTM3Mi41IDI1NkgxODR2NTEyaDY1NlYzNzAuNEg0OTIuMXonXSk7XG59KTtcbmV4cG9ydHMuRm9sZGVyT3BlblR3b1RvbmUgPSBnZXRJY29uKCdmb2xkZXItb3BlbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTE1OSA3NjhoNjEyLjNsMTAzLjQtMjU2SDI2Mi4zeiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggNDQ0SDgyMFYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NzNMMzU1LjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTM2IDI1NmgxODguNWwxMTkuNiAxMTQuNEg3NDhWNDQ0SDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZ6bTYzNS4zIDUxMkgxNTlsMTAzLjMtMjU2aDYxMi40TDc3MS4zIDc2OHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRnJvd25Ud29Ub25lID0gZ2V0SWNvbignZnJvd24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMzc2IDI3MmgtNDguMWMtNC4yIDAtNy44LTMuMi04LjEtNy40QzYwNCA2MzYuMSA1NjIuNSA1OTcgNTEyIDU5N3MtOTIuMSAzOS4xLTk1LjggODguNmMtLjMgNC4yLTMuOSA3LjQtOC4xIDcuNEgzNjBhOCA4IDAgMCAxLTgtOC40YzQuNC04NC4zIDc0LjUtMTUxLjYgMTYwLTE1MS42czE1NS42IDY3LjMgMTYwIDE1MS42YTggOCAwIDAgMS04IDguNHptMjQtMjI0YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTIyNCAxMTJjLTg1LjUgMC0xNTUuNiA2Ny4zLTE2MCAxNTEuNmE4IDggMCAwIDAgOCA4LjRoNDguMWM0LjIgMCA3LjgtMy4yIDguMS03LjQgMy43LTQ5LjUgNDUuMy04OC42IDk1LjgtODguNnM5MiAzOS4xIDk1LjggODguNmMuMyA0LjIgMy45IDcuNCA4LjEgNy40SDY2NGE4IDggMCAwIDAgOC04LjRDNjY3LjYgNjAwLjMgNTk3LjUgNTMzIDUxMiA1MzN6bTEyOC0xMTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GdW5kVHdvVG9uZSA9IGdldEljb24oJ2Z1bmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNlYyMzJoNzUydjU2MHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xMzYgNzkyaDc1MlYyMzJIMTM2djU2MHptNTYuNC0xMzAuNWwyMTQuOS0yMTVjMy4xLTMuMSA4LjItMy4xIDExLjMgMEw1MzMgNTYxbDI1NC41LTI1NC42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzYuOCAzNi44YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTI5NyAyOTcuMmE4LjAzIDguMDMgMCAwIDEtMTEuMyAwTDQxMi45IDUzNy4yIDI0MC40IDcwOS43YTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTM2LjctMzYuOWE4LjAzIDguMDMgMCAwIDEgMC0xMS4zeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yMjkuMSA3MDkuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDE3Mi41LTE3Mi41IDExNC40IDExNC41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjk3LTI5Ny4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjgtMzYuOGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDUzMyA1NjEgNDE4LjYgNDQ2LjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMjE0LjkgMjE1YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzYuNyAzNi45eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GdW5uZWxQbG90VHdvVG9uZSA9IGdldEljb24oJ2Z1bm5lbC1wbG90JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQyMC42IDc5OGgxODIuOVY2NTBINDIwLjZ6TTI5Ny43IDM3NGg0MjguNmw4NS0xNDhIMjEyLjd6bTExMy4yIDE5Ny40bDguNCAxNC42aDE4NS4zbDguNC0xNC42TDY4OS42IDQzOEgzMzQuNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDYwNy40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2MDcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNSA3OThINDIwLjZWNjUwaDE4Mi45djE0OHptOS41LTIyNi42bC04LjQgMTQuNkg0MTkuM2wtOC40LTE0LjZMMzM0LjQgNDM4aDM1NS4yTDYxMyA1NzEuNHpNNzI2LjMgMzc0SDI5Ny43bC04NS0xNDhoNTk4LjZsLTg1IDE0OHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuR2lmdFR3b1RvbmUgPSBnZXRJY29uKCdnaWZ0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTU0NiAzNzhoMjk4djEwNEg1NDZ6TTIyOCA1NTBoMjUwdjMwOEgyMjh6bS00OC0xNzJoMjk4djEwNEgxODB6bTM2NiAxNzJoMjUwdjMwOEg1NDZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAzMTBINzMyLjRjMTMuNi0yMS40IDIxLjYtNDYuOCAyMS42LTc0IDAtNzYuMS02MS45LTEzOC0xMzgtMTM4LTQxLjQgMC03OC43IDE4LjQtMTA0IDQ3LjQtMjUuMy0yOS02Mi42LTQ3LjQtMTA0LTQ3LjQtNzYuMSAwLTEzOCA2MS45LTEzOCAxMzggMCAyNy4yIDcuOSA1Mi42IDIxLjYgNzRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBjMCA0LjQgMy42IDggOCA4aDQwdjM0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTUwaDQwYzQuNCAwIDgtMy42IDgtOFYzNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ3OCA4NThIMjI4VjU1MGgyNTB2MzA4em0wLTM3NkgxODBWMzc4aDI5OHYxMDR6bTAtMTc2aC03MGMtMzguNiAwLTcwLTMxLjQtNzAtNzBzMzEuNC03MCA3MC03MCA3MCAzMS40IDcwIDcwdjcwem02OC03MGMwLTM4LjYgMzEuNC03MCA3MC03MHM3MCAzMS40IDcwIDcwLTMxLjQgNzAtNzAgNzBoLTcwdi03MHptMjUwIDYyMkg1NDZWNTUwaDI1MHYzMDh6bTQ4LTM3Nkg1NDZWMzc4aDI5OHYxMDR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkhkZFR3b1RvbmUgPSBnZXRJY29uKCdoZGQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjMyIDg4OGg1NjBWNjgwSDIzMnYyMDh6bTQ0OC0xNDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0yMzIgNjE2aDU2MFY0MDhIMjMydjIwOHptNzItMTI4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMTJjLTQuNCAwLTgtMy42LTgtOHYtNDh6bS03Mi0xNDRoNTYwVjEzNkgyMzJ2MjA4em03Mi0xMjhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDMxMmMtNC40IDAtOC0zLjYtOC04di00OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDgyNEgyMzJWNjgwaDU2MHYyMDh6bTAtMjcySDIzMlY0MDhoNTYwdjIwOHptMC0yNzJIMjMyVjEzNmg1NjB2MjA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMTIgNTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAtMjcyaDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTMyOCA1MTZhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5IZWFydFR3b1RvbmUgPSBnZXRJY29uKCdoZWFydCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTIzIDI4My42YTI2MC4wNCAyNjAuMDQgMCAwIDAtNTYuOS04Mi44IDI2NC40IDI2NC40IDAgMCAwLTg0LTU1LjVBMjY1LjM0IDI2NS4zNCAwIDAgMCA2NzkuNyAxMjVjLTQ5LjMgMC05Ny40IDEzLjUtMTM5LjIgMzktMTAgNi4xLTE5LjUgMTIuOC0yOC41IDIwLjEtOS03LjMtMTguNS0xNC0yOC41LTIwLjEtNDEuOC0yNS41LTg5LjktMzktMTM5LjItMzktMzUuNSAwLTY5LjkgNi44LTEwMi40IDIwLjMtMzEuNCAxMy01OS43IDMxLjctODQgNTUuNWEyNTguNDQgMjU4LjQ0IDAgMCAwLTU2LjkgODIuOGMtMTMuOSAzMi4zLTIxIDY2LjYtMjEgMTAxLjkgMCAzMy4zIDYuOCA2OCAyMC4zIDEwMy4zIDExLjMgMjkuNSAyNy41IDYwLjEgNDguMiA5MSAzMi44IDQ4LjkgNzcuOSA5OS45IDEzMy45IDE1MS42IDkyLjggODUuNyAxODQuNyAxNDQuOSAxODguNiAxNDcuM2wyMy43IDE1LjJjMTAuNSA2LjcgMjQgNi43IDM0LjUgMGwyMy43LTE1LjJjMy45LTIuNSA5NS43LTYxLjYgMTg4LjYtMTQ3LjMgNTYtNTEuNyAxMDEuMS0xMDIuNyAxMzMuOS0xNTEuNiAyMC43LTMwLjkgMzctNjEuNSA0OC4yLTkxIDEzLjUtMzUuMyAyMC4zLTcwIDIwLjMtMTAzLjMuMS0zNS4zLTctNjkuNi0yMC45LTEwMS45ek01MTIgODE0LjhTMTU2IDU4Ni43IDE1NiAzODUuNUMxNTYgMjgzLjYgMjQwLjMgMjAxIDM0NC4zIDIwMWM3My4xIDAgMTM2LjUgNDAuOCAxNjcuNyAxMDAuNEM1NDMuMiAyNDEuOCA2MDYuNiAyMDEgNjc5LjcgMjAxYzEwNCAwIDE4OC4zIDgyLjYgMTg4LjMgMTg0LjUgMCAyMDEuMi0zNTYgNDI5LjMtMzU2IDQyOS4zeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTY3OS43IDIwMWMtNzMuMSAwLTEzNi41IDQwLjgtMTY3LjcgMTAwLjRDNDgwLjggMjQxLjggNDE3LjQgMjAxIDM0NC4zIDIwMWMtMTA0IDAtMTg4LjMgODIuNi0xODguMyAxODQuNSAwIDIwMS4yIDM1NiA0MjkuMyAzNTYgNDI5LjNzMzU2LTIyOC4xIDM1Ni00MjkuM0M4NjggMjgzLjYgNzgzLjcgMjAxIDY3OS43IDIwMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSGlnaGxpZ2h0VHdvVG9uZSA9IGdldEljb24oJ2hpZ2hsaWdodCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMjkuNiA3OTYuM2gxNjAuMmw1NC4zLTU0LjEtODAuMS03OC45em0yMjAuNy0zOTcuMWwyNjIuOCAyNTguOSAxNDcuMy0xNDUtMjYyLjgtMjU5em0tNzcuMSAxNjYuMWwxNzEuNCAxNjguOSA2OC42LTY3LjYtMTcxLjQtMTY4Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTk1Ny42IDUwNy41TDYwMy4yIDE1OC4zYTcuOSA3LjkgMCAwIDAtMTEuMiAwTDM1My4zIDM5My41YTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgNDAgMzkuNC0xMTcuMiAxMTUuM2E4LjAzIDguMDMgMCAwIDAtLjEgMTEuM2wuMS4xIDM5LjUgMzguOS0xODkuMSAxODdINzIuMWMtNC40IDAtOC4xIDMuNi04LjEgOHY1NS4yYzAgNC40IDMuNiA4IDggOGgzNDQuOWMyLjEgMCA0LjEtLjggNS42LTIuM2w3Ni4xLTc1LjZMNTM5IDgzMGE3LjkgNy45IDAgMCAwIDExLjIgMGwxMTcuMS0xMTUuNiA0MC4xIDM5LjVhNy45IDcuOSAwIDAgMCAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnpNMzg5LjggNzk2LjNIMjI5LjZsMTM0LjQtMTMzIDgwLjEgNzguOS01NC4zIDU0LjF6bTE1NC44LTYyLjFMMzczLjIgNTY1LjNsNjguNi02Ny42IDE3MS40IDE2OC45LTY4LjYgNjcuNnptMTY4LjUtNzYuMUw0NTAuMyAzOTkuMmwxNDcuMy0xNDUuMSAyNjIuOCAyNTktMTQ3LjMgMTQ1eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Ib21lVHdvVG9uZSA9IGdldEljb24oJ2hvbWUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyLjEgMTcyLjZsLTM3MCAzNjkuN2g5NlY4NjhIMzkyVjY0MGMwLTIyLjEgMTcuOS00MCA0MC00MGgxNjBjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MjI4aDE1My45VjU0Mi4zSDg4Mkw1MzUuMiAxOTUuN2wtMjMuMS0yMy4xem00MzQuNSA0MjIuOWMtNiA2LTEzLjEgMTAuOC0yMC44IDEzLjkgNy43LTMuMiAxNC44LTcuOSAyMC44LTEzLjl6bS04ODctMzQuN2M1IDMwLjMgMzEuNCA1My41IDYzLjEgNTMuNWguOWMtMzEuOSAwLTU4LjktMjMtNjQtNTMuNXptLS45LTEwLjV2LTEuOSAxLjl6bS4xLTIuNmMuMS0zLjEuNS02LjEgMS05LjEtLjYgMi45LS45IDYtMSA5LjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTk1MSA1MTBjMC0uMS0uMS0uMS0uMS0uMmwtMS44LTIuMWMtLjEtLjEtLjItLjMtLjQtLjQtLjctLjgtMS41LTEuNi0yLjItMi40TDU2MC4xIDExOC44bC0yNS45LTI1LjlhMzEuNSAzMS41IDAgMCAwLTQ0LjQgMEw3Ny41IDUwNWE2My42IDYzLjYgMCAwIDAtMTYgMjYuNmwtLjYgMi4xLS4zIDEuMS0uMyAxLjJjLS4yLjctLjMgMS40LS40IDIuMSAwIC4xIDAgLjMtLjEuNC0uNiAzLS45IDYtMSA5LjF2My4zYzAgLjUgMCAxIC4xIDEuNSAwIC41IDAgLjkuMSAxLjQgMCAuNS4xIDEgLjEgMS41IDAgLjYuMSAxLjIuMiAxLjggMCAuMy4xLjYuMS45bC4zIDIuNXYuMWM1LjEgMzAuNSAzMi4yIDUzLjUgNjQgNTMuNWg0Mi41Vjk0MGg2OTEuN1Y2MTQuM2g0My40YzguNiAwIDE2LjktMS43IDI0LjUtNC45czE0LjctNy45IDIwLjgtMTMuOWE2My42IDYzLjYgMCAwIDAgMTguNy00NS4zYzAtMTQuNy01LTI4LjgtMTQuMy00MC4yek01NjggODY4SDQ1NlY2NjRoMTEydjIwNHptMjE3LjktMzI1LjdWODY4SDYzMlY2NDBjMC0yMi4xLTE3LjktNDAtNDAtNDBINDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHYyMjhIMjM4LjFWNTQyLjNoLTk2bDM3MC0zNjkuNyAyMy4xIDIzLjFMODgyIDU0Mi4zaC05Ni4xeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Ib3VyZ2xhc3NUd29Ub25lID0gZ2V0SWNvbignaG91cmdsYXNzJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA1NDhjLTQyLjIgMC04MS45IDE2LjQtMTExLjcgNDYuM0ExNTYuNjMgMTU2LjYzIDAgMCAwIDM1NCA3MDZ2MTM0aDMxNlY3MDZjMC00Mi4yLTE2LjQtODEuOS00Ni4zLTExMS43QTE1Ni42MyAxNTYuNjMgMCAwIDAgNTEyIDU0OHpNMzU0IDMxOGMwIDQyLjIgMTYuNCA4MS45IDQ2LjMgMTExLjdDNDMwLjEgNDU5LjYgNDY5LjggNDc2IDUxMiA0NzZzODEuOS0xNi40IDExMS43LTQ2LjNDNjUzLjYgMzk5LjkgNjcwIDM2MC4yIDY3MCAzMThWMTg0SDM1NHYxMzR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTc0MiAzMThWMTg0aDg2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NnYxMzRjMCA4MS41IDQyLjQgMTUzLjIgMTA2LjQgMTk0LTY0IDQwLjgtMTA2LjQgMTEyLjUtMTA2LjQgMTk0djEzNGgtODZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNjMyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC04NlY3MDZjMC04MS41LTQyLjQtMTUzLjItMTA2LjQtMTk0IDY0LTQwLjggMTA2LjQtMTEyLjUgMTA2LjQtMTk0em0tNzIgMzg4djEzNEgzNTRWNzA2YzAtNDIuMiAxNi40LTgxLjkgNDYuMy0xMTEuN0M0MzAuMSA1NjQuNCA0NjkuOCA1NDggNTEyIDU0OHM4MS45IDE2LjQgMTExLjcgNDYuM0M2NTMuNiA2MjQuMSA2NzAgNjYzLjggNjcwIDcwNnptMC0zODhjMCA0Mi4yLTE2LjQgODEuOS00Ni4zIDExMS43QzU5My45IDQ1OS42IDU1NC4yIDQ3NiA1MTIgNDc2cy04MS45LTE2LjQtMTExLjctNDYuM0ExNTYuNjMgMTU2LjYzIDAgMCAxIDM1NCAzMThWMTg0aDMxNnYxMzR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkh0bWw1VHdvVG9uZSA9IGdldEljb24oJ2h0bWw1JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00xNDUgOTZsNjYgNzQ2LjZMNTExLjggOTI4bDI5OS42LTg1LjRMODc4LjcgOTZIMTQ1em02MTAuOSA3MDAuNmwtMjQ0LjEgNjkuNi0yNDUuMi02OS42LTU2LjctNjQxLjJoNjAzLjhsLTU3LjggNjQxLjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjA5LjkgMTU1LjRsNTYuNyA2NDEuMiAyNDUuMiA2OS42IDI0NC4xLTY5LjYgNTcuOC02NDEuMkgyMDkuOXptNTMwLjQgMTE3LjlsLTQuOCA0Ny4yLTEuNyAxOS41SDM4MS43bDguMiA5NC4ySDUxMXYtLjJoMjE0LjdsLTMuMiAyNC4zLTIxLjIgMjQyLjItMS43IDE2LjMtMTg3LjcgNTEuN3YuNGgtMS43bC0xODguNi01Mi0xMS4zLTE0NC43aDkxbDYuNSA3My4yIDEwMi40IDI3LjdoLjh2LS4ybDEwMi40LTI3LjcgMTEuNC0xMTguNUg1MTEuOXYuMUgzMDUuNGwtMjIuNy0yNTMuNUwyODEgMjQ5aDQ2MWwtMS43IDI0LjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI4MSAyNDlsMS43IDI0LjMgMjIuNyAyNTMuNWgyMDYuNXYtLjFoMTEyLjlsLTExLjQgMTE4LjVMNTExIDY3Mi45di4yaC0uOGwtMTAyLjQtMjcuNy02LjUtNzMuMmgtOTFsMTEuMyAxNDQuNyAxODguNiA1MmgxLjd2LS40bDE4Ny43LTUxLjcgMS43LTE2LjMgMjEuMi0yNDIuMiAzLjItMjQuM0g1MTF2LjJIMzg5LjlsLTguMi05NC4yaDM1Mi4xbDEuNy0xOS41IDQuOC00Ny4yTDc0MiAyNDlINTExeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5JZGNhcmRUd29Ub25lID0gZ2V0SWNvbignaWRjYXJkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWMjMyaDc1MnY1NjB6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTM2IDc5Mmg3NTJWMjMySDEzNnY1NjB6bTQ3Mi0zNzJjMC00LjQgMS04IDIuMy04aDEyMy40YzEuMyAwIDIuMyAzLjYgMi4zIDh2NDhjMCA0LjQtMSA4LTIuMyA4SDYxMC4zYy0xLjMgMC0yLjMtMy42LTIuMy04di00OHptMCAxNDRjMC00LjQgMy4yLTggNy4xLThoMTg1LjdjMy45IDAgNy4xIDMuNiA3LjEgOHY0OGMwIDQuNC0zLjIgOC03LjEgOEg2MTUuMWMtMy45IDAtNy4xLTMuNi03LjEtOHYtNDh6TTIxNi4yIDY2NC42YzIuOC01My4zIDMxLjktOTkuNiA3NC42LTEyNi4xLTE4LjEtMjAtMjkuMS00Ni40LTI5LjEtNzUuNSAwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyczExMS40IDUwLjEgMTExLjQgMTEyYzAgMjkuMS0xMSA1NS42LTI5LjEgNzUuNSA0Mi42IDI2LjQgNzEuOCA3Mi44IDc0LjYgMTI2LjFhOCA4IDAgMCAxLTggOC40aC00My45Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgNDAtOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41SDIyNGMtNC42IDAtOC4yLTMuOC03LjgtOC40eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTMyMS4zIDQ2M2E1MS43IDUyIDAgMSAwIDEwMy40IDAgNTEuNyA1MiAwIDEgMC0xMDMuNCAweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002MTAuMyA0NzZoMTIzLjRjMS4zIDAgMi4zLTMuNiAyLjMtOHYtNDhjMC00LjQtMS04LTIuMy04SDYxMC4zYy0xLjMgMC0yLjMgMy42LTIuMyA4djQ4YzAgNC40IDEgOCAyLjMgOHptNC44IDE0NGgxODUuN2MzLjkgMCA3LjEtMy42IDcuMS04di00OGMwLTQuNC0zLjItOC03LjEtOEg2MTUuMWMtMy45IDAtNy4xIDMuNi03LjEgOHY0OGMwIDQuNCAzLjIgOCA3LjEgOHpNMjI0IDY3M2g0My45YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNSA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDUyMmE4IDggMCAwIDAgOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMCAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwIDAtNzQuNiAxMjYuMWMtLjQgNC42IDMuMiA4LjQgNy44IDguNHptMTQ5LTI2MmMyOC41IDAgNTEuNyAyMy4zIDUxLjcgNTJzLTIzLjIgNTItNTEuNyA1Mi01MS43LTIzLjMtNTEuNy01MiAyMy4yLTUyIDUxLjctNTJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkluZm9DaXJjbGVUd29Ub25lID0gZ2V0SWNvbignaW5mby1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0zMiA1ODhjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ2NCAzMzZhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem03MiAxMTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDU2YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSW5zdXJhbmNlVHdvVG9uZSA9IGdldEljb24oJ2luc3VyYW5jZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eidcbiAgICBdLCBbc2Vjb25kYXJ5Q29sb3IsICdNNTIxLjkgMzU4LjhoOTcuOXY0MS42aC05Ny45eiddLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6TTQxMy4zIDY1NmgtLjJjMCA0LjQtMy42IDgtOCA4aC0zNy4zYy00LjQgMC04LTMuNi04LThWNDcxLjRjLTcuNyA5LjItMTUuNCAxNy45LTIzLjEgMjZhNi4wNCA2LjA0IDAgMCAxLTEwLjItMi40bC0xMy4yLTQzLjVjLS42LTItLjItNC4xIDEuMi01LjYgMzctNDMuNCA2NC43LTk1LjEgODIuMi0xNTMuNiAxLjEtMy41IDUtNS4zIDguNC0zLjdsMzguNiAxOC4zYzIuNyAxLjMgNC4xIDQuNCAzLjIgNy4yYTQyOS4yIDQyOS4yIDAgMCAxLTMzLjYgNzlWNjU2em0yNTcuOS0zNDB2MTI3LjJjMCA0LjQtMy42IDgtOCA4aC02Ni43djE4LjZoOTguOGM0LjQgMCA4IDMuNiA4IDh2MzUuNmMwIDQuNC0zLjYgOC04IDhoLTU5YzE4LjEgMjkuMSA0MS44IDU0LjMgNzIuMyA3Ni45IDIuNiAyLjEgMy4yIDUuOSAxLjIgOC41bC0yNi4zIDM1LjNhNS45MiA1LjkyIDAgMCAxLTguOS43Yy0zMC42LTI5LjMtNTYuOC02NS4yLTc4LjEtMTA2LjlWNjU2YzAgNC40LTMuNiA4LTggOGgtMzYuMmMtNC40IDAtOC0zLjYtOC04VjUzNmMtMjIgNDQuNy00OSA4MC44LTgwLjYgMTA3LjZhNi4zOCA2LjM4IDAgMCAxLTQuOCAxLjRjLTEuNy0uMy0zLjItMS4zLTQuMS0yLjhMNDMyIDYwNS43YTYgNiAwIDAgMSAxLjYtOC4xYzI4LjYtMjAuMyA1MS45LTQ1LjIgNzEtNzZoLTU1LjFjLTQuNCAwLTgtMy42LTgtOFY0NzhjMC00LjQgMy42LTggOC04aDk0Ljl2LTE4LjZoLTY1LjljLTQuNCAwLTgtMy42LTgtOFYzMTZjMC00LjQgMy42LTggOC04aDE4NC43YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDQzLjcgMzA2LjlsLTM4LjYtMTguM2MtMy40LTEuNi03LjMuMi04LjQgMy43LTE3LjUgNTguNS00NS4yIDExMC4yLTgyLjIgMTUzLjZhNS43IDUuNyAwIDAgMC0xLjIgNS42bDEzLjIgNDMuNWMxLjQgNC41IDcgNS44IDEwLjIgMi40IDcuNy04LjEgMTUuNC0xNi44IDIzLjEtMjZWNjU2YzAgNC40IDMuNiA4IDggOGgzNy4zYzQuNCAwIDgtMy42IDgtOGguMlYzOTMuMWE0MjkuMiA0MjkuMiAwIDAgMCAzMy42LTc5Yy45LTIuOC0uNS01LjktMy4yLTcuMnptMjYuOCA5LjF2MTI3LjRjMCA0LjQgMy42IDggOCA4aDY1LjlWNDcwaC05NC45Yy00LjQgMC04IDMuNi04IDh2MzUuNmMwIDQuNCAzLjYgOCA4IDhoNTUuMWMtMTkuMSAzMC44LTQyLjQgNTUuNy03MSA3NmE2IDYgMCAwIDAtMS42IDguMWwyMi44IDM2LjVjLjkgMS41IDIuNCAyLjUgNC4xIDIuOCAxLjcuMyAzLjUtLjIgNC44LTEuNCAzMS42LTI2LjggNTguNi02Mi45IDgwLjYtMTA3LjZ2MTIwYzAgNC40IDMuNiA4IDggOGgzNi4yYzQuNCAwIDgtMy42IDgtOFY1MzUuOWMyMS4zIDQxLjcgNDcuNSA3Ny42IDc4LjEgMTA2LjkgMi42IDIuNSA2LjcgMi4yIDguOS0uN2wyNi4zLTM1LjNjMi0yLjYgMS40LTYuNC0xLjItOC41LTMwLjUtMjIuNi01NC4yLTQ3LjgtNzIuMy03Ni45aDU5YzQuNCAwIDgtMy42IDgtOHYtMzUuNmMwLTQuNC0zLjYtOC04LThoLTk4Ljh2LTE4LjZoNjYuN2M0LjQgMCA4LTMuNiA4LThWMzE2YzAtNC40LTMuNi04LTgtOEg0NzguNWMtNC40IDAtOCAzLjYtOCA4em01MS40IDQyLjhoOTcuOXY0MS42aC05Ny45di00MS42eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5JbnRlcmFjdGlvblR3b1RvbmUgPSBnZXRJY29uKCdpbnRlcmFjdGlvbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTE0LTQwMS45YzAtNTUuMyA0NC42LTEwMC4xIDk5LjctMTAwLjFoMjA1Ljh2LTUzLjRjMC01LjYgNi41LTguOCAxMC45LTUuM0w3MjMuNSAzNjVjMy41IDIuNyAzLjUgOCAwIDEwLjdsLTEwOS4xIDg1LjdjLTQuNCAzLjUtMTAuOS40LTEwLjktNS4zdi01My40SDM5Ny44Yy0xOS42IDAtMzUuNSAxNS45LTM1LjUgMzUuNnY3OC45YzAgMy44LTMuMSA2LjgtNi44IDYuOGgtNTAuN2MtMy44IDAtNi44LTMtNi44LTd2LTc4Ljl6bTIuNiAyMTAuM2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uNCAxMC45IDUuM3Y1My40aDIwNS42YzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS42di03OC45YzAtMy44IDMuMS02LjggNi44LTYuOGg1MC43YzMuOCAwIDYuOCAzLjEgNi44IDYuOHY3OC45YzAgNTUuMy00NC42IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNi02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzA0LjggNTI0aDUwLjdjMy43IDAgNi44LTMgNi44LTYuOHYtNzguOWMwLTE5LjcgMTUuOS0zNS42IDM1LjUtMzUuNmgyMDUuN3Y1My40YzAgNS43IDYuNSA4LjggMTAuOSA1LjNsMTA5LjEtODUuN2MzLjUtMi43IDMuNS04IDAtMTAuN2wtMTA5LjEtODUuN2MtNC40LTMuNS0xMC45LS4zLTEwLjkgNS4zVjMzOEgzOTcuN2MtNTUuMSAwLTk5LjcgNDQuOC05OS43IDEwMC4xVjUxN2MwIDQgMyA3IDYuOCA3em0tNC4yIDEzNC45bDEwOS4xIDg1LjdjNC40IDMuNSAxMC45LjMgMTAuOS01LjN2LTUzLjRoMjA1LjdjNTUuMSAwIDk5LjctNDQuOCA5OS43LTEwMC4xdi03OC45YzAtMy43LTMtNi44LTYuOC02LjhoLTUwLjdjLTMuNyAwLTYuOCAzLTYuOCA2Ljh2NzguOWMwIDE5LjctMTUuOSAzNS42LTM1LjUgMzUuNkg0MjAuNlY1NjhjMC01LjctNi41LTguOC0xMC45LTUuM2wtMTA5LjEgODUuN2MtMy41IDIuNS0zLjUgNy44IDAgMTAuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSW50ZXJhdGlvblR3b1RvbmUgPSBnZXRJY29uKCdpbnRlcmF0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMTQtNDAxLjljMC01NS4zIDQ0LjYtMTAwLjEgOTkuNy0xMDAuMWgyMDUuOHYtNTMuNGMwLTUuNiA2LjUtOC44IDEwLjktNS4zTDcyMy41IDM2NWMzLjUgMi43IDMuNSA4IDAgMTAuN2wtMTA5LjEgODUuN2MtNC40IDMuNS0xMC45LjQtMTAuOS01LjN2LTUzLjRIMzk3LjhjLTE5LjYgMC0zNS41IDE1LjktMzUuNSAzNS42djc4LjljMCAzLjgtMy4xIDYuOC02LjggNi44aC01MC43Yy0zLjggMC02LjgtMy02LjgtN3YtNzguOXptMi42IDIxMC4zbDEwOS4xLTg1LjdjNC40LTMuNSAxMC45LS40IDEwLjkgNS4zdjUzLjRoMjA1LjZjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjZ2LTc4LjljMC0zLjggMy4xLTYuOCA2LjgtNi44aDUwLjdjMy44IDAgNi44IDMuMSA2LjggNi44djc4LjljMCA1NS4zLTQ0LjYgMTAwLjEtOTkuNyAxMDAuMUg0MjAuNnY1My40YzAgNS42LTYuNSA4LjgtMTAuOSA1LjNsLTEwOS4xLTg1LjdjLTMuNS0yLjctMy41LTggMC0xMC41eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMDQuOCA1MjRoNTAuN2MzLjcgMCA2LjgtMyA2LjgtNi44di03OC45YzAtMTkuNyAxNS45LTM1LjYgMzUuNS0zNS42aDIwNS43djUzLjRjMCA1LjcgNi41IDguOCAxMC45IDUuM2wxMDkuMS04NS43YzMuNS0yLjcgMy41LTggMC0xMC43bC0xMDkuMS04NS43Yy00LjQtMy41LTEwLjktLjMtMTAuOSA1LjNWMzM4SDM5Ny43Yy01NS4xIDAtOTkuNyA0NC44LTk5LjcgMTAwLjFWNTE3YzAgNCAzIDcgNi44IDd6bS00LjIgMTM0LjlsMTA5LjEgODUuN2M0LjQgMy41IDEwLjkuMyAxMC45LTUuM3YtNTMuNGgyMDUuN2M1NS4xIDAgOTkuNy00NC44IDk5LjctMTAwLjF2LTc4LjljMC0zLjctMy02LjgtNi44LTYuOGgtNTAuN2MtMy43IDAtNi44IDMtNi44IDYuOHY3OC45YzAgMTkuNy0xNS45IDM1LjYtMzUuNSAzNS42SDQyMC42VjU2OGMwLTUuNy02LjUtOC44LTEwLjktNS4zbC0xMDkuMSA4NS43Yy0zLjUgMi41LTMuNSA3LjggMCAxMC41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5MYXlvdXRUd29Ub25lID0gZ2V0SWNvbignbGF5b3V0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM4NCAxODVoNDU2djEzNkgzODR6bS0yMDAgMGgxMzZ2NjU2SDE4NHptNjk2LTczSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MWMwLTE3LjcgMTQuMy0zMiAzMi0zMmg3MzZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2LTFjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM4NCAzODVoNDU2djQ1NkgzODR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTNIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NWMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIwIDg0MUgxODRWMTg1aDEzNnY2NTZ6bTUyMCAwSDM4NFYzODVoNDU2djQ1NnptMC01MjBIMzg0VjE4NWg0NTZ2MTM2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5MZWZ0Q2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ2xlZnQtY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTEwNCAyNDAuOWMwIDEwLjMtNC45IDE5LjktMTMuMiAyNS45TDQ1Ny40IDUxMmwxNDUuNCAxMDUuMWM4LjMgNiAxMy4yIDE1LjcgMTMuMiAyNS45djQ2LjljMCA2LjUtNy40IDEwLjMtMTIuNyA2LjVsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMCAxIDAtMTIuOWwyNDYtMTc4YzUuMy0zLjggMTIuNyAwIDEyLjcgNi41djQ2Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjAzLjMgMzI3LjVsLTI0NiAxNzhhNy45NSA3Ljk1IDAgMCAwIDAgMTIuOWwyNDYgMTc4YzUuMyAzLjggMTIuNyAwIDEyLjctNi41VjY0M2MwLTEwLjItNC45LTE5LjktMTMuMi0yNS45TDQ1Ny40IDUxMmwxNDUuNC0xMDUuMmM4LjMtNiAxMy4yLTE1LjYgMTMuMi0yNS45VjMzNGMwLTYuNS03LjQtMTAuMy0xMi43LTYuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTGVmdFNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdsZWZ0LXNxdWFyZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTgxLjMtMzM0LjVsMjQ2LTE3OGM1LjMtMy44IDEyLjcgMCAxMi43IDYuNXY0Ni45YzAgMTAuMy00LjkgMTkuOS0xMy4yIDI1LjlMNDY1LjQgNTEybDE0NS40IDEwNS4yYzguMyA2IDEzLjIgMTUuNyAxMy4yIDI1LjlWNjkwYzAgNi41LTcuNCAxMC4zLTEyLjcgNi40bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAgMSAwLTEyLjl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM2NS4zIDUxOC40bDI0NiAxNzhjNS4zIDMuOSAxMi43LjEgMTIuNy02LjR2LTQ2LjljMC0xMC4yLTQuOS0xOS45LTEzLjItMjUuOUw0NjUuNCA1MTJsMTQ1LjQtMTA1LjJjOC4zLTYgMTMuMi0xNS42IDEzLjItMjUuOVYzMzRjMC02LjUtNy40LTEwLjMtMTIuNy02LjVsLTI0NiAxNzhhNy45NSA3Ljk1IDAgMCAwIDAgMTIuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTGlrZVR3b1RvbmUgPSBnZXRJY29uKCdsaWtlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTI3MyA0OTUuOXY0MjhsLjMtNDI4em01MzguMi04OC4zSDQ5Ni44bDkuNi0xOTguNGMuNi0xMS45LTQuNy0yMy4xLTE0LjYtMzAuNS02LjEtNC41LTEzLjYtNi44LTIxLjEtNi43LTE5LjYuMS0zNi45IDEzLjQtNDIuMiAzMi4zLTM3LjEgMTM0LjQtNjQuOSAyMzUuMi04My41IDMwMi41Vjg1MmgzOTkuNGE1Ni44NSA1Ni44NSAwIDAgMCAzMy42LTUxLjhjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTEzLjktMjUuNCAyMS45LTE5YTU2Ljc2IDU2Ljc2IDAgMCAwIDE5LjYtNDNjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTEzLjktMjUuNCAyMS45LTE5YTU2Ljc2IDU2Ljc2IDAgMCAwIDE5LjYtNDNjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTE0LTI1LjUgMjEuOS0xOWE1Ni43NiA1Ni43NiAwIDAgMCAxOS42LTQzYzAtMTkuMS0xMS0zNy41LTI4LjgtNDguNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMTEyIDUyOHYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjVWNDk2aC02NWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTc3My45IDUuN2MxNi44LTIyLjIgMjYuMS00OS40IDI2LjEtNzcuNyAwLTQ0LjktMjUuMS04Ny41LTY1LjUtMTExYTY3LjY3IDY3LjY3IDAgMCAwLTM0LjMtOS4zSDU3Mi4zbDYtMTIyLjljMS41LTI5LjctOS01Ny45LTI5LjUtNzkuNGExMDYuNCAxMDYuNCAwIDAgMC03Ny45LTMzLjRjLTUyIDAtOTggMzUtMTExLjggODUuMWwtODUuOCAzMTAuOC0uMyA0MjhoNDcyLjFjOS4zIDAgMTguMi0xLjggMjYuNS01LjQgNDcuNi0yMC4zIDc4LjMtNjYuOCA3OC4zLTExOC40IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3ek04MjAuNCA0OTlsLTIxLjkgMTkgMTQgMjUuNWE1Ni4yIDU2LjIgMCAwIDEgNi45IDI3LjNjMCAxNi41LTcuMSAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAgMSA2LjkgMjcuM2MwIDE2LjUtNy4xIDMyLjItMTkuNiA0M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMCAxIDYuOSAyNy4zYzAgMjIuNC0xMy4yIDQyLjYtMzMuNiA1MS44SDM0NVY1MDYuOGMxOC42LTY3LjIgNDYuNC0xNjggODMuNS0zMDIuNWE0NC4yOCA0NC4yOCAwIDAgMSA0Mi4yLTMyLjNjNy41LS4xIDE1IDIuMiAyMS4xIDYuNyA5LjkgNy40IDE1LjIgMTguNiAxNC42IDMwLjVsLTkuNiAxOTguNGgzMTQuNEM4MjkgNDE4LjUgODQwIDQzNi45IDg0MCA0NTZjMCAxNi41LTcuMSAzMi4yLTE5LjYgNDN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkxvY2tUd29Ub25lID0gZ2V0SWNvbignbG9jaycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDQ2NGgtNjhWMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMzMiAyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djIyNEgzMzJWMjQwem00NjAgNjAwSDIzMlY1MzZoNTYwdjMwNHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMzIgODQwaDU2MFY1MzZIMjMydjMwNHptMjgwLTIyNmE0OC4wMSA0OC4wMSAwIDAgMSAyOCA4N3Y1M2MwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMCAxIDI4LTg3eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODQgNzAxdjUzYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMSAwLTU2IDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLk1haWxUd29Ub25lID0gZ2V0SWNvbignbWFpbCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NzcuNSA1MzYuM0wxMzUuOSAyNzAuN2wtMjcuNS0yMS40IDI3LjYgMjEuNVY3OTJoNzUyVjI3MC44TDU0Ni4yIDUzNi4zYTU1Ljk5IDU1Ljk5IDAgMCAxLTY4LjcgMHonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTg3Ni4zIDE5OC44bDM5LjMgNTAuNS0yNy42IDIxLjUgMjcuNy0yMS41LTM5LjMtNTAuNXonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05NC41IDcyLjFMNTEyIDQ4MiAxOTAuNSAyMzIuMWg2NDN6bTU0LjUgMzguN1Y3OTJIMTM2VjI3MC44bC0yNy42LTIxLjUgMjcuNSAyMS40IDM0MS42IDI2NS42YTU1Ljk5IDU1Ljk5IDAgMCAwIDY4LjcgMEw4ODggMjcwLjhsMjcuNi0yMS41LTM5LjMtNTAuNWguMWwzOS4zIDUwLjUtMjcuNyAyMS41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5NZWRpY2luZUJveFR3b1RvbmUgPSBnZXRJY29uKCdtZWRpY2luZS1ib3gnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjQ0LjMgMzI4TDE4NCA1MTMuNFY4NDBoNjU2VjUxMy40TDc3OS43IDMyOEgyNDQuM3pNNjYwIDYyOGMwIDQuNC0zLjYgOC04IDhINTQ0djEwOGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNjM2SDM3MmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTA4VjQ2NGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djEwOGgxMDhjNC40IDAgOCAzLjYgOCA4djQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NTIgNTcySDU0NFY0NjRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djEwOEgzNzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTA4djEwOGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjYzNmgxMDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzOS4yIDI3OC4xYTMyIDMyIDAgMCAwLTMwLjQtMjIuMUg3MzZWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTEyaC03Mi44YTMxLjkgMzEuOSAwIDAgMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNMzYwIDE4NGgzMDR2NzJIMzYwdi03MnptNDgwIDY1NkgxODRWNTEzLjRMMjQ0LjMgMzI4aDUzNS40TDg0MCA1MTMuNFY4NDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLk1laFR3b1RvbmUgPSBnZXRJY29uKCdtZWgnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMzg0IDIwMGMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzMDRjNC40IDAgOCAzLjYgOCA4djQ4em0xNi0xNTJhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yODggNDIxYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMzc2IDE0NEgzNjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tMjQtMTQ0YTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTWVzc2FnZVR3b1RvbmUgPSBnZXRJY29uKCdtZXNzYWdlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc3NS4zIDI0OC45YTM2OS42MiAzNjkuNjIgMCAwIDAtMTE5LTgwQTM3MC4yIDM3MC4yIDAgMCAwIDUxMi4xIDE0MGgtMS43Yy05OS43LjQtMTkzIDM5LjQtMjYyLjggMTA5LjktNjkuOSA3MC41LTEwOCAxNjQuMS0xMDcuNiAyNjMuOC4zIDYwLjMgMTUuMyAxMjAuMiA0My41IDE3My4xbDQuNSA4LjRWODM2aDE0MC44bDguNCA0LjVjNTIuOSAyOC4yIDExMi44IDQzLjIgMTczLjEgNDMuNWgxLjdjOTkgMCAxOTItMzguMiAyNjIuMS0xMDcuNiA3MC40LTY5LjggMTA5LjUtMTYzLjEgMTEwLjEtMjYyLjcuMi01MC42LTkuNS05OS42LTI4LjktMTQ1LjhhMzcwLjE1IDM3MC4xNSAwIDAgMC04MC0xMTl6TTMxMiA1NjBhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2em0yMDAgMGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6bTIwMCAwYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjY0IDUxMmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bS00MDAgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyNS4yIDMzOC40Yy0yMi42LTUzLjctNTUtMTAxLjktOTYuMy0xNDMuM2E0NDQuMzUgNDQ0LjM1IDAgMCAwLTE0My4zLTk2LjNDNjMwLjYgNzUuNyA1NzIuMiA2NCA1MTIgNjRoLTJjLTYwLjYuMy0xMTkuMyAxMi4zLTE3NC41IDM1LjlhNDQ1LjM1IDQ0NS4zNSAwIDAgMC0xNDIgOTYuNWMtNDAuOSA0MS4zLTczIDg5LjMtOTUuMiAxNDIuOC0yMyA1NS40LTM0LjYgMTE0LjMtMzQuMyAxNzQuOUE0NDkuNCA0NDkuNCAwIDAgMCAxMTIgNzE0djE1MmE0NiA0NiAwIDAgMCA0NiA0NmgxNTIuMUE0NDkuNCA0NDkuNCAwIDAgMCA1MTAgOTYwaDIuMWM1OS45IDAgMTE4LTExLjYgMTcyLjctMzQuM2E0NDQuNDggNDQ0LjQ4IDAgMCAwIDE0Mi44LTk1LjJjNDEuMy00MC45IDczLjgtODguNyA5Ni41LTE0MiAyMy42LTU1LjIgMzUuNi0xMTMuOSAzNS45LTE3NC41LjMtNjAuOS0xMS41LTEyMC0zNC44LTE3NS42em0tMTUxLjEgNDM4QzcwNCA4NDUuOCA2MTEgODg0IDUxMiA4ODRoLTEuN2MtNjAuMy0uMy0xMjAuMi0xNS4zLTE3My4xLTQzLjVsLTguNC00LjVIMTg4VjY5NS4ybC00LjUtOC40QzE1NS4zIDYzMy45IDE0MC4zIDU3NCAxNDAgNTEzLjdjLS40LTk5LjcgMzcuNy0xOTMuMyAxMDcuNi0yNjMuOCA2OS44LTcwLjUgMTYzLjEtMTA5LjUgMjYyLjgtMTA5LjloMS43YzUwIDAgOTguNSA5LjcgMTQ0LjIgMjguOSA0NC42IDE4LjcgODQuNiA0NS42IDExOSA4MCAzNC4zIDM0LjMgNjEuMyA3NC40IDgwIDExOSAxOS40IDQ2LjIgMjkuMSA5NS4yIDI4LjkgMTQ1LjgtLjYgOTkuNi0zOS43IDE5Mi45LTExMC4xIDI2Mi43eidcbiAgICBdLCBbcHJpbWFyeUNvbG9yLCAnTTQ2NCA1MTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweiddKTtcbn0pO1xuZXhwb3J0cy5NaW51c0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdtaW51cy1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xOTIgMzk2YzAgNC40LTMuNiA4LTggOEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDM2OGM0LjQgMCA4IDMuNiA4IDh2NDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY5NiA0ODBIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM2OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTWludXNTcXVhcmVUd29Ub25lID0gZ2V0SWNvbignbWludXMtc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMzYtMzUyYzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTW9iaWxlVHdvVG9uZSA9IGdldEljb24oJ21vYmlsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzQ0IDY0SDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjR6bS04IDgyNEgyODhWMTM2aDQ0OHY3NTJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjg4IDg4OGg0NDhWMTM2SDI4OHY3NTJ6bTIyNC0xNDJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweidcbiAgICBdLCBbcHJpbWFyeUNvbG9yLCAnTTQ3MiA3ODZhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweiddKTtcbn0pO1xuZXhwb3J0cy5QYXVzZUNpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdwYXVzZS1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tODAgNTI0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6bTIyNCAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQyNCAzNTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHptMjI0IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTW9uZXlDb2xsZWN0VHdvVG9uZSA9IGdldEljb24oJ21vbmV5LWNvbGxlY3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjU2IDc0NC40bDI1NiA5My4xIDI1Ni05My4xVjE4NEgyNTZ2NTYwLjR6TTM1OS43IDMxM2MxLjItLjcgMi41LTEgMy44LTFoNTUuN2E4IDggMCAwIDEgNy4xIDQuNEw1MTEgNDg1LjJoMy4zTDU5OSAzMTYuNGMxLjMtMi43IDQuMS00LjQgNy4xLTQuNGg1NC41YzQuNCAwIDggMy42IDguMSA3LjkgMCAxLjMtLjQgMi42LTEgMy44TDU2NCA1MTUuM2g1Ny42YzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM3YzOWg3Ni4zYzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM1Y3MDRjMCA0LjQtMy42IDgtOCA4aC00OS45Yy00LjQgMC04LTMuNi04LTh2LTYzLjRoLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDc2di0zOWgtNzZjLTQuNCAwLTgtMy42LTgtOHYtMjcuMWMwLTQuNCAzLjYtOCA4LThoNTdMMzU2LjUgMzIzLjhjLTIuMS0zLjgtLjctOC43IDMuMi0xMC44eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MTEuNSA3MDAuN2E4IDggMCAwIDAtMTAuMy00LjhMODQwIDcxOC4yVjE4MGMwLTM3LjYtMzAuNC02OC02OC02OEgyNTJjLTM3LjYgMC02OCAzMC40LTY4IDY4djUzOC4ybC02MS4zLTIyLjNjLS45LS4zLTEuOC0uNS0yLjctLjUtNC40IDAtOCAzLjYtOCA4Vjc2M2MwIDMuMyAyLjEgNi4zIDUuMyA3LjVMNTAxIDkxMC4xYzcuMSAyLjYgMTQuOCAyLjYgMjEuOSAwbDM4My44LTEzOS41YzMuMi0xLjIgNS4zLTQuMiA1LjMtNy41di01OS42YzAtMS0uMi0xLjktLjUtMi44ek03NjggNzQ0LjRsLTI1NiA5My4xLTI1Ni05My4xVjE4NGg1MTJ2NTYwLjR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ2MC40IDUxNS40aC01N2MtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2djM5aC03NmMtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2VjcwNGMwIDQuNCAzLjYgOCA4IDhoNDkuOWM0LjQgMCA4LTMuNiA4LTh2LTYzLjVoNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04aC03Ni4zdi0zOWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThINTY0bDEwMy43LTE5MS42Yy42LTEuMiAxLTIuNSAxLTMuOC0uMS00LjMtMy43LTcuOS04LjEtNy45aC01NC41Yy0zIDAtNS44IDEuNy03LjEgNC40bC04NC43IDE2OC44SDUxMWwtODQuNy0xNjguOGE4IDggMCAwIDAtNy4xLTQuNGgtNTUuN2MtMS4zIDAtMi42LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOGwxMDMuOSAxOTEuNnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTm90aWZpY2F0aW9uVHdvVG9uZSA9IGdldEljb24oJ25vdGlmaWNhdGlvbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMjkuNiA2NzguMWMtMy43IDExLjYtNS42IDIzLjktNS42IDM2LjQgMC0xMi41IDItMjQuOCA1LjctMzYuNGgtLjF6bTc2LjMtMjYwLjJIMTg0djE4OC4yaDEyMS45bDEyLjkgNS4yTDg0MCA4MjAuN1YyMDMuM0wzMTguOCA0MTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMmMtMy44IDAtNy43LjctMTEuNiAyLjNMMjkyIDM0NS45SDEyOGMtOC44IDAtMTYgNy40LTE2IDE2LjZ2Mjk5YzAgOS4yIDcuMiAxNi42IDE2IDE2LjZoMTAxLjdjLTMuNyAxMS42LTUuNyAyMy45LTUuNyAzNi40IDAgNjUuOSA1My44IDExOS41IDEyMCAxMTkuNSA1NS40IDAgMTAyLjEtMzcuNiAxMTUuOS04OC40bDQwOC42IDE2NC4yYzMuOSAxLjUgNy44IDIuMyAxMS42IDIuMyAxNi45IDAgMzItMTQuMiAzMi0zMy4yVjE0NS4yQzkxMiAxMjYuMiA4OTcgMTEyIDg4MCAxMTJ6TTM0NCA3NjIuM2MtMjYuNSAwLTQ4LTIxLjQtNDgtNDcuOCAwLTExLjIgMy45LTIxLjkgMTEtMzAuNGw4NC45IDM0LjFjLTIgMjQuNi0yMi43IDQ0LjEtNDcuOSA0NC4xem00OTYgNTguNEwzMTguOCA2MTEuM2wtMTIuOS01LjJIMTg0VjQxNy45aDEyMS45bDEyLjktNS4yTDg0MCAyMDMuM3Y2MTcuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGhvbmVUd29Ub25lID0gZ2V0SWNvbigncGhvbmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzIxLjcgMTg0LjlMNjEwLjkgMjk1LjhsMTIwLjggMTIwLjctOCAyMS42QTQ4MS4yOSA0ODEuMjkgMCAwIDEgNDM4IDcyMy45bC0yMS42IDgtLjktLjktMTE5LjgtMTIwLTExMC44IDExMC45IDEwNC41IDEwNC41YzEwLjggMTAuNyAyNiAxNS43IDQwLjggMTMuMiAxMTcuOS0xOS41IDIzNS40LTgyLjkgMzMwLjktMTc4LjRzMTU4LjktMjEzLjEgMTc4LjQtMzMxYzIuNS0xNC44LTIuNS0zMC0xMy4zLTQwLjhMNzIxLjcgMTg0Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg3Ny4xIDIzOC43TDc3MC42IDEzMi4zYy0xMy0xMy0zMC40LTIwLjMtNDguOC0yMC4zcy0zNS44IDcuMi00OC44IDIwLjNMNTU4LjMgMjQ2LjhjLTEzIDEzLTIwLjMgMzAuNS0yMC4zIDQ4LjkgMCAxOC41IDcuMiAzNS44IDIwLjMgNDguOWw4OS42IDg5LjdhNDA1LjQ2IDQwNS40NiAwIDAgMS04Ni40IDEyNy4zYy0zNi43IDM2LjktNzkuNiA2Ni0xMjcuMiA4Ni42bC04OS42LTg5LjdjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNhNjguMiA2OC4yIDAgMCAwLTQ4LjggMjAuM0wxMzIuMyA2NzNjLTEzIDEzLTIwLjMgMzAuNS0yMC4zIDQ4LjkgMCAxOC41IDcuMiAzNS44IDIwLjMgNDguOWwxMDYuNCAxMDYuNGMyMi4yIDIyLjIgNTIuOCAzNC45IDg0LjIgMzQuOSA2LjUgMCAxMi44LS41IDE5LjItMS42IDEzMi40LTIxLjggMjYzLjgtOTIuMyAzNjkuOS0xOTguM0M4MTggNjA2IDg4OC40IDQ3NC42IDkxMC40IDM0Mi4xYzYuMy0zNy42LTYuMy03Ni4zLTMzLjMtMTAzLjR6bS0zNy42IDkxLjVjLTE5LjUgMTE3LjktODIuOSAyMzUuNS0xNzguNCAzMzFzLTIxMyAxNTguOS0zMzAuOSAxNzguNGMtMTQuOCAyLjUtMzAtMi41LTQwLjgtMTMuMkwxODQuOSA3MjEuOSAyOTUuNyA2MTFsMTE5LjggMTIwIC45LjkgMjEuNi04YTQ4MS4yOSA0ODEuMjkgMCAwIDAgMjg1LjctMjg1LjhsOC0yMS42LTEyMC44LTEyMC43IDExMC44LTExMC45IDEwNC41IDEwNC41YzEwLjggMTAuOCAxNS44IDI2IDEzLjMgNDAuOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGljdHVyZVR3b1RvbmUgPSBnZXRJY29uKCdwaWN0dXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZ2LTM5LjlsMTM4LjUtMTY0LjMgMTUwLjEgMTc4TDY1OC4xIDQ4OSA4ODggNzYxLjZWNzkyem0wLTEyOS44TDY2NC4yIDM5Ni44Yy0zLjItMy44LTktMy44LTEyLjIgMEw0MjQuNiA2NjYuNGwtMTQ0LTE3MC43Yy0zLjItMy44LTktMy44LTEyLjIgMEwxMzYgNjUyLjdWMjMyaDc1MnY0MzAuMnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000MjQuNiA3NjUuOGwtMTUwLjEtMTc4TDEzNiA3NTIuMVY3OTJoNzUydi0zMC40TDY1OC4xIDQ4OXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xMzYgNjUyLjdsMTMyLjQtMTU3YzMuMi0zLjggOS0zLjggMTIuMiAwbDE0NCAxNzAuN0w2NTIgMzk2LjhjMy4yLTMuOCA5LTMuOCAxMi4yIDBMODg4IDY2Mi4yVjIzMkgxMzZ2NDIwLjd6TTMwNCAyODBhODggODggMCAxIDEgMCAxNzYgODggODggMCAwIDEgMC0xNzZ6J1xuICAgIF0sIFtzZWNvbmRhcnlDb2xvciwgJ00yNzYgMzY4YTI4IDI4IDAgMSAwIDU2IDAgMjggMjggMCAxIDAtNTYgMHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzA0IDQ1NmE4OCA4OCAwIDEgMCAwLTE3NiA4OCA4OCAwIDAgMCAwIDE3NnptMC0xMTZjMTUuNSAwIDI4IDEyLjUgMjggMjhzLTEyLjUgMjgtMjggMjgtMjgtMTIuNS0yOC0yOCAxMi41LTI4IDI4LTI4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QbGF5Q2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3BsYXktY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTY0LjEgMzc4LjJMNDU3LjcgNjc3LjFhOC4wMiA4LjAyIDAgMCAxLTEyLjctNi41VjM1M2E4IDggMCAwIDEgMTIuNy02LjVsMjE4LjQgMTU4LjhhNy45IDcuOSAwIDAgMSAwIDEyLjl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY3Ni4xIDUwNS4zTDQ1Ny43IDM0Ni41QTggOCAwIDAgMCA0NDUgMzUzdjMxNy42YTguMDIgOC4wMiAwIDAgMCAxMi43IDYuNWwyMTguNC0xNTguOWE3LjkgNy45IDAgMCAwIDAtMTIuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGxheVNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdwbGF5LXNxdWFyZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMjQwLTQ4NC43YzAtOS40IDEwLjktMTQuNyAxOC4zLTguOGwxOTkuNCAxNTYuN2ExMS4yIDExLjIgMCAwIDEgMCAxNy42TDQ0Mi4zIDY3Ny42Yy03LjQgNS44LTE4LjMuNi0xOC4zLTguOFYzNTUuM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDQyLjMgNjc3LjZsMTk5LjQtMTU2LjhhMTEuMiAxMS4yIDAgMCAwIDAtMTcuNkw0NDIuMyAzNDYuNWMtNy40LTUuOS0xOC4zLS42LTE4LjMgOC44djMxMy41YzAgOS40IDEwLjkgMTQuNiAxOC4zIDguOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGllQ2hhcnRUd29Ub25lID0gZ2V0SWNvbigncGllLWNoYXJ0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTMxNi4yIDkyMC41Yy00Ny42LTIwLjEtOTAuNC00OS0xMjcuMS04NS43YTM5OC4xOSAzOTguMTkgMCAwIDEtODUuNy0xMjcuMUEzOTcuMTIgMzk3LjEyIDAgMCAxIDcyIDU1Mi4ydi4yYTM5OC41NyAzOTguNTcgMCAwIDAgMTE3IDI4Mi41YzM2LjcgMzYuNyA3OS40IDY1LjUgMTI3IDg1LjZBMzk2LjY0IDM5Ni42NCAwIDAgMCA0NzEuNiA5NTJjMjcgMCA1My42LTIuNyA3OS43LTcuOS0yNS45IDUuMi01Mi40IDcuOC03OS4zIDcuOC01NCAuMS0xMDYuNC0xMC41LTE1NS44LTMxLjR6TTU2MCA0NzJjLTQuNCAwLTgtMy42LTgtOFY3OS45YzAtMS4zLjMtMi41LjktMy42LS45IDEuMy0xLjUgMi45LTEuNSA0LjZ2MzgzLjdjMCA0LjQgMy42IDggOCA4bDM4My42LTFjMS42IDAgMy4xLS41IDQuNC0xLjMtMSAuNS0yLjIuNy0zLjQuN2wtMzg0IDF6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNjE5LjggMTQ3LjZ2MjU2LjZsMjU2LjQtLjdjLTEzLTYyLjUtNDQuMy0xMjAuNS05MC0xNjYuMWEzMzIuMjQgMzMyLjI0IDAgMCAwLTE2Ni40LTg5Ljh6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDM4IDIyMS43Yy03NS45IDcuNi0xNDYuMiA0MC45LTIwMC44IDk1LjVDMTc0LjUgMzc5LjkgMTQwIDQ2My4zIDE0MCA1NTJzMzQuNSAxNzIuMSA5Ny4yIDIzNC44YzYyLjMgNjIuMyAxNDUuMSA5Ni44IDIzMy4yIDk3LjIgODguMi40IDE3Mi43LTM0LjEgMjM1LjMtOTYuMkM3NjEgNzMzIDc5NC42IDY2Mi4zIDgwMi4zIDU4Nkg0MzhWMjIxLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg2NCA1MThINTA2VjE2MGMwLTQuNC0zLjYtOC04LThoLTI2YTM5OC40NiAzOTguNDYgMCAwIDAtMjgyLjggMTE3LjEgMzk4LjE5IDM5OC4xOSAwIDAgMC04NS43IDEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwIDAgNzIgNTUydi4yYzAgNTMuOSAxMC42IDEwNi4yIDMxLjQgMTU1LjUgMjAuMSA0Ny42IDQ5IDkwLjQgODUuNyAxMjcuMSAzNi43IDM2LjcgNzkuNSA2NS42IDEyNy4xIDg1LjdBMzk3LjYxIDM5Ny42MSAwIDAgMCA0NzIgOTUyYzI2LjkgMCA1My40LTIuNiA3OS4zLTcuOCAyNi4xLTUuMyA1MS43LTEzLjEgNzYuNC0yMy42IDQ3LjYtMjAuMSA5MC40LTQ5IDEyNy4xLTg1LjcgMzYuNy0zNi43IDY1LjYtNzkuNSA4NS43LTEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwIDAgODcyIDU1MnYtMjZjMC00LjQtMy42LTgtOC04ek03MDUuNyA3ODcuOEEzMzEuNTkgMzMxLjU5IDAgMCAxIDQ3MC40IDg4NGMtODguMS0uNC0xNzAuOS0zNC45LTIzMy4yLTk3LjJDMTc0LjUgNzI0LjEgMTQwIDY0MC43IDE0MCA1NTJzMzQuNS0xNzIuMSA5Ny4yLTIzNC44YzU0LjYtNTQuNiAxMjQuOS04Ny45IDIwMC44LTk1LjVWNTg2aDM2NC4zYy03LjcgNzYuMy00MS4zIDE0Ny05Ni42IDIwMS44eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NTIgNDYyLjRsLTIuNi0yOC4yYy04LjUtOTIuMS00OS40LTE3OS0xMTUuMi0yNDQuNkEzOTkuNCAzOTkuNCAwIDAgMCA1ODkgNzQuNkw1NjAuNyA3MmMtMy40LS4zLTYuNCAxLjUtNy44IDQuM2E4LjcgOC43IDAgMCAwLS45IDMuNlY0NjRjMCA0LjQgMy42IDggOCA4bDM4NC0xYzEuMiAwIDIuMy0uMyAzLjQtLjdhOC4xIDguMSAwIDAgMCA0LjYtNy45em0tMzMyLjItNTguMlYxNDcuNmEzMzIuMjQgMzMyLjI0IDAgMCAxIDE2Ni40IDg5LjhjNDUuNyA0NS42IDc3IDEwMy42IDkwIDE2Ni4xbC0yNTYuNC43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QbHVzQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3BsdXMtY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTkyIDM5NmMwIDQuNC0zLjYgOC04IDhINTQ0djE1MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTQ0SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTUyVjMyOGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE1MmgxNTJjNC40IDAgOCAzLjYgOCA4djQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002OTYgNDgwSDU0NFYzMjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE1MkgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlBsdXNTcXVhcmVUd29Ub25lID0gZ2V0SWNvbigncGx1cy1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTEzNi0zNTJjMC00LjQgMy42LTggOC04aDE1MlYzMjhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNTJoMTUyYzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINTQ0djE1MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTQ0SDMyOGMtNC40IDAtOC0zLjYtOC04di00OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzI4IDU0NGgxNTJ2MTUyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTQ0aDE1MmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWMzI4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Qb3VuZENpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdwb3VuZC1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNDYgNTgyLjFjMCA0LjQtMy42IDgtOCA4SDM3Ni4yYy00LjQgMC04LTMuNi04LTh2LTM4LjVjMC0zLjcgMi41LTYuOSA2LjEtNy44IDQ0LTEwLjkgNzIuOC00OSA3Mi44LTk0LjIgMC0xNC43LTIuNS0yOS40LTUuOS00NC4ySDM3NGMtNC40IDAtOC0zLjYtOC04di0zMGMwLTQuNCAzLjYtOCA4LThoNTMuN2MtNy44LTI1LjEtMTQuNi01MC43LTE0LjYtNzcuMSAwLTc1LjggNTguNi0xMjAuMyAxNTEuNS0xMjAuMyAyNi41IDAgNTEuNCA1LjUgNzAuMyAxMi43IDMuMSAxLjIgNS4yIDQuMiA1LjIgNy41djM5LjVhOCA4IDAgMCAxLTEwLjYgNy42Yy0xNy45LTYuNC0zOS0xMC41LTYwLjQtMTAuNS01My4zIDAtODcuMyAyNi42LTg3LjMgNzAuMiAwIDI0LjcgNi4yIDQ3LjkgMTMuNCA3MC41aDExMmM0LjQgMCA4IDMuNiA4IDh2MzBjMCA0LjQtMy42IDgtOCA4aC05OC42YzMuMSAxMy4yIDUuMyAyNi45IDUuMyA0MSAwIDQwLjctMTYuNSA3My45LTQzLjkgOTEuMXY0LjdoMTgwYzQuNCAwIDggMy42IDggOHYzOS44eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NTAgNjc0LjNINDcwdi00LjdjMjcuNC0xNy4yIDQzLjktNTAuNCA0My45LTkxLjEgMC0xNC4xLTIuMi0yNy44LTUuMy00MWg5OC42YzQuNCAwIDgtMy42IDgtOHYtMzBjMC00LjQtMy42LTgtOC04aC0xMTJjLTcuMi0yMi42LTEzLjQtNDUuOC0xMy40LTcwLjUgMC00My42IDM0LTcwLjIgODcuMy03MC4yIDIxLjQgMCA0Mi41IDQuMSA2MC40IDEwLjVhOCA4IDAgMCAwIDEwLjYtNy42di0zOS41YzAtMy4zLTIuMS02LjMtNS4yLTcuNS0xOC45LTcuMi00My44LTEyLjctNzAuMy0xMi43LTkyLjkgMC0xNTEuNSA0NC41LTE1MS41IDEyMC4zIDAgMjYuNCA2LjggNTIgMTQuNiA3Ny4xSDM3NGMtNC40IDAtOCAzLjYtOCA4djMwYzAgNC40IDMuNiA4IDggOGg2Ny4yYzMuNCAxNC44IDUuOSAyOS41IDUuOSA0NC4yIDAgNDUuMi0yOC44IDgzLjMtNzIuOCA5NC4yLTMuNi45LTYuMSA0LjEtNi4xIDcuOHYzOC41YzAgNC40IDMuNiA4IDggOEg2NTBjNC40IDAgOC0zLjYgOC04di0zOS44YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUHJpbnRlclR3b1RvbmUgPSBnZXRJY29uKCdwcmludGVyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM2MCAxODBoMzA0djE1MkgzNjB6bTQ5MiAyMjBIMTcyYy02LjYgMC0xMiA1LjQtMTIgMTJ2MjkyaDEzMlY1MDBoNDQwdjIwNGgxMzJWNDEyYzAtNi42LTUuNC0xMi0xMi0xMnptLTI0IDg0YzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNDBjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHY0MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODUyIDMzMkg3MzJWMTIwYzAtNC40LTMuNi04LTgtOEgzMDBjLTQuNCAwLTggMy42LTggOHYyMTJIMTcyYy00NC4yIDAtODAgMzUuOC04MCA4MHYzMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4djEzMmMwIDQuNCAzLjYgOCA4IDhoNDI0YzQuNCAwIDgtMy42IDgtOFY3NzJoMTY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQxMmMwLTQ0LjItMzUuOC04MC04MC04MHpNMzYwIDE4MGgzMDR2MTUySDM2MFYxODB6bTMwNCA2NjRIMzYwVjU2OGgzMDR2Mjc2em0yMDAtMTQwSDczMlY1MDBIMjkydjIwNEgxNjBWNDEyYzAtNi42IDUuNC0xMiAxMi0xMmg2ODBjNi42IDAgMTIgNS40IDEyIDEydjI5MnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODIwIDQzNmgtNDBjLTQuNCAwLTggMy42LTggOHY0MGMwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di00MGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlByb2ZpbGVUd29Ub25lID0gZ2V0SWNvbigncHJvZmlsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMzAwLTQ5NmMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4em0wIDE0NGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4em0wIDE0NGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4ek0zODAgMzI4YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHptMCAxNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwem0wIDE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM0MCA2NTZhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wLTE0NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAtMTQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMTUyIDMyMGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Qcm9qZWN0VHdvVG9uZSA9IGdldEljb24oJ3Byb2plY3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTQ3Mi01NjBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYyNTZjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MHptLTE5MiAwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2MTg0YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODB6bS0xOTIgMGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ2NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yODAgNzUyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6bTE5Mi0yODBoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2MTg0YzAgNC40IDMuNiA4IDggOHptMTkyIDcyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djI1NmMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlB1c2hwaW5Ud29Ub25lID0gZ2V0SWNvbigncHVzaHBpbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NzQuOCAzNTcuN2wtMjQuNSAyNC41LTM0LjQtMy44Yy05LjYtMS4xLTE5LjMtMS42LTI4LjktMS42LTI5IDAtNTcuNSA0LjctODQuNyAxNC4xLTE0IDQuOC0yNy40IDEwLjgtNDAuMyAxNy45bDM1My4xIDM1My4zYTI1OS45MiAyNTkuOTIgMCAwIDAgMzAuNC0xNTMuOWwtMy44LTM0LjQgMjQuNS0yNC41TDgwMCA0MTUuNSA2MDguNSAyMjQgNDc0LjggMzU3Ljd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjNhMzMuMjMgMzMuMjMgMCAwIDAtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMCAwLTQuNiA5LjhsLTMuNCAzNy4yYy0uOSA5LjQgNi42IDE3LjQgMTUuOSAxNy40LjUgMCAxIDAgMS41LS4xbDM3LjItMy40YzMuNy0uMyA3LjItMiA5LjgtNC42bDIxNS40LTIxNS40IDE4MS43IDE4MS43YzYuNSA2LjUgMTUgOS43IDIzLjUgOS43IDkuNyAwIDE5LjMtNC4yIDI1LjktMTIuNCA1Ni4zLTcwLjMgNzkuNy0xNTguMyA3MC4yLTI0My40bDE2MS4xLTE2MS4xYzEyLjktMTIuOCAxMi45LTMzLjggMC00Ni44ek02NjYuMiA1NDkuM2wtMjQuNSAyNC41IDMuOCAzNC40YTI1OS45MiAyNTkuOTIgMCAwIDEtMzAuNCAxNTMuOUwyNjIgNDA4LjhjMTIuOS03LjEgMjYuMy0xMy4xIDQwLjMtMTcuOSAyNy4yLTkuNCA1NS43LTE0LjEgODQuNy0xNC4xIDkuNiAwIDE5LjMuNSAyOC45IDEuNmwzNC40IDMuOCAyNC41LTI0LjVMNjA4LjUgMjI0IDgwMCA0MTUuNSA2NjYuMiA1NDkuM3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUHJvcGVydHlTYWZldHlUd29Ub25lID0gZ2V0SWNvbigncHJvcGVydHktc2FmZXR5JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjE0IDIyNi43djQyNy42bDI5OCAyMzIuMiAyOTgtMjMyLjJWMjI2LjdMNTEyIDEyNS4xIDIxNCAyMjYuN3pNNTkzLjkgMzE4aDQ1YzUuNSAwIDEwIDQuNSAxMCAxMCAuMSAxLjctLjMgMy4zLTEuMSA0LjhsLTg3LjcgMTYxLjFoNDUuN2M1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjR2MjkuN2g2My40YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNFY2NThjMCA1LjUtNC41IDEwLTEwIDEwaC00MS4zYy01LjUgMC0xMC00LjUtMTAtMTB2LTUxLjhINDE4Yy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDYzLjF2LTI5LjdINDE4Yy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjNMNTg1IDMyMy41YTEwIDEwIDAgMCAxIDguOS01LjV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQzOC45IDMyMy41YTkuODggOS44OCAwIDAgMC04LjktNS41aC00NmMtMS43IDAtMy4zLjQtNC44IDEuMi00LjkgMi43LTYuNiA4LjgtNCAxMy42bDg4IDE2MS4xSDQxOGMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjF2MjkuN0g0MThjLTUuNSAwLTEwIDQuNS0xMCAxMHYyMS4zYzAgNS41IDQuNSAxMCAxMCAxMGg2My4xVjY1OGMwIDUuNSA0LjUgMTAgMTAgMTBoNDEuM2M1LjUgMCAxMC00LjUgMTAtMTB2LTUxLjhoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC02My40di0yOS43aDYzLjRjNS41IDAgMTAtNC41IDEwLTEwdi0yMS4zYzAtNS41LTQuNS0xMC0xMC0xMGgtNDUuN2w4Ny43LTE2MS4xYy44LTEuNSAxLjItMy4xIDEuMS00LjggMC01LjUtNC41LTEwLTEwLTEwaC00NWExMCAxMCAwIDAgMC04LjkgNS41bC03My4yIDE0NC4zLTcyLjktMTQ0LjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlF1ZXN0aW9uQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3F1ZXN0aW9uLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTAgNjMyYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptNjIuOS0yMTkuNWE0OC4zIDQ4LjMgMCAwIDAtMzAuOSA0NC44VjYyMGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTIxLjVjMC0yMy4xIDYuNy00NS45IDE5LjktNjQuOSAxMi45LTE4LjYgMzAuOS0zMi44IDUyLjEtNDAuOSAzNC0xMy4xIDU2LTQxLjYgNTYtNzIuNyAwLTQ0LjEtNDMuMS04MC05Ni04MHMtOTYgMzUuOS05NiA4MHY3LjZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQyMGMwLTM5LjMgMTcuMi03NiA0OC40LTEwMy4zQzQzMC40IDI5MC40IDQ3MCAyNzYgNTEyIDI3NnM4MS42IDE0LjUgMTExLjYgNDAuN0M2NTQuOCAzNDQgNjcyIDM4MC43IDY3MiA0MjBjMCA1Ny44LTM4LjEgMTA5LjgtOTcuMSAxMzIuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDcyIDczMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTE1MS42LTQxNS4zQzU5My42IDI5MC41IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC40LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2IDcyLjctMjEuMiA4LjEtMzkuMiAyMi4zLTUyLjEgNDAuOS0xMy4yIDE5LTE5LjkgNDEuOC0xOS45IDY0LjlWNjIwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTIyLjdhNDguMyA0OC4zIDAgMCAxIDMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41IDAtMzkuMy0xNy4yLTc2LTQ4LjQtMTAzLjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlJlY29uY2lsaWF0aW9uVHdvVG9uZSA9IGdldEljb24oJ3JlY29uY2lsaWF0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc0MCAzNDRINDA0VjI0MEgzMDR2MTYwaDE3NmMxNy43IDAgMzIgMTQuMyAzMiAzMnYzNjBoMzI4VjI0MEg3NDB2MTA0ek01ODQgNDQ4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NnptOTIgMzAxYy01MC44IDAtOTItNDEuMi05Mi05MnM0MS4yLTkyIDkyLTkyIDkyIDQxLjIgOTIgOTItNDEuMiA5Mi05MiA5MnptOTItMzQxdjk2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtOTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTY0MiA2NTdhMzQgMzQgMCAxIDAgNjggMCAzNCAzNCAwIDEgMC02OCAweiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001OTIgNTEyaDQ4YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMTEyLTEwNHY5NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di05NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxNjhINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDEyIDY0aDcydi01Nmg2NHY1Nmg3MnY0OEg0Njh2LTQ4em0tMjAgNjE2SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTM5MiAyNDBINTEyVjQzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMDRWMjQwaDEwMHYxMDRoMzM2VjI0MGgxMDB2NTUyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NzYgNTY1Yy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5SZWRFbnZlbG9wZVR3b1RvbmUgPSBnZXRJY29uKCdyZWQtZW52ZWxvcGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjE5My4xbDI2MC4zIDIwNC4xYzExLjYgOS4xIDI3LjkgOS4xIDM5LjUgMEw3OTIgMTkzLjFWODg4em0wLTc1MS4zaC0zMS43TDUxMiAzMzEuMyAyNjMuNyAxMzYuN0gyMzJ2LS43aDU2MHYuN3onXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000OTIuMyAzOTcuMkwyMzIgMTkzLjFWODg4aDU2MFYxOTMuMUw1MzEuOCAzOTcuMmEzMS45OSAzMS45OSAwIDAgMS0zOS41IDB6bTk5LjQgNjAuOWg0Ny44YTguNDUgOC40NSAwIDAgMSA3LjQgMTIuNGwtODcuMiAxNjFoNDUuOWM0LjYgMCA4LjQgMy44IDguNCA4LjRWNjY1YzAgNC42LTMuOCA4LjQtOC40IDguNGgtNjMuM1Y3MDJoNjMuM2M0LjYgMCA4LjQgMy44IDguNCA4LjR2MjVjLjIgNC43LTMuNSA4LjUtOC4yIDguNWgtNjMuM3Y0OS45YzAgNC42LTMuOCA4LjQtOC40IDguNGgtNDMuN2MtNC42IDAtOC40LTMuOC04LjQtOC40di00OS45aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg2M3YtMjguNmgtNjNjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtMjUuMWMwLTQuNiAzLjgtOC40IDguNC04LjRoNDUuNEwzNzcgNDcwLjRhOC40IDguNCAwIDAgMSAzLjQtMTEuNGMxLjMtLjYgMi42LTEgMy45LTFoNDguOGMzLjIgMCA2LjEgMS44IDcuNSA0LjZsNzEuNyAxNDIgNzEuOS0xNDEuOWE4LjYgOC42IDAgMCAxIDcuNS00LjZ6J1xuICAgIF0sIFtzZWNvbmRhcnlDb2xvciwgJ00yMzIgMTM2LjdoMzEuN0w1MTIgMzMxLjNsMjQ4LjMtMTk0LjZINzkydi0uN0gyMzJ6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ0MC42IDQ2Mi42YTguMzggOC4zOCAwIDAgMC03LjUtNC42aC00OC44Yy0xLjMgMC0yLjYuNC0zLjkgMWE4LjQgOC40IDAgMCAwLTMuNCAxMS40bDg3LjQgMTYxLjFINDE5Yy00LjYgMC04LjQgMy44LTguNCA4LjRWNjY1YzAgNC42IDMuOCA4LjQgOC40IDguNGg2M1Y3MDJoLTYzYy00LjYgMC04LjQgMy44LTguNCA4LjR2MjUuMWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjN2NDkuOWMwIDQuNiAzLjggOC40IDguNCA4LjRoNDMuN2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTQ5LjloNjMuM2M0LjcgMCA4LjQtMy44IDguMi04LjV2LTI1YzAtNC42LTMuOC04LjQtOC40LTguNGgtNjMuM3YtMjguNmg2My4zYzQuNiAwIDguNC0zLjggOC40LTguNHYtMjUuMWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTQ1LjlsODcuMi0xNjFhOC40NSA4LjQ1IDAgMCAwLTcuNC0xMi40aC00Ny44Yy0zLjEgMC02IDEuOC03LjUgNC42bC03MS45IDE0MS45LTcxLjctMTQyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5SZXN0VHdvVG9uZSA9IGdldEljb24oJ3Jlc3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzI2LjQgODQ0aDM2My4ybDQ0LjMtNTIwSDI4Mmw0NC40IDUyMHpNNTA4IDQxNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NHMtNjQuNSAxNDQtMTQ0IDE0NC0xNDQtNjQuNS0xNDQtMTQ0IDY0LjUtMTQ0IDE0NC0xNDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUwOCA3MDRjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRzLTY0LjUtMTQ0LTE0NC0xNDQtMTQ0IDY0LjUtMTQ0IDE0NCA2NC41IDE0NCAxNDQgMTQ0em0wLTIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MC04MC0zNS44LTgwLTgwIDM1LjgtODAgODAtODB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAgMCAzMS45IDI5LjNoNDI5LjJhMzIgMzIgMCAwIDAgMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUxOC42LTc2aDM5Ny4ybDIyLjQgNzZIMjkxbDIyLjQtNzZ6bTM3Ni4yIDY2NEgzMjYuNEwyODIgMzI0aDQ1MS45bC00NC4zIDUyMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUmlnaHRDaXJjbGVUd29Ub25lID0gZ2V0SWNvbigncmlnaHQtY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE1NC43IDM3OC40bC0yNDYgMTc4Yy01LjMgMy44LTEyLjcgMC0xMi43LTYuNVY2NDNjMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NjYuNiA1MTIgNDIxLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS43IDAgMTIuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NjYuNyA1MDUuNWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjV2NDYuOWMwIDEwLjMgNC45IDE5LjkgMTMuMiAyNS45TDU2Ni42IDUxMiA0MjEuMiA2MTcuMWMtOC4zIDYtMTMuMiAxNS43LTEzLjIgMjUuOXY0Ni45YzAgNi41IDcuNCAxMC4zIDEyLjcgNi41bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUm9ja2V0VHdvVG9uZSA9IGdldEljb24oJ3JvY2tldCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yNjEuNyA2MjEuNGMtOS40IDE0LjYtMTcgMzAuMy0yMi41IDQ2LjZIMzI0VjU1OC43Yy0yNC44IDE2LjItNDYgMzcuNS02Mi4zIDYyLjd6TTcwMCA1NTguN1Y2NjhoODQuOGMtNS41LTE2LjMtMTMuMS0zMi0yMi41LTQ2LjZhMjExLjYgMjExLjYgMCAwIDAtNjIuMy02Mi43em0tNjQtMjM5LjlsLTEyNC0xNDctMTI0IDE0N1Y2NjhoMjQ4VjMxOC44ek01MTIgNDQ4YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDczNmMwLTExMS42LTY1LjQtMjA4LTE2MC0yNTIuOVYzMTcuM2MwLTE1LjEtNS4zLTI5LjctMTUuMS00MS4yTDUzNi41IDk1LjRDNTMwLjEgODcuOCA1MjEgODQgNTEyIDg0cy0xOC4xIDMuOC0yNC41IDExLjRMMzM1LjEgMjc2LjFhNjMuOTcgNjMuOTcgMCAwIDAtMTUuMSA0MS4ydjE2NS44QzIyNS40IDUyOCAxNjAgNjI0LjQgMTYwIDczNmgxNTYuNWMtMi4zIDcuMi0zLjUgMTUtMy41IDIzLjggMCAyMi4xIDcuNiA0My43IDIxLjQgNjAuOGE5Ny4yIDk3LjIgMCAwIDAgNDMuMSAzMC42YzIzLjEgNTQgNzUuNiA4OC44IDEzNC41IDg4LjggMjkuMSAwIDU3LjMtOC42IDgxLjQtMjQuOCAyMy42LTE1LjggNDEuOS0zNy45IDUzLTY0YTk3IDk3IDAgMCAwIDQzLjEtMzAuNSA5Ny41MiA5Ny41MiAwIDAgMCAyMS40LTYwLjhjMC04LjQtMS4xLTE2LjQtMy4xLTIzLjhMODY0IDczNnptLTU0MC02OGgtODQuOGM1LjUtMTYuMyAxMy4xLTMyIDIyLjUtNDYuNiAxNi4zLTI1LjIgMzcuNS00Ni41IDYyLjMtNjIuN1Y2Njh6bTY0LTE4NC45VjMxOC44bDEyNC0xNDcgMTI0IDE0N1Y2NjhIMzg4VjQ4My4xem0yNDAuMSAzMDEuMWMtNS4yIDMtMTEuMiA0LjItMTcuMSAzLjRsLTE5LjUtMi40LTIuOCAxOS40Yy01LjQgMzcuOS0zOC40IDY2LjUtNzYuNyA2Ni41cy03MS4zLTI4LjYtNzYuNy02Ni41bC0yLjgtMTkuNS0xOS41IDIuNWEyNy43IDI3LjcgMCAwIDEtMTcuMS0zLjVjLTguNy01LTE0LjEtMTQuMy0xNC4xLTI0LjQgMC0xMC42IDUuOS0xOS40IDE0LjYtMjMuOGgyMzEuM2M4LjggNC41IDE0LjYgMTMuMyAxNC42IDIzLjgtLjEgMTAuMi01LjUgMTkuNi0xNC4yIDI0LjV6TTcwMCA2NjhWNTU4LjdhMjExLjYgMjExLjYgMCAwIDEgNjIuMyA2Mi43YzkuNCAxNC42IDE3IDMwLjMgMjIuNSA0Ni42SDcwMHonXG4gICAgXSwgW3ByaW1hcnlDb2xvciwgJ000NjQgNDAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHonXSk7XG59KTtcbmV4cG9ydHMuUmlnaHRTcXVhcmVUd29Ub25lID0gZ2V0SWNvbigncmlnaHQtc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yMTYtMTk2LjljMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NTguNiA1MTIgNDEzLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS43IDAgMTIuOWwtMjQ2IDE3OGMtNS4zIDMuOS0xMi43LjEtMTIuNy02LjR2LTQ2Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQxMi43IDY5Ni40bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjV2NDYuOWMwIDEwLjMgNC45IDE5LjkgMTMuMiAyNS45TDU1OC42IDUxMiA0MTMuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS43LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNhZmV0eUNlcnRpZmljYXRlVHdvVG9uZSA9IGdldEljb24oJ3NhZmV0eS1jZXJ0aWZpY2F0ZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6TTYzMi44IDMyOEg2ODhjNi41IDAgMTAuMyA3LjQgNi41IDEyLjdMNDgxLjkgNjMzLjRhMTYuMSAxNi4xIDAgMCAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjIgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkuMSAxNTAuOS0yMDcuOGMzLTQuMSA3LjktNi42IDEzLTYuNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDA0LjIgNDUzLjNjLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAgMCAyNiAwbDIxMi42LTI5Mi43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43aC01NS4yYy01LjEgMC0xMCAyLjUtMTMgNi42TDQ2OC45IDU0Mi40bC02NC43LTg5LjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNhdmVUd29Ub25lID0gZ2V0SWNvbignc2F2ZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MDQgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTg0SDE4NHY2NTZoNjU2VjM0MS44bC0xMzYtMTM2VjMyMHpNNTEyIDczMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA0NDJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NC02NC41LTE0NC0xNDQtMTQ0em0wIDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MCA4MCAzNS44IDgwIDgwLTM1LjggODAtODAgODB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy0uNy0uNy0xLjQtMS4zLTIuMS0yLS4xLS4xLS4zLS4yLS40LS4zLS43LS43LTEuNS0xLjMtMi4yLTEuOWE2NCA2NCAwIDAgMC0yMi0xMS43VjExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM4LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTM4NCAxODRoMjU2djEwNEgzODRWMTg0em00NTYgNjU2SDE4NFYxODRoMTM2djEzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjA1LjhsMTM2IDEzNlY4NDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNjaGVkdWxlVHdvVG9uZSA9IGdldEljb24oJ3NjaGVkdWxlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc2OCAzNTJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01Nkg1NDh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgzMjh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgxMzZ2NDk2aDc1MlYyOTZINzY4djU2ek00MjQgNjg4YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTM2YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTM3NC40LTkxLjJsLTE2NSAyMjguN2ExNS45IDE1LjkgMCAwIDEtMjUuOCAwTDQ5My41IDUzMS4zYy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NC45YzUuMSAwIDkuOSAyLjQgMTIuOSA2LjZsNTIuOCA3My4xIDEwMy42LTE0My43YzMtNC4xIDcuOC02LjYgMTIuOC02LjVoNTQuOWM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzI0LjIgNDU0LjZMNjIwLjYgNTk4LjNsLTUyLjgtNzMuMWMtMy00LjItNy44LTYuNi0xMi45LTYuNkg1MDBjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDExNC4xIDE1OC4yYTE1LjkgMTUuOSAwIDAgMCAyNS44IDBsMTY1LTIyOC43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDczN2MtNS0uMS05LjggMi40LTEyLjggNi41ek00MTYgNDk2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDE2IDYzMkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TZWN1cml0eVNjYW5Ud29Ub25lID0gZ2V0SWNvbignc2VjdXJpdHktc2NhbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ2MC43IDQ1MS4xYTgwLjEgODAuMSAwIDEgMCAxNjAuMiAwIDgwLjEgODAuMSAwIDEgMC0xNjAuMiAweidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6bTQyOC43IDEyMi41YzU2LjMgNTYuMyA1Ni4zIDE0Ny41IDAgMjAzLjgtNDguNSA0OC41LTEyMyA1NS4yLTE3OC42IDIwLjFsLTc3LjUgNzcuNWE4LjAzIDguMDMgMCAwIDEtMTEuMyAwbC0zNC0zNGE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDc3LjUtNzcuNWMtMzUuMS01NS43LTI4LjQtMTMwLjEgMjAuMS0xNzguNiA1Ni4zLTU2LjMgMTQ3LjUtNTYuMyAyMDMuOCAweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000MTguOCA1MjcuOGwtNzcuNSA3Ny41YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzQgMzRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw3Ny41LTc3LjVjNTUuNiAzNS4xIDEzMC4xIDI4LjQgMTc4LjYtMjAuMSA1Ni4zLTU2LjMgNTYuMy0xNDcuNSAwLTIwMy44LTU2LjMtNTYuMy0xNDcuNS01Ni4zLTIwMy44IDAtNDguNSA0OC41LTU1LjIgMTIyLjktMjAuMSAxNzguNnptNjUuNC0xMzMuM2E4MC4xIDgwLjEgMCAwIDEgMTEzLjMgMCA4MC4xIDgwLjEgMCAwIDEgMCAxMTMuM2MtMzEuMyAzMS4zLTgyIDMxLjMtMTEzLjMgMHMtMzEuMy04MiAwLTExMy4zeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TZXR0aW5nVHdvVG9uZSA9IGdldEljb24oJ3NldHRpbmcnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODU5LjMgNTY5LjdsLjIuMWMzLjEtMTguOSA0LjYtMzguMiA0LjYtNTcuMyAwLTE3LjEtMS4zLTM0LjMtMy43LTUxLjEgMi40IDE2LjcgMy42IDMzLjYgMy42IDUwLjUgMCAxOS40LTEuNiAzOC44LTQuNyA1Ny44ek05OSAzOTguMWMtLjUtLjQtLjktLjgtMS40LTEuMy43LjcgMS40IDEuNCAyLjIgMi4xbDY1LjUgNTUuOXYtLjFMOTkgMzk4LjF6bTUzNi42LTIxNmguMWwtMTUuNS04My44Yy0uMi0xLS40LTEuOS0uNy0yLjguMS41LjMgMS4xLjQgMS42bDE1LjcgODV6bTU0IDU0Ni41bDMxLjQtMjUuOCA5Mi44IDMyLjljMTctMjIuOSAzMS4zLTQ3LjUgNDIuNi03My42bC03NC43LTYzLjkgNi42LTQwLjFjMi41LTE1LjEgMy44LTMwLjYgMy44LTQ2LjFzLTEuMy0zMS0zLjgtNDYuMWwtNi41LTM5LjkgNzQuNy02My45Yy0xMS40LTI2LTI1LjYtNTAuNy00Mi42LTczLjZsLTkyLjggMzIuOS0zMS40LTI1LjhjLTIzLjktMTkuNi01MC42LTM1LTc5LjMtNDUuOGwtMzguMS0xNC4zLTE3LjktOTdhMzc3LjUgMzc3LjUgMCAwIDAtODUgMGwtMTcuOSA5Ny4yLTM3LjkgMTQuM2MtMjguNSAxMC44LTU1IDI2LjItNzguNyA0NS43bC0zMS40IDI1LjktOTMuNC0zMy4yYy0xNyAyMi45LTMxLjMgNDcuNS00Mi42IDczLjZsNzUuNSA2NC41LTYuNSA0MGMtMi41IDE0LjktMy43IDMwLjItMy43IDQ1LjUgMCAxNS4yIDEuMyAzMC42IDMuNyA0NS41bDYuNSA0MC03NS41IDY0LjVjMTEuNCAyNiAyNS42IDUwLjcgNDIuNiA3My42bDkzLjQtMzMuMiAzMS40IDI1LjljMjMuNyAxOS41IDUwLjIgMzQuOSA3OC43IDQ1LjdsMzcuOCAxNC41IDE3LjkgOTcuMmMyOC4yIDMuMiA1Ni45IDMuMiA4NSAwbDE3LjktOTcgMzguMS0xNC4zYzI4LjgtMTAuOCA1NS40LTI2LjIgNzkuMy00NS44em0tMTc3LjEtNTAuM2MtMzAuNSAwLTU5LjItNy44LTg0LjMtMjEuNUMzNzMuMyA2MjcgMzM2IDU2OC45IDMzNiA1MDJjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgNjYuOSAwIDEyNSAzNy4zIDE1NC44IDkyLjIgMTMuNyAyNSAyMS41IDUzLjcgMjEuNSA4NC4zIDAgOTcuMS03OC43IDE3NS44LTE3NS44IDE3NS44ek0yMDcuMiA4MTIuOGMtNS41IDEuOS0xMS4yIDIuMy0xNi42IDEuMiA1LjcgMS4yIDExLjcgMSAxNy41LTFsODEuNC0yOWMtLjEtLjEtLjMtLjItLjQtLjNsLTgxLjkgMjkuMXptNzE3LjYtNDE0LjdsLTY1LjUgNTZjMCAuMi4xLjUuMS43bDY1LjQtNTUuOWM3LjEtNi4xIDExLjEtMTQuOSAxMS4yLTI0LS4zIDguOC00LjMgMTcuMy0xMS4yIDIzLjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNOTM1LjggNjQ2LjZjLjUgNC43IDAgOS41LTEuNyAxNC4xbC0uOSAyLjZhNDQ2LjAyIDQ0Ni4wMiAwIDAgMS03OS43IDEzNy45bC0xLjggMi4xYTMyIDMyIDAgMCAxLTM1LjEgOS41bC04MS4zLTI4LjlhMzUwIDM1MCAwIDAgMS05OS43IDU3LjZsLTE1LjcgODVhMzIuMDUgMzIuMDUgMCAwIDEtMjUuOCAyNS43bC0yLjcuNWE0NDUuMiA0NDUuMiAwIDAgMS03OS4yIDcuMWguM2MyNi43IDAgNTMuNC0yLjQgNzkuNC03LjFsMi43LS41YTMyLjA1IDMyLjA1IDAgMCAwIDI1LjgtMjUuN2wxNS43LTg0LjljMzYuMi0xMy42IDY5LjYtMzIuOSA5OS42LTU3LjVsODEuMiAyOC45YTMyIDMyIDAgMCAwIDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjUtODcuNCA3OS42LTEzNy43bC45LTIuNmMxLjYtNC43IDIuMS05LjcgMS41LTE0LjV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4OCA1MDJjMC0zMC4zLTcuNy01OC45LTIxLjItODMuOEM2MzcgMzYzLjMgNTc4LjkgMzI2IDUxMiAzMjZjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgNjYuOSAzNy4zIDEyNSA5Mi4yIDE1NC44IDI0LjkgMTMuNSA1My40IDIxLjIgODMuOCAyMS4yIDk3LjIgMCAxNzYtNzguOCAxNzYtMTc2em0tMjg4IDBjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwIDEgNjI0IDUwMmMwIDI5LjktMTEuNyA1OC0zMi44IDc5LjJBMTExLjYgMTExLjYgMCAwIDEgNTEyIDYxNGMtMjkuOSAwLTU4LTExLjctNzkuMi0zMi44QTExMS42IDExMS42IDAgMCAxIDQwMCA1MDJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU5NC4xIDk1Mi4yYTMyLjA1IDMyLjA1IDAgMCAwIDI1LjgtMjUuN2wxNS43LTg1YTM1MCAzNTAgMCAwIDAgOTkuNy01Ny42bDgxLjMgMjguOWEzMiAzMiAwIDAgMCAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjMS43LTQuNiAyLjItOS40IDEuNy0xNC4xLS45LTcuOS00LjctMTUuNC0xMS0yMC45bC02NS4zLTU1LjktLjItLjFjMy4xLTE5IDQuNy0zOC40IDQuNy01Ny44IDAtMTYuOS0xLjItMzMuOS0zLjYtNTAuNS0uMy0yLjItLjctNC40LTEtNi42IDAtLjItLjEtLjUtLjEtLjdsNjUuNS01NmM2LjktNS45IDEwLjktMTQuNCAxMS4yLTIzLjIuMS00LS41LTguMS0xLjktMTJsLS45LTIuNmE0NDMuNzQgNDQzLjc0IDAgMCAwLTc5LjctMTM3LjlsLTEuOC0yLjFhMzIuMTIgMzIuMTIgMCAwIDAtMzUuMS05LjVsLTgxLjMgMjguOWMtMzAtMjQuNi02My40LTQ0LTk5LjYtNTcuNmgtLjFsLTE1LjctODVjLS4xLS41LS4yLTEuMS0uNC0xLjZhMzIuMDggMzIuMDggMCAwIDAtMjUuNC0yNC4xbC0yLjctLjVjLTUyLjEtOS40LTEwNi45LTkuNC0xNTkgMGwtMi43LjVhMzIuMDUgMzIuMDUgMCAwIDAtMjUuOCAyNS43bC0xNS44IDg1LjRhMzUxLjg2IDM1MS44NiAwIDAgMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwIDAtMzUuMSA5LjVsLTEuOCAyLjFhNDQ2LjAyIDQ0Ni4wMiAwIDAgMC03OS43IDEzNy45bC0uOSAyLjZhMzIuMDkgMzIuMDkgMCAwIDAgNy45IDMzLjljLjUuNC45LjkgMS40IDEuM2w2Ni4zIDU2LjZ2LjFjLTMuMSAxOC44LTQuNiAzNy45LTQuNiA1NyAwIDE5LjIgMS41IDM4LjQgNC42IDU3LjFMOTkgNjI1LjVhMzIuMDMgMzIuMDMgMCAwIDAtOS4zIDM1LjJsLjkgMi42YzE4LjEgNTAuNCA0NC45IDk2LjkgNzkuNyAxMzcuOWwxLjggMi4xYzQuOSA1LjcgMTEuNCA5LjQgMTguNSAxMC43IDUuNCAxIDExLjEuNyAxNi42LTEuMmw4MS45LTI5LjFjLjEuMS4zLjIuNC4zIDI5LjcgMjQuMyA2Mi44IDQzLjYgOTguNiA1Ny4xbDE1LjggODUuNGEzMi4wNSAzMi4wNSAwIDAgMCAyNS44IDI1LjdsMi43LjVjMjYuMSA0LjcgNTIuOCA3LjEgNzkuNSA3LjFoLjNjMjYuNiAwIDUzLjMtMi40IDc5LjItNy4xbDIuNy0uNXptLTM5LjgtNjYuNWEzNzcuNSAzNzcuNSAwIDAgMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwIDEtNDIuNiA3My42TDcyMSA3MDIuOGwtMzEuNCAyNS44Yy0yMy45IDE5LjYtNTAuNSAzNS03OS4zIDQ1LjhsLTM4LjEgMTQuMy0xNy45IDk3eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TaG9wVHdvVG9uZSA9IGdldEljb24oJ3Nob3AnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODM5LjUgMzQ0aC02NTVjLS4zIDAtLjUuMi0uNS41djkxLjJjMCA1OS44IDQ5IDEwOC4zIDEwOS4zIDEwOC4zIDQwLjcgMCA3Ni4yLTIyIDk1LjEtNTQuNyAyLjktNS4xIDguNC04LjMgMTQuMy04LjNzMTEuMyAzLjIgMTQuMyA4LjNjMTguOCAzMi43IDU0LjMgNTQuNyA5NSA1NC43IDQwLjggMCA3Ni40LTIyLjEgOTUuMS01NC45IDIuOS01IDguMi04LjEgMTMuOS04LjFoLjZjNS44IDAgMTEgMy4xIDEzLjkgOC4xIDE4LjggMzIuOCA1NC40IDU0LjkgOTUuMiA1NC45Qzc5MSA1NDQgODQwIDQ5NS41IDg0MCA0MzUuN3YtOTEuMmMwLS4zLS4yLS41LS41LS41eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODIgMjcyLjFWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE3NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTI4LjFjLTE2LjcgMS0zMCAxNC45LTMwIDMxLjl2MTMxLjdhMTc3IDE3NyAwIDAgMCAxNC40IDcwLjRjNC4zIDEwLjIgOS42IDE5LjggMTUuNiAyOC45djM0NWMwIDE3LjYgMTQuMyAzMiAzMiAzMmg2NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTM1YTE3NSAxNzUgMCAwIDAgMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45ek0yMTQgMTg0aDU5NnY4OEgyMTR2LTg4em0zNjIgNjU2LjFINDQ4VjczNmgxMjh2MTA0LjF6bTIzNC40IDBINjQwVjcwNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzNi4xSDIxNFY1OTcuOWMyLjkgMS40IDUuOSAyLjggOSA0IDIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwIDAgMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xczQ4LTQuNyA3MC40LTE0LjFjMy0xLjMgNi0yLjYgOS00djI0Mi4yek04NDAgNDM1LjdjMCA1OS44LTQ5IDEwOC4zLTEwOS4zIDEwOC4zLTQwLjggMC03Ni40LTIyLjEtOTUuMi01NC45LTIuOS01LTguMS04LjEtMTMuOS04LjFoLS42Yy01LjcgMC0xMSAzLjEtMTMuOSA4LjFBMTA5LjI0IDEwOS4yNCAwIDAgMSA1MTIgNTQ0Yy00MC43IDAtNzYuMi0yMi05NS01NC43LTMtNS4xLTguNC04LjMtMTQuMy04LjNzLTExLjQgMy4yLTE0LjMgOC4zYTEwOS42MyAxMDkuNjMgMCAwIDEtOTUuMSA1NC43QzIzMyA1NDQgMTg0IDQ5NS41IDE4NCA0MzUuN3YtOTEuMmMwLS4zLjItLjUuNS0uNWg2NTVjLjMgMCAuNS4yLjUuNXY5MS4yeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TaG9wcGluZ1R3b1RvbmUgPSBnZXRJY29uKCdzaG9wcGluZycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ002OTYgNDcyYzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtODhINDAwdjg4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtODhoLTk2djQ1Nmg1NjBWMzg0aC05NnY4OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDMxMkg2OTZ2LTE2YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NHMtMTg0IDgyLjQtMTg0IDE4NHYxNkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDMyLTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZINDAwdi0xNnptMzkyIDU0NEgyMzJWMzg0aDk2djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDIyNHY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04OGg5NnY0NTZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNraW5Ud29Ub25lID0gZ2V0SWNvbignc2tpbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMzE4Yy03OS4yIDAtMTQ4LjUtNDguOC0xNzYuNy0xMjBIMTgydjE5NmgxMTl2NDMyaDQyMlYzOTRoMTE5VjE5OEg2ODguN2MtMjguMiA3MS4yLTk3LjUgMTIwLTE3Ni43IDEyMHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMCAwLTM3LTI5LjNIMTU0YTQ0IDQ0IDAgMCAwLTQ0IDQ0djI1MmE0NCA0NCAwIDAgMCA0NCA0NGg3NXYzODhhNDQgNDQgMCAwIDAgNDQgNDRoNDc4YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjQ2Nmg3NWE0NCA0NCAwIDAgMCA0NC00NFYxNzBhNDQgNDQgMCAwIDAtNDQtNDR6bS0yOCAyNjhINzIzdjQzMkgzMDFWMzk0SDE4MlYxOThoMTUzLjNjMjguMiA3MS4yIDk3LjUgMTIwIDE3Ni43IDEyMHMxNDguNS00OC44IDE3Ni43LTEyMEg4NDJ2MTk2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TbGlkZXJzVHdvVG9uZSA9IGdldEljb24oJ3NsaWRlcnMnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTgwIDI5Mmg4MHY0NDBoLTgwem0zNjkgMTgwaC03NGEzIDMgMCAwIDAtMyAzdjc0YTMgMyAwIDAgMCAzIDNoNzRhMyAzIDAgMCAwIDMtM3YtNzRhMyAzIDAgMCAwLTMtM3ptMjE1LTEwOGg4MHYyOTZoLTgweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MDQgMjk2aC02NnYtOTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djk2aC02NmMtNC40IDAtOCAzLjYtOCA4djQxNmMwIDQuNCAzLjYgOCA4IDhoNjZ2OTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtOTZoNjZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LTh6bS02MCAzNjRoLTgwVjM2NGg4MHYyOTZ6TTYxMiA0MDRoLTY2VjIzMmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2MTcyaC02NmMtNC40IDAtOCAzLjYtOCA4djIwMGMwIDQuNCAzLjYgOCA4IDhoNjZ2MTcyYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNjIwaDY2YzQuNCAwIDgtMy42IDgtOFY0MTJjMC00LjQtMy42LTgtOC04em0tNjAgMTQ1YTMgMyAwIDAgMS0zIDNoLTc0YTMgMyAwIDAgMS0zLTN2LTc0YTMgMyAwIDAgMSAzLTNoNzRhMyAzIDAgMCAxIDMgM3Y3NHpNMzIwIDIyNGgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0tNjAgNTA4aC04MFYyOTJoODB2NDQweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TbWlsZVR3b1RvbmUgPSBnZXRJY29uKCdzbWlsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0yMjQgMjcyYy04NS41IDAtMTU1LjYtNjcuMy0xNjAtMTUxLjZhOCA4IDAgMCAxIDgtOC40aDQ4LjFjNC4yIDAgNy44IDMuMiA4LjEgNy40QzQyMCA1ODkuOSA0NjEuNSA2MjkgNTEyIDYyOXM5Mi4xLTM5LjEgOTUuOC04OC42Yy4zLTQuMiAzLjktNy40IDguMS03LjRINjY0YTggOCAwIDAgMSA4IDguNEM2NjcuNiA2MjUuNyA1OTcuNSA2OTMgNTEyIDY5M3ptMTc2LTIyNGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI4OCA0MjFhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0zNzYgMTEyaC00OC4xYy00LjIgMC03LjggMy4yLTguMSA3LjQtMy43IDQ5LjUtNDUuMyA4OC42LTk1LjggODguNnMtOTItMzkuMS05NS44LTg4LjZjLS4zLTQuMi0zLjktNy40LTguMS03LjRIMzYwYTggOCAwIDAgMC04IDguNGM0LjQgODQuMyA3NC41IDE1MS42IDE2MCAxNTEuNnMxNTUuNi02Ny4zIDE2MC0xNTEuNmE4IDggMCAwIDAtOC04LjR6bS0yNC0xMTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TbmlwcGV0c1R3b1RvbmUgPSBnZXRJY29uKCdzbmlwcGV0cycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NTAgNTEwVjMzNkgyMzJ2NTUyaDQzMlY1NTBINDkwYy0yMi4xIDAtNDAtMTcuOS00MC00MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA4ODhIMjMyVjMzNmgyMTh2MTc0YzAgMjIuMSAxNy45IDQwIDQwIDQwaDE3NHYzMzh6bTAtNDAySDUxNFYzMzZoLjJMNjY0IDQ4NS44di4yem0xMjggMjc0aC01NlY0NTZMNTQ0IDI2NEgzNjB2LTgwaDY4djMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDE1MnYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmg2OHY1NzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNvdW5kVHdvVG9uZSA9IGdldEljb24oJ3NvdW5kJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTI3NS40IDQyNEgxNDZ2MTc2aDEyOS40bDE4IDExLjdMNTg2IDgwM1YyMjFMMjkzLjMgNDEyLjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg5Mi4xIDczNy44bC0xMTAuMy02My43YTE1LjkgMTUuOSAwIDAgMC0yMS43IDUuOWwtMTkuOSAzNC41Yy00LjQgNy42LTEuOCAxNy40IDUuOCAyMS44TDg1Ni4zIDgwMGExNS45IDE1LjkgMCAwIDAgMjEuNy01LjlsMTkuOS0zNC41YzQuNC03LjYgMS43LTE3LjQtNS44LTIxLjh6TTkzNCA0NzZIODA2Yy04LjggMC0xNiA3LjItMTYgMTZ2NDBjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTQwYzAtOC44LTcuMi0xNi0xNi0xNnpNNzYwIDM0NGExNS45IDE1LjkgMCAwIDAgMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMCAwLTIxLjctNS45TDc0NiAyODcuOGExNS45OSAxNS45OSAwIDAgMC01LjggMjEuOEw3NjAgMzQ0ek02MjUuOSAxMTVjLTUuOSAwLTExLjkgMS42LTE3LjQgNS4zTDI1NCAzNTJIOTBjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDE2NGwzNTQuNSAyMzEuN2M1LjUgMy42IDExLjYgNS4zIDE3LjQgNS4zIDE2LjcgMCAzMi4xLTEzLjMgMzIuMS0zMi4xVjE0Ny4xYzAtMTguOC0xNS40LTMyLjEtMzIuMS0zMi4xek01ODYgODAzTDI5My40IDYxMS43bC0xOC0xMS43SDE0NlY0MjRoMTI5LjRsMTcuOS0xMS43TDU4NiAyMjF2NTgyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TdGFyVHdvVG9uZSA9IGdldEljb24oJ3N0YXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyLjUgMTkwLjRsLTk0LjQgMTkxLjMtMjExLjIgMzAuNyAxNTIuOCAxNDktMzYuMSAyMTAuMyAxODguOS05OS4zIDE4OC45IDk5LjItMzYuMS0yMTAuMyAxNTIuOC0xNDguOS0yMTEuMi0zMC43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MDguNiAzNTIuOGwtMjUzLjktMzYuOUw1NDEuMiA4NS44Yy0zLjEtNi4zLTguMi0xMS40LTE0LjUtMTQuNS0xNS44LTcuOC0zNS0xLjMtNDIuOSAxNC41TDM3MC4zIDMxNS45bC0yNTMuOSAzNi45Yy03IDEtMTMuNCA0LjMtMTguMyA5LjNhMzIuMDUgMzIuMDUgMCAwIDAgLjYgNDUuM2wxODMuNyAxNzkuMUwyMzkgODM5LjRhMzEuOTUgMzEuOTUgMCAwIDAgNDYuNCAzMy43bDIyNy4xLTExOS40IDIyNy4xIDExOS40YzYuMiAzLjMgMTMuNCA0LjQgMjAuMyAzLjIgMTcuNC0zIDI5LjEtMTkuNSAyNi4xLTM2LjlsLTQzLjQtMjUyLjkgMTgzLjctMTc5LjFjNS00LjkgOC4zLTExLjMgOS4zLTE4LjMgMi43LTE3LjUtOS41LTMzLjctMjctMzYuM3pNNjY1LjMgNTYxLjNsMzYuMSAyMTAuMy0xODguOS05OS4yLTE4OC45IDk5LjMgMzYuMS0yMTAuMy0xNTIuOC0xNDkgMjExLjItMzAuNyA5NC40LTE5MS4zIDk0LjQgMTkxLjMgMjExLjIgMzAuNy0xNTIuOCAxNDguOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU3RvcFR3b1RvbmUgPSBnZXRJY29uKCdzdG9wJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjg4LjUgNjgyLjhMMjc3LjcgMjI0QzI1OCAyNDAgMjQwIDI1OCAyMjQgMjc3LjdsNTIyLjggNTIyLjhDNjgyLjggODUyLjcgNjAxIDg4NCA1MTIgODg0Yy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyYzAgODktMzEuMyAxNzAuOC04My41IDIzNC44eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzJjODkgMCAxNzAuOC0zMS4zIDIzNC44LTgzLjVMMjI0IDI3Ny43YzE2LTE5LjcgMzQtMzcuNyA1My43LTUzLjdsNTIyLjggNTIyLjhDODUyLjcgNjgyLjggODg0IDYwMSA4ODQgNTEyYzAtMjA1LjQtMTY2LjYtMzcyLTM3Mi0zNzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlN3aXRjaGVyVHdvVG9uZSA9IGdldEljb24oJ3N3aXRjaGVyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMTg0IDg0MGg1MjhWMzEySDE4NHY1Mjh6bTExNi0yOTBoMjk2djY0SDMwMHYtNjR6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU3NnY1NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTc1MiAyNDBIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI3MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYwMEgxODRWMzEyaDUyOHY1Mjh6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNMzAwIDU1MGgyOTZ2NjRIMzAweiddKTtcbn0pO1xuZXhwb3J0cy5UYWJsZXRUd29Ub25lID0gZ2V0SWNvbigndGFibGV0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MDAgNjRIMjI0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDIzMlYxMzZoNTYwdjc1MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMzIgODg4aDU2MFYxMzZIMjMydjc1MnptMjgwLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNNDcyIDc4NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6J10pO1xufSk7XG5leHBvcnRzLlRhZ1R3b1RvbmUgPSBnZXRJY29uKCd0YWcnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTg5IDE2NC42TDE4OS4zIDU2NC4zbDI3MC40IDI3MC40TDg1OS40IDQzNSA4MzYgMTg4bC0yNDctMjMuNHpNNjgwIDQzMmMtNDguNSAwLTg4LTM5LjUtODgtODhzMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4LTM5LjUgODgtODggODh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4MCAyNTZjLTQ4LjUgMC04OCAzOS41LTg4IDg4czM5LjUgODggODggODggODgtMzkuNSA4OC04OC0zOS41LTg4LTg4LTg4em0wIDEyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkzOCA0NTguOGwtMjkuNi0zMTIuNmMtMS41LTE2LjItMTQuNC0yOS0zMC42LTMwLjZMNTY1LjIgODZoLS40Yy0zLjIgMC01LjcgMS03LjYgMi45TDg4LjkgNTU3LjJhOS45NiA5Ljk2IDAgMCAwIDAgMTQuMWwzNjMuOCAzNjMuOGE5LjkgOS45IDAgMCAwIDcuMSAyLjljMi43IDAgNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTQ1OS43IDgzNC43TDE4OS4zIDU2NC4zIDU4OSAxNjQuNiA4MzYgMTg4bDIzLjQgMjQ3LTM5OS43IDM5OS43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5UYWdzVHdvVG9uZSA9IGdldEljb24oJ3RhZ3MnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDc3LjUgNjk0bDMxMS45LTMxMS44LTE5LTIyNC42LTIyNC42LTE5LTMxMS45IDMxMS45TDQ3Ny41IDY5NHptMTE2LTQxNS41YTQ3LjgxIDQ3LjgxIDAgMCAxIDMzLjktMzMuOWMxNi42LTQuNCAzNC4yLjMgNDYuNCAxMi40YTQ3LjkzIDQ3LjkzIDAgMCAxIDEyLjQgNDYuNCA0Ny44MSA0Ny44MSAwIDAgMS0zMy45IDMzLjljLTE2LjYgNC40LTM0LjItLjMtNDYuNC0xMi40YTQ4LjMgNDguMyAwIDAgMS0xMi40LTQ2LjR6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDc2LjYgNzkyLjZjLTEuNy0uMi0zLjQtMS00LjctMi4zTDEzNy43IDQ1Ni4xYTguMDMgOC4wMyAwIDAgMSAwLTExLjNMNTE1LjkgNjYuNmMxLjItMS4zIDIuOS0yLjEgNC43LTIuM2gtLjRjLTIuMy0uMi00LjcuNi02LjMgMi4zTDEzNS43IDQ0NC44YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzM0LjIgMzM0LjJjMS44IDEuOSA0LjMgMi42IDYuNyAyLjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4OS43IDUzOS44bC0zOS42LTM5LjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzYyIDM2MS4zLTIzNy42LTIzN2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wyNDMuMiAyNDIuOCAzOS42IDM5LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0MDcuMy00MDYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zek02NTIuMyAzMzcuM2E0Ny44MSA0Ny44MSAwIDAgMCAzMy45LTMzLjljNC40LTE2LjYtLjMtMzQuMi0xMi40LTQ2LjRhNDcuOTMgNDcuOTMgMCAwIDAtNDYuNC0xMi40IDQ3LjgxIDQ3LjgxIDAgMCAwLTMzLjkgMzMuOWMtNC40IDE2LjYuMyAzNC4yIDEyLjQgNDYuNGE0OC4zIDQ4LjMgMCAwIDAgNDYuNCAxMi40eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00xMzcuNyA0NDQuOGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMzNC4yIDMzNC4yYzEuMyAxLjMgMi45IDIuMSA0LjcgMi4zIDIuNC4zIDQuOC0uNSA2LjYtMi4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2gtMS42Yy0xLjguMi0zLjQgMS00LjcgMi4zTDEzNy43IDQ0NC44em00MDguMS0zMDYuMmwyMjQuNiAxOSAxOSAyMjQuNkw0NzcuNSA2OTQgMjMzLjkgNDUwLjVsMzExLjktMzExLjl6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlRvb2xUd29Ub25lID0gZ2V0SWNvbigndG9vbCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MDYuOCA0ODguN2EzMi4wNSAzMi4wNSAwIDAgMS00NS4zIDBMNTM3IDM2NC4yYTMyLjA1IDMyLjA1IDAgMCAxIDAtNDUuM2wxMzIuOS0xMzIuOGExODQuMiAxODQuMiAwIDAgMC0xNDQgNTMuNWMtNTguMSA1OC4xLTY5LjMgMTQ1LjMtMzMuNiAyMTQuNkw0MzkuNSA1MDdjLS4xIDAtLjEtLjEtLjEtLjFMMjA5LjMgNzM3bDc5LjIgNzkuMiAyNzQtMjc0LjEuMS4xIDguOC04LjhjNjkuMyAzNS43IDE1Ni41IDI0LjUgMjE0LjYtMzMuNiAzOS4yLTM5LjEgNTcuMy05Mi4xIDUzLjYtMTQzLjlMNzA2LjggNDg4Ljd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg3Ni42IDIzOS41Yy0uNS0uOS0xLjItMS44LTItMi41LTUtNS0xMy4xLTUtMTguMSAwTDY4NC4yIDQwOS4zbC02Ny45LTY3LjlMNzg4LjcgMTY5Yy44LS44IDEuNC0xLjYgMi0yLjUgMy42LTYuMSAxLjYtMTMuOS00LjUtMTcuNS05OC4yLTU4LTIyNi44LTQ0LjctMzExLjMgMzkuNy02NyA2Ny04OS4yIDE2Mi02Ni41IDI0Ny40bC0yOTMgMjkzYy0zIDMtMi44IDcuOS4zIDExbDE2OS43IDE2OS43YzMuMSAzLjEgOC4xIDMuMyAxMSAuM2wyOTIuOS0yOTIuOWM4NS41IDIyLjggMTgwLjUuNyAyNDcuNi02Ni40IDg0LjQtODQuNSA5Ny43LTIxMy4xIDM5LjctMzExLjN6TTc4NiA0OTkuOGMtNTguMSA1OC4xLTE0NS4zIDY5LjMtMjE0LjYgMzMuNmwtOC44IDguOC0uMS0uMS0yNzQgMjc0LjEtNzkuMi03OS4yIDIzMC4xLTIzMC4xczAgLjEuMS4xbDUyLjgtNTIuOGMtMzUuNy02OS4zLTI0LjUtMTU2LjUgMzMuNi0yMTQuNmExODQuMiAxODQuMiAwIDAgMSAxNDQtNTMuNUw1MzcgMzE4LjlhMzIuMDUgMzIuMDUgMCAwIDAgMCA0NS4zbDEyNC41IDEyNC41YTMyLjA1IDMyLjA1IDAgMCAwIDQ1LjMgMGwxMzIuOC0xMzIuOGMzLjcgNTEuOC0xNC40IDEwNC44LTUzLjYgMTQzLjl6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlRyYWRlbWFya0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCd0cmFkZW1hcmstY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTcwLjcgNTg0LjJjLTEuMS41LTIuMy44LTMuNS44aC02MmMtMy4xIDAtNS45LTEuOC03LjItNC42bC03NC42LTE1OS4yaC04OC43VjcxN2MwIDQuNC0zLjYgOC04IDhIMzg0Yy00LjQgMC04LTMuNi04LThWMzA3YzAtNC40IDMuNi04IDgtOGgxNTUuNmM5OC44IDAgMTQ0LjIgNTkuOSAxNDQuMiAxMzEuMSAwIDcwLjItNDMuNiAxMDYuNC03OC40IDExOS4ybDgwLjggMTY0LjJjMi4xIDMuOS40IDguNy0zLjUgMTAuN3onXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MjkuOSAzNTdoLTgzLjR2MTQ4SDUyOGM1MyAwIDgyLjgtMjUuNiA4Mi44LTcyLjQgMC01MC4zLTMyLjktNzUuNi04MC45LTc1LjZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTYwNS40IDU0OS4zYzM0LjgtMTIuOCA3OC40LTQ5IDc4LjQtMTE5LjIgMC03MS4yLTQ1LjQtMTMxLjEtMTQ0LjItMTMxLjFIMzg0Yy00LjQgMC04IDMuNi04IDh2NDEwYzAgNC40IDMuNiA4IDggOGg1NC43YzQuNCAwIDgtMy42IDgtOFY1NjEuMmg4OC43TDYxMCA3MjAuNGMxLjMgMi44IDQuMSA0LjYgNy4yIDQuNmg2MmMxLjIgMCAyLjQtLjMgMy41LS44IDMuOS0yIDUuNi02LjggMy41LTEwLjdsLTgwLjgtMTY0LjJ6TTUyOCA1MDVoLTgxLjVWMzU3aDgzLjRjNDggMCA4MC45IDI1LjMgODAuOSA3NS42IDAgNDYuOC0yOS44IDcyLjQtODIuOCA3Mi40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5VbmxvY2tUd29Ub25lID0gZ2V0SWNvbigndW5sb2NrJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiA4NDBoNTYwVjUzNkgyMzJ2MzA0em0yODAtMjI2YTQ4LjAxIDQ4LjAxIDAgMCAxIDI4IDg3djUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAwIDEgMjgtODd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDAtNTYgMHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMzc2SDIzMlY1MzZoNTYwdjMwNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVHJvcGh5VHdvVG9uZSA9IGdldEljb24oJ3Ryb3BoeScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zMjAgNDgwYzAgNDkuMSAxOS4xIDk1LjMgNTMuOSAxMzAuMSAzNC43IDM0LjggODEgNTMuOSAxMzAuMSA1My45aDE2YzQ5LjEgMCA5NS4zLTE5LjEgMTMwLjEtNTMuOSAzNC44LTM0LjcgNTMuOS04MSA1My45LTEzMC4xVjE4NEgzMjB2Mjk2ek0xODQgMzUyYzAgNDEgMjYuOSA3NS44IDY0IDg3LjYtMzcuMS0xMS45LTY0LTQ2LjctNjQtODcuNnptMzY0IDM4Mi41QzY2NSA3MjEuOCA3NTguNCA2MzAuMiA3NzMuOCA1MTQgNzU4LjMgNjMwLjIgNjY1IDcyMS43IDU0OCA3MzQuNXpNMjUwLjIgNTE0QzI2NS42IDYzMC4yIDM1OSA3MjEuOCA0NzYgNzM0LjUgMzU5IDcyMS43IDI2NS43IDYzMC4yIDI1MC4yIDUxNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY4IDE2MGgtOTJ2LTQwYzAtNC40LTMuNi04LTgtOEgyNTZjLTQuNCAwLTggMy42LTggOHY0MGgtOTJhNDQgNDQgMCAwIDAtNDQgNDR2MTQ4YzAgODEuNyA2MCAxNDkuNiAxMzguMiAxNjJDMjY1LjcgNjMwLjIgMzU5IDcyMS43IDQ3NiA3MzQuNXYxMDUuMkgyODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjkwNGMwIDQuNCAzLjYgOCA4IDhoNTEyYzQuNCAwIDgtMy42IDgtOHYtMzIuM2MwLTE3LjctMTQuMy0zMi0zMi0zMkg1NDhWNzM0LjVDNjY1IDcyMS43IDc1OC4zIDYzMC4yIDc3My44IDUxNCA4NTIgNTAxLjYgOTEyIDQzMy43IDkxMiAzNTJWMjA0YTQ0IDQ0IDAgMCAwLTQ0LTQ0ek0yNDggNDM5LjZhOTEuOTkgOTEuOTkgMCAwIDEtNjQtODcuNlYyMzJoNjR2MjA3LjZ6TTcwNCA0ODBjMCA0OS4xLTE5LjEgOTUuNC01My45IDEzMC4xLTM0LjggMzQuOC04MSA1My45LTEzMC4xIDUzLjloLTE2Yy00OS4xIDAtOTUuNC0xOS4xLTEzMC4xLTUzLjktMzQuOC0zNC44LTUzLjktODEtNTMuOS0xMzAuMVYxODRoMzg0djI5NnptMTM2LTEyOGMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlVwQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3VwLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzggNDc5aC00Ni45Yy0xMC4yIDAtMTkuOS00LjktMjUuOS0xMy4yTDUxMiA0NjAuNCA0MDYuOCA2MDUuOGMtNiA4LjMtMTUuNiAxMy4yLTI1LjkgMTMuMkgzMzRjLTYuNSAwLTEwLjMtNy40LTYuNS0xMi43bDE3OC0yNDZjMy4yLTQuNCA5LjctNC40IDEyLjkgMGwxNzggMjQ2YzMuOSA1LjMuMSAxMi43LTYuNCAxMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxOC40IDM2MC4zYTcuOTUgNy45NSAwIDAgMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43aDQ2LjljMTAuMyAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDYwLjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNyAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi40LTEyLjdsLTE3OC0yNDZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlRodW5kZXJib2x0VHdvVG9uZSA9IGdldEljb24oJ3RodW5kZXJib2x0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTY5NS40IDE2NC4xSDQ3MC44TDI4MS4yIDQ5MS41aDE1Ny40bC02MC4zIDI0MSAzMTkuOC0zMDUuMWgtMjExeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NDguMSAzNTkuM0g2MjcuOEw4MjUuOSAxMDljNC4xLTUuMy40LTEzLTYuMy0xM0g0MzYuMWMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAuMSA1NDcuNWMtMy4xIDUuMy43IDEyIDYuOSAxMmgxNzQuNEwyNjIgOTE3LjFjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjYgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6TTM3OC4zIDczMi41bDYwLjMtMjQxSDI4MS4ybDE4OS42LTMyNy40aDIyNC42TDQ4Ny4xIDQyNy40aDIxMUwzNzguMyA3MzIuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVXBTcXVhcmVUd29Ub25lID0gZ2V0SWNvbigndXAtc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xNDMuNS0yMjguN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN2gtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDY1LjQgNDA2LjggNjEwLjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzM0IDYyNGg0Ni45YzEwLjMgMCAxOS45LTQuOSAyNS45LTEzLjJMNTEyIDQ2NS40bDEwNS4yIDE0NS40YzYgOC4zIDE1LjcgMTMuMiAyNS45IDEzLjJINjkwYzYuNSAwIDEwLjMtNy40IDYuNC0xMi43bC0xNzgtMjQ2YTcuOTUgNy45NSAwIDAgMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Vc2JUd29Ub25lID0gZ2V0SWNvbigndXNiJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc1OS45IDUwNEgyNjQuMWMtMjYuNSAwLTQ4LjEgMTkuNy00OC4xIDQ0djI5Mmg1OTJWNTQ4YzAtMjQuMy0yMS42LTQ0LTQ4LjEtNDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ1NiAyNDhoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xNjAgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTc2MCA0MzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2ek0zMzYgMTg0aDM1MnYyNDhIMzM2VjE4NHptNDcyIDY1NkgyMTZWNTQ4YzAtMjQuMyAyMS42LTQ0IDQ4LjEtNDRoNDk1LjhjMjYuNSAwIDQ4LjEgMTkuNyA0OC4xIDQ0djI5MnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVmlkZW9DYW1lcmFUd29Ub25lID0gZ2V0SWNvbigndmlkZW8tY2FtZXJhJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTEzNiA3OTJoNTc2VjIzMkgxMzZ2NTYwem02NC00ODhjMC00LjQgMy42LTggOC04aDExMmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDIwOGMtNC40IDAtOC0zLjYtOC04di00OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTEyIDMwMi4zTDc4NCAzNzZWMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDU5MmMzNS4zIDAgNjQtMjguNyA2NC02NFY2NDhsMTI4IDczLjdjMjEuMyAxMi4zIDQ4LTMuMSA0OC0yNy42VjMzMGMwLTI0LjYtMjYuNy00MC00OC0yNy43ek03MTIgNzkySDEzNlYyMzJoNTc2djU2MHptMTc2LTE2N2wtMTA0LTU5LjhWNDU4LjlMODg4IDM5OXYyMjZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTIwOCAzNjBoMTEyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDIwOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuV2FsbGV0VHdvVG9uZSA9IGdldEljb24oJ3dhbGxldCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDY0SDUyOFY0NDhoMzEydjEyOHptMC0xOTJINDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzQ0djIwMEgxODRWMTg0aDY1NnYyMDB6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTI4IDU3NmgzMTJWNDQ4SDUyOHYxMjh6bTkyLTEwNGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNNTgwIDUxMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6J10sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWNjQwSDQ5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDM0NFYxODRIMTg0djY1NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuV2FybmluZ1R3b1RvbmUgPSBnZXRJY29uKCd3YXJuaW5nJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NTUuNyA4NTZsLTQxNi03MjBjLTYuMi0xMC43LTE2LjktMTYtMjcuNy0xNnMtMjEuNiA1LjMtMjcuNyAxNmwtNDE2IDcyMEM1NiA4NzcuNCA3MS40IDkwNCA5NiA5MDRoODMyYzI0LjYgMCA0MC0yNi42IDI3LjctNDh6bS03ODMuNS0yNy45TDUxMiAyMzkuOWwzMzkuOCA1ODguMkgxNzIuMnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xNzIuMiA4MjguMWg2NzkuNkw1MTIgMjM5LjkgMTcyLjIgODI4LjF6TTU2MCA3MjBhNDguMDEgNDguMDEgMCAwIDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAgMSA5NiAwem0tMTYtMzA0djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDE2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ2NCA3MjBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0xNi0zMDR2MTg0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDE2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2lUd29Ub25lID0gZ2V0SWNvbignY2knLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tNjMuNSA1MjIuOGM0OS4zIDAgODIuOC0yOS40IDg3LTcyLjQuNC00LjEgMy44LTcuMyA4LTcuM2g1Mi43YzIuNCAwIDQuNCAyIDQuNCA0LjQgMCA3Ny40LTY0LjMgMTMyLjUtMTUyLjMgMTMyLjVDMzQ1LjQgNzIwIDI4NiA2NTEuNCAyODYgNTM3LjR2LTQ5QzI4NiAzNzMuNSAzNDUuNCAzMDQgNDQ4LjMgMzA0Yzg4LjMgMCAxNTIuMyA1Ni45IDE1Mi4zIDEzOC4xIDAgMi40LTIgNC40LTQuNCA0LjRoLTUyLjZjLTQuMiAwLTcuNi0zLjItOC03LjQtMy45LTQ2LjEtMzcuNS03Ny42LTg3LTc3LjYtNjEuMSAwLTk1LjYgNDUuNC05NS43IDEyNi44djQ5LjNjMCA4MC4zIDM0LjUgMTI1LjIgOTUuNiAxMjUuMnpNNzM4IDcwNC4xYzAgNC40LTMuNiA4LTggOGgtNTAuNGMtNC40IDAtOC0zLjYtOC04VjMxOS45YzAtNC40IDMuNi04IDgtOEg3MzBjNC40IDAgOCAzLjYgOCA4djM4NC4yeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ003MzAgMzExLjloLTUwLjRjLTQuNCAwLTggMy42LTggOHYzODQuMmMwIDQuNCAzLjYgOCA4IDhINzMwYzQuNCAwIDgtMy42IDgtOFYzMTkuOWMwLTQuNC0zLjYtOC04LTh6bS0yODEuNCA0OS42YzQ5LjUgMCA4My4xIDMxLjUgODcgNzcuNi40IDQuMiAzLjggNy40IDggNy40aDUyLjZjMi40IDAgNC40LTIgNC40LTQuNCAwLTgxLjItNjQtMTM4LjEtMTUyLjMtMTM4LjFDMzQ1LjQgMzA0IDI4NiAzNzMuNSAyODYgNDg4LjR2NDljMCAxMTQgNTkuNCAxODIuNiAxNjIuMyAxODIuNiA4OCAwIDE1Mi4zLTU1LjEgMTUyLjMtMTMyLjUgMC0yLjQtMi00LjQtNC40LTQuNGgtNTIuN2MtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDMtMzcuNyA3Mi40LTg3IDcyLjQtNjEuMSAwLTk1LjYtNDQuOS05NS42LTEyNS4ydi00OS4zYy4xLTgxLjQgMzQuNi0xMjYuOCA5NS43LTEyNi44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Db3B5cmlnaHRUd29Ub25lID0gZ2V0SWNvbignY29weXJpZ2h0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptNS41IDUzM2M1Mi45IDAgODguOC0zMS43IDkzLTc3LjguNC00LjEgMy44LTcuMyA4LTcuM2g1Ni44YzIuNiAwIDQuNyAyLjEgNC43IDQuNyAwIDgyLjYtNjguNyAxNDEuNC0xNjIuNyAxNDEuNEM0MDcuNCA3MzQgMzQ0IDY2MC44IDM0NCA1MzkuMXYtNTIuM0MzNDQgMzY0LjIgNDA3LjQgMjkwIDUxNy4zIDI5MGM5NC4zIDAgMTYyLjcgNjAuNyAxNjIuNyAxNDcuNCAwIDIuNi0yLjEgNC43LTQuNyA0LjdoLTU2LjdjLTQuMiAwLTcuNy0zLjItOC03LjQtNC00OS42LTQwLTgzLjQtOTMtODMuNC02NS4yIDAtMTAyLjEgNDguNS0xMDIuMiAxMzUuNXY1Mi42YzAgODUuNyAzNi44IDEzMy42IDEwMi4xIDEzMy42eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTcuNiAzNTEuM2M1MyAwIDg5IDMzLjggOTMgODMuNC4zIDQuMiAzLjggNy40IDggNy40aDU2LjdjMi42IDAgNC43LTIuMSA0LjctNC43IDAtODYuNy02OC40LTE0Ny40LTE2Mi43LTE0Ny40QzQwNy40IDI5MCAzNDQgMzY0LjIgMzQ0IDQ4Ni44djUyLjNDMzQ0IDY2MC44IDQwNy40IDczNCA1MTcuMyA3MzRjOTQgMCAxNjIuNy01OC44IDE2Mi43LTE0MS40IDAtMi42LTIuMS00LjctNC43LTQuN2gtNTYuOGMtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDYuMS00MC4xIDc3LjgtOTMgNzcuOC02NS4zIDAtMTAyLjEtNDcuOS0xMDIuMS0xMzMuNnYtNTIuNmMuMS04NyAzNy0xMzUuNSAxMDIuMi0xMzUuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRG9sbGFyVHdvVG9uZSA9IGdldEljb24oJ2RvbGxhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQyNi42IDQxMC4zYzAgMjUuNCAxNS43IDQ1LjEgNDkuNSA1Ny4zIDQuNyAxLjkgOS40IDMuNCAxNSA1di0xMjRjLTM3IDQuNy02NC41IDI1LjQtNjQuNSA2MS43em0xMTYuNSAxMzUuMmMtMi45LS42LTUuNy0xLjMtOC44LTIuMlY2NzdjNDIuNi0zLjggNzItMjcuMyA3Mi02Ni40IDAtMzAuNy0xNS45LTUwLjctNjMuMi02NS4xeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTIyLjQgNTg5LjJsLjIgMzEuN2MwIDQuNS0zLjYgOC4xLTggOC4xaC0yOC40Yy00LjQgMC04LTMuNi04LTh2LTMxLjRjLTg5LTYuNS0xMzAuNy01Ny4xLTEzNS4yLTExMi4xLS40LTQuNyAzLjMtOC43IDgtOC43aDQ2LjJjMy45IDAgNy4zIDIuOCA3LjkgNi42IDUuMSAzMS44IDI5LjkgNTUuNCA3NC4xIDYxLjNWNTM0bC0yNC43LTYuM2MtNTIuMy0xMi41LTEwMi4xLTQ1LjEtMTAyLjEtMTEyLjcgMC03MyA1NS40LTExMi4xIDEyNi4yLTExOXYtMzNjMC00LjQgMy42LTggOC04aDI4LjFjNC40IDAgOCAzLjYgOCA4djMyLjdjNjguNSA2LjkgMTE5LjggNDYuOSAxMjUuOSAxMDkuMmE4LjEgOC4xIDAgMCAxLTggOC44aC00NC45Yy00IDAtNy40LTIuOS03LjktNi45LTQtMjkuMi0yNy41LTUzLTY1LjUtNTguMnYxMzQuM2wyNS40IDUuOWM2NC44IDE2IDEwOC45IDQ3IDEwOSAxMTYuNCAwIDc1LjItNTYgMTE3LjEtMTM0LjMgMTI0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001NTkuNyA0ODguOGwtMjUuNC01LjlWMzQ4LjZjMzggNS4yIDYxLjUgMjkgNjUuNSA1OC4yLjUgNCAzLjkgNi45IDcuOSA2LjloNDQuOWM0LjcgMCA4LjQtNC4xIDgtOC44LTYuMS02Mi4zLTU3LjQtMTAyLjMtMTI1LjktMTA5LjJWMjYzYzAtNC40LTMuNi04LTgtOGgtMjguMWMtNC40IDAtOCAzLjYtOCA4djMzYy03MC44IDYuOS0xMjYuMiA0Ni0xMjYuMiAxMTkgMCA2Ny42IDQ5LjggMTAwLjIgMTAyLjEgMTEyLjdsMjQuNyA2LjN2MTQyLjdjLTQ0LjItNS45LTY5LTI5LjUtNzQuMS02MS4zLS42LTMuOC00LTYuNi03LjktNi42SDM2M2MtNC43IDAtOC40IDQtOCA4LjcgNC41IDU1IDQ2LjIgMTA1LjYgMTM1LjIgMTEyLjFWNzYxYzAgNC40IDMuNiA4IDggOGgyOC40YzQuNCAwIDgtMy42IDgtOC4xbC0uMi0zMS43Yzc4LjMtNi45IDEzNC4zLTQ4LjggMTM0LjMtMTI0LS4xLTY5LjQtNDQuMi0xMDAuNC0xMDktMTE2LjR6bS02OC42LTE2LjJjLTUuNi0xLjYtMTAuMy0zLjEtMTUtNS0zMy44LTEyLjItNDkuNS0zMS45LTQ5LjUtNTcuMyAwLTM2LjMgMjcuNS01NyA2NC41LTYxLjd2MTI0ek01MzQuMyA2NzdWNTQzLjNjMy4xLjkgNS45IDEuNiA4LjggMi4yIDQ3LjMgMTQuNCA2My4yIDM0LjQgNjMuMiA2NS4xIDAgMzkuMS0yOS40IDYyLjYtNzIgNjYuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRXVyb1R3b1RvbmUgPSBnZXRJY29uKCdldXJvJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTE3LjEgNTgxLjFjMCAzLjgtMi43IDctNi40IDcuOC0xNS45IDMuNC0zNC40IDUuMS01NS4zIDUuMS0xMDkuOCAwLTE4My01OC44LTIwMC4yLTE1OEgzMzdjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMjYuMXYtMzYuOWMwLTQuNCAwLTguNy4zLTEyLjhIMzM3Yy00LjQgMC04LTMuNi04LTh2LTI3LjJjMC00LjQgMy42LTggOC04aDMxLjhDMzg4LjUgMzQ1LjcgNDYwLjcgMjkwIDU2Ny40IDI5MGMyMC45IDAgMzkuNCAxLjkgNTUuMyA1LjQgMy43LjggNi4zIDQgNi4zIDcuOFYzNDZhOCA4IDAgMCAxLTkuNiA3LjhjLTE0LjYtMi45LTMxLjgtNC40LTUxLjctNC40LTY1LjMgMC0xMTAuNCAzMy41LTEyNy42IDkwLjRoMTI4LjNjNC40IDAgOCAzLjYgOCA4VjQ3NWMwIDQuNC0zLjYgOC04IDhINDMyLjVjLS4zIDQuNC0uMyA5LjEtLjMgMTMuOHYzNmgxMzYuNGM0LjQgMCA4IDMuNiA4IDhWNTY4YzAgNC40LTMuNiA4LTggOEg0MzhjMTUuMyA2MiA2MS4zIDk4LjYgMTI5LjggOTguNiAxOS45IDAgMzcuMS0xLjMgNTEuOC00LjEgNC45LTEgOS41IDIuOCA5LjUgNy44djQyLjh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTYxOS42IDY3MC41Yy0xNC43IDIuOC0zMS45IDQuMS01MS44IDQuMS02OC41IDAtMTE0LjUtMzYuNi0xMjkuOC05OC42aDEzMC42YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDMyLjJ2LTM2YzAtNC43IDAtOS40LjMtMTMuOGgxMzUuOWM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQ0MC4xYzE3LjItNTYuOSA2Mi4zLTkwLjQgMTI3LjYtOTAuNCAxOS45IDAgMzcuMSAxLjUgNTEuNyA0LjRhOCA4IDAgMCAwIDkuNi03Ljh2LTQyLjhjMC0zLjgtMi42LTctNi4zLTcuOC0xNS45LTMuNS0zNC40LTUuNC01NS4zLTUuNC0xMDYuNyAwLTE3OC45IDU1LjctMTk4LjYgMTQ5LjlIMzM3Yy00LjQgMC04IDMuNi04IDh2MjcuMmMwIDQuNCAzLjYgOCA4IDhoMjYuNGMtLjMgNC4xLS4zIDguNC0uMyAxMi44djM2LjlIMzM3Yy00LjQgMC04IDMuNi04IDhWNTY4YzAgNC40IDMuNiA4IDggOGgzMC4yYzE3LjIgOTkuMiA5MC40IDE1OCAyMDAuMiAxNTggMjAuOSAwIDM5LjQtMS43IDU1LjMtNS4xIDMuNy0uOCA2LjQtNCA2LjQtNy44di00Mi44YzAtNS00LjYtOC44LTkuNS03Ljh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkdvbGRUd29Ub25lID0gZ2V0SWNvbignZ29sZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDM1LjcgNTU4LjdjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMTk2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDE5Ni41em03MDkuNCA1OC43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6TTYyNi41IDc0OGwyMC43LTEyOGgxNTkuNWwyMC43IDEyOEg2MjYuNXpNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4em05MS4yLTE5NmgxNTkuNWwyMC43IDEyOGgtMjAxbDIwLjgtMTI4eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTU5Mi43IDI3Nkg0MzMuMmwtMjAuOCAxMjhoMjAxek0yMTcuMiA2MjBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHptNDMwIDBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2FubGVuZGFyVHdvVG9uZSA9IGdldEljb24oJ2NhbmxlbmRhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MTIgMzA0YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMzg0djQ4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMTg0djEzNmg2NTZWMjU2SDcxMnY0OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFY0NjBoNjU2djM4MHptMC00NDhIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHYxMzZ6J1xuICAgIF0pO1xufSk7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpIHtcbiAgcmV0dXJuICRPYmplY3QuZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYyk7XG59O1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbi8vIDE5LjEuMi40IC8gMTUuMi4zLjYgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpLCAnT2JqZWN0JywgeyBkZWZpbmVQcm9wZXJ0eTogcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZiB9KTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHRpbnljb2xvcjJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwidGlueWNvbG9yMlwiKSk7XG52YXIgaHVlU3RlcCA9IDI7IC8vIOiJsuebuOmYtuair1xudmFyIHNhdHVyYXRpb25TdGVwID0gMTY7IC8vIOmlseWSjOW6pumYtuair++8jOa1heiJsumDqOWIhlxudmFyIHNhdHVyYXRpb25TdGVwMiA9IDU7IC8vIOmlseWSjOW6pumYtuair++8jOa3seiJsumDqOWIhlxudmFyIGJyaWdodG5lc3NTdGVwMSA9IDU7IC8vIOS6ruW6pumYtuair++8jOa1heiJsumDqOWIhlxudmFyIGJyaWdodG5lc3NTdGVwMiA9IDE1OyAvLyDkuq7luqbpmLbmoq/vvIzmt7HoibLpg6jliIZcbnZhciBsaWdodENvbG9yQ291bnQgPSA1OyAvLyDmtYXoibLmlbDph4/vvIzkuLvoibLkuIpcbnZhciBkYXJrQ29sb3JDb3VudCA9IDQ7IC8vIOa3seiJsuaVsOmHj++8jOS4u+iJsuS4i1xuZnVuY3Rpb24gZ2V0SHVlKGhzdiwgaSwgbGlnaHQpIHtcbiAgICB2YXIgaHVlO1xuICAgIC8vIOagueaNruiJsuebuOS4jeWQjO+8jOiJsuebuOi9rOWQkeS4jeWQjFxuICAgIGlmIChNYXRoLnJvdW5kKGhzdi5oKSA+PSA2MCAmJiBNYXRoLnJvdW5kKGhzdi5oKSA8PSAyNDApIHtcbiAgICAgICAgaHVlID0gbGlnaHQgPyBNYXRoLnJvdW5kKGhzdi5oKSAtIGh1ZVN0ZXAgKiBpIDogTWF0aC5yb3VuZChoc3YuaCkgKyBodWVTdGVwICogaTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGh1ZSA9IGxpZ2h0ID8gTWF0aC5yb3VuZChoc3YuaCkgKyBodWVTdGVwICogaSA6IE1hdGgucm91bmQoaHN2LmgpIC0gaHVlU3RlcCAqIGk7XG4gICAgfVxuICAgIGlmIChodWUgPCAwKSB7XG4gICAgICAgIGh1ZSArPSAzNjA7XG4gICAgfVxuICAgIGVsc2UgaWYgKGh1ZSA+PSAzNjApIHtcbiAgICAgICAgaHVlIC09IDM2MDtcbiAgICB9XG4gICAgcmV0dXJuIGh1ZTtcbn1cbmZ1bmN0aW9uIGdldFNhdHVyYXRpb24oaHN2LCBpLCBsaWdodCkge1xuICAgIC8vIGdyZXkgY29sb3IgZG9uJ3QgY2hhbmdlIHNhdHVyYXRpb25cbiAgICBpZiAoaHN2LmggPT09IDAgJiYgaHN2LnMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGhzdi5zO1xuICAgIH1cbiAgICB2YXIgc2F0dXJhdGlvbjtcbiAgICBpZiAobGlnaHQpIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IE1hdGgucm91bmQoaHN2LnMgKiAxMDApIC0gc2F0dXJhdGlvblN0ZXAgKiBpO1xuICAgIH1cbiAgICBlbHNlIGlmIChpID09PSBkYXJrQ29sb3JDb3VudCkge1xuICAgICAgICBzYXR1cmF0aW9uID0gTWF0aC5yb3VuZChoc3YucyAqIDEwMCkgKyBzYXR1cmF0aW9uU3RlcDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHNhdHVyYXRpb24gPSBNYXRoLnJvdW5kKGhzdi5zICogMTAwKSArIHNhdHVyYXRpb25TdGVwMiAqIGk7XG4gICAgfVxuICAgIC8vIOi+ueeVjOWAvOS/ruato1xuICAgIGlmIChzYXR1cmF0aW9uID4gMTAwKSB7XG4gICAgICAgIHNhdHVyYXRpb24gPSAxMDA7XG4gICAgfVxuICAgIC8vIOesrOS4gOagvOeahCBzIOmZkOWItuWcqCA2LTEwIOS5i+mXtFxuICAgIGlmIChsaWdodCAmJiBpID09PSBsaWdodENvbG9yQ291bnQgJiYgc2F0dXJhdGlvbiA+IDEwKSB7XG4gICAgICAgIHNhdHVyYXRpb24gPSAxMDtcbiAgICB9XG4gICAgaWYgKHNhdHVyYXRpb24gPCA2KSB7XG4gICAgICAgIHNhdHVyYXRpb24gPSA2O1xuICAgIH1cbiAgICByZXR1cm4gc2F0dXJhdGlvbjtcbn1cbmZ1bmN0aW9uIGdldFZhbHVlKGhzdiwgaSwgbGlnaHQpIHtcbiAgICBpZiAobGlnaHQpIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoaHN2LnYgKiAxMDApICsgYnJpZ2h0bmVzc1N0ZXAxICogaTtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoaHN2LnYgKiAxMDApIC0gYnJpZ2h0bmVzc1N0ZXAyICogaTtcbn1cbmZ1bmN0aW9uIGdlbmVyYXRlKGNvbG9yKSB7XG4gICAgdmFyIHBhdHRlcm5zID0gW107XG4gICAgdmFyIHBDb2xvciA9IHRpbnljb2xvcjJfMS5kZWZhdWx0KGNvbG9yKTtcbiAgICBmb3IgKHZhciBpID0gbGlnaHRDb2xvckNvdW50OyBpID4gMDsgaSAtPSAxKSB7XG4gICAgICAgIHZhciBoc3YgPSBwQ29sb3IudG9Ic3YoKTtcbiAgICAgICAgdmFyIGNvbG9yU3RyaW5nID0gdGlueWNvbG9yMl8xLmRlZmF1bHQoe1xuICAgICAgICAgICAgaDogZ2V0SHVlKGhzdiwgaSwgdHJ1ZSksXG4gICAgICAgICAgICBzOiBnZXRTYXR1cmF0aW9uKGhzdiwgaSwgdHJ1ZSksXG4gICAgICAgICAgICB2OiBnZXRWYWx1ZShoc3YsIGksIHRydWUpLFxuICAgICAgICB9KS50b0hleFN0cmluZygpO1xuICAgICAgICBwYXR0ZXJucy5wdXNoKGNvbG9yU3RyaW5nKTtcbiAgICB9XG4gICAgcGF0dGVybnMucHVzaChwQ29sb3IudG9IZXhTdHJpbmcoKSk7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gZGFya0NvbG9yQ291bnQ7IGkgKz0gMSkge1xuICAgICAgICB2YXIgaHN2ID0gcENvbG9yLnRvSHN2KCk7XG4gICAgICAgIHZhciBjb2xvclN0cmluZyA9IHRpbnljb2xvcjJfMS5kZWZhdWx0KHtcbiAgICAgICAgICAgIGg6IGdldEh1ZShoc3YsIGkpLFxuICAgICAgICAgICAgczogZ2V0U2F0dXJhdGlvbihoc3YsIGkpLFxuICAgICAgICAgICAgdjogZ2V0VmFsdWUoaHN2LCBpKSxcbiAgICAgICAgfSkudG9IZXhTdHJpbmcoKTtcbiAgICAgICAgcGF0dGVybnMucHVzaChjb2xvclN0cmluZyk7XG4gICAgfVxuICAgIHJldHVybiBwYXR0ZXJucztcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGdlbmVyYXRlO1xuIiwiLy8gVGlueUNvbG9yIHYxLjQuMVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jncmlucy9UaW55Q29sb3Jcbi8vIEJyaWFuIEdyaW5zdGVhZCwgTUlUIExpY2Vuc2VcblxuKGZ1bmN0aW9uKE1hdGgpIHtcblxudmFyIHRyaW1MZWZ0ID0gL15cXHMrLyxcbiAgICB0cmltUmlnaHQgPSAvXFxzKyQvLFxuICAgIHRpbnlDb3VudGVyID0gMCxcbiAgICBtYXRoUm91bmQgPSBNYXRoLnJvdW5kLFxuICAgIG1hdGhNaW4gPSBNYXRoLm1pbixcbiAgICBtYXRoTWF4ID0gTWF0aC5tYXgsXG4gICAgbWF0aFJhbmRvbSA9IE1hdGgucmFuZG9tO1xuXG5mdW5jdGlvbiB0aW55Y29sb3IgKGNvbG9yLCBvcHRzKSB7XG5cbiAgICBjb2xvciA9IChjb2xvcikgPyBjb2xvciA6ICcnO1xuICAgIG9wdHMgPSBvcHRzIHx8IHsgfTtcblxuICAgIC8vIElmIGlucHV0IGlzIGFscmVhZHkgYSB0aW55Y29sb3IsIHJldHVybiBpdHNlbGZcbiAgICBpZiAoY29sb3IgaW5zdGFuY2VvZiB0aW55Y29sb3IpIHtcbiAgICAgICByZXR1cm4gY29sb3I7XG4gICAgfVxuICAgIC8vIElmIHdlIGFyZSBjYWxsZWQgYXMgYSBmdW5jdGlvbiwgY2FsbCB1c2luZyBuZXcgaW5zdGVhZFxuICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiB0aW55Y29sb3IpKSB7XG4gICAgICAgIHJldHVybiBuZXcgdGlueWNvbG9yKGNvbG9yLCBvcHRzKTtcbiAgICB9XG5cbiAgICB2YXIgcmdiID0gaW5wdXRUb1JHQihjb2xvcik7XG4gICAgdGhpcy5fb3JpZ2luYWxJbnB1dCA9IGNvbG9yLFxuICAgIHRoaXMuX3IgPSByZ2IucixcbiAgICB0aGlzLl9nID0gcmdiLmcsXG4gICAgdGhpcy5fYiA9IHJnYi5iLFxuICAgIHRoaXMuX2EgPSByZ2IuYSxcbiAgICB0aGlzLl9yb3VuZEEgPSBtYXRoUm91bmQoMTAwKnRoaXMuX2EpIC8gMTAwLFxuICAgIHRoaXMuX2Zvcm1hdCA9IG9wdHMuZm9ybWF0IHx8IHJnYi5mb3JtYXQ7XG4gICAgdGhpcy5fZ3JhZGllbnRUeXBlID0gb3B0cy5ncmFkaWVudFR5cGU7XG5cbiAgICAvLyBEb24ndCBsZXQgdGhlIHJhbmdlIG9mIFswLDI1NV0gY29tZSBiYWNrIGluIFswLDFdLlxuICAgIC8vIFBvdGVudGlhbGx5IGxvc2UgYSBsaXR0bGUgYml0IG9mIHByZWNpc2lvbiBoZXJlLCBidXQgd2lsbCBmaXggaXNzdWVzIHdoZXJlXG4gICAgLy8gLjUgZ2V0cyBpbnRlcnByZXRlZCBhcyBoYWxmIG9mIHRoZSB0b3RhbCwgaW5zdGVhZCBvZiBoYWxmIG9mIDFcbiAgICAvLyBJZiBpdCB3YXMgc3VwcG9zZWQgdG8gYmUgMTI4LCB0aGlzIHdhcyBhbHJlYWR5IHRha2VuIGNhcmUgb2YgYnkgYGlucHV0VG9SZ2JgXG4gICAgaWYgKHRoaXMuX3IgPCAxKSB7IHRoaXMuX3IgPSBtYXRoUm91bmQodGhpcy5fcik7IH1cbiAgICBpZiAodGhpcy5fZyA8IDEpIHsgdGhpcy5fZyA9IG1hdGhSb3VuZCh0aGlzLl9nKTsgfVxuICAgIGlmICh0aGlzLl9iIDwgMSkgeyB0aGlzLl9iID0gbWF0aFJvdW5kKHRoaXMuX2IpOyB9XG5cbiAgICB0aGlzLl9vayA9IHJnYi5vaztcbiAgICB0aGlzLl90Y19pZCA9IHRpbnlDb3VudGVyKys7XG59XG5cbnRpbnljb2xvci5wcm90b3R5cGUgPSB7XG4gICAgaXNEYXJrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpIDwgMTI4O1xuICAgIH0sXG4gICAgaXNMaWdodDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0RhcmsoKTtcbiAgICB9LFxuICAgIGlzVmFsaWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb2s7XG4gICAgfSxcbiAgICBnZXRPcmlnaW5hbElucHV0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbElucHV0O1xuICAgIH0sXG4gICAgZ2V0Rm9ybWF0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcbiAgICB9LFxuICAgIGdldEFscGhhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2E7XG4gICAgfSxcbiAgICBnZXRCcmlnaHRuZXNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgLy9odHRwOi8vd3d3LnczLm9yZy9UUi9BRVJUI2NvbG9yLWNvbnRyYXN0XG4gICAgICAgIHZhciByZ2IgPSB0aGlzLnRvUmdiKCk7XG4gICAgICAgIHJldHVybiAocmdiLnIgKiAyOTkgKyByZ2IuZyAqIDU4NyArIHJnYi5iICogMTE0KSAvIDEwMDA7XG4gICAgfSxcbiAgICBnZXRMdW1pbmFuY2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAvL2h0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgICAgICAgdmFyIHJnYiA9IHRoaXMudG9SZ2IoKTtcbiAgICAgICAgdmFyIFJzUkdCLCBHc1JHQiwgQnNSR0IsIFIsIEcsIEI7XG4gICAgICAgIFJzUkdCID0gcmdiLnIvMjU1O1xuICAgICAgICBHc1JHQiA9IHJnYi5nLzI1NTtcbiAgICAgICAgQnNSR0IgPSByZ2IuYi8yNTU7XG5cbiAgICAgICAgaWYgKFJzUkdCIDw9IDAuMDM5MjgpIHtSID0gUnNSR0IgLyAxMi45Mjt9IGVsc2Uge1IgPSBNYXRoLnBvdygoKFJzUkdCICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpO31cbiAgICAgICAgaWYgKEdzUkdCIDw9IDAuMDM5MjgpIHtHID0gR3NSR0IgLyAxMi45Mjt9IGVsc2Uge0cgPSBNYXRoLnBvdygoKEdzUkdCICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpO31cbiAgICAgICAgaWYgKEJzUkdCIDw9IDAuMDM5MjgpIHtCID0gQnNSR0IgLyAxMi45Mjt9IGVsc2Uge0IgPSBNYXRoLnBvdygoKEJzUkdCICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpO31cbiAgICAgICAgcmV0dXJuICgwLjIxMjYgKiBSKSArICgwLjcxNTIgKiBHKSArICgwLjA3MjIgKiBCKTtcbiAgICB9LFxuICAgIHNldEFscGhhOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9hID0gYm91bmRBbHBoYSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX3JvdW5kQSA9IG1hdGhSb3VuZCgxMDAqdGhpcy5fYSkgLyAxMDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgdG9Ic3Y6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaHN2ID0gcmdiVG9Ic3YodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYik7XG4gICAgICAgIHJldHVybiB7IGg6IGhzdi5oICogMzYwLCBzOiBoc3YucywgdjogaHN2LnYsIGE6IHRoaXMuX2EgfTtcbiAgICB9LFxuICAgIHRvSHN2U3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhzdiA9IHJnYlRvSHN2KHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IpO1xuICAgICAgICB2YXIgaCA9IG1hdGhSb3VuZChoc3YuaCAqIDM2MCksIHMgPSBtYXRoUm91bmQoaHN2LnMgKiAxMDApLCB2ID0gbWF0aFJvdW5kKGhzdi52ICogMTAwKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9hID09IDEpID9cbiAgICAgICAgICBcImhzdihcIiAgKyBoICsgXCIsIFwiICsgcyArIFwiJSwgXCIgKyB2ICsgXCIlKVwiIDpcbiAgICAgICAgICBcImhzdmEoXCIgKyBoICsgXCIsIFwiICsgcyArIFwiJSwgXCIgKyB2ICsgXCIlLCBcIisgdGhpcy5fcm91bmRBICsgXCIpXCI7XG4gICAgfSxcbiAgICB0b0hzbDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc2wgPSByZ2JUb0hzbCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iKTtcbiAgICAgICAgcmV0dXJuIHsgaDogaHNsLmggKiAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCwgYTogdGhpcy5fYSB9O1xuICAgIH0sXG4gICAgdG9Ic2xTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaHNsID0gcmdiVG9Ic2wodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYik7XG4gICAgICAgIHZhciBoID0gbWF0aFJvdW5kKGhzbC5oICogMzYwKSwgcyA9IG1hdGhSb3VuZChoc2wucyAqIDEwMCksIGwgPSBtYXRoUm91bmQoaHNsLmwgKiAxMDApO1xuICAgICAgICByZXR1cm4gKHRoaXMuX2EgPT0gMSkgP1xuICAgICAgICAgIFwiaHNsKFwiICArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIGwgKyBcIiUpXCIgOlxuICAgICAgICAgIFwiaHNsYShcIiArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIGwgKyBcIiUsIFwiKyB0aGlzLl9yb3VuZEEgKyBcIilcIjtcbiAgICB9LFxuICAgIHRvSGV4OiBmdW5jdGlvbihhbGxvdzNDaGFyKSB7XG4gICAgICAgIHJldHVybiByZ2JUb0hleCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iLCBhbGxvdzNDaGFyKTtcbiAgICB9LFxuICAgIHRvSGV4U3RyaW5nOiBmdW5jdGlvbihhbGxvdzNDaGFyKSB7XG4gICAgICAgIHJldHVybiAnIycgKyB0aGlzLnRvSGV4KGFsbG93M0NoYXIpO1xuICAgIH0sXG4gICAgdG9IZXg4OiBmdW5jdGlvbihhbGxvdzRDaGFyKSB7XG4gICAgICAgIHJldHVybiByZ2JhVG9IZXgodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYiwgdGhpcy5fYSwgYWxsb3c0Q2hhcik7XG4gICAgfSxcbiAgICB0b0hleDhTdHJpbmc6IGZ1bmN0aW9uKGFsbG93NENoYXIpIHtcbiAgICAgICAgcmV0dXJuICcjJyArIHRoaXMudG9IZXg4KGFsbG93NENoYXIpO1xuICAgIH0sXG4gICAgdG9SZ2I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRoUm91bmQodGhpcy5fciksIGc6IG1hdGhSb3VuZCh0aGlzLl9nKSwgYjogbWF0aFJvdW5kKHRoaXMuX2IpLCBhOiB0aGlzLl9hIH07XG4gICAgfSxcbiAgICB0b1JnYlN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5fYSA9PSAxKSA/XG4gICAgICAgICAgXCJyZ2IoXCIgICsgbWF0aFJvdW5kKHRoaXMuX3IpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2cpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2IpICsgXCIpXCIgOlxuICAgICAgICAgIFwicmdiYShcIiArIG1hdGhSb3VuZCh0aGlzLl9yKSArIFwiLCBcIiArIG1hdGhSb3VuZCh0aGlzLl9nKSArIFwiLCBcIiArIG1hdGhSb3VuZCh0aGlzLl9iKSArIFwiLCBcIiArIHRoaXMuX3JvdW5kQSArIFwiKVwiO1xuICAgIH0sXG4gICAgdG9QZXJjZW50YWdlUmdiOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHsgcjogbWF0aFJvdW5kKGJvdW5kMDEodGhpcy5fciwgMjU1KSAqIDEwMCkgKyBcIiVcIiwgZzogbWF0aFJvdW5kKGJvdW5kMDEodGhpcy5fZywgMjU1KSAqIDEwMCkgKyBcIiVcIiwgYjogbWF0aFJvdW5kKGJvdW5kMDEodGhpcy5fYiwgMjU1KSAqIDEwMCkgKyBcIiVcIiwgYTogdGhpcy5fYSB9O1xuICAgIH0sXG4gICAgdG9QZXJjZW50YWdlUmdiU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9hID09IDEpID9cbiAgICAgICAgICBcInJnYihcIiAgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9yLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9nLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9iLCAyNTUpICogMTAwKSArIFwiJSlcIiA6XG4gICAgICAgICAgXCJyZ2JhKFwiICsgbWF0aFJvdW5kKGJvdW5kMDEodGhpcy5fciwgMjU1KSAqIDEwMCkgKyBcIiUsIFwiICsgbWF0aFJvdW5kKGJvdW5kMDEodGhpcy5fZywgMjU1KSAqIDEwMCkgKyBcIiUsIFwiICsgbWF0aFJvdW5kKGJvdW5kMDEodGhpcy5fYiwgMjU1KSAqIDEwMCkgKyBcIiUsIFwiICsgdGhpcy5fcm91bmRBICsgXCIpXCI7XG4gICAgfSxcbiAgICB0b05hbWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5fYSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFwidHJhbnNwYXJlbnRcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9hIDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhleE5hbWVzW3JnYlRvSGV4KHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IsIHRydWUpXSB8fCBmYWxzZTtcbiAgICB9LFxuICAgIHRvRmlsdGVyOiBmdW5jdGlvbihzZWNvbmRDb2xvcikge1xuICAgICAgICB2YXIgaGV4OFN0cmluZyA9ICcjJyArIHJnYmFUb0FyZ2JIZXgodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYiwgdGhpcy5fYSk7XG4gICAgICAgIHZhciBzZWNvbmRIZXg4U3RyaW5nID0gaGV4OFN0cmluZztcbiAgICAgICAgdmFyIGdyYWRpZW50VHlwZSA9IHRoaXMuX2dyYWRpZW50VHlwZSA/IFwiR3JhZGllbnRUeXBlID0gMSwgXCIgOiBcIlwiO1xuXG4gICAgICAgIGlmIChzZWNvbmRDb2xvcikge1xuICAgICAgICAgICAgdmFyIHMgPSB0aW55Y29sb3Ioc2Vjb25kQ29sb3IpO1xuICAgICAgICAgICAgc2Vjb25kSGV4OFN0cmluZyA9ICcjJyArIHJnYmFUb0FyZ2JIZXgocy5fciwgcy5fZywgcy5fYiwgcy5fYSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoXCIrZ3JhZGllbnRUeXBlK1wic3RhcnRDb2xvcnN0cj1cIitoZXg4U3RyaW5nK1wiLGVuZENvbG9yc3RyPVwiK3NlY29uZEhleDhTdHJpbmcrXCIpXCI7XG4gICAgfSxcbiAgICB0b1N0cmluZzogZnVuY3Rpb24oZm9ybWF0KSB7XG4gICAgICAgIHZhciBmb3JtYXRTZXQgPSAhIWZvcm1hdDtcbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8IHRoaXMuX2Zvcm1hdDtcblxuICAgICAgICB2YXIgZm9ybWF0dGVkU3RyaW5nID0gZmFsc2U7XG4gICAgICAgIHZhciBoYXNBbHBoYSA9IHRoaXMuX2EgPCAxICYmIHRoaXMuX2EgPj0gMDtcbiAgICAgICAgdmFyIG5lZWRzQWxwaGFGb3JtYXQgPSAhZm9ybWF0U2V0ICYmIGhhc0FscGhhICYmIChmb3JtYXQgPT09IFwiaGV4XCIgfHwgZm9ybWF0ID09PSBcImhleDZcIiB8fCBmb3JtYXQgPT09IFwiaGV4M1wiIHx8IGZvcm1hdCA9PT0gXCJoZXg0XCIgfHwgZm9ybWF0ID09PSBcImhleDhcIiB8fCBmb3JtYXQgPT09IFwibmFtZVwiKTtcblxuICAgICAgICBpZiAobmVlZHNBbHBoYUZvcm1hdCkge1xuICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBcInRyYW5zcGFyZW50XCIsIGFsbCBvdGhlciBub24tYWxwaGEgZm9ybWF0c1xuICAgICAgICAgICAgLy8gd2lsbCByZXR1cm4gcmdiYSB3aGVuIHRoZXJlIGlzIHRyYW5zcGFyZW5jeS5cbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09IFwibmFtZVwiICYmIHRoaXMuX2EgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b05hbWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJyZ2JcIikge1xuICAgICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhpcy50b1JnYlN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwicHJnYlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvUGVyY2VudGFnZVJnYlN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4XCIgfHwgZm9ybWF0ID09PSBcImhleDZcIikge1xuICAgICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhpcy50b0hleFN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4M1wiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4U3RyaW5nKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4NFwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4OFN0cmluZyh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhleDhcIikge1xuICAgICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhpcy50b0hleDhTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcIm5hbWVcIikge1xuICAgICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhpcy50b05hbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhzbFwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSHNsU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoc3ZcIikge1xuICAgICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhpcy50b0hzdlN0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFN0cmluZyB8fCB0aGlzLnRvSGV4U3RyaW5nKCk7XG4gICAgfSxcbiAgICBjbG9uZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aW55Y29sb3IodGhpcy50b1N0cmluZygpKTtcbiAgICB9LFxuXG4gICAgX2FwcGx5TW9kaWZpY2F0aW9uOiBmdW5jdGlvbihmbiwgYXJncykge1xuICAgICAgICB2YXIgY29sb3IgPSBmbi5hcHBseShudWxsLCBbdGhpc10uY29uY2F0KFtdLnNsaWNlLmNhbGwoYXJncykpKTtcbiAgICAgICAgdGhpcy5fciA9IGNvbG9yLl9yO1xuICAgICAgICB0aGlzLl9nID0gY29sb3IuX2c7XG4gICAgICAgIHRoaXMuX2IgPSBjb2xvci5fYjtcbiAgICAgICAgdGhpcy5zZXRBbHBoYShjb2xvci5fYSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgbGlnaHRlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihsaWdodGVuLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgYnJpZ2h0ZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oYnJpZ2h0ZW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBkYXJrZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oZGFya2VuLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgZGVzYXR1cmF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihkZXNhdHVyYXRlLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgc2F0dXJhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oc2F0dXJhdGUsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBncmV5c2NhbGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oZ3JleXNjYWxlLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgc3BpbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihzcGluLCBhcmd1bWVudHMpO1xuICAgIH0sXG5cbiAgICBfYXBwbHlDb21iaW5hdGlvbjogZnVuY3Rpb24oZm4sIGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbChhcmdzKSkpO1xuICAgIH0sXG4gICAgYW5hbG9nb3VzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oYW5hbG9nb3VzLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgY29tcGxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKGNvbXBsZW1lbnQsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBtb25vY2hyb21hdGljOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24obW9ub2Nocm9tYXRpYywgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIHNwbGl0Y29tcGxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHNwbGl0Y29tcGxlbWVudCwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIHRyaWFkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24odHJpYWQsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICB0ZXRyYWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbih0ZXRyYWQsIGFyZ3VtZW50cyk7XG4gICAgfVxufTtcblxuLy8gSWYgaW5wdXQgaXMgYW4gb2JqZWN0LCBmb3JjZSAxIGludG8gXCIxLjBcIiB0byBoYW5kbGUgcmF0aW9zIHByb3Blcmx5XG4vLyBTdHJpbmcgaW5wdXQgcmVxdWlyZXMgXCIxLjBcIiBhcyBpbnB1dCwgc28gMSB3aWxsIGJlIHRyZWF0ZWQgYXMgMVxudGlueWNvbG9yLmZyb21SYXRpbyA9IGZ1bmN0aW9uKGNvbG9yLCBvcHRzKSB7XG4gICAgaWYgKHR5cGVvZiBjb2xvciA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHZhciBuZXdDb2xvciA9IHt9O1xuICAgICAgICBmb3IgKHZhciBpIGluIGNvbG9yKSB7XG4gICAgICAgICAgICBpZiAoY29sb3IuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gXCJhXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sb3JbaV0gPSBjb2xvcltpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbG9yW2ldID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvcltpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbG9yID0gbmV3Q29sb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRpbnljb2xvcihjb2xvciwgb3B0cyk7XG59O1xuXG4vLyBHaXZlbiBhIHN0cmluZyBvciBvYmplY3QsIGNvbnZlcnQgdGhhdCBpbnB1dCB0byBSR0Jcbi8vIFBvc3NpYmxlIHN0cmluZyBpbnB1dHM6XG4vL1xuLy8gICAgIFwicmVkXCJcbi8vICAgICBcIiNmMDBcIiBvciBcImYwMFwiXG4vLyAgICAgXCIjZmYwMDAwXCIgb3IgXCJmZjAwMDBcIlxuLy8gICAgIFwiI2ZmMDAwMDAwXCIgb3IgXCJmZjAwMDAwMFwiXG4vLyAgICAgXCJyZ2IgMjU1IDAgMFwiIG9yIFwicmdiICgyNTUsIDAsIDApXCJcbi8vICAgICBcInJnYiAxLjAgMCAwXCIgb3IgXCJyZ2IgKDEsIDAsIDApXCJcbi8vICAgICBcInJnYmEgKDI1NSwgMCwgMCwgMSlcIiBvciBcInJnYmEgMjU1LCAwLCAwLCAxXCJcbi8vICAgICBcInJnYmEgKDEuMCwgMCwgMCwgMSlcIiBvciBcInJnYmEgMS4wLCAwLCAwLCAxXCJcbi8vICAgICBcImhzbCgwLCAxMDAlLCA1MCUpXCIgb3IgXCJoc2wgMCAxMDAlIDUwJVwiXG4vLyAgICAgXCJoc2xhKDAsIDEwMCUsIDUwJSwgMSlcIiBvciBcImhzbGEgMCAxMDAlIDUwJSwgMVwiXG4vLyAgICAgXCJoc3YoMCwgMTAwJSwgMTAwJSlcIiBvciBcImhzdiAwIDEwMCUgMTAwJVwiXG4vL1xuZnVuY3Rpb24gaW5wdXRUb1JHQihjb2xvcikge1xuXG4gICAgdmFyIHJnYiA9IHsgcjogMCwgZzogMCwgYjogMCB9O1xuICAgIHZhciBhID0gMTtcbiAgICB2YXIgcyA9IG51bGw7XG4gICAgdmFyIHYgPSBudWxsO1xuICAgIHZhciBsID0gbnVsbDtcbiAgICB2YXIgb2sgPSBmYWxzZTtcbiAgICB2YXIgZm9ybWF0ID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGNvbG9yID09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29sb3IgPSBzdHJpbmdJbnB1dFRvT2JqZWN0KGNvbG9yKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbG9yID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgaWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLnIpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLmcpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLmIpKSB7XG4gICAgICAgICAgICByZ2IgPSByZ2JUb1JnYihjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iKTtcbiAgICAgICAgICAgIG9rID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvcm1hdCA9IFN0cmluZyhjb2xvci5yKS5zdWJzdHIoLTEpID09PSBcIiVcIiA/IFwicHJnYlwiIDogXCJyZ2JcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1ZhbGlkQ1NTVW5pdChjb2xvci5oKSAmJiBpc1ZhbGlkQ1NTVW5pdChjb2xvci5zKSAmJiBpc1ZhbGlkQ1NTVW5pdChjb2xvci52KSkge1xuICAgICAgICAgICAgcyA9IGNvbnZlcnRUb1BlcmNlbnRhZ2UoY29sb3Iucyk7XG4gICAgICAgICAgICB2ID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci52KTtcbiAgICAgICAgICAgIHJnYiA9IGhzdlRvUmdiKGNvbG9yLmgsIHMsIHYpO1xuICAgICAgICAgICAgb2sgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybWF0ID0gXCJoc3ZcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1ZhbGlkQ1NTVW5pdChjb2xvci5oKSAmJiBpc1ZhbGlkQ1NTVW5pdChjb2xvci5zKSAmJiBpc1ZhbGlkQ1NTVW5pdChjb2xvci5sKSkge1xuICAgICAgICAgICAgcyA9IGNvbnZlcnRUb1BlcmNlbnRhZ2UoY29sb3Iucyk7XG4gICAgICAgICAgICBsID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci5sKTtcbiAgICAgICAgICAgIHJnYiA9IGhzbFRvUmdiKGNvbG9yLmgsIHMsIGwpO1xuICAgICAgICAgICAgb2sgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybWF0ID0gXCJoc2xcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2xvci5oYXNPd25Qcm9wZXJ0eShcImFcIikpIHtcbiAgICAgICAgICAgIGEgPSBjb2xvci5hO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSA9IGJvdW5kQWxwaGEoYSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBvazogb2ssXG4gICAgICAgIGZvcm1hdDogY29sb3IuZm9ybWF0IHx8IGZvcm1hdCxcbiAgICAgICAgcjogbWF0aE1pbigyNTUsIG1hdGhNYXgocmdiLnIsIDApKSxcbiAgICAgICAgZzogbWF0aE1pbigyNTUsIG1hdGhNYXgocmdiLmcsIDApKSxcbiAgICAgICAgYjogbWF0aE1pbigyNTUsIG1hdGhNYXgocmdiLmIsIDApKSxcbiAgICAgICAgYTogYVxuICAgIH07XG59XG5cblxuLy8gQ29udmVyc2lvbiBGdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGByZ2JUb0hzbGAsIGByZ2JUb0hzdmAsIGBoc2xUb1JnYmAsIGBoc3ZUb1JnYmAgbW9kaWZpZWQgZnJvbTpcbi8vIDxodHRwOi8vbWppamFja3Nvbi5jb20vMjAwOC8wMi9yZ2ItdG8taHNsLWFuZC1yZ2ItdG8taHN2LWNvbG9yLW1vZGVsLWNvbnZlcnNpb24tYWxnb3JpdGhtcy1pbi1qYXZhc2NyaXB0PlxuXG4vLyBgcmdiVG9SZ2JgXG4vLyBIYW5kbGUgYm91bmRzIC8gcGVyY2VudGFnZSBjaGVja2luZyB0byBjb25mb3JtIHRvIENTUyBjb2xvciBzcGVjXG4vLyA8aHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1jb2xvci8+XG4vLyAqQXNzdW1lczoqIHIsIGcsIGIgaW4gWzAsIDI1NV0gb3IgWzAsIDFdXG4vLyAqUmV0dXJuczoqIHsgciwgZywgYiB9IGluIFswLCAyNTVdXG5mdW5jdGlvbiByZ2JUb1JnYihyLCBnLCBiKXtcbiAgICByZXR1cm4ge1xuICAgICAgICByOiBib3VuZDAxKHIsIDI1NSkgKiAyNTUsXG4gICAgICAgIGc6IGJvdW5kMDEoZywgMjU1KSAqIDI1NSxcbiAgICAgICAgYjogYm91bmQwMShiLCAyNTUpICogMjU1XG4gICAgfTtcbn1cblxuLy8gYHJnYlRvSHNsYFxuLy8gQ29udmVydHMgYW4gUkdCIGNvbG9yIHZhbHVlIHRvIEhTTC5cbi8vICpBc3N1bWVzOiogciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiBbMCwgMjU1XSBvciBbMCwgMV1cbi8vICpSZXR1cm5zOiogeyBoLCBzLCBsIH0gaW4gWzAsMV1cbmZ1bmN0aW9uIHJnYlRvSHNsKHIsIGcsIGIpIHtcblxuICAgIHIgPSBib3VuZDAxKHIsIDI1NSk7XG4gICAgZyA9IGJvdW5kMDEoZywgMjU1KTtcbiAgICBiID0gYm91bmQwMShiLCAyNTUpO1xuXG4gICAgdmFyIG1heCA9IG1hdGhNYXgociwgZywgYiksIG1pbiA9IG1hdGhNaW4ociwgZywgYik7XG4gICAgdmFyIGgsIHMsIGwgPSAobWF4ICsgbWluKSAvIDI7XG5cbiAgICBpZihtYXggPT0gbWluKSB7XG4gICAgICAgIGggPSBzID0gMDsgLy8gYWNocm9tYXRpY1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIGQgPSBtYXggLSBtaW47XG4gICAgICAgIHMgPSBsID4gMC41ID8gZCAvICgyIC0gbWF4IC0gbWluKSA6IGQgLyAobWF4ICsgbWluKTtcbiAgICAgICAgc3dpdGNoKG1heCkge1xuICAgICAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSAvIGQgKyAoZyA8IGIgPyA2IDogMCk7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSAvIGQgKyAyOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgYjogaCA9IChyIC0gZykgLyBkICsgNDsgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBoIC89IDY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaDogaCwgczogcywgbDogbCB9O1xufVxuXG4vLyBgaHNsVG9SZ2JgXG4vLyBDb252ZXJ0cyBhbiBIU0wgY29sb3IgdmFsdWUgdG8gUkdCLlxuLy8gKkFzc3VtZXM6KiBoIGlzIGNvbnRhaW5lZCBpbiBbMCwgMV0gb3IgWzAsIDM2MF0gYW5kIHMgYW5kIGwgYXJlIGNvbnRhaW5lZCBbMCwgMV0gb3IgWzAsIDEwMF1cbi8vICpSZXR1cm5zOiogeyByLCBnLCBiIH0gaW4gdGhlIHNldCBbMCwgMjU1XVxuZnVuY3Rpb24gaHNsVG9SZ2IoaCwgcywgbCkge1xuICAgIHZhciByLCBnLCBiO1xuXG4gICAgaCA9IGJvdW5kMDEoaCwgMzYwKTtcbiAgICBzID0gYm91bmQwMShzLCAxMDApO1xuICAgIGwgPSBib3VuZDAxKGwsIDEwMCk7XG5cbiAgICBmdW5jdGlvbiBodWUycmdiKHAsIHEsIHQpIHtcbiAgICAgICAgaWYodCA8IDApIHQgKz0gMTtcbiAgICAgICAgaWYodCA+IDEpIHQgLT0gMTtcbiAgICAgICAgaWYodCA8IDEvNikgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XG4gICAgICAgIGlmKHQgPCAxLzIpIHJldHVybiBxO1xuICAgICAgICBpZih0IDwgMi8zKSByZXR1cm4gcCArIChxIC0gcCkgKiAoMi8zIC0gdCkgKiA2O1xuICAgICAgICByZXR1cm4gcDtcbiAgICB9XG5cbiAgICBpZihzID09PSAwKSB7XG4gICAgICAgIHIgPSBnID0gYiA9IGw7IC8vIGFjaHJvbWF0aWNcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHZhciBxID0gbCA8IDAuNSA/IGwgKiAoMSArIHMpIDogbCArIHMgLSBsICogcztcbiAgICAgICAgdmFyIHAgPSAyICogbCAtIHE7XG4gICAgICAgIHIgPSBodWUycmdiKHAsIHEsIGggKyAxLzMpO1xuICAgICAgICBnID0gaHVlMnJnYihwLCBxLCBoKTtcbiAgICAgICAgYiA9IGh1ZTJyZ2IocCwgcSwgaCAtIDEvMyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcjogciAqIDI1NSwgZzogZyAqIDI1NSwgYjogYiAqIDI1NSB9O1xufVxuXG4vLyBgcmdiVG9Ic3ZgXG4vLyBDb252ZXJ0cyBhbiBSR0IgY29sb3IgdmFsdWUgdG8gSFNWXG4vLyAqQXNzdW1lczoqIHIsIGcsIGFuZCBiIGFyZSBjb250YWluZWQgaW4gdGhlIHNldCBbMCwgMjU1XSBvciBbMCwgMV1cbi8vICpSZXR1cm5zOiogeyBoLCBzLCB2IH0gaW4gWzAsMV1cbmZ1bmN0aW9uIHJnYlRvSHN2KHIsIGcsIGIpIHtcblxuICAgIHIgPSBib3VuZDAxKHIsIDI1NSk7XG4gICAgZyA9IGJvdW5kMDEoZywgMjU1KTtcbiAgICBiID0gYm91bmQwMShiLCAyNTUpO1xuXG4gICAgdmFyIG1heCA9IG1hdGhNYXgociwgZywgYiksIG1pbiA9IG1hdGhNaW4ociwgZywgYik7XG4gICAgdmFyIGgsIHMsIHYgPSBtYXg7XG5cbiAgICB2YXIgZCA9IG1heCAtIG1pbjtcbiAgICBzID0gbWF4ID09PSAwID8gMCA6IGQgLyBtYXg7XG5cbiAgICBpZihtYXggPT0gbWluKSB7XG4gICAgICAgIGggPSAwOyAvLyBhY2hyb21hdGljXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzd2l0Y2gobWF4KSB7XG4gICAgICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpIC8gZCArIDI7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSAvIGQgKyA0OyBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBoIC89IDY7XG4gICAgfVxuICAgIHJldHVybiB7IGg6IGgsIHM6IHMsIHY6IHYgfTtcbn1cblxuLy8gYGhzdlRvUmdiYFxuLy8gQ29udmVydHMgYW4gSFNWIGNvbG9yIHZhbHVlIHRvIFJHQi5cbi8vICpBc3N1bWVzOiogaCBpcyBjb250YWluZWQgaW4gWzAsIDFdIG9yIFswLCAzNjBdIGFuZCBzIGFuZCB2IGFyZSBjb250YWluZWQgaW4gWzAsIDFdIG9yIFswLCAxMDBdXG4vLyAqUmV0dXJuczoqIHsgciwgZywgYiB9IGluIHRoZSBzZXQgWzAsIDI1NV1cbiBmdW5jdGlvbiBoc3ZUb1JnYihoLCBzLCB2KSB7XG5cbiAgICBoID0gYm91bmQwMShoLCAzNjApICogNjtcbiAgICBzID0gYm91bmQwMShzLCAxMDApO1xuICAgIHYgPSBib3VuZDAxKHYsIDEwMCk7XG5cbiAgICB2YXIgaSA9IE1hdGguZmxvb3IoaCksXG4gICAgICAgIGYgPSBoIC0gaSxcbiAgICAgICAgcCA9IHYgKiAoMSAtIHMpLFxuICAgICAgICBxID0gdiAqICgxIC0gZiAqIHMpLFxuICAgICAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpLFxuICAgICAgICBtb2QgPSBpICUgNixcbiAgICAgICAgciA9IFt2LCBxLCBwLCBwLCB0LCB2XVttb2RdLFxuICAgICAgICBnID0gW3QsIHYsIHYsIHEsIHAsIHBdW21vZF0sXG4gICAgICAgIGIgPSBbcCwgcCwgdCwgdiwgdiwgcV1bbW9kXTtcblxuICAgIHJldHVybiB7IHI6IHIgKiAyNTUsIGc6IGcgKiAyNTUsIGI6IGIgKiAyNTUgfTtcbn1cblxuLy8gYHJnYlRvSGV4YFxuLy8gQ29udmVydHMgYW4gUkdCIGNvbG9yIHRvIGhleFxuLy8gQXNzdW1lcyByLCBnLCBhbmQgYiBhcmUgY29udGFpbmVkIGluIHRoZSBzZXQgWzAsIDI1NV1cbi8vIFJldHVybnMgYSAzIG9yIDYgY2hhcmFjdGVyIGhleFxuZnVuY3Rpb24gcmdiVG9IZXgociwgZywgYiwgYWxsb3czQ2hhcikge1xuXG4gICAgdmFyIGhleCA9IFtcbiAgICAgICAgcGFkMihtYXRoUm91bmQocikudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoZykudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoYikudG9TdHJpbmcoMTYpKVxuICAgIF07XG5cbiAgICAvLyBSZXR1cm4gYSAzIGNoYXJhY3RlciBoZXggaWYgcG9zc2libGVcbiAgICBpZiAoYWxsb3czQ2hhciAmJiBoZXhbMF0uY2hhckF0KDApID09IGhleFswXS5jaGFyQXQoMSkgJiYgaGV4WzFdLmNoYXJBdCgwKSA9PSBoZXhbMV0uY2hhckF0KDEpICYmIGhleFsyXS5jaGFyQXQoMCkgPT0gaGV4WzJdLmNoYXJBdCgxKSkge1xuICAgICAgICByZXR1cm4gaGV4WzBdLmNoYXJBdCgwKSArIGhleFsxXS5jaGFyQXQoMCkgKyBoZXhbMl0uY2hhckF0KDApO1xuICAgIH1cblxuICAgIHJldHVybiBoZXguam9pbihcIlwiKTtcbn1cblxuLy8gYHJnYmFUb0hleGBcbi8vIENvbnZlcnRzIGFuIFJHQkEgY29sb3IgcGx1cyBhbHBoYSB0cmFuc3BhcmVuY3kgdG8gaGV4XG4vLyBBc3N1bWVzIHIsIGcsIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdIGFuZFxuLy8gYSBpbiBbMCwgMV0uIFJldHVybnMgYSA0IG9yIDggY2hhcmFjdGVyIHJnYmEgaGV4XG5mdW5jdGlvbiByZ2JhVG9IZXgociwgZywgYiwgYSwgYWxsb3c0Q2hhcikge1xuXG4gICAgdmFyIGhleCA9IFtcbiAgICAgICAgcGFkMihtYXRoUm91bmQocikudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoZykudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoYikudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihjb252ZXJ0RGVjaW1hbFRvSGV4KGEpKVxuICAgIF07XG5cbiAgICAvLyBSZXR1cm4gYSA0IGNoYXJhY3RlciBoZXggaWYgcG9zc2libGVcbiAgICBpZiAoYWxsb3c0Q2hhciAmJiBoZXhbMF0uY2hhckF0KDApID09IGhleFswXS5jaGFyQXQoMSkgJiYgaGV4WzFdLmNoYXJBdCgwKSA9PSBoZXhbMV0uY2hhckF0KDEpICYmIGhleFsyXS5jaGFyQXQoMCkgPT0gaGV4WzJdLmNoYXJBdCgxKSAmJiBoZXhbM10uY2hhckF0KDApID09IGhleFszXS5jaGFyQXQoMSkpIHtcbiAgICAgICAgcmV0dXJuIGhleFswXS5jaGFyQXQoMCkgKyBoZXhbMV0uY2hhckF0KDApICsgaGV4WzJdLmNoYXJBdCgwKSArIGhleFszXS5jaGFyQXQoMCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhleC5qb2luKFwiXCIpO1xufVxuXG4vLyBgcmdiYVRvQXJnYkhleGBcbi8vIENvbnZlcnRzIGFuIFJHQkEgY29sb3IgdG8gYW4gQVJHQiBIZXg4IHN0cmluZ1xuLy8gUmFyZWx5IHVzZWQsIGJ1dCByZXF1aXJlZCBmb3IgXCJ0b0ZpbHRlcigpXCJcbmZ1bmN0aW9uIHJnYmFUb0FyZ2JIZXgociwgZywgYiwgYSkge1xuXG4gICAgdmFyIGhleCA9IFtcbiAgICAgICAgcGFkMihjb252ZXJ0RGVjaW1hbFRvSGV4KGEpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQocikudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoZykudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoYikudG9TdHJpbmcoMTYpKVxuICAgIF07XG5cbiAgICByZXR1cm4gaGV4LmpvaW4oXCJcIik7XG59XG5cbi8vIGBlcXVhbHNgXG4vLyBDYW4gYmUgY2FsbGVkIHdpdGggYW55IHRpbnljb2xvciBpbnB1dFxudGlueWNvbG9yLmVxdWFscyA9IGZ1bmN0aW9uIChjb2xvcjEsIGNvbG9yMikge1xuICAgIGlmICghY29sb3IxIHx8ICFjb2xvcjIpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgcmV0dXJuIHRpbnljb2xvcihjb2xvcjEpLnRvUmdiU3RyaW5nKCkgPT0gdGlueWNvbG9yKGNvbG9yMikudG9SZ2JTdHJpbmcoKTtcbn07XG5cbnRpbnljb2xvci5yYW5kb20gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGlueWNvbG9yLmZyb21SYXRpbyh7XG4gICAgICAgIHI6IG1hdGhSYW5kb20oKSxcbiAgICAgICAgZzogbWF0aFJhbmRvbSgpLFxuICAgICAgICBiOiBtYXRoUmFuZG9tKClcbiAgICB9KTtcbn07XG5cblxuLy8gTW9kaWZpY2F0aW9uIEZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhhbmtzIHRvIGxlc3MuanMgZm9yIHNvbWUgb2YgdGhlIGJhc2ljcyBoZXJlXG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkaGVhZC9sZXNzLmpzL2Jsb2IvbWFzdGVyL2xpYi9sZXNzL2Z1bmN0aW9ucy5qcz5cblxuZnVuY3Rpb24gZGVzYXR1cmF0ZShjb2xvciwgYW1vdW50KSB7XG4gICAgYW1vdW50ID0gKGFtb3VudCA9PT0gMCkgPyAwIDogKGFtb3VudCB8fCAxMCk7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICBoc2wucyAtPSBhbW91bnQgLyAxMDA7XG4gICAgaHNsLnMgPSBjbGFtcDAxKGhzbC5zKTtcbiAgICByZXR1cm4gdGlueWNvbG9yKGhzbCk7XG59XG5cbmZ1bmN0aW9uIHNhdHVyYXRlKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5zICs9IGFtb3VudCAvIDEwMDtcbiAgICBoc2wucyA9IGNsYW1wMDEoaHNsLnMpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gZ3JleXNjYWxlKGNvbG9yKSB7XG4gICAgcmV0dXJuIHRpbnljb2xvcihjb2xvcikuZGVzYXR1cmF0ZSgxMDApO1xufVxuXG5mdW5jdGlvbiBsaWdodGVuIChjb2xvciwgYW1vdW50KSB7XG4gICAgYW1vdW50ID0gKGFtb3VudCA9PT0gMCkgPyAwIDogKGFtb3VudCB8fCAxMCk7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICBoc2wubCArPSBhbW91bnQgLyAxMDA7XG4gICAgaHNsLmwgPSBjbGFtcDAxKGhzbC5sKTtcbiAgICByZXR1cm4gdGlueWNvbG9yKGhzbCk7XG59XG5cbmZ1bmN0aW9uIGJyaWdodGVuKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgcmdiID0gdGlueWNvbG9yKGNvbG9yKS50b1JnYigpO1xuICAgIHJnYi5yID0gbWF0aE1heCgwLCBtYXRoTWluKDI1NSwgcmdiLnIgLSBtYXRoUm91bmQoMjU1ICogLSAoYW1vdW50IC8gMTAwKSkpKTtcbiAgICByZ2IuZyA9IG1hdGhNYXgoMCwgbWF0aE1pbigyNTUsIHJnYi5nIC0gbWF0aFJvdW5kKDI1NSAqIC0gKGFtb3VudCAvIDEwMCkpKSk7XG4gICAgcmdiLmIgPSBtYXRoTWF4KDAsIG1hdGhNaW4oMjU1LCByZ2IuYiAtIG1hdGhSb3VuZCgyNTUgKiAtIChhbW91bnQgLyAxMDApKSkpO1xuICAgIHJldHVybiB0aW55Y29sb3IocmdiKTtcbn1cblxuZnVuY3Rpb24gZGFya2VuIChjb2xvciwgYW1vdW50KSB7XG4gICAgYW1vdW50ID0gKGFtb3VudCA9PT0gMCkgPyAwIDogKGFtb3VudCB8fCAxMCk7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICBoc2wubCAtPSBhbW91bnQgLyAxMDA7XG4gICAgaHNsLmwgPSBjbGFtcDAxKGhzbC5sKTtcbiAgICByZXR1cm4gdGlueWNvbG9yKGhzbCk7XG59XG5cbi8vIFNwaW4gdGFrZXMgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBhbW91bnQgd2l0aGluIFstMzYwLCAzNjBdIGluZGljYXRpbmcgdGhlIGNoYW5nZSBvZiBodWUuXG4vLyBWYWx1ZXMgb3V0c2lkZSBvZiB0aGlzIHJhbmdlIHdpbGwgYmUgd3JhcHBlZCBpbnRvIHRoaXMgcmFuZ2UuXG5mdW5jdGlvbiBzcGluKGNvbG9yLCBhbW91bnQpIHtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBodWUgPSAoaHNsLmggKyBhbW91bnQpICUgMzYwO1xuICAgIGhzbC5oID0gaHVlIDwgMCA/IDM2MCArIGh1ZSA6IGh1ZTtcbiAgICByZXR1cm4gdGlueWNvbG9yKGhzbCk7XG59XG5cbi8vIENvbWJpbmF0aW9uIEZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGFua3MgdG8galF1ZXJ5IHhDb2xvciBmb3Igc29tZSBvZiB0aGUgaWRlYXMgYmVoaW5kIHRoZXNlXG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2luZnVzaW9uL2pRdWVyeS14Y29sb3IvYmxvYi9tYXN0ZXIvanF1ZXJ5Lnhjb2xvci5qcz5cblxuZnVuY3Rpb24gY29tcGxlbWVudChjb2xvcikge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgaHNsLmggPSAoaHNsLmggKyAxODApICUgMzYwO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gdHJpYWQoY29sb3IpIHtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBoID0gaHNsLmg7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgdGlueWNvbG9yKGNvbG9yKSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAxMjApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgMjQwKSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sIH0pXG4gICAgXTtcbn1cblxuZnVuY3Rpb24gdGV0cmFkKGNvbG9yKSB7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICB2YXIgaCA9IGhzbC5oO1xuICAgIHJldHVybiBbXG4gICAgICAgIHRpbnljb2xvcihjb2xvciksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgOTApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgMTgwKSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sIH0pLFxuICAgICAgICB0aW55Y29sb3IoeyBoOiAoaCArIDI3MCkgJSAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCB9KVxuICAgIF07XG59XG5cbmZ1bmN0aW9uIHNwbGl0Y29tcGxlbWVudChjb2xvcikge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgdmFyIGggPSBoc2wuaDtcbiAgICByZXR1cm4gW1xuICAgICAgICB0aW55Y29sb3IoY29sb3IpLFxuICAgICAgICB0aW55Y29sb3IoeyBoOiAoaCArIDcyKSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sfSksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgMjE2KSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sfSlcbiAgICBdO1xufVxuXG5mdW5jdGlvbiBhbmFsb2dvdXMoY29sb3IsIHJlc3VsdHMsIHNsaWNlcykge1xuICAgIHJlc3VsdHMgPSByZXN1bHRzIHx8IDY7XG4gICAgc2xpY2VzID0gc2xpY2VzIHx8IDMwO1xuXG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICB2YXIgcGFydCA9IDM2MCAvIHNsaWNlcztcbiAgICB2YXIgcmV0ID0gW3Rpbnljb2xvcihjb2xvcildO1xuXG4gICAgZm9yIChoc2wuaCA9ICgoaHNsLmggLSAocGFydCAqIHJlc3VsdHMgPj4gMSkpICsgNzIwKSAlIDM2MDsgLS1yZXN1bHRzOyApIHtcbiAgICAgICAgaHNsLmggPSAoaHNsLmggKyBwYXJ0KSAlIDM2MDtcbiAgICAgICAgcmV0LnB1c2godGlueWNvbG9yKGhzbCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBtb25vY2hyb21hdGljKGNvbG9yLCByZXN1bHRzKSB7XG4gICAgcmVzdWx0cyA9IHJlc3VsdHMgfHwgNjtcbiAgICB2YXIgaHN2ID0gdGlueWNvbG9yKGNvbG9yKS50b0hzdigpO1xuICAgIHZhciBoID0gaHN2LmgsIHMgPSBoc3YucywgdiA9IGhzdi52O1xuICAgIHZhciByZXQgPSBbXTtcbiAgICB2YXIgbW9kaWZpY2F0aW9uID0gMSAvIHJlc3VsdHM7XG5cbiAgICB3aGlsZSAocmVzdWx0cy0tKSB7XG4gICAgICAgIHJldC5wdXNoKHRpbnljb2xvcih7IGg6IGgsIHM6IHMsIHY6IHZ9KSk7XG4gICAgICAgIHYgPSAodiArIG1vZGlmaWNhdGlvbikgJSAxO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG59XG5cbi8vIFV0aWxpdHkgRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudGlueWNvbG9yLm1peCA9IGZ1bmN0aW9uKGNvbG9yMSwgY29sb3IyLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDUwKTtcblxuICAgIHZhciByZ2IxID0gdGlueWNvbG9yKGNvbG9yMSkudG9SZ2IoKTtcbiAgICB2YXIgcmdiMiA9IHRpbnljb2xvcihjb2xvcjIpLnRvUmdiKCk7XG5cbiAgICB2YXIgcCA9IGFtb3VudCAvIDEwMDtcblxuICAgIHZhciByZ2JhID0ge1xuICAgICAgICByOiAoKHJnYjIuciAtIHJnYjEucikgKiBwKSArIHJnYjEucixcbiAgICAgICAgZzogKChyZ2IyLmcgLSByZ2IxLmcpICogcCkgKyByZ2IxLmcsXG4gICAgICAgIGI6ICgocmdiMi5iIC0gcmdiMS5iKSAqIHApICsgcmdiMS5iLFxuICAgICAgICBhOiAoKHJnYjIuYSAtIHJnYjEuYSkgKiBwKSArIHJnYjEuYVxuICAgIH07XG5cbiAgICByZXR1cm4gdGlueWNvbG9yKHJnYmEpO1xufTtcblxuXG4vLyBSZWFkYWJpbGl0eSBGdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gPGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWYgKFdDQUcgVmVyc2lvbiAyKVxuXG4vLyBgY29udHJhc3RgXG4vLyBBbmFseXplIHRoZSAyIGNvbG9ycyBhbmQgcmV0dXJucyB0aGUgY29sb3IgY29udHJhc3QgZGVmaW5lZCBieSAoV0NBRyBWZXJzaW9uIDIpXG50aW55Y29sb3IucmVhZGFiaWxpdHkgPSBmdW5jdGlvbihjb2xvcjEsIGNvbG9yMikge1xuICAgIHZhciBjMSA9IHRpbnljb2xvcihjb2xvcjEpO1xuICAgIHZhciBjMiA9IHRpbnljb2xvcihjb2xvcjIpO1xuICAgIHJldHVybiAoTWF0aC5tYXgoYzEuZ2V0THVtaW5hbmNlKCksYzIuZ2V0THVtaW5hbmNlKCkpKzAuMDUpIC8gKE1hdGgubWluKGMxLmdldEx1bWluYW5jZSgpLGMyLmdldEx1bWluYW5jZSgpKSswLjA1KTtcbn07XG5cbi8vIGBpc1JlYWRhYmxlYFxuLy8gRW5zdXJlIHRoYXQgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvciBjb21iaW5hdGlvbnMgbWVldCBXQ0FHMiBndWlkZWxpbmVzLlxuLy8gVGhlIHRoaXJkIGFyZ3VtZW50IGlzIGFuIG9wdGlvbmFsIE9iamVjdC5cbi8vICAgICAgdGhlICdsZXZlbCcgcHJvcGVydHkgc3RhdGVzICdBQScgb3IgJ0FBQScgLSBpZiBtaXNzaW5nIG9yIGludmFsaWQsIGl0IGRlZmF1bHRzIHRvICdBQSc7XG4vLyAgICAgIHRoZSAnc2l6ZScgcHJvcGVydHkgc3RhdGVzICdsYXJnZScgb3IgJ3NtYWxsJyAtIGlmIG1pc3Npbmcgb3IgaW52YWxpZCwgaXQgZGVmYXVsdHMgdG8gJ3NtYWxsJy5cbi8vIElmIHRoZSBlbnRpcmUgb2JqZWN0IGlzIGFic2VudCwgaXNSZWFkYWJsZSBkZWZhdWx0cyB0byB7bGV2ZWw6XCJBQVwiLHNpemU6XCJzbWFsbFwifS5cblxuLy8gKkV4YW1wbGUqXG4vLyAgICB0aW55Y29sb3IuaXNSZWFkYWJsZShcIiMwMDBcIiwgXCIjMTExXCIpID0+IGZhbHNlXG4vLyAgICB0aW55Y29sb3IuaXNSZWFkYWJsZShcIiMwMDBcIiwgXCIjMTExXCIse2xldmVsOlwiQUFcIixzaXplOlwibGFyZ2VcIn0pID0+IGZhbHNlXG50aW55Y29sb3IuaXNSZWFkYWJsZSA9IGZ1bmN0aW9uKGNvbG9yMSwgY29sb3IyLCB3Y2FnMikge1xuICAgIHZhciByZWFkYWJpbGl0eSA9IHRpbnljb2xvci5yZWFkYWJpbGl0eShjb2xvcjEsIGNvbG9yMik7XG4gICAgdmFyIHdjYWcyUGFybXMsIG91dDtcblxuICAgIG91dCA9IGZhbHNlO1xuXG4gICAgd2NhZzJQYXJtcyA9IHZhbGlkYXRlV0NBRzJQYXJtcyh3Y2FnMik7XG4gICAgc3dpdGNoICh3Y2FnMlBhcm1zLmxldmVsICsgd2NhZzJQYXJtcy5zaXplKSB7XG4gICAgICAgIGNhc2UgXCJBQXNtYWxsXCI6XG4gICAgICAgIGNhc2UgXCJBQUFsYXJnZVwiOlxuICAgICAgICAgICAgb3V0ID0gcmVhZGFiaWxpdHkgPj0gNC41O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJBQWxhcmdlXCI6XG4gICAgICAgICAgICBvdXQgPSByZWFkYWJpbGl0eSA+PSAzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJBQUFzbWFsbFwiOlxuICAgICAgICAgICAgb3V0ID0gcmVhZGFiaWxpdHkgPj0gNztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuXG59O1xuXG4vLyBgbW9zdFJlYWRhYmxlYFxuLy8gR2l2ZW4gYSBiYXNlIGNvbG9yIGFuZCBhIGxpc3Qgb2YgcG9zc2libGUgZm9yZWdyb3VuZCBvciBiYWNrZ3JvdW5kXG4vLyBjb2xvcnMgZm9yIHRoYXQgYmFzZSwgcmV0dXJucyB0aGUgbW9zdCByZWFkYWJsZSBjb2xvci5cbi8vIE9wdGlvbmFsbHkgcmV0dXJucyBCbGFjayBvciBXaGl0ZSBpZiB0aGUgbW9zdCByZWFkYWJsZSBjb2xvciBpcyB1bnJlYWRhYmxlLlxuLy8gKkV4YW1wbGUqXG4vLyAgICB0aW55Y29sb3IubW9zdFJlYWRhYmxlKHRpbnljb2xvci5tb3N0UmVhZGFibGUoXCIjMTIzXCIsIFtcIiMxMjRcIiwgXCIjMTI1XCJdLHtpbmNsdWRlRmFsbGJhY2tDb2xvcnM6ZmFsc2V9KS50b0hleFN0cmluZygpOyAvLyBcIiMxMTIyNTVcIlxuLy8gICAgdGlueWNvbG9yLm1vc3RSZWFkYWJsZSh0aW55Y29sb3IubW9zdFJlYWRhYmxlKFwiIzEyM1wiLCBbXCIjMTI0XCIsIFwiIzEyNVwiXSx7aW5jbHVkZUZhbGxiYWNrQ29sb3JzOnRydWV9KS50b0hleFN0cmluZygpOyAgLy8gXCIjZmZmZmZmXCJcbi8vICAgIHRpbnljb2xvci5tb3N0UmVhZGFibGUoXCIjYTgwMTVhXCIsIFtcIiNmYWYzZjNcIl0se2luY2x1ZGVGYWxsYmFja0NvbG9yczp0cnVlLGxldmVsOlwiQUFBXCIsc2l6ZTpcImxhcmdlXCJ9KS50b0hleFN0cmluZygpOyAvLyBcIiNmYWYzZjNcIlxuLy8gICAgdGlueWNvbG9yLm1vc3RSZWFkYWJsZShcIiNhODAxNWFcIiwgW1wiI2ZhZjNmM1wiXSx7aW5jbHVkZUZhbGxiYWNrQ29sb3JzOnRydWUsbGV2ZWw6XCJBQUFcIixzaXplOlwic21hbGxcIn0pLnRvSGV4U3RyaW5nKCk7IC8vIFwiI2ZmZmZmZlwiXG50aW55Y29sb3IubW9zdFJlYWRhYmxlID0gZnVuY3Rpb24oYmFzZUNvbG9yLCBjb2xvckxpc3QsIGFyZ3MpIHtcbiAgICB2YXIgYmVzdENvbG9yID0gbnVsbDtcbiAgICB2YXIgYmVzdFNjb3JlID0gMDtcbiAgICB2YXIgcmVhZGFiaWxpdHk7XG4gICAgdmFyIGluY2x1ZGVGYWxsYmFja0NvbG9ycywgbGV2ZWwsIHNpemUgO1xuICAgIGFyZ3MgPSBhcmdzIHx8IHt9O1xuICAgIGluY2x1ZGVGYWxsYmFja0NvbG9ycyA9IGFyZ3MuaW5jbHVkZUZhbGxiYWNrQ29sb3JzIDtcbiAgICBsZXZlbCA9IGFyZ3MubGV2ZWw7XG4gICAgc2l6ZSA9IGFyZ3Muc2l6ZTtcblxuICAgIGZvciAodmFyIGk9IDA7IGkgPCBjb2xvckxpc3QubGVuZ3RoIDsgaSsrKSB7XG4gICAgICAgIHJlYWRhYmlsaXR5ID0gdGlueWNvbG9yLnJlYWRhYmlsaXR5KGJhc2VDb2xvciwgY29sb3JMaXN0W2ldKTtcbiAgICAgICAgaWYgKHJlYWRhYmlsaXR5ID4gYmVzdFNjb3JlKSB7XG4gICAgICAgICAgICBiZXN0U2NvcmUgPSByZWFkYWJpbGl0eTtcbiAgICAgICAgICAgIGJlc3RDb2xvciA9IHRpbnljb2xvcihjb2xvckxpc3RbaV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRpbnljb2xvci5pc1JlYWRhYmxlKGJhc2VDb2xvciwgYmVzdENvbG9yLCB7XCJsZXZlbFwiOmxldmVsLFwic2l6ZVwiOnNpemV9KSB8fCAhaW5jbHVkZUZhbGxiYWNrQ29sb3JzKSB7XG4gICAgICAgIHJldHVybiBiZXN0Q29sb3I7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBhcmdzLmluY2x1ZGVGYWxsYmFja0NvbG9ycz1mYWxzZTtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvci5tb3N0UmVhZGFibGUoYmFzZUNvbG9yLFtcIiNmZmZcIiwgXCIjMDAwXCJdLGFyZ3MpO1xuICAgIH1cbn07XG5cblxuLy8gQmlnIExpc3Qgb2YgQ29sb3JzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWNvbG9yLyNzdmctY29sb3I+XG52YXIgbmFtZXMgPSB0aW55Y29sb3IubmFtZXMgPSB7XG4gICAgYWxpY2VibHVlOiBcImYwZjhmZlwiLFxuICAgIGFudGlxdWV3aGl0ZTogXCJmYWViZDdcIixcbiAgICBhcXVhOiBcIjBmZlwiLFxuICAgIGFxdWFtYXJpbmU6IFwiN2ZmZmQ0XCIsXG4gICAgYXp1cmU6IFwiZjBmZmZmXCIsXG4gICAgYmVpZ2U6IFwiZjVmNWRjXCIsXG4gICAgYmlzcXVlOiBcImZmZTRjNFwiLFxuICAgIGJsYWNrOiBcIjAwMFwiLFxuICAgIGJsYW5jaGVkYWxtb25kOiBcImZmZWJjZFwiLFxuICAgIGJsdWU6IFwiMDBmXCIsXG4gICAgYmx1ZXZpb2xldDogXCI4YTJiZTJcIixcbiAgICBicm93bjogXCJhNTJhMmFcIixcbiAgICBidXJseXdvb2Q6IFwiZGViODg3XCIsXG4gICAgYnVybnRzaWVubmE6IFwiZWE3ZTVkXCIsXG4gICAgY2FkZXRibHVlOiBcIjVmOWVhMFwiLFxuICAgIGNoYXJ0cmV1c2U6IFwiN2ZmZjAwXCIsXG4gICAgY2hvY29sYXRlOiBcImQyNjkxZVwiLFxuICAgIGNvcmFsOiBcImZmN2Y1MFwiLFxuICAgIGNvcm5mbG93ZXJibHVlOiBcIjY0OTVlZFwiLFxuICAgIGNvcm5zaWxrOiBcImZmZjhkY1wiLFxuICAgIGNyaW1zb246IFwiZGMxNDNjXCIsXG4gICAgY3lhbjogXCIwZmZcIixcbiAgICBkYXJrYmx1ZTogXCIwMDAwOGJcIixcbiAgICBkYXJrY3lhbjogXCIwMDhiOGJcIixcbiAgICBkYXJrZ29sZGVucm9kOiBcImI4ODYwYlwiLFxuICAgIGRhcmtncmF5OiBcImE5YTlhOVwiLFxuICAgIGRhcmtncmVlbjogXCIwMDY0MDBcIixcbiAgICBkYXJrZ3JleTogXCJhOWE5YTlcIixcbiAgICBkYXJra2hha2k6IFwiYmRiNzZiXCIsXG4gICAgZGFya21hZ2VudGE6IFwiOGIwMDhiXCIsXG4gICAgZGFya29saXZlZ3JlZW46IFwiNTU2YjJmXCIsXG4gICAgZGFya29yYW5nZTogXCJmZjhjMDBcIixcbiAgICBkYXJrb3JjaGlkOiBcIjk5MzJjY1wiLFxuICAgIGRhcmtyZWQ6IFwiOGIwMDAwXCIsXG4gICAgZGFya3NhbG1vbjogXCJlOTk2N2FcIixcbiAgICBkYXJrc2VhZ3JlZW46IFwiOGZiYzhmXCIsXG4gICAgZGFya3NsYXRlYmx1ZTogXCI0ODNkOGJcIixcbiAgICBkYXJrc2xhdGVncmF5OiBcIjJmNGY0ZlwiLFxuICAgIGRhcmtzbGF0ZWdyZXk6IFwiMmY0ZjRmXCIsXG4gICAgZGFya3R1cnF1b2lzZTogXCIwMGNlZDFcIixcbiAgICBkYXJrdmlvbGV0OiBcIjk0MDBkM1wiLFxuICAgIGRlZXBwaW5rOiBcImZmMTQ5M1wiLFxuICAgIGRlZXBza3libHVlOiBcIjAwYmZmZlwiLFxuICAgIGRpbWdyYXk6IFwiNjk2OTY5XCIsXG4gICAgZGltZ3JleTogXCI2OTY5NjlcIixcbiAgICBkb2RnZXJibHVlOiBcIjFlOTBmZlwiLFxuICAgIGZpcmVicmljazogXCJiMjIyMjJcIixcbiAgICBmbG9yYWx3aGl0ZTogXCJmZmZhZjBcIixcbiAgICBmb3Jlc3RncmVlbjogXCIyMjhiMjJcIixcbiAgICBmdWNoc2lhOiBcImYwZlwiLFxuICAgIGdhaW5zYm9ybzogXCJkY2RjZGNcIixcbiAgICBnaG9zdHdoaXRlOiBcImY4ZjhmZlwiLFxuICAgIGdvbGQ6IFwiZmZkNzAwXCIsXG4gICAgZ29sZGVucm9kOiBcImRhYTUyMFwiLFxuICAgIGdyYXk6IFwiODA4MDgwXCIsXG4gICAgZ3JlZW46IFwiMDA4MDAwXCIsXG4gICAgZ3JlZW55ZWxsb3c6IFwiYWRmZjJmXCIsXG4gICAgZ3JleTogXCI4MDgwODBcIixcbiAgICBob25leWRldzogXCJmMGZmZjBcIixcbiAgICBob3RwaW5rOiBcImZmNjliNFwiLFxuICAgIGluZGlhbnJlZDogXCJjZDVjNWNcIixcbiAgICBpbmRpZ286IFwiNGIwMDgyXCIsXG4gICAgaXZvcnk6IFwiZmZmZmYwXCIsXG4gICAga2hha2k6IFwiZjBlNjhjXCIsXG4gICAgbGF2ZW5kZXI6IFwiZTZlNmZhXCIsXG4gICAgbGF2ZW5kZXJibHVzaDogXCJmZmYwZjVcIixcbiAgICBsYXduZ3JlZW46IFwiN2NmYzAwXCIsXG4gICAgbGVtb25jaGlmZm9uOiBcImZmZmFjZFwiLFxuICAgIGxpZ2h0Ymx1ZTogXCJhZGQ4ZTZcIixcbiAgICBsaWdodGNvcmFsOiBcImYwODA4MFwiLFxuICAgIGxpZ2h0Y3lhbjogXCJlMGZmZmZcIixcbiAgICBsaWdodGdvbGRlbnJvZHllbGxvdzogXCJmYWZhZDJcIixcbiAgICBsaWdodGdyYXk6IFwiZDNkM2QzXCIsXG4gICAgbGlnaHRncmVlbjogXCI5MGVlOTBcIixcbiAgICBsaWdodGdyZXk6IFwiZDNkM2QzXCIsXG4gICAgbGlnaHRwaW5rOiBcImZmYjZjMVwiLFxuICAgIGxpZ2h0c2FsbW9uOiBcImZmYTA3YVwiLFxuICAgIGxpZ2h0c2VhZ3JlZW46IFwiMjBiMmFhXCIsXG4gICAgbGlnaHRza3libHVlOiBcIjg3Y2VmYVwiLFxuICAgIGxpZ2h0c2xhdGVncmF5OiBcIjc4OVwiLFxuICAgIGxpZ2h0c2xhdGVncmV5OiBcIjc4OVwiLFxuICAgIGxpZ2h0c3RlZWxibHVlOiBcImIwYzRkZVwiLFxuICAgIGxpZ2h0eWVsbG93OiBcImZmZmZlMFwiLFxuICAgIGxpbWU6IFwiMGYwXCIsXG4gICAgbGltZWdyZWVuOiBcIjMyY2QzMlwiLFxuICAgIGxpbmVuOiBcImZhZjBlNlwiLFxuICAgIG1hZ2VudGE6IFwiZjBmXCIsXG4gICAgbWFyb29uOiBcIjgwMDAwMFwiLFxuICAgIG1lZGl1bWFxdWFtYXJpbmU6IFwiNjZjZGFhXCIsXG4gICAgbWVkaXVtYmx1ZTogXCIwMDAwY2RcIixcbiAgICBtZWRpdW1vcmNoaWQ6IFwiYmE1NWQzXCIsXG4gICAgbWVkaXVtcHVycGxlOiBcIjkzNzBkYlwiLFxuICAgIG1lZGl1bXNlYWdyZWVuOiBcIjNjYjM3MVwiLFxuICAgIG1lZGl1bXNsYXRlYmx1ZTogXCI3YjY4ZWVcIixcbiAgICBtZWRpdW1zcHJpbmdncmVlbjogXCIwMGZhOWFcIixcbiAgICBtZWRpdW10dXJxdW9pc2U6IFwiNDhkMWNjXCIsXG4gICAgbWVkaXVtdmlvbGV0cmVkOiBcImM3MTU4NVwiLFxuICAgIG1pZG5pZ2h0Ymx1ZTogXCIxOTE5NzBcIixcbiAgICBtaW50Y3JlYW06IFwiZjVmZmZhXCIsXG4gICAgbWlzdHlyb3NlOiBcImZmZTRlMVwiLFxuICAgIG1vY2Nhc2luOiBcImZmZTRiNVwiLFxuICAgIG5hdmFqb3doaXRlOiBcImZmZGVhZFwiLFxuICAgIG5hdnk6IFwiMDAwMDgwXCIsXG4gICAgb2xkbGFjZTogXCJmZGY1ZTZcIixcbiAgICBvbGl2ZTogXCI4MDgwMDBcIixcbiAgICBvbGl2ZWRyYWI6IFwiNmI4ZTIzXCIsXG4gICAgb3JhbmdlOiBcImZmYTUwMFwiLFxuICAgIG9yYW5nZXJlZDogXCJmZjQ1MDBcIixcbiAgICBvcmNoaWQ6IFwiZGE3MGQ2XCIsXG4gICAgcGFsZWdvbGRlbnJvZDogXCJlZWU4YWFcIixcbiAgICBwYWxlZ3JlZW46IFwiOThmYjk4XCIsXG4gICAgcGFsZXR1cnF1b2lzZTogXCJhZmVlZWVcIixcbiAgICBwYWxldmlvbGV0cmVkOiBcImRiNzA5M1wiLFxuICAgIHBhcGF5YXdoaXA6IFwiZmZlZmQ1XCIsXG4gICAgcGVhY2hwdWZmOiBcImZmZGFiOVwiLFxuICAgIHBlcnU6IFwiY2Q4NTNmXCIsXG4gICAgcGluazogXCJmZmMwY2JcIixcbiAgICBwbHVtOiBcImRkYTBkZFwiLFxuICAgIHBvd2RlcmJsdWU6IFwiYjBlMGU2XCIsXG4gICAgcHVycGxlOiBcIjgwMDA4MFwiLFxuICAgIHJlYmVjY2FwdXJwbGU6IFwiNjYzMzk5XCIsXG4gICAgcmVkOiBcImYwMFwiLFxuICAgIHJvc3licm93bjogXCJiYzhmOGZcIixcbiAgICByb3lhbGJsdWU6IFwiNDE2OWUxXCIsXG4gICAgc2FkZGxlYnJvd246IFwiOGI0NTEzXCIsXG4gICAgc2FsbW9uOiBcImZhODA3MlwiLFxuICAgIHNhbmR5YnJvd246IFwiZjRhNDYwXCIsXG4gICAgc2VhZ3JlZW46IFwiMmU4YjU3XCIsXG4gICAgc2Vhc2hlbGw6IFwiZmZmNWVlXCIsXG4gICAgc2llbm5hOiBcImEwNTIyZFwiLFxuICAgIHNpbHZlcjogXCJjMGMwYzBcIixcbiAgICBza3libHVlOiBcIjg3Y2VlYlwiLFxuICAgIHNsYXRlYmx1ZTogXCI2YTVhY2RcIixcbiAgICBzbGF0ZWdyYXk6IFwiNzA4MDkwXCIsXG4gICAgc2xhdGVncmV5OiBcIjcwODA5MFwiLFxuICAgIHNub3c6IFwiZmZmYWZhXCIsXG4gICAgc3ByaW5nZ3JlZW46IFwiMDBmZjdmXCIsXG4gICAgc3RlZWxibHVlOiBcIjQ2ODJiNFwiLFxuICAgIHRhbjogXCJkMmI0OGNcIixcbiAgICB0ZWFsOiBcIjAwODA4MFwiLFxuICAgIHRoaXN0bGU6IFwiZDhiZmQ4XCIsXG4gICAgdG9tYXRvOiBcImZmNjM0N1wiLFxuICAgIHR1cnF1b2lzZTogXCI0MGUwZDBcIixcbiAgICB2aW9sZXQ6IFwiZWU4MmVlXCIsXG4gICAgd2hlYXQ6IFwiZjVkZWIzXCIsXG4gICAgd2hpdGU6IFwiZmZmXCIsXG4gICAgd2hpdGVzbW9rZTogXCJmNWY1ZjVcIixcbiAgICB5ZWxsb3c6IFwiZmYwXCIsXG4gICAgeWVsbG93Z3JlZW46IFwiOWFjZDMyXCJcbn07XG5cbi8vIE1ha2UgaXQgZWFzeSB0byBhY2Nlc3MgY29sb3JzIHZpYSBgaGV4TmFtZXNbaGV4XWBcbnZhciBoZXhOYW1lcyA9IHRpbnljb2xvci5oZXhOYW1lcyA9IGZsaXAobmFtZXMpO1xuXG5cbi8vIFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tXG5cbi8vIGB7ICduYW1lMSc6ICd2YWwxJyB9YCBiZWNvbWVzIGB7ICd2YWwxJzogJ25hbWUxJyB9YFxuZnVuY3Rpb24gZmxpcChvKSB7XG4gICAgdmFyIGZsaXBwZWQgPSB7IH07XG4gICAgZm9yICh2YXIgaSBpbiBvKSB7XG4gICAgICAgIGlmIChvLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICAgICAgICBmbGlwcGVkW29baV1dID0gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmxpcHBlZDtcbn1cblxuLy8gUmV0dXJuIGEgdmFsaWQgYWxwaGEgdmFsdWUgWzAsMV0gd2l0aCBhbGwgaW52YWxpZCB2YWx1ZXMgYmVpbmcgc2V0IHRvIDFcbmZ1bmN0aW9uIGJvdW5kQWxwaGEoYSkge1xuICAgIGEgPSBwYXJzZUZsb2F0KGEpO1xuXG4gICAgaWYgKGlzTmFOKGEpIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgIGEgPSAxO1xuICAgIH1cblxuICAgIHJldHVybiBhO1xufVxuXG4vLyBUYWtlIGlucHV0IGZyb20gWzAsIG5dIGFuZCByZXR1cm4gaXQgYXMgWzAsIDFdXG5mdW5jdGlvbiBib3VuZDAxKG4sIG1heCkge1xuICAgIGlmIChpc09uZVBvaW50WmVybyhuKSkgeyBuID0gXCIxMDAlXCI7IH1cblxuICAgIHZhciBwcm9jZXNzUGVyY2VudCA9IGlzUGVyY2VudGFnZShuKTtcbiAgICBuID0gbWF0aE1pbihtYXgsIG1hdGhNYXgoMCwgcGFyc2VGbG9hdChuKSkpO1xuXG4gICAgLy8gQXV0b21hdGljYWxseSBjb252ZXJ0IHBlcmNlbnRhZ2UgaW50byBudW1iZXJcbiAgICBpZiAocHJvY2Vzc1BlcmNlbnQpIHtcbiAgICAgICAgbiA9IHBhcnNlSW50KG4gKiBtYXgsIDEwKSAvIDEwMDtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgZmxvYXRpbmcgcG9pbnQgcm91bmRpbmcgZXJyb3JzXG4gICAgaWYgKChNYXRoLmFicyhuIC0gbWF4KSA8IDAuMDAwMDAxKSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IGludG8gWzAsIDFdIHJhbmdlIGlmIGl0IGlzbid0IGFscmVhZHlcbiAgICByZXR1cm4gKG4gJSBtYXgpIC8gcGFyc2VGbG9hdChtYXgpO1xufVxuXG4vLyBGb3JjZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDFcbmZ1bmN0aW9uIGNsYW1wMDEodmFsKSB7XG4gICAgcmV0dXJuIG1hdGhNaW4oMSwgbWF0aE1heCgwLCB2YWwpKTtcbn1cblxuLy8gUGFyc2UgYSBiYXNlLTE2IGhleCB2YWx1ZSBpbnRvIGEgYmFzZS0xMCBpbnRlZ2VyXG5mdW5jdGlvbiBwYXJzZUludEZyb21IZXgodmFsKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTYpO1xufVxuXG4vLyBOZWVkIHRvIGhhbmRsZSAxLjAgYXMgMTAwJSwgc2luY2Ugb25jZSBpdCBpcyBhIG51bWJlciwgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIGl0IGFuZCAxXG4vLyA8aHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NDIyMDcyL2phdmFzY3JpcHQtaG93LXRvLWRldGVjdC1udW1iZXItYXMtYS1kZWNpbWFsLWluY2x1ZGluZy0xLTA+XG5mdW5jdGlvbiBpc09uZVBvaW50WmVybyhuKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBuID09IFwic3RyaW5nXCIgJiYgbi5pbmRleE9mKCcuJykgIT0gLTEgJiYgcGFyc2VGbG9hdChuKSA9PT0gMTtcbn1cblxuLy8gQ2hlY2sgdG8gc2VlIGlmIHN0cmluZyBwYXNzZWQgaW4gaXMgYSBwZXJjZW50YWdlXG5mdW5jdGlvbiBpc1BlcmNlbnRhZ2Uobikge1xuICAgIHJldHVybiB0eXBlb2YgbiA9PT0gXCJzdHJpbmdcIiAmJiBuLmluZGV4T2YoJyUnKSAhPSAtMTtcbn1cblxuLy8gRm9yY2UgYSBoZXggdmFsdWUgdG8gaGF2ZSAyIGNoYXJhY3RlcnNcbmZ1bmN0aW9uIHBhZDIoYykge1xuICAgIHJldHVybiBjLmxlbmd0aCA9PSAxID8gJzAnICsgYyA6ICcnICsgYztcbn1cblxuLy8gUmVwbGFjZSBhIGRlY2ltYWwgd2l0aCBpdCdzIHBlcmNlbnRhZ2UgdmFsdWVcbmZ1bmN0aW9uIGNvbnZlcnRUb1BlcmNlbnRhZ2Uobikge1xuICAgIGlmIChuIDw9IDEpIHtcbiAgICAgICAgbiA9IChuICogMTAwKSArIFwiJVwiO1xuICAgIH1cblxuICAgIHJldHVybiBuO1xufVxuXG4vLyBDb252ZXJ0cyBhIGRlY2ltYWwgdG8gYSBoZXggdmFsdWVcbmZ1bmN0aW9uIGNvbnZlcnREZWNpbWFsVG9IZXgoZCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKHBhcnNlRmxvYXQoZCkgKiAyNTUpLnRvU3RyaW5nKDE2KTtcbn1cbi8vIENvbnZlcnRzIGEgaGV4IHZhbHVlIHRvIGEgZGVjaW1hbFxuZnVuY3Rpb24gY29udmVydEhleFRvRGVjaW1hbChoKSB7XG4gICAgcmV0dXJuIChwYXJzZUludEZyb21IZXgoaCkgLyAyNTUpO1xufVxuXG52YXIgbWF0Y2hlcnMgPSAoZnVuY3Rpb24oKSB7XG5cbiAgICAvLyA8aHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy12YWx1ZXMvI2ludGVnZXJzPlxuICAgIHZhciBDU1NfSU5URUdFUiA9IFwiWy1cXFxcK10/XFxcXGQrJT9cIjtcblxuICAgIC8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXZhbHVlcy8jbnVtYmVyLXZhbHVlPlxuICAgIHZhciBDU1NfTlVNQkVSID0gXCJbLVxcXFwrXT9cXFxcZCpcXFxcLlxcXFxkKyU/XCI7XG5cbiAgICAvLyBBbGxvdyBwb3NpdGl2ZS9uZWdhdGl2ZSBpbnRlZ2VyL251bWJlci4gIERvbid0IGNhcHR1cmUgdGhlIGVpdGhlci9vciwganVzdCB0aGUgZW50aXJlIG91dGNvbWUuXG4gICAgdmFyIENTU19VTklUID0gXCIoPzpcIiArIENTU19OVU1CRVIgKyBcIil8KD86XCIgKyBDU1NfSU5URUdFUiArIFwiKVwiO1xuXG4gICAgLy8gQWN0dWFsIG1hdGNoaW5nLlxuICAgIC8vIFBhcmVudGhlc2VzIGFuZCBjb21tYXMgYXJlIG9wdGlvbmFsLCBidXQgbm90IHJlcXVpcmVkLlxuICAgIC8vIFdoaXRlc3BhY2UgY2FuIHRha2UgdGhlIHBsYWNlIG9mIGNvbW1hcyBvciBvcGVuaW5nIHBhcmVuXG4gICAgdmFyIFBFUk1JU1NJVkVfTUFUQ0gzID0gXCJbXFxcXHN8XFxcXChdKyhcIiArIENTU19VTklUICsgXCIpWyx8XFxcXHNdKyhcIiArIENTU19VTklUICsgXCIpWyx8XFxcXHNdKyhcIiArIENTU19VTklUICsgXCIpXFxcXHMqXFxcXCk/XCI7XG4gICAgdmFyIFBFUk1JU1NJVkVfTUFUQ0g0ID0gXCJbXFxcXHN8XFxcXChdKyhcIiArIENTU19VTklUICsgXCIpWyx8XFxcXHNdKyhcIiArIENTU19VTklUICsgXCIpWyx8XFxcXHNdKyhcIiArIENTU19VTklUICsgXCIpWyx8XFxcXHNdKyhcIiArIENTU19VTklUICsgXCIpXFxcXHMqXFxcXCk/XCI7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBDU1NfVU5JVDogbmV3IFJlZ0V4cChDU1NfVU5JVCksXG4gICAgICAgIHJnYjogbmV3IFJlZ0V4cChcInJnYlwiICsgUEVSTUlTU0lWRV9NQVRDSDMpLFxuICAgICAgICByZ2JhOiBuZXcgUmVnRXhwKFwicmdiYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxuICAgICAgICBoc2w6IG5ldyBSZWdFeHAoXCJoc2xcIiArIFBFUk1JU1NJVkVfTUFUQ0gzKSxcbiAgICAgICAgaHNsYTogbmV3IFJlZ0V4cChcImhzbGFcIiArIFBFUk1JU1NJVkVfTUFUQ0g0KSxcbiAgICAgICAgaHN2OiBuZXcgUmVnRXhwKFwiaHN2XCIgKyBQRVJNSVNTSVZFX01BVENIMyksXG4gICAgICAgIGhzdmE6IG5ldyBSZWdFeHAoXCJoc3ZhXCIgKyBQRVJNSVNTSVZFX01BVENINCksXG4gICAgICAgIGhleDM6IC9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxcbiAgICAgICAgaGV4NjogL14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvLFxuICAgICAgICBoZXg0OiAvXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLFxuICAgICAgICBoZXg4OiAvXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvXG4gICAgfTtcbn0pKCk7XG5cbi8vIGBpc1ZhbGlkQ1NTVW5pdGBcbi8vIFRha2UgaW4gYSBzaW5nbGUgc3RyaW5nIC8gbnVtYmVyIGFuZCBjaGVjayB0byBzZWUgaWYgaXQgbG9va3MgbGlrZSBhIENTUyB1bml0XG4vLyAoc2VlIGBtYXRjaGVyc2AgYWJvdmUgZm9yIGRlZmluaXRpb24pLlxuZnVuY3Rpb24gaXNWYWxpZENTU1VuaXQoY29sb3IpIHtcbiAgICByZXR1cm4gISFtYXRjaGVycy5DU1NfVU5JVC5leGVjKGNvbG9yKTtcbn1cblxuLy8gYHN0cmluZ0lucHV0VG9PYmplY3RgXG4vLyBQZXJtaXNzaXZlIHN0cmluZyBwYXJzaW5nLiAgVGFrZSBpbiBhIG51bWJlciBvZiBmb3JtYXRzLCBhbmQgb3V0cHV0IGFuIG9iamVjdFxuLy8gYmFzZWQgb24gZGV0ZWN0ZWQgZm9ybWF0LiAgUmV0dXJucyBgeyByLCBnLCBiIH1gIG9yIGB7IGgsIHMsIGwgfWAgb3IgYHsgaCwgcywgdn1gXG5mdW5jdGlvbiBzdHJpbmdJbnB1dFRvT2JqZWN0KGNvbG9yKSB7XG5cbiAgICBjb2xvciA9IGNvbG9yLnJlcGxhY2UodHJpbUxlZnQsJycpLnJlcGxhY2UodHJpbVJpZ2h0LCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgbmFtZWQgPSBmYWxzZTtcbiAgICBpZiAobmFtZXNbY29sb3JdKSB7XG4gICAgICAgIGNvbG9yID0gbmFtZXNbY29sb3JdO1xuICAgICAgICBuYW1lZCA9IHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbG9yID09ICd0cmFuc3BhcmVudCcpIHtcbiAgICAgICAgcmV0dXJuIHsgcjogMCwgZzogMCwgYjogMCwgYTogMCwgZm9ybWF0OiBcIm5hbWVcIiB9O1xuICAgIH1cblxuICAgIC8vIFRyeSB0byBtYXRjaCBzdHJpbmcgaW5wdXQgdXNpbmcgcmVndWxhciBleHByZXNzaW9ucy5cbiAgICAvLyBLZWVwIG1vc3Qgb2YgdGhlIG51bWJlciBib3VuZGluZyBvdXQgb2YgdGhpcyBmdW5jdGlvbiAtIGRvbid0IHdvcnJ5IGFib3V0IFswLDFdIG9yIFswLDEwMF0gb3IgWzAsMzYwXVxuICAgIC8vIEp1c3QgcmV0dXJuIGFuIG9iamVjdCBhbmQgbGV0IHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyBoYW5kbGUgdGhhdC5cbiAgICAvLyBUaGlzIHdheSB0aGUgcmVzdWx0IHdpbGwgYmUgdGhlIHNhbWUgd2hldGhlciB0aGUgdGlueWNvbG9yIGlzIGluaXRpYWxpemVkIHdpdGggc3RyaW5nIG9yIG9iamVjdC5cbiAgICB2YXIgbWF0Y2g7XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLnJnYi5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgcjogbWF0Y2hbMV0sIGc6IG1hdGNoWzJdLCBiOiBtYXRjaFszXSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMucmdiYS5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgcjogbWF0Y2hbMV0sIGc6IG1hdGNoWzJdLCBiOiBtYXRjaFszXSwgYTogbWF0Y2hbNF0gfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhzbC5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCBsOiBtYXRjaFszXSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHNsYS5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCBsOiBtYXRjaFszXSwgYTogbWF0Y2hbNF0gfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhzdi5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCB2OiBtYXRjaFszXSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHN2YS5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCB2OiBtYXRjaFszXSwgYTogbWF0Y2hbNF0gfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDguZXhlYyhjb2xvcikpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0pLFxuICAgICAgICAgICAgZzogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSksXG4gICAgICAgICAgICBhOiBjb252ZXJ0SGV4VG9EZWNpbWFsKG1hdGNoWzRdKSxcbiAgICAgICAgICAgIGZvcm1hdDogbmFtZWQgPyBcIm5hbWVcIiA6IFwiaGV4OFwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg2LmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdKSxcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSksXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXhcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaGV4NC5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSArICcnICsgbWF0Y2hbMV0pLFxuICAgICAgICAgICAgZzogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzJdICsgJycgKyBtYXRjaFsyXSksXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10gKyAnJyArIG1hdGNoWzNdKSxcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0gKyAnJyArIG1hdGNoWzRdKSxcbiAgICAgICAgICAgIGZvcm1hdDogbmFtZWQgPyBcIm5hbWVcIiA6IFwiaGV4OFwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXgzLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdICsgJycgKyBtYXRjaFsxXSksXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0gKyAnJyArIG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSArICcnICsgbWF0Y2hbM10pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXhcIlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVXQ0FHMlBhcm1zKHBhcm1zKSB7XG4gICAgLy8gcmV0dXJuIHZhbGlkIFdDQUcyIHBhcm1zIGZvciBpc1JlYWRhYmxlLlxuICAgIC8vIElmIGlucHV0IHBhcm1zIGFyZSBpbnZhbGlkLCByZXR1cm4ge1wibGV2ZWxcIjpcIkFBXCIsIFwic2l6ZVwiOlwic21hbGxcIn1cbiAgICB2YXIgbGV2ZWwsIHNpemU7XG4gICAgcGFybXMgPSBwYXJtcyB8fCB7XCJsZXZlbFwiOlwiQUFcIiwgXCJzaXplXCI6XCJzbWFsbFwifTtcbiAgICBsZXZlbCA9IChwYXJtcy5sZXZlbCB8fCBcIkFBXCIpLnRvVXBwZXJDYXNlKCk7XG4gICAgc2l6ZSA9IChwYXJtcy5zaXplIHx8IFwic21hbGxcIikudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobGV2ZWwgIT09IFwiQUFcIiAmJiBsZXZlbCAhPT0gXCJBQUFcIikge1xuICAgICAgICBsZXZlbCA9IFwiQUFcIjtcbiAgICB9XG4gICAgaWYgKHNpemUgIT09IFwic21hbGxcIiAmJiBzaXplICE9PSBcImxhcmdlXCIpIHtcbiAgICAgICAgc2l6ZSA9IFwic21hbGxcIjtcbiAgICB9XG4gICAgcmV0dXJuIHtcImxldmVsXCI6bGV2ZWwsIFwic2l6ZVwiOnNpemV9O1xufVxuXG4vLyBOb2RlOiBFeHBvcnQgZnVuY3Rpb25cbmlmICh0eXBlb2YgbW9kdWxlICE9PSBcInVuZGVmaW5lZFwiICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSB0aW55Y29sb3I7XG59XG4vLyBBTUQvcmVxdWlyZWpzOiBEZWZpbmUgdGhlIG1vZHVsZVxuZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgZGVmaW5lKGZ1bmN0aW9uICgpIHtyZXR1cm4gdGlueWNvbG9yO30pO1xufVxuLy8gQnJvd3NlcjogRXhwb3NlIHRvIHdpbmRvd1xuZWxzZSB7XG4gICAgd2luZG93LnRpbnljb2xvciA9IHRpbnljb2xvcjtcbn1cblxufSkoTWF0aCk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBjcmVhdGU7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfaW5kZXggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2luZGV4XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgY3VzdG9tQ2FjaGUgPSBuZXcgU2V0KCk7XG5cbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICB2YXIgc2NyaXB0VXJsID0gb3B0aW9ucy5zY3JpcHRVcmwsXG4gICAgICBfb3B0aW9ucyRleHRyYUNvbW1vblAgPSBvcHRpb25zLmV4dHJhQ29tbW9uUHJvcHMsXG4gICAgICBleHRyYUNvbW1vblByb3BzID0gX29wdGlvbnMkZXh0cmFDb21tb25QID09PSB2b2lkIDAgPyB7fSA6IF9vcHRpb25zJGV4dHJhQ29tbW9uUDtcbiAgLyoqXG4gICAqIERPTSBBUEkgcmVxdWlyZWQuXG4gICAqIE1ha2Ugc3VyZSBpbiBicm93c2VyIGVudmlyb25tZW50LlxuICAgKiBUaGUgQ3VzdG9tIEljb24gd2lsbCBjcmVhdGUgYSA8c2NyaXB0Lz5cbiAgICogdGhhdCBsb2FkcyBTVkcgc3ltYm9scyBhbmQgaW5zZXJ0IHRoZSBTVkcgRWxlbWVudCBpbnRvIHRoZSBkb2N1bWVudCBib2R5LlxuICAgKi9cblxuICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygc2NyaXB0VXJsID09PSAnc3RyaW5nJyAmJiBzY3JpcHRVcmwubGVuZ3RoICYmICFjdXN0b21DYWNoZS5oYXMoc2NyaXB0VXJsKSkge1xuICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdzcmMnLCBzY3JpcHRVcmwpO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbmFtZXNwYWNlJywgc2NyaXB0VXJsKTtcbiAgICBjdXN0b21DYWNoZS5hZGQoc2NyaXB0VXJsKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gIH1cblxuICB2YXIgSWNvbmZvbnQgPSBmdW5jdGlvbiBJY29uZm9udChwcm9wcykge1xuICAgIHZhciB0eXBlID0gcHJvcHMudHlwZSxcbiAgICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgcmVzdFByb3BzID0gX19yZXN0KHByb3BzLCBbXCJ0eXBlXCIsIFwiY2hpbGRyZW5cIl0pOyAvLyBjb21wb25lbnQgPiBjaGlsZHJlbiA+IHR5cGVcblxuXG4gICAgdmFyIGNvbnRlbnQgPSBudWxsO1xuXG4gICAgaWYgKHByb3BzLnR5cGUpIHtcbiAgICAgIGNvbnRlbnQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgICAgIHhsaW5rSHJlZjogXCIjXCIuY29uY2F0KHR5cGUpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgIGNvbnRlbnQgPSBjaGlsZHJlbjtcbiAgICB9XG5cbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2luZGV4W1wiZGVmYXVsdFwiXSwgX2V4dGVuZHMoe30sIGV4dHJhQ29tbW9uUHJvcHMsIHJlc3RQcm9wcyksIGNvbnRlbnQpO1xuICB9O1xuXG4gIEljb25mb250LmRpc3BsYXlOYW1lID0gJ0ljb25mb250JztcbiAgcmV0dXJuIEljb25mb250O1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRUaGVtZUZyb21UeXBlTmFtZSA9IGdldFRoZW1lRnJvbVR5cGVOYW1lO1xuZXhwb3J0cy5yZW1vdmVUeXBlVGhlbWUgPSByZW1vdmVUeXBlVGhlbWU7XG5leHBvcnRzLndpdGhUaGVtZVN1ZmZpeCA9IHdpdGhUaGVtZVN1ZmZpeDtcbmV4cG9ydHMuYWxpYXMgPSBhbGlhcztcbmV4cG9ydHMuc3ZnQmFzZVByb3BzID0gdm9pZCAwO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9fdXRpbC93YXJuaW5nXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbi8vIFRoZXNlIHByb3BzIG1ha2Ugc3VyZSB0aGF0IHRoZSBTVkcgYmVoYXZpb3VycyBsaWtlIGdlbmVyYWwgdGV4dC5cbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9ibG9nLnByb3RvdHlwci5pby9hbGlnbi1zdmctaWNvbnMtdG8tdGV4dC1hbmQtc2F5LWdvb2RieWUtdG8tZm9udC1pY29ucy1kNDRiM2Q3YjI2YjRcbnZhciBzdmdCYXNlUHJvcHMgPSB7XG4gIHdpZHRoOiAnMWVtJyxcbiAgaGVpZ2h0OiAnMWVtJyxcbiAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICdhcmlhLWhpZGRlbic6IHRydWUsXG4gIGZvY3VzYWJsZTogJ2ZhbHNlJ1xufTtcbmV4cG9ydHMuc3ZnQmFzZVByb3BzID0gc3ZnQmFzZVByb3BzO1xudmFyIGZpbGxUZXN0ZXIgPSAvLWZpbGwkLztcbnZhciBvdXRsaW5lVGVzdGVyID0gLy1vJC87XG52YXIgdHdvVG9uZVRlc3RlciA9IC8tdHdvdG9uZSQvO1xuXG5mdW5jdGlvbiBnZXRUaGVtZUZyb21UeXBlTmFtZSh0eXBlKSB7XG4gIHZhciByZXN1bHQgPSBudWxsO1xuXG4gIGlmIChmaWxsVGVzdGVyLnRlc3QodHlwZSkpIHtcbiAgICByZXN1bHQgPSAnZmlsbGVkJztcbiAgfSBlbHNlIGlmIChvdXRsaW5lVGVzdGVyLnRlc3QodHlwZSkpIHtcbiAgICByZXN1bHQgPSAnb3V0bGluZWQnO1xuICB9IGVsc2UgaWYgKHR3b1RvbmVUZXN0ZXIudGVzdCh0eXBlKSkge1xuICAgIHJlc3VsdCA9ICd0d29Ub25lJztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVR5cGVUaGVtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLnJlcGxhY2UoZmlsbFRlc3RlciwgJycpLnJlcGxhY2Uob3V0bGluZVRlc3RlciwgJycpLnJlcGxhY2UodHdvVG9uZVRlc3RlciwgJycpO1xufVxuXG5mdW5jdGlvbiB3aXRoVGhlbWVTdWZmaXgodHlwZSwgdGhlbWUpIHtcbiAgdmFyIHJlc3VsdCA9IHR5cGU7XG5cbiAgaWYgKHRoZW1lID09PSAnZmlsbGVkJykge1xuICAgIHJlc3VsdCArPSAnLWZpbGwnO1xuICB9IGVsc2UgaWYgKHRoZW1lID09PSAnb3V0bGluZWQnKSB7XG4gICAgcmVzdWx0ICs9ICctbyc7XG4gIH0gZWxzZSBpZiAodGhlbWUgPT09ICd0d29Ub25lJykge1xuICAgIHJlc3VsdCArPSAnLXR3b3RvbmUnO1xuICB9IGVsc2Uge1xuICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKGZhbHNlLCAnSWNvbicsIFwiVGhpcyBpY29uICdcIi5jb25jYXQodHlwZSwgXCInIGhhcyB1bmtub3duIHRoZW1lICdcIikuY29uY2F0KHRoZW1lLCBcIidcIikpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn0gLy8gRm9yIGFsaWFzIG9yIGNvbXBhdGliaWxpdHlcblxuXG5mdW5jdGlvbiBhbGlhcyh0eXBlKSB7XG4gIHZhciBuZXdUeXBlID0gdHlwZTtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdjcm9zcyc6XG4gICAgICBuZXdUeXBlID0gJ2Nsb3NlJztcbiAgICAgIGJyZWFrO1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzEzMDA3XG5cbiAgICBjYXNlICdpbnRlcmF0aW9uJzpcbiAgICAgIG5ld1R5cGUgPSAnaW50ZXJhY3Rpb24nO1xuICAgICAgYnJlYWs7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTY4MTBcblxuICAgIGNhc2UgJ2NhbmxlbmRhcic6XG4gICAgICBuZXdUeXBlID0gJ2NhbGVuZGFyJztcbiAgICAgIGJyZWFrO1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE3NDQ4XG5cbiAgICBjYXNlICdjb2x1bS1oZWlnaHQnOlxuICAgICAgbmV3VHlwZSA9ICdjb2x1bW4taGVpZ2h0JztcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgfVxuXG4gICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKG5ld1R5cGUgPT09IHR5cGUsICdJY29uJywgXCJJY29uICdcIi5jb25jYXQodHlwZSwgXCInIHdhcyBhIHR5cG8gYW5kIGlzIG5vdyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICdcIikuY29uY2F0KG5ld1R5cGUsIFwiJyBpbnN0ZWFkLlwiKSk7XG4gIHJldHVybiBuZXdUeXBlO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5zZXRUd29Ub25lQ29sb3IgPSBzZXRUd29Ub25lQ29sb3I7XG5leHBvcnRzLmdldFR3b1RvbmVDb2xvciA9IGdldFR3b1RvbmVDb2xvcjtcblxudmFyIF9pY29uc1JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vaWNvbnMtcmVhY3RcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gc2V0VHdvVG9uZUNvbG9yKHByaW1hcnlDb2xvcikge1xuICByZXR1cm4gX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLnNldFR3b1RvbmVDb2xvcnMoe1xuICAgIHByaW1hcnlDb2xvcjogcHJpbWFyeUNvbG9yXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRUd29Ub25lQ29sb3IoKSB7XG4gIHZhciBjb2xvcnMgPSBfaWNvbnNSZWFjdFtcImRlZmF1bHRcIl0uZ2V0VHdvVG9uZUNvbG9ycygpO1xuXG4gIHJldHVybiBjb2xvcnMucHJpbWFyeUNvbG9yO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuaGFuZGxlR3JhZGllbnQgPSBleHBvcnRzLnNvcnRHcmFkaWVudCA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsIGkpIHsgcmV0dXJuIF9hcnJheVdpdGhIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIsIGkpIHx8IF9ub25JdGVyYWJsZVJlc3QoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxuZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgeyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoYXJyKSkpIHJldHVybjsgdmFyIF9hcnIgPSBbXTsgdmFyIF9uID0gdHJ1ZTsgdmFyIF9kID0gZmFsc2U7IHZhciBfZSA9IHVuZGVmaW5lZDsgdHJ5IHsgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgeyBfYXJyLnB1c2goX3MudmFsdWUpOyBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7IH0gfSBjYXRjaCAoZXJyKSB7IF9kID0gdHJ1ZTsgX2UgPSBlcnI7IH0gZmluYWxseSB7IHRyeSB7IGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTsgfSBmaW5hbGx5IHsgaWYgKF9kKSB0aHJvdyBfZTsgfSB9IHJldHVybiBfYXJyOyB9XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxuLyoqXG4gKiB7XG4gKiAgICcwJSc6ICcjYWZjMTYzJyxcbiAqICAgJzc1JSc6ICcjMDA5OTAwJyxcbiAqICAgJzUwJSc6ICdncmVlbicsICAgICA9PT09PiAgICAgJyNhZmMxNjMgMCUsICM2NkZGMDAgMjUlLCAjMDBDQzAwIDUwJSwgIzAwOTkwMCA3NSUsICNmZmZmZmYgMTAwJSdcbiAqICAgJzI1JSc6ICcjNjZGRjAwJyxcbiAqICAgJzEwMCUnOiAnI2ZmZmZmZidcbiAqIH1cbiAqL1xudmFyIHNvcnRHcmFkaWVudCA9IGZ1bmN0aW9uIHNvcnRHcmFkaWVudChncmFkaWVudHMpIHtcbiAgdmFyIHRlbXBBcnIgPSBbXTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG5cbiAgZm9yICh2YXIgX2kgPSAwLCBfT2JqZWN0JGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhncmFkaWVudHMpOyBfaSA8IF9PYmplY3QkZW50cmllcy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgX09iamVjdCRlbnRyaWVzJF9pID0gX3NsaWNlZFRvQXJyYXkoX09iamVjdCRlbnRyaWVzW19pXSwgMiksXG4gICAgICAgIGtleSA9IF9PYmplY3QkZW50cmllcyRfaVswXSxcbiAgICAgICAgdmFsdWUgPSBfT2JqZWN0JGVudHJpZXMkX2lbMV07XG5cbiAgICB2YXIgZm9ybWF0S2V5ID0gcGFyc2VGbG9hdChrZXkucmVwbGFjZSgvJS9nLCAnJykpO1xuXG4gICAgaWYgKGlzTmFOKGZvcm1hdEtleSkpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICB0ZW1wQXJyLnB1c2goe1xuICAgICAga2V5OiBmb3JtYXRLZXksXG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIHRlbXBBcnIgPSB0ZW1wQXJyLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gYS5rZXkgLSBiLmtleTtcbiAgfSk7XG4gIHJldHVybiB0ZW1wQXJyLm1hcChmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBrZXkgPSBfcmVmLmtleSxcbiAgICAgICAgdmFsdWUgPSBfcmVmLnZhbHVlO1xuICAgIHJldHVybiBcIlwiLmNvbmNhdCh2YWx1ZSwgXCIgXCIpLmNvbmNhdChrZXksIFwiJVwiKTtcbiAgfSkuam9pbignLCAnKTtcbn07XG4vKipcbiAqIHtcbiAqICAgJzAlJzogJyNhZmMxNjMnLFxuICogICAnMjUlJzogJyM2NkZGMDAnLFxuICogICAnNTAlJzogJyMwMENDMDAnLCAgICAgPT09PT4gIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2FmYzE2MyAwJSwgIzY2RkYwMCAyNSUsXG4gKiAgICc3NSUnOiAnIzAwOTkwMCcsICAgICAgICAgICAgICAjMDBDQzAwIDUwJSwgIzAwOTkwMCA3NSUsICNmZmZmZmYgMTAwJSlcbiAqICAgJzEwMCUnOiAnI2ZmZmZmZidcbiAqIH1cbiAqXG4gKiBUaGVuIHRoaXMgbWFuIGNhbWUgdG8gcmVhbGl6ZSB0aGUgdHJ1dGg6XG4gKiBCZXNpZGVzIHNpeCBwZW5jZSwgdGhlcmUgaXMgdGhlIG1vb24uXG4gKiBCZXNpZGVzIGJyZWFkIGFuZCBidXR0ZXIsIHRoZXJlIGlzIHRoZSBidWcuXG4gKiBBbmQuLi5cbiAqIEJlc2lkZXMgd29tZW4sIHRoZXJlIGlzIHRoZSBjb2RlLlxuICovXG5cblxuZXhwb3J0cy5zb3J0R3JhZGllbnQgPSBzb3J0R3JhZGllbnQ7XG5cbnZhciBoYW5kbGVHcmFkaWVudCA9IGZ1bmN0aW9uIGhhbmRsZUdyYWRpZW50KHN0cm9rZUNvbG9yKSB7XG4gIHZhciBfc3Ryb2tlQ29sb3IkZnJvbSA9IHN0cm9rZUNvbG9yLmZyb20sXG4gICAgICBmcm9tID0gX3N0cm9rZUNvbG9yJGZyb20gPT09IHZvaWQgMCA/ICcjMTg5MGZmJyA6IF9zdHJva2VDb2xvciRmcm9tLFxuICAgICAgX3N0cm9rZUNvbG9yJHRvID0gc3Ryb2tlQ29sb3IudG8sXG4gICAgICB0byA9IF9zdHJva2VDb2xvciR0byA9PT0gdm9pZCAwID8gJyMxODkwZmYnIDogX3N0cm9rZUNvbG9yJHRvLFxuICAgICAgX3N0cm9rZUNvbG9yJGRpcmVjdGlvID0gc3Ryb2tlQ29sb3IuZGlyZWN0aW9uLFxuICAgICAgZGlyZWN0aW9uID0gX3N0cm9rZUNvbG9yJGRpcmVjdGlvID09PSB2b2lkIDAgPyAndG8gcmlnaHQnIDogX3N0cm9rZUNvbG9yJGRpcmVjdGlvLFxuICAgICAgcmVzdCA9IF9fcmVzdChzdHJva2VDb2xvciwgW1wiZnJvbVwiLCBcInRvXCIsIFwiZGlyZWN0aW9uXCJdKTtcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdCkubGVuZ3RoICE9PSAwKSB7XG4gICAgdmFyIHNvcnRlZEdyYWRpZW50cyA9IHNvcnRHcmFkaWVudChyZXN0KTtcbiAgICByZXR1cm4ge1xuICAgICAgYmFja2dyb3VuZEltYWdlOiBcImxpbmVhci1ncmFkaWVudChcIi5jb25jYXQoZGlyZWN0aW9uLCBcIiwgXCIpLmNvbmNhdChzb3J0ZWRHcmFkaWVudHMsIFwiKVwiKVxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJhY2tncm91bmRJbWFnZTogXCJsaW5lYXItZ3JhZGllbnQoXCIuY29uY2F0KGRpcmVjdGlvbiwgXCIsIFwiKS5jb25jYXQoZnJvbSwgXCIsIFwiKS5jb25jYXQodG8sIFwiKVwiKVxuICB9O1xufTtcblxuZXhwb3J0cy5oYW5kbGVHcmFkaWVudCA9IGhhbmRsZUdyYWRpZW50O1xuXG52YXIgTGluZSA9IGZ1bmN0aW9uIExpbmUocHJvcHMpIHtcbiAgdmFyIHByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgIHBlcmNlbnQgPSBwcm9wcy5wZXJjZW50LFxuICAgICAgc3VjY2Vzc1BlcmNlbnQgPSBwcm9wcy5zdWNjZXNzUGVyY2VudCxcbiAgICAgIHN0cm9rZVdpZHRoID0gcHJvcHMuc3Ryb2tlV2lkdGgsXG4gICAgICBzaXplID0gcHJvcHMuc2l6ZSxcbiAgICAgIHN0cm9rZUNvbG9yID0gcHJvcHMuc3Ryb2tlQ29sb3IsXG4gICAgICBzdHJva2VMaW5lY2FwID0gcHJvcHMuc3Ryb2tlTGluZWNhcCxcbiAgICAgIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gIHZhciBiYWNrZ3JvdW5kUHJvcHM7XG5cbiAgaWYgKHN0cm9rZUNvbG9yICYmIHR5cGVvZiBzdHJva2VDb2xvciAhPT0gJ3N0cmluZycpIHtcbiAgICBiYWNrZ3JvdW5kUHJvcHMgPSBoYW5kbGVHcmFkaWVudChzdHJva2VDb2xvcik7XG4gIH0gZWxzZSB7XG4gICAgYmFja2dyb3VuZFByb3BzID0ge1xuICAgICAgYmFja2dyb3VuZDogc3Ryb2tlQ29sb3JcbiAgICB9O1xuICB9XG5cbiAgdmFyIHBlcmNlbnRTdHlsZSA9IF9leHRlbmRzKHtcbiAgICB3aWR0aDogXCJcIi5jb25jYXQoKDAsIF91dGlscy52YWxpZFByb2dyZXNzKShwZXJjZW50KSwgXCIlXCIpLFxuICAgIGhlaWdodDogc3Ryb2tlV2lkdGggfHwgKHNpemUgPT09ICdzbWFsbCcgPyA2IDogOCksXG4gICAgYm9yZGVyUmFkaXVzOiBzdHJva2VMaW5lY2FwID09PSAnc3F1YXJlJyA/IDAgOiAnJ1xuICB9LCBiYWNrZ3JvdW5kUHJvcHMpO1xuXG4gIHZhciBzdWNjZXNzUGVyY2VudFN0eWxlID0ge1xuICAgIHdpZHRoOiBcIlwiLmNvbmNhdCgoMCwgX3V0aWxzLnZhbGlkUHJvZ3Jlc3MpKHN1Y2Nlc3NQZXJjZW50KSwgXCIlXCIpLFxuICAgIGhlaWdodDogc3Ryb2tlV2lkdGggfHwgKHNpemUgPT09ICdzbWFsbCcgPyA2IDogOCksXG4gICAgYm9yZGVyUmFkaXVzOiBzdHJva2VMaW5lY2FwID09PSAnc3F1YXJlJyA/IDAgOiAnJ1xuICB9O1xuICB2YXIgc3VjY2Vzc1NlZ21lbnQgPSBzdWNjZXNzUGVyY2VudCAhPT0gdW5kZWZpbmVkID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zdWNjZXNzLWJnXCIpLFxuICAgIHN0eWxlOiBzdWNjZXNzUGVyY2VudFN0eWxlXG4gIH0pIDogbnVsbDtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItb3V0ZXJcIilcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pbm5lclwiKVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWJnXCIpLFxuICAgIHN0eWxlOiBwZXJjZW50U3R5bGVcbiAgfSksIHN1Y2Nlc3NTZWdtZW50KSksIGNoaWxkcmVuKTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IExpbmU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yY1Byb2dyZXNzID0gcmVxdWlyZShcInJjLXByb2dyZXNzXCIpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIHN0YXR1c0NvbG9yTWFwID0ge1xuICBub3JtYWw6ICcjMTA4ZWU5JyxcbiAgZXhjZXB0aW9uOiAnI2ZmNTUwMCcsXG4gIHN1Y2Nlc3M6ICcjODdkMDY4J1xufTtcblxuZnVuY3Rpb24gZ2V0UGVyY2VudGFnZShfcmVmKSB7XG4gIHZhciBwZXJjZW50ID0gX3JlZi5wZXJjZW50LFxuICAgICAgc3VjY2Vzc1BlcmNlbnQgPSBfcmVmLnN1Y2Nlc3NQZXJjZW50O1xuICB2YXIgcHRnID0gKDAsIF91dGlscy52YWxpZFByb2dyZXNzKShwZXJjZW50KTtcblxuICBpZiAoIXN1Y2Nlc3NQZXJjZW50KSB7XG4gICAgcmV0dXJuIHB0ZztcbiAgfVxuXG4gIHZhciBzdWNjZXNzUHRnID0gKDAsIF91dGlscy52YWxpZFByb2dyZXNzKShzdWNjZXNzUGVyY2VudCk7XG4gIHJldHVybiBbc3VjY2Vzc1BlcmNlbnQsICgwLCBfdXRpbHMudmFsaWRQcm9ncmVzcykocHRnIC0gc3VjY2Vzc1B0ZyldO1xufVxuXG5mdW5jdGlvbiBnZXRTdHJva2VDb2xvcihfcmVmMikge1xuICB2YXIgcHJvZ3Jlc3NTdGF0dXMgPSBfcmVmMi5wcm9ncmVzc1N0YXR1cyxcbiAgICAgIHN1Y2Nlc3NQZXJjZW50ID0gX3JlZjIuc3VjY2Vzc1BlcmNlbnQsXG4gICAgICBzdHJva2VDb2xvciA9IF9yZWYyLnN0cm9rZUNvbG9yO1xuICB2YXIgY29sb3IgPSBzdHJva2VDb2xvciB8fCBzdGF0dXNDb2xvck1hcFtwcm9ncmVzc1N0YXR1c107XG5cbiAgaWYgKCFzdWNjZXNzUGVyY2VudCkge1xuICAgIHJldHVybiBjb2xvcjtcbiAgfVxuXG4gIHJldHVybiBbc3RhdHVzQ29sb3JNYXAuc3VjY2VzcywgY29sb3JdO1xufVxuXG52YXIgQ2lyY2xlID0gZnVuY3Rpb24gQ2lyY2xlKHByb3BzKSB7XG4gIHZhciBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICB3aWR0aCA9IHByb3BzLndpZHRoLFxuICAgICAgc3Ryb2tlV2lkdGggPSBwcm9wcy5zdHJva2VXaWR0aCxcbiAgICAgIHRyYWlsQ29sb3IgPSBwcm9wcy50cmFpbENvbG9yLFxuICAgICAgc3Ryb2tlTGluZWNhcCA9IHByb3BzLnN0cm9rZUxpbmVjYXAsXG4gICAgICBnYXBQb3NpdGlvbiA9IHByb3BzLmdhcFBvc2l0aW9uLFxuICAgICAgZ2FwRGVncmVlID0gcHJvcHMuZ2FwRGVncmVlLFxuICAgICAgdHlwZSA9IHByb3BzLnR5cGUsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICB2YXIgY2lyY2xlU2l6ZSA9IHdpZHRoIHx8IDEyMDtcbiAgdmFyIGNpcmNsZVN0eWxlID0ge1xuICAgIHdpZHRoOiBjaXJjbGVTaXplLFxuICAgIGhlaWdodDogY2lyY2xlU2l6ZSxcbiAgICBmb250U2l6ZTogY2lyY2xlU2l6ZSAqIDAuMTUgKyA2XG4gIH07XG4gIHZhciBjaXJjbGVXaWR0aCA9IHN0cm9rZVdpZHRoIHx8IDY7XG4gIHZhciBnYXBQb3MgPSBnYXBQb3NpdGlvbiB8fCB0eXBlID09PSAnZGFzaGJvYXJkJyAmJiAnYm90dG9tJyB8fCAndG9wJztcbiAgdmFyIGdhcERlZyA9IGdhcERlZ3JlZSB8fCAodHlwZSA9PT0gJ2Rhc2hib2FyZCcgPyA3NSA6IHVuZGVmaW5lZCk7XG4gIHZhciBzdHJva2VDb2xvciA9IGdldFN0cm9rZUNvbG9yKHByb3BzKTtcbiAgdmFyIGlzR3JhZGllbnQgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc3Ryb2tlQ29sb3IpID09PSAnW29iamVjdCBPYmplY3RdJztcbiAgdmFyIHdyYXBwZXJDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWlubmVyXCIpLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2lyY2xlLWdyYWRpZW50XCIpLCBpc0dyYWRpZW50KSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiB3cmFwcGVyQ2xhc3NOYW1lLFxuICAgIHN0eWxlOiBjaXJjbGVTdHlsZVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNQcm9ncmVzcy5DaXJjbGUsIHtcbiAgICBwZXJjZW50OiBnZXRQZXJjZW50YWdlKHByb3BzKSxcbiAgICBzdHJva2VXaWR0aDogY2lyY2xlV2lkdGgsXG4gICAgdHJhaWxXaWR0aDogY2lyY2xlV2lkdGgsXG4gICAgc3Ryb2tlQ29sb3I6IHN0cm9rZUNvbG9yLFxuICAgIHN0cm9rZUxpbmVjYXA6IHN0cm9rZUxpbmVjYXAsXG4gICAgdHJhaWxDb2xvcjogdHJhaWxDb2xvcixcbiAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICBnYXBEZWdyZWU6IGdhcERlZyxcbiAgICBnYXBQb3NpdGlvbjogZ2FwUG9zXG4gIH0pLCBjaGlsZHJlbik7XG59O1xuXG52YXIgX2RlZmF1bHQgPSBDaXJjbGU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmNDb2xsYXBzZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLWNvbGxhcHNlXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfQ29sbGFwc2VQYW5lbCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vQ29sbGFwc2VQYW5lbFwiKSk7XG5cbnZhciBfaWNvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2ljb25cIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF9vcGVuQW5pbWF0aW9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvb3BlbkFuaW1hdGlvblwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBDb2xsYXBzZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ29sbGFwc2UsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoQ29sbGFwc2UpO1xuXG4gIGZ1bmN0aW9uIENvbGxhcHNlKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb2xsYXBzZSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgX3RoaXMucmVuZGVyRXhwYW5kSWNvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwYW5lbFByb3BzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgICAgIHZhciBleHBhbmRJY29uID0gX3RoaXMucHJvcHMuZXhwYW5kSWNvbjtcbiAgICAgIHZhciBpY29uID0gZXhwYW5kSWNvbiA/IGV4cGFuZEljb24ocGFuZWxQcm9wcykgOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgdHlwZTogXCJyaWdodFwiLFxuICAgICAgICByb3RhdGU6IHBhbmVsUHJvcHMuaXNBY3RpdmUgPyA5MCA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGljb24pID8gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChpY29uLCB7XG4gICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoaWNvbi5wcm9wcy5jbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYXJyb3dcIikpXG4gICAgICB9KSA6IGljb247XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckNvbGxhcHNlID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX3RoaXMkcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIF90aGlzJHByb3BzJGNsYXNzTmFtZSA9IF90aGlzJHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcyRjbGFzc05hbWUgPT09IHZvaWQgMCA/ICcnIDogX3RoaXMkcHJvcHMkY2xhc3NOYW1lLFxuICAgICAgICAgIGJvcmRlcmVkID0gX3RoaXMkcHJvcHMuYm9yZGVyZWQsXG4gICAgICAgICAgZXhwYW5kSWNvblBvc2l0aW9uID0gX3RoaXMkcHJvcHMuZXhwYW5kSWNvblBvc2l0aW9uO1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnY29sbGFwc2UnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIGNvbGxhcHNlQ2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ib3JkZXJsZXNzXCIpLCAhYm9yZGVyZWQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaWNvbi1wb3NpdGlvbi1cIikuY29uY2F0KGV4cGFuZEljb25Qb3NpdGlvbiksIHRydWUpLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3JjQ29sbGFwc2VbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgX3RoaXMucHJvcHMsIHtcbiAgICAgICAgZXhwYW5kSWNvbjogZnVuY3Rpb24gZXhwYW5kSWNvbihwYW5lbFByb3BzKSB7XG4gICAgICAgICAgcmV0dXJuIF90aGlzLnJlbmRlckV4cGFuZEljb24ocGFuZWxQcm9wcywgcHJlZml4Q2xzKTtcbiAgICAgICAgfSxcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGNsYXNzTmFtZTogY29sbGFwc2VDbGFzc05hbWVcbiAgICAgIH0pKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENvbGxhcHNlLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJDb2xsYXBzZSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIENvbGxhcHNlO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IENvbGxhcHNlO1xuQ29sbGFwc2UuUGFuZWwgPSBfQ29sbGFwc2VQYW5lbFtcImRlZmF1bHRcIl07XG5Db2xsYXBzZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGJvcmRlcmVkOiB0cnVlLFxuICBvcGVuQW5pbWF0aW9uOiBfZXh0ZW5kcyhfZXh0ZW5kcyh7fSwgX29wZW5BbmltYXRpb25bXCJkZWZhdWx0XCJdKSwge1xuICAgIGFwcGVhcjogZnVuY3Rpb24gYXBwZWFyKCkge31cbiAgfSksXG4gIGV4cGFuZEljb25Qb3NpdGlvbjogJ2xlZnQnXG59OyIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuOC42XG4gKiByZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtcbnZhciBiPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsYz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpOjYwMTAzLGQ9Yj9TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpOjYwMTA2LGU9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsZj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTo2MDEwOCxnPWI/U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpOjYwMTE0LGg9Yj9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksaz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpOjYwMTEwLGw9Yj9TeW1ib2wuZm9yKFwicmVhY3QuYXN5bmNfbW9kZVwiKTo2MDExMSxtPWI/U3ltYm9sLmZvcihcInJlYWN0LmNvbmN1cnJlbnRfbW9kZVwiKTo2MDExMSxuPWI/U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpOjYwMTEyLHA9Yj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMscT1iP1N5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpOlxuNjAxMTUscj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpOjYwMTE2O2Z1bmN0aW9uIHQoYSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSl7dmFyIHU9YS4kJHR5cGVvZjtzd2l0Y2godSl7Y2FzZSBjOnN3aXRjaChhPWEudHlwZSxhKXtjYXNlIGw6Y2FzZSBtOmNhc2UgZTpjYXNlIGc6Y2FzZSBmOmNhc2UgcDpyZXR1cm4gYTtkZWZhdWx0OnN3aXRjaChhPWEmJmEuJCR0eXBlb2YsYSl7Y2FzZSBrOmNhc2UgbjpjYXNlIGg6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm4gdX19Y2FzZSByOmNhc2UgcTpjYXNlIGQ6cmV0dXJuIHV9fX1mdW5jdGlvbiB2KGEpe3JldHVybiB0KGEpPT09bX1leHBvcnRzLnR5cGVPZj10O2V4cG9ydHMuQXN5bmNNb2RlPWw7ZXhwb3J0cy5Db25jdXJyZW50TW9kZT1tO2V4cG9ydHMuQ29udGV4dENvbnN1bWVyPWs7ZXhwb3J0cy5Db250ZXh0UHJvdmlkZXI9aDtleHBvcnRzLkVsZW1lbnQ9YztleHBvcnRzLkZvcndhcmRSZWY9bjtcbmV4cG9ydHMuRnJhZ21lbnQ9ZTtleHBvcnRzLkxhenk9cjtleHBvcnRzLk1lbW89cTtleHBvcnRzLlBvcnRhbD1kO2V4cG9ydHMuUHJvZmlsZXI9ZztleHBvcnRzLlN0cmljdE1vZGU9ZjtleHBvcnRzLlN1c3BlbnNlPXA7ZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oYSl7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBhfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYXx8YT09PWV8fGE9PT1tfHxhPT09Z3x8YT09PWZ8fGE9PT1wfHxcIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiYoYS4kJHR5cGVvZj09PXJ8fGEuJCR0eXBlb2Y9PT1xfHxhLiQkdHlwZW9mPT09aHx8YS4kJHR5cGVvZj09PWt8fGEuJCR0eXBlb2Y9PT1uKX07ZXhwb3J0cy5pc0FzeW5jTW9kZT1mdW5jdGlvbihhKXtyZXR1cm4gdihhKXx8dChhKT09PWx9O2V4cG9ydHMuaXNDb25jdXJyZW50TW9kZT12O2V4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHQoYSk9PT1rfTtcbmV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHQoYSk9PT1ofTtleHBvcnRzLmlzRWxlbWVudD1mdW5jdGlvbihhKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09Y307ZXhwb3J0cy5pc0ZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIHQoYSk9PT1ufTtleHBvcnRzLmlzRnJhZ21lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHQoYSk9PT1lfTtleHBvcnRzLmlzTGF6eT1mdW5jdGlvbihhKXtyZXR1cm4gdChhKT09PXJ9O2V4cG9ydHMuaXNNZW1vPWZ1bmN0aW9uKGEpe3JldHVybiB0KGEpPT09cX07ZXhwb3J0cy5pc1BvcnRhbD1mdW5jdGlvbihhKXtyZXR1cm4gdChhKT09PWR9O2V4cG9ydHMuaXNQcm9maWxlcj1mdW5jdGlvbihhKXtyZXR1cm4gdChhKT09PWd9O2V4cG9ydHMuaXNTdHJpY3RNb2RlPWZ1bmN0aW9uKGEpe3JldHVybiB0KGEpPT09Zn07XG5leHBvcnRzLmlzU3VzcGVuc2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHQoYSk9PT1wfTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmNDb2xsYXBzZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLWNvbGxhcHNlXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgQ29sbGFwc2VQYW5lbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ29sbGFwc2VQYW5lbCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDb2xsYXBzZVBhbmVsKTtcblxuICBmdW5jdGlvbiBDb2xsYXBzZVBhbmVsKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb2xsYXBzZVBhbmVsKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5yZW5kZXJDb2xsYXBzZVBhbmVsID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGN1c3RvbWl6ZVByZWZpeENscyA9IF90aGlzJHByb3BzLnByZWZpeENscyxcbiAgICAgICAgICBfdGhpcyRwcm9wcyRjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMkY2xhc3NOYW1lID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHByb3BzJGNsYXNzTmFtZSxcbiAgICAgICAgICBfdGhpcyRwcm9wcyRzaG93QXJyb3cgPSBfdGhpcyRwcm9wcy5zaG93QXJyb3csXG4gICAgICAgICAgc2hvd0Fycm93ID0gX3RoaXMkcHJvcHMkc2hvd0Fycm93ID09PSB2b2lkIDAgPyB0cnVlIDogX3RoaXMkcHJvcHMkc2hvd0Fycm93O1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnY29sbGFwc2UnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIGNvbGxhcHNlUGFuZWxDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbm8tYXJyb3dcIiksICFzaG93QXJyb3cpLCBjbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yY0NvbGxhcHNlW1wiZGVmYXVsdFwiXS5QYW5lbCwgX2V4dGVuZHMoe30sIF90aGlzLnByb3BzLCB7XG4gICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICBjbGFzc05hbWU6IGNvbGxhcHNlUGFuZWxDbGFzc05hbWVcbiAgICAgIH0pKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENvbGxhcHNlUGFuZWwsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlckNvbGxhcHNlUGFuZWwpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDb2xsYXBzZVBhbmVsO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IENvbGxhcHNlUGFuZWw7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9jc3NBbmltYXRpb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjc3MtYW5pbWF0aW9uXCIpKTtcblxudmFyIF9yYWYgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYWZcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuLyoqXG4gKiBEZXByZWNhdGVkLiBXZSBzaG91bGQgcmVwbGFjZSB0aGUgYW5pbWF0aW9uIHdpdGggcHVyZSByZWFjdCBtb3Rpb24gaW5zdGVhZCBvZiBtb2RpZnkgc3R5bGUgZGlyZWN0bHkuXG4gKiBJZiB5b3UgYXJlIGNyZWF0aW5nIG5ldyBjb21wb25lbnQgd2l0aCBhbmltYXRpb24sIHBsZWFzZSB1c2UgYC4vbW90aW9uYC5cbiAqL1xuZnVuY3Rpb24gYW5pbWF0ZShub2RlLCBzaG93LCBkb25lKSB7XG4gIHZhciBoZWlnaHQ7XG4gIHZhciByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZDtcbiAgcmV0dXJuICgwLCBfY3NzQW5pbWF0aW9uW1wiZGVmYXVsdFwiXSkobm9kZSwgJ2FudC1tb3Rpb24tY29sbGFwc2UtbGVnYWN5Jywge1xuICAgIHN0YXJ0OiBmdW5jdGlvbiBzdGFydCgpIHtcbiAgICAgIGlmICghc2hvdykge1xuICAgICAgICBub2RlLnN0eWxlLmhlaWdodCA9IFwiXCIuY29uY2F0KG5vZGUub2Zmc2V0SGVpZ2h0LCBcInB4XCIpO1xuICAgICAgICBub2RlLnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWlnaHQgPSBub2RlLm9mZnNldEhlaWdodDtcbiAgICAgICAgbm9kZS5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICAgICAgbm9kZS5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgfVxuICAgIH0sXG4gICAgYWN0aXZlOiBmdW5jdGlvbiBhY3RpdmUoKSB7XG4gICAgICBpZiAocmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQpIHtcbiAgICAgICAgX3JhZltcImRlZmF1bHRcIl0uY2FuY2VsKHJlcXVlc3RBbmltYXRpb25GcmFtZUlkKTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQgPSAoMCwgX3JhZltcImRlZmF1bHRcIl0pKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbm9kZS5zdHlsZS5oZWlnaHQgPSBcIlwiLmNvbmNhdChzaG93ID8gaGVpZ2h0IDogMCwgXCJweFwiKTtcbiAgICAgICAgbm9kZS5zdHlsZS5vcGFjaXR5ID0gc2hvdyA/ICcxJyA6ICcwJztcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZW5kOiBmdW5jdGlvbiBlbmQoKSB7XG4gICAgICBpZiAocmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQpIHtcbiAgICAgICAgX3JhZltcImRlZmF1bHRcIl0uY2FuY2VsKHJlcXVlc3RBbmltYXRpb25GcmFtZUlkKTtcbiAgICAgIH1cblxuICAgICAgbm9kZS5zdHlsZS5oZWlnaHQgPSAnJztcbiAgICAgIG5vZGUuc3R5bGUub3BhY2l0eSA9ICcnO1xuICAgICAgZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbnZhciBhbmltYXRpb24gPSB7XG4gIGVudGVyOiBmdW5jdGlvbiBlbnRlcihub2RlLCBkb25lKSB7XG4gICAgcmV0dXJuIGFuaW1hdGUobm9kZSwgdHJ1ZSwgZG9uZSk7XG4gIH0sXG4gIGxlYXZlOiBmdW5jdGlvbiBsZWF2ZShub2RlLCBkb25lKSB7XG4gICAgcmV0dXJuIGFuaW1hdGUobm9kZSwgZmFsc2UsIGRvbmUpO1xuICB9LFxuICBhcHBlYXI6IGZ1bmN0aW9uIGFwcGVhcihub2RlLCBkb25lKSB7XG4gICAgcmV0dXJuIGFuaW1hdGUobm9kZSwgdHJ1ZSwgZG9uZSk7XG4gIH1cbn07XG52YXIgX2RlZmF1bHQgPSBhbmltYXRpb247XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi4yXG4oZnVuY3Rpb24oKSB7XG4gIHZhciBnZXROYW5vU2Vjb25kcywgaHJ0aW1lLCBsb2FkVGltZSwgbW9kdWxlTG9hZFRpbWUsIG5vZGVMb2FkVGltZSwgdXBUaW1lO1xuXG4gIGlmICgodHlwZW9mIHBlcmZvcm1hbmNlICE9PSBcInVuZGVmaW5lZFwiICYmIHBlcmZvcm1hbmNlICE9PSBudWxsKSAmJiBwZXJmb3JtYW5jZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MgIT09IG51bGwpICYmIHByb2Nlc3MuaHJ0aW1lKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiAoZ2V0TmFub1NlY29uZHMoKSAtIG5vZGVMb2FkVGltZSkgLyAxZTY7XG4gICAgfTtcbiAgICBocnRpbWUgPSBwcm9jZXNzLmhydGltZTtcbiAgICBnZXROYW5vU2Vjb25kcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGhyO1xuICAgICAgaHIgPSBocnRpbWUoKTtcbiAgICAgIHJldHVybiBoclswXSAqIDFlOSArIGhyWzFdO1xuICAgIH07XG4gICAgbW9kdWxlTG9hZFRpbWUgPSBnZXROYW5vU2Vjb25kcygpO1xuICAgIHVwVGltZSA9IHByb2Nlc3MudXB0aW1lKCkgKiAxZTk7XG4gICAgbm9kZUxvYWRUaW1lID0gbW9kdWxlTG9hZFRpbWUgLSB1cFRpbWU7XG4gIH0gZWxzZSBpZiAoRGF0ZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIERhdGUubm93KCkgLSBsb2FkVGltZTtcbiAgICB9O1xuICAgIGxvYWRUaW1lID0gRGF0ZS5ub3coKTtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbG9hZFRpbWU7XG4gICAgfTtcbiAgICBsb2FkVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB9XG5cbn0pLmNhbGwodGhpcyk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBlcmZvcm1hbmNlLW5vdy5qcy5tYXBcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBHcmlkID0gZnVuY3Rpb24gR3JpZChwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgX3Byb3BzJGhvdmVyYWJsZSA9IHByb3BzLmhvdmVyYWJsZSxcbiAgICAgICAgaG92ZXJhYmxlID0gX3Byb3BzJGhvdmVyYWJsZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9wcm9wcyRob3ZlcmFibGUsXG4gICAgICAgIG90aGVycyA9IF9fcmVzdChwcm9wcywgW1wicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwiaG92ZXJhYmxlXCJdKTtcblxuICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2NhcmQnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgIHZhciBjbGFzc1N0cmluZyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZ3JpZFwiKSwgY2xhc3NOYW1lLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZ3JpZC1ob3ZlcmFibGVcIiksIGhvdmVyYWJsZSkpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgb3RoZXJzLCB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzU3RyaW5nXG4gICAgfSkpO1xuICB9KTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IEdyaWQ7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBNZXRhID0gZnVuY3Rpb24gTWV0YShwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgYXZhdGFyID0gcHJvcHMuYXZhdGFyLFxuICAgICAgICB0aXRsZSA9IHByb3BzLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBvdGhlcnMgPSBfX3Jlc3QocHJvcHMsIFtcInByZWZpeENsc1wiLCBcImNsYXNzTmFtZVwiLCBcImF2YXRhclwiLCBcInRpdGxlXCIsIFwiZGVzY3JpcHRpb25cIl0pO1xuXG4gICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnY2FyZCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1tZXRhXCIpLCBjbGFzc05hbWUpO1xuICAgIHZhciBhdmF0YXJEb20gPSBhdmF0YXIgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbWV0YS1hdmF0YXJcIilcbiAgICB9LCBhdmF0YXIpIDogbnVsbDtcbiAgICB2YXIgdGl0bGVEb20gPSB0aXRsZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1tZXRhLXRpdGxlXCIpXG4gICAgfSwgdGl0bGUpIDogbnVsbDtcbiAgICB2YXIgZGVzY3JpcHRpb25Eb20gPSBkZXNjcmlwdGlvbiA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1tZXRhLWRlc2NyaXB0aW9uXCIpXG4gICAgfSwgZGVzY3JpcHRpb24pIDogbnVsbDtcbiAgICB2YXIgTWV0YURldGFpbCA9IHRpdGxlRG9tIHx8IGRlc2NyaXB0aW9uRG9tID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW1ldGEtZGV0YWlsXCIpXG4gICAgfSwgdGl0bGVEb20sIGRlc2NyaXB0aW9uRG9tKSA6IG51bGw7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBvdGhlcnMsIHtcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NTdHJpbmdcbiAgICB9KSwgYXZhdGFyRG9tLCBNZXRhRGV0YWlsKTtcbiAgfSk7XG59O1xuXG52YXIgX2RlZmF1bHQgPSBNZXRhO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUmVhY3RET00gPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxudmFyIF9yY1RhYnMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmMtdGFic1wiKSk7XG5cbnZhciBfVGFiQ29udGVudCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXRhYnMvbGliL1RhYkNvbnRlbnRcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9vbWl0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwib21pdC5qc1wiKSk7XG5cbnZhciBfVGFiQmFyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9UYWJCYXJcIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG52YXIgX3N0eWxlQ2hlY2tlciA9IHJlcXVpcmUoXCIuLi9fdXRpbC9zdHlsZUNoZWNrZXJcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgVGFicyA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVGFicywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihUYWJzKTtcblxuICBmdW5jdGlvbiBUYWJzKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUYWJzKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5yZW1vdmVUYWIgPSBmdW5jdGlvbiAodGFyZ2V0S2V5LCBlKSB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICBpZiAoIXRhcmdldEtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBvbkVkaXQgPSBfdGhpcy5wcm9wcy5vbkVkaXQ7XG5cbiAgICAgIGlmIChvbkVkaXQpIHtcbiAgICAgICAgb25FZGl0KHRhcmdldEtleSwgJ3JlbW92ZScpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoYWN0aXZlS2V5KSB7XG4gICAgICB2YXIgb25DaGFuZ2UgPSBfdGhpcy5wcm9wcy5vbkNoYW5nZTtcblxuICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgIG9uQ2hhbmdlKGFjdGl2ZUtleSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLmNyZWF0ZU5ld1RhYiA9IGZ1bmN0aW9uICh0YXJnZXRLZXkpIHtcbiAgICAgIHZhciBvbkVkaXQgPSBfdGhpcy5wcm9wcy5vbkVkaXQ7XG5cbiAgICAgIGlmIChvbkVkaXQpIHtcbiAgICAgICAgb25FZGl0KHRhcmdldEtleSwgJ2FkZCcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJUYWJzID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX3RoaXMkcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIF90aGlzJHByb3BzJGNsYXNzTmFtZSA9IF90aGlzJHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcyRjbGFzc05hbWUgPT09IHZvaWQgMCA/ICcnIDogX3RoaXMkcHJvcHMkY2xhc3NOYW1lLFxuICAgICAgICAgIHNpemUgPSBfdGhpcyRwcm9wcy5zaXplLFxuICAgICAgICAgIF90aGlzJHByb3BzJHR5cGUgPSBfdGhpcyRwcm9wcy50eXBlLFxuICAgICAgICAgIHR5cGUgPSBfdGhpcyRwcm9wcyR0eXBlID09PSB2b2lkIDAgPyAnbGluZScgOiBfdGhpcyRwcm9wcyR0eXBlLFxuICAgICAgICAgIHRhYlBvc2l0aW9uID0gX3RoaXMkcHJvcHMudGFiUG9zaXRpb24sXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBfdGhpcyRwcm9wcyRhbmltYXRlZCA9IF90aGlzJHByb3BzLmFuaW1hdGVkLFxuICAgICAgICAgIGFuaW1hdGVkID0gX3RoaXMkcHJvcHMkYW5pbWF0ZWQgPT09IHZvaWQgMCA/IHRydWUgOiBfdGhpcyRwcm9wcyRhbmltYXRlZCxcbiAgICAgICAgICBoaWRlQWRkID0gX3RoaXMkcHJvcHMuaGlkZUFkZDtcbiAgICAgIHZhciB0YWJCYXJFeHRyYUNvbnRlbnQgPSBfdGhpcy5wcm9wcy50YWJCYXJFeHRyYUNvbnRlbnQ7XG4gICAgICB2YXIgdGFiUGFuZUFuaW1hdGVkID0gX3R5cGVvZihhbmltYXRlZCkgPT09ICdvYmplY3QnID8gYW5pbWF0ZWQudGFiUGFuZSA6IGFuaW1hdGVkOyAvLyBjYXJkIHRhYnMgc2hvdWxkIG5vdCBoYXZlIGFuaW1hdGlvblxuXG4gICAgICBpZiAodHlwZSAhPT0gJ2xpbmUnKSB7XG4gICAgICAgIHRhYlBhbmVBbmltYXRlZCA9ICdhbmltYXRlZCcgaW4gX3RoaXMucHJvcHMgPyB0YWJQYW5lQW5pbWF0ZWQgOiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoISh0eXBlLmluZGV4T2YoJ2NhcmQnKSA+PSAwICYmIChzaXplID09PSAnc21hbGwnIHx8IHNpemUgPT09ICdsYXJnZScpKSwgJ1RhYnMnLCBcImB0eXBlPWNhcmR8ZWRpdGFibGUtY2FyZGAgZG9lc24ndCBoYXZlIHNtYWxsIG9yIGxhcmdlIHNpemUsIGl0J3MgYnkgZGVzaWduLlwiKTtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ3RhYnMnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIGNscyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGNsYXNzTmFtZSwgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi12ZXJ0aWNhbFwiKSwgdGFiUG9zaXRpb24gPT09ICdsZWZ0JyB8fCB0YWJQb3NpdGlvbiA9PT0gJ3JpZ2h0JyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNpemUpLCAhIXNpemUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2FyZFwiKSwgdHlwZS5pbmRleE9mKCdjYXJkJykgPj0gMCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHR5cGUpLCB0cnVlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW5vLWFuaW1hdGlvblwiKSwgIXRhYlBhbmVBbmltYXRlZCksIF9jbGFzc05hbWVzKSk7IC8vIG9ubHkgY2FyZCB0eXBlIHRhYnMgY2FuIGJlIGFkZGVkIGFuZCBjbG9zZWRcblxuICAgICAgdmFyIGNoaWxkcmVuV2l0aENsb3NlID0gW107XG5cbiAgICAgIGlmICh0eXBlID09PSAnZWRpdGFibGUtY2FyZCcpIHtcbiAgICAgICAgY2hpbGRyZW5XaXRoQ2xvc2UgPSBbXTtcbiAgICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgICAgIGlmICghIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHJldHVybiBjaGlsZDtcbiAgICAgICAgICB2YXIgY2xvc2FibGUgPSBjaGlsZC5wcm9wcy5jbG9zYWJsZTtcbiAgICAgICAgICBjbG9zYWJsZSA9IHR5cGVvZiBjbG9zYWJsZSA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogY2xvc2FibGU7XG4gICAgICAgICAgdmFyIGNsb3NlSWNvbiA9IGNsb3NhYmxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgICAgICB0eXBlOiBcImNsb3NlXCIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2xvc2UteFwiKSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAgICAgICByZXR1cm4gX3RoaXMucmVtb3ZlVGFiKGNoaWxkLmtleSwgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgOiBudWxsO1xuICAgICAgICAgIGNoaWxkcmVuV2l0aENsb3NlLnB1c2goIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIHRhYjogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsb3NhYmxlID8gdW5kZWZpbmVkIDogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10YWItdW5jbG9zYWJsZVwiKVxuICAgICAgICAgICAgfSwgY2hpbGQucHJvcHMudGFiLCBjbG9zZUljb24pLFxuICAgICAgICAgICAga2V5OiBjaGlsZC5rZXkgfHwgaW5kZXhcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pOyAvLyBBZGQgbmV3IHRhYiBoYW5kbGVyXG5cbiAgICAgICAgaWYgKCFoaWRlQWRkKSB7XG4gICAgICAgICAgdGFiQmFyRXh0cmFDb250ZW50ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICAgICAgdHlwZTogXCJwbHVzXCIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbmV3LXRhYlwiKSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IF90aGlzLmNyZWF0ZU5ld1RhYlxuICAgICAgICAgIH0pLCB0YWJCYXJFeHRyYUNvbnRlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRhYkJhckV4dHJhQ29udGVudCA9IHRhYkJhckV4dHJhQ29udGVudCA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWV4dHJhLWNvbnRlbnRcIilcbiAgICAgIH0sIHRhYkJhckV4dHJhQ29udGVudCkgOiBudWxsO1xuXG4gICAgICB2YXIgdGFiQmFyUHJvcHMgPSBfX3Jlc3QoX3RoaXMucHJvcHMsIFtdKTtcblxuICAgICAgdmFyIGNvbnRlbnRDbHMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodGFiUG9zaXRpb24sIFwiLWNvbnRlbnRcIiksIHR5cGUuaW5kZXhPZignY2FyZCcpID49IDAgJiYgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jYXJkLWNvbnRlbnRcIikpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yY1RhYnNbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgX3RoaXMucHJvcHMsIHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGNsYXNzTmFtZTogY2xzLFxuICAgICAgICB0YWJCYXJQb3NpdGlvbjogdGFiUG9zaXRpb24sXG4gICAgICAgIHJlbmRlclRhYkJhcjogZnVuY3Rpb24gcmVuZGVyVGFiQmFyKCkge1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfVGFiQmFyW1wiZGVmYXVsdFwiXSwgX2V4dGVuZHMoe30sICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHRhYkJhclByb3BzLCBbJ2NsYXNzTmFtZSddKSwge1xuICAgICAgICAgICAgdGFiQmFyRXh0cmFDb250ZW50OiB0YWJCYXJFeHRyYUNvbnRlbnRcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlclRhYkNvbnRlbnQ6IGZ1bmN0aW9uIHJlbmRlclRhYkNvbnRlbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9UYWJDb250ZW50W1wiZGVmYXVsdFwiXSwge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBjb250ZW50Q2xzLFxuICAgICAgICAgICAgYW5pbWF0ZWQ6IHRhYlBhbmVBbmltYXRlZCxcbiAgICAgICAgICAgIGFuaW1hdGVkV2l0aE1hcmdpbjogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbkNoYW5nZTogX3RoaXMuaGFuZGxlQ2hhbmdlXG4gICAgICB9KSwgY2hpbGRyZW5XaXRoQ2xvc2UubGVuZ3RoID4gMCA/IGNoaWxkcmVuV2l0aENsb3NlIDogY2hpbGRyZW4pO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGFicywgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgTk9fRkxFWCA9ICcgbm8tZmxleCc7XG4gICAgICB2YXIgdGFiTm9kZSA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpO1xuXG4gICAgICBpZiAodGFiTm9kZSAmJiAhX3N0eWxlQ2hlY2tlci5pc0ZsZXhTdXBwb3J0ZWQgJiYgdGFiTm9kZS5jbGFzc05hbWUuaW5kZXhPZihOT19GTEVYKSA9PT0gLTEpIHtcbiAgICAgICAgdGFiTm9kZS5jbGFzc05hbWUgKz0gTk9fRkxFWDtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyVGFicyk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRhYnM7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gVGFicztcblRhYnMuVGFiUGFuZSA9IF9yY1RhYnMuVGFiUGFuZTtcblRhYnMuZGVmYXVsdFByb3BzID0ge1xuICBoaWRlQWRkOiBmYWxzZSxcbiAgdGFiUG9zaXRpb246ICd0b3AnXG59OyIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJyk7XG5cbnZhciBfZXh0ZW5kczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leHRlbmRzMik7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5Jyk7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGVmaW5lUHJvcGVydHkyKTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snKTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc0NhbGxDaGVjazIpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcycpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZUNsYXNzMik7XG5cbnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybicpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIpO1xuXG52YXIgX2luaGVyaXRzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cycpO1xuXG52YXIgX2luaGVyaXRzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2luaGVyaXRzMik7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9wcm9wVHlwZXMgPSByZXF1aXJlKCdwcm9wLXR5cGVzJyk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfY2xhc3NuYW1lczIgPSByZXF1aXJlKCdjbGFzc25hbWVzJyk7XG5cbnZhciBfY2xhc3NuYW1lczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc25hbWVzMik7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIFRhYkNvbnRlbnQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAoMCwgX2luaGVyaXRzM1snZGVmYXVsdCddKShUYWJDb250ZW50LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUYWJDb250ZW50KCkge1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2szWydkZWZhdWx0J10pKHRoaXMsIFRhYkNvbnRlbnQpO1xuICAgIHJldHVybiAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zWydkZWZhdWx0J10pKHRoaXMsIChUYWJDb250ZW50Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoVGFiQ29udGVudCkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgKDAsIF9jcmVhdGVDbGFzczNbJ2RlZmF1bHQnXSkoVGFiQ29udGVudCwgW3tcbiAgICBrZXk6ICdnZXRUYWJQYW5lcycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFRhYlBhbmVzKCkge1xuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHZhciBhY3RpdmVLZXkgPSBwcm9wcy5hY3RpdmVLZXk7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuXG4gICAgICBfcmVhY3QyWydkZWZhdWx0J10uQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmICghY2hpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleSA9IGNoaWxkLmtleTtcbiAgICAgICAgdmFyIGFjdGl2ZSA9IGFjdGl2ZUtleSA9PT0ga2V5O1xuICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBhY3RpdmU6IGFjdGl2ZSxcbiAgICAgICAgICBkZXN0cm95SW5hY3RpdmVUYWJQYW5lOiBwcm9wcy5kZXN0cm95SW5hY3RpdmVUYWJQYW5lLFxuICAgICAgICAgIHJvb3RQcmVmaXhDbHM6IHByb3BzLnByZWZpeENsc1xuICAgICAgICB9KSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG5ld0NoaWxkcmVuO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY2xhc3NuYW1lcztcblxuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBhY3RpdmVLZXkgPSBwcm9wcy5hY3RpdmVLZXksXG4gICAgICAgICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIHRhYkJhclBvc2l0aW9uID0gcHJvcHMudGFiQmFyUG9zaXRpb24sXG4gICAgICAgICAgYW5pbWF0ZWQgPSBwcm9wcy5hbmltYXRlZCxcbiAgICAgICAgICBhbmltYXRlZFdpdGhNYXJnaW4gPSBwcm9wcy5hbmltYXRlZFdpdGhNYXJnaW4sXG4gICAgICAgICAgZGlyZWN0aW9uID0gcHJvcHMuZGlyZWN0aW9uO1xuICAgICAgdmFyIHN0eWxlID0gcHJvcHMuc3R5bGU7XG5cbiAgICAgIHZhciBjbGFzc2VzID0gKDAsIF9jbGFzc25hbWVzM1snZGVmYXVsdCddKSgoX2NsYXNzbmFtZXMgPSB7fSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTNbJ2RlZmF1bHQnXSkoX2NsYXNzbmFtZXMsIHByZWZpeENscyArICctY29udGVudCcsIHRydWUpLCAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKShfY2xhc3NuYW1lcywgYW5pbWF0ZWQgPyBwcmVmaXhDbHMgKyAnLWNvbnRlbnQtYW5pbWF0ZWQnIDogcHJlZml4Q2xzICsgJy1jb250ZW50LW5vLWFuaW1hdGVkJywgdHJ1ZSksIF9jbGFzc25hbWVzKSwgY2xhc3NOYW1lKTtcbiAgICAgIGlmIChhbmltYXRlZCkge1xuICAgICAgICB2YXIgYWN0aXZlSW5kZXggPSAoMCwgX3V0aWxzLmdldEFjdGl2ZUluZGV4KShjaGlsZHJlbiwgYWN0aXZlS2V5KTtcbiAgICAgICAgaWYgKGFjdGl2ZUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHZhciBhbmltYXRlZFN0eWxlID0gYW5pbWF0ZWRXaXRoTWFyZ2luID8gKDAsIF91dGlscy5nZXRNYXJnaW5TdHlsZSkoYWN0aXZlSW5kZXgsIHRhYkJhclBvc2l0aW9uKSA6ICgwLCBfdXRpbHMuZ2V0VHJhbnNmb3JtUHJvcFZhbHVlKSgoMCwgX3V0aWxzLmdldFRyYW5zZm9ybUJ5SW5kZXgpKGFjdGl2ZUluZGV4LCB0YWJCYXJQb3NpdGlvbiwgZGlyZWN0aW9uKSk7XG4gICAgICAgICAgc3R5bGUgPSAoMCwgX2V4dGVuZHMzWydkZWZhdWx0J10pKHt9LCBzdHlsZSwgYW5pbWF0ZWRTdHlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3R5bGUgPSAoMCwgX2V4dGVuZHMzWydkZWZhdWx0J10pKHt9LCBzdHlsZSwge1xuICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMsXG4gICAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuZ2V0VGFiUGFuZXMoKVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFRhYkNvbnRlbnQ7XG59KF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUYWJDb250ZW50O1xuXG5cblRhYkNvbnRlbnQucHJvcFR5cGVzID0ge1xuICBhbmltYXRlZDogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5ib29sLFxuICBhbmltYXRlZFdpdGhNYXJnaW46IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uYm9vbCxcbiAgcHJlZml4Q2xzOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLnN0cmluZyxcbiAgY2hpbGRyZW46IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ubm9kZSxcbiAgYWN0aXZlS2V5OiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLnN0cmluZyxcbiAgc3R5bGU6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uYW55LFxuICB0YWJCYXJQb3NpdGlvbjogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5zdHJpbmcsXG4gIGNsYXNzTmFtZTogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5zdHJpbmcsXG4gIGRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmU6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uYm9vbCxcbiAgZGlyZWN0aW9uOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLnN0cmluZ1xufTtcblxuVGFiQ29udGVudC5kZWZhdWx0UHJvcHMgPSB7XG4gIGFuaW1hdGVkOiB0cnVlXG59O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9TY3JvbGxhYmxlSW5rVGFiQmFyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtdGFicy9saWIvU2Nyb2xsYWJsZUlua1RhYkJhclwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIFRhYkJhciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVGFiQmFyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFRhYkJhcik7XG5cbiAgZnVuY3Rpb24gVGFiQmFyKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUYWJCYXIpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRhYkJhciwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB0YWJCYXJTdHlsZSA9IF90aGlzJHByb3BzLnRhYkJhclN0eWxlLFxuICAgICAgICAgIGFuaW1hdGVkID0gX3RoaXMkcHJvcHMuYW5pbWF0ZWQsXG4gICAgICAgICAgcmVuZGVyVGFiQmFyID0gX3RoaXMkcHJvcHMucmVuZGVyVGFiQmFyLFxuICAgICAgICAgIHRhYkJhckV4dHJhQ29udGVudCA9IF90aGlzJHByb3BzLnRhYkJhckV4dHJhQ29udGVudCxcbiAgICAgICAgICB0YWJQb3NpdGlvbiA9IF90aGlzJHByb3BzLnRhYlBvc2l0aW9uLFxuICAgICAgICAgIHByZWZpeENscyA9IF90aGlzJHByb3BzLnByZWZpeENscyxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgc2l6ZSA9IF90aGlzJHByb3BzLnNpemUsXG4gICAgICAgICAgdHlwZSA9IF90aGlzJHByb3BzLnR5cGU7XG4gICAgICB2YXIgaW5rQmFyQW5pbWF0ZWQgPSBfdHlwZW9mKGFuaW1hdGVkKSA9PT0gJ29iamVjdCcgPyBhbmltYXRlZC5pbmtCYXIgOiBhbmltYXRlZDtcbiAgICAgIHZhciBpc1ZlcnRpY2FsID0gdGFiUG9zaXRpb24gPT09ICdsZWZ0JyB8fCB0YWJQb3NpdGlvbiA9PT0gJ3JpZ2h0JztcbiAgICAgIHZhciBwcmV2SWNvblR5cGUgPSBpc1ZlcnRpY2FsID8gJ3VwJyA6ICdsZWZ0JztcbiAgICAgIHZhciBuZXh0SWNvblR5cGUgPSBpc1ZlcnRpY2FsID8gJ2Rvd24nIDogJ3JpZ2h0JztcbiAgICAgIHZhciBwcmV2SWNvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10YWItcHJldi1pY29uXCIpXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgdHlwZTogcHJldkljb25UeXBlLFxuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItdGFiLXByZXYtaWNvbi10YXJnZXRcIilcbiAgICAgIH0pKTtcbiAgICAgIHZhciBuZXh0SWNvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10YWItbmV4dC1pY29uXCIpXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgdHlwZTogbmV4dEljb25UeXBlLFxuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItdGFiLW5leHQtaWNvbi10YXJnZXRcIilcbiAgICAgIH0pKTsgLy8gQWRkaXRpb25hbCBjbGFzc05hbWUgZm9yIHN0eWxlIHVzYWdlXG5cbiAgICAgIHZhciBjbHMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodGFiUG9zaXRpb24sIFwiLWJhclwiKSwgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNpemUsIFwiLWJhclwiKSwgISFzaXplKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNhcmQtYmFyXCIpLCB0eXBlICYmIHR5cGUuaW5kZXhPZignY2FyZCcpID49IDApLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG5cbiAgICAgIHZhciByZW5kZXJQcm9wcyA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCB0aGlzLnByb3BzKSwge1xuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgaW5rQmFyQW5pbWF0ZWQ6IGlua0JhckFuaW1hdGVkLFxuICAgICAgICBleHRyYUNvbnRlbnQ6IHRhYkJhckV4dHJhQ29udGVudCxcbiAgICAgICAgc3R5bGU6IHRhYkJhclN0eWxlLFxuICAgICAgICBwcmV2SWNvbjogcHJldkljb24sXG4gICAgICAgIG5leHRJY29uOiBuZXh0SWNvbixcbiAgICAgICAgY2xhc3NOYW1lOiBjbHNcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgUmVuZGVyVGFiQmFyO1xuXG4gICAgICBpZiAocmVuZGVyVGFiQmFyKSB7XG4gICAgICAgIFJlbmRlclRhYkJhciA9IHJlbmRlclRhYkJhcihyZW5kZXJQcm9wcywgX1Njcm9sbGFibGVJbmtUYWJCYXJbXCJkZWZhdWx0XCJdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFJlbmRlclRhYkJhciA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9TY3JvbGxhYmxlSW5rVGFiQmFyW1wiZGVmYXVsdFwiXSwgcmVuZGVyUHJvcHMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChSZW5kZXJUYWJCYXIpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUYWJCYXI7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gVGFiQmFyO1xuVGFiQmFyLmRlZmF1bHRQcm9wcyA9IHtcbiAgYW5pbWF0ZWQ6IHRydWUsXG4gIHR5cGU6ICdsaW5lJ1xufTsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kczIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcycpO1xuXG52YXIgX2V4dGVuZHMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXh0ZW5kczIpO1xuXG52YXIgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcycpO1xuXG52YXIgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMik7XG5cbnZhciBfY2xhc3NDYWxsQ2hlY2syID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJyk7XG5cbnZhciBfY2xhc3NDYWxsQ2hlY2szID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NDYWxsQ2hlY2syKTtcblxudmFyIF9jcmVhdGVDbGFzczIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnKTtcblxudmFyIF9jcmVhdGVDbGFzczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jcmVhdGVDbGFzczIpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nKTtcblxudmFyIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yKTtcblxudmFyIF9pbmhlcml0czIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnKTtcblxudmFyIF9pbmhlcml0czMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbmhlcml0czIpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcHJvcFR5cGVzID0gcmVxdWlyZSgncHJvcC10eXBlcycpO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG52YXIgX0lua1RhYkJhck5vZGUgPSByZXF1aXJlKCcuL0lua1RhYkJhck5vZGUnKTtcblxudmFyIF9JbmtUYWJCYXJOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lua1RhYkJhck5vZGUpO1xuXG52YXIgX1RhYkJhclRhYnNOb2RlID0gcmVxdWlyZSgnLi9UYWJCYXJUYWJzTm9kZScpO1xuXG52YXIgX1RhYkJhclRhYnNOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RhYkJhclRhYnNOb2RlKTtcblxudmFyIF9UYWJCYXJSb290Tm9kZSA9IHJlcXVpcmUoJy4vVGFiQmFyUm9vdE5vZGUnKTtcblxudmFyIF9UYWJCYXJSb290Tm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UYWJCYXJSb290Tm9kZSk7XG5cbnZhciBfU2Nyb2xsYWJsZVRhYkJhck5vZGUgPSByZXF1aXJlKCcuL1Njcm9sbGFibGVUYWJCYXJOb2RlJyk7XG5cbnZhciBfU2Nyb2xsYWJsZVRhYkJhck5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2Nyb2xsYWJsZVRhYkJhck5vZGUpO1xuXG52YXIgX1NhdmVSZWYgPSByZXF1aXJlKCcuL1NhdmVSZWYnKTtcblxudmFyIF9TYXZlUmVmMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NhdmVSZWYpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBTY3JvbGxhYmxlSW5rVGFiQmFyID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgKDAsIF9pbmhlcml0czNbJ2RlZmF1bHQnXSkoU2Nyb2xsYWJsZUlua1RhYkJhciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gU2Nyb2xsYWJsZUlua1RhYkJhcigpIHtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrM1snZGVmYXVsdCddKSh0aGlzLCBTY3JvbGxhYmxlSW5rVGFiQmFyKTtcbiAgICByZXR1cm4gKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuM1snZGVmYXVsdCddKSh0aGlzLCAoU2Nyb2xsYWJsZUlua1RhYkJhci5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKFNjcm9sbGFibGVJbmtUYWJCYXIpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfVxuXG4gICgwLCBfY3JlYXRlQ2xhc3MzWydkZWZhdWx0J10pKFNjcm9sbGFibGVJbmtUYWJCYXIsIFt7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcmVuZGVyVGFiQmFyTm9kZSA9IF9wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICByZXN0UHJvcHMgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzM1snZGVmYXVsdCddKShfcHJvcHMsIFsnY2hpbGRyZW4nXSk7XG5cblxuICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICBfU2F2ZVJlZjJbJ2RlZmF1bHQnXSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgZnVuY3Rpb24gKHNhdmVSZWYsIGdldFJlZikge1xuICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIF9UYWJCYXJSb290Tm9kZTJbJ2RlZmF1bHQnXSxcbiAgICAgICAgICAgICgwLCBfZXh0ZW5kczNbJ2RlZmF1bHQnXSkoeyBzYXZlUmVmOiBzYXZlUmVmIH0sIHJlc3RQcm9wcyksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgX1Njcm9sbGFibGVUYWJCYXJOb2RlMlsnZGVmYXVsdCddLFxuICAgICAgICAgICAgICAoMCwgX2V4dGVuZHMzWydkZWZhdWx0J10pKHsgc2F2ZVJlZjogc2F2ZVJlZiwgZ2V0UmVmOiBnZXRSZWYgfSwgcmVzdFByb3BzKSxcbiAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX1RhYkJhclRhYnNOb2RlMlsnZGVmYXVsdCddLCAoMCwgX2V4dGVuZHMzWydkZWZhdWx0J10pKHsgc2F2ZVJlZjogc2F2ZVJlZiwgcmVuZGVyVGFiQmFyTm9kZTogcmVuZGVyVGFiQmFyTm9kZSB9LCByZXN0UHJvcHMpKSxcbiAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX0lua1RhYkJhck5vZGUyWydkZWZhdWx0J10sICgwLCBfZXh0ZW5kczNbJ2RlZmF1bHQnXSkoeyBzYXZlUmVmOiBzYXZlUmVmLCBnZXRSZWY6IGdldFJlZiB9LCByZXN0UHJvcHMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG4gIHJldHVybiBTY3JvbGxhYmxlSW5rVGFiQmFyO1xufShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTsgLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJlZmVyLXN0YXRlbGVzcy1mdW5jdGlvbiAqL1xuXG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNjcm9sbGFibGVJbmtUYWJCYXI7XG5cblxuU2Nyb2xsYWJsZUlua1RhYkJhci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmZ1bmNcbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5Jyk7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGVmaW5lUHJvcGVydHkyKTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snKTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc0NhbGxDaGVjazIpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcycpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZUNsYXNzMik7XG5cbnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybicpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIpO1xuXG52YXIgX2luaGVyaXRzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cycpO1xuXG52YXIgX2luaGVyaXRzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2luaGVyaXRzMik7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9wcm9wVHlwZXMgPSByZXF1aXJlKCdwcm9wLXR5cGVzJyk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfY2xhc3NuYW1lczIgPSByZXF1aXJlKCdjbGFzc25hbWVzJyk7XG5cbnZhciBfY2xhc3NuYW1lczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc25hbWVzMik7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NvbXBvbmVudERpZFVwZGF0ZShjb21wb25lbnQsIGluaXQpIHtcbiAgdmFyIF9jb21wb25lbnQkcHJvcHMgPSBjb21wb25lbnQucHJvcHMsXG4gICAgICBzdHlsZXMgPSBfY29tcG9uZW50JHByb3BzLnN0eWxlcyxcbiAgICAgIHBhbmVscyA9IF9jb21wb25lbnQkcHJvcHMucGFuZWxzLFxuICAgICAgYWN0aXZlS2V5ID0gX2NvbXBvbmVudCRwcm9wcy5hY3RpdmVLZXksXG4gICAgICBkaXJlY3Rpb24gPSBfY29tcG9uZW50JHByb3BzLmRpcmVjdGlvbjtcblxuICB2YXIgcm9vdE5vZGUgPSBjb21wb25lbnQucHJvcHMuZ2V0UmVmKCdyb290Jyk7XG4gIHZhciB3cmFwTm9kZSA9IGNvbXBvbmVudC5wcm9wcy5nZXRSZWYoJ25hdicpIHx8IHJvb3ROb2RlO1xuICB2YXIgaW5rQmFyTm9kZSA9IGNvbXBvbmVudC5wcm9wcy5nZXRSZWYoJ2lua0JhcicpO1xuICB2YXIgYWN0aXZlVGFiID0gY29tcG9uZW50LnByb3BzLmdldFJlZignYWN0aXZlVGFiJyk7XG4gIHZhciBpbmtCYXJOb2RlU3R5bGUgPSBpbmtCYXJOb2RlLnN0eWxlO1xuICB2YXIgdGFiQmFyUG9zaXRpb24gPSBjb21wb25lbnQucHJvcHMudGFiQmFyUG9zaXRpb247XG4gIHZhciBhY3RpdmVJbmRleCA9ICgwLCBfdXRpbHMuZ2V0QWN0aXZlSW5kZXgpKHBhbmVscywgYWN0aXZlS2V5KTtcbiAgaWYgKGluaXQpIHtcbiAgICAvLyBwcmV2ZW50IG1vdW50IGFuaW1hdGlvblxuICAgIGlua0Jhck5vZGVTdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICB9XG4gIGlmIChhY3RpdmVUYWIpIHtcbiAgICB2YXIgdGFiTm9kZSA9IGFjdGl2ZVRhYjtcbiAgICB2YXIgdHJhbnNmb3JtU3VwcG9ydGVkID0gKDAsIF91dGlscy5pc1RyYW5zZm9ybTNkU3VwcG9ydGVkKShpbmtCYXJOb2RlU3R5bGUpO1xuXG4gICAgLy8gUmVzZXQgY3VycmVudCBzdHlsZVxuICAgICgwLCBfdXRpbHMuc2V0VHJhbnNmb3JtKShpbmtCYXJOb2RlU3R5bGUsICcnKTtcbiAgICBpbmtCYXJOb2RlU3R5bGUud2lkdGggPSAnJztcbiAgICBpbmtCYXJOb2RlU3R5bGUuaGVpZ2h0ID0gJyc7XG4gICAgaW5rQmFyTm9kZVN0eWxlLmxlZnQgPSAnJztcbiAgICBpbmtCYXJOb2RlU3R5bGUudG9wID0gJyc7XG4gICAgaW5rQmFyTm9kZVN0eWxlLmJvdHRvbSA9ICcnO1xuICAgIGlua0Jhck5vZGVTdHlsZS5yaWdodCA9ICcnO1xuXG4gICAgaWYgKHRhYkJhclBvc2l0aW9uID09PSAndG9wJyB8fCB0YWJCYXJQb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcbiAgICAgIHZhciBsZWZ0ID0gKDAsIF91dGlscy5nZXRMZWZ0KSh0YWJOb2RlLCB3cmFwTm9kZSk7XG4gICAgICB2YXIgd2lkdGggPSB0YWJOb2RlLm9mZnNldFdpZHRoO1xuXG4gICAgICAvLyBJZiB0YWJOb2RlJ3dpZHRoIHdpZHRoIGVxdWFsIHRvIHdyYXBOb2RlJ3dpZHRoIHdoZW4gdGFiQmFyUG9zaXRpb24gaXMgdG9wIG9yIGJvdHRvbVxuICAgICAgLy8gSXQgbWVhbnMgbm8gY3NzIHdvcmtpbmcsIHRoZW4gaW5rIGJhciBzaG91bGQgbm90IGhhdmUgd2lkdGggdW50aWwgY3NzIGlzIGxvYWRlZFxuICAgICAgLy8gRml4IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzc1NjRcbiAgICAgIGlmICh3aWR0aCA9PT0gcm9vdE5vZGUub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgd2lkdGggPSAwO1xuICAgICAgfSBlbHNlIGlmIChzdHlsZXMuaW5rQmFyICYmIHN0eWxlcy5pbmtCYXIud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB3aWR0aCA9IHBhcnNlRmxvYXQoc3R5bGVzLmlua0Jhci53aWR0aCwgMTApO1xuICAgICAgICBpZiAod2lkdGgpIHtcbiAgICAgICAgICBsZWZ0ICs9ICh0YWJOb2RlLm9mZnNldFdpZHRoIC0gd2lkdGgpIC8gMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgbGVmdCA9ICgwLCBfdXRpbHMuZ2V0U3R5bGUpKHRhYk5vZGUsICdtYXJnaW4tbGVmdCcpIC0gbGVmdDtcbiAgICAgIH1cbiAgICAgIC8vIHVzZSAzZCBncHUgdG8gb3B0aW1pemUgcmVuZGVyXG4gICAgICBpZiAodHJhbnNmb3JtU3VwcG9ydGVkKSB7XG4gICAgICAgICgwLCBfdXRpbHMuc2V0VHJhbnNmb3JtKShpbmtCYXJOb2RlU3R5bGUsICd0cmFuc2xhdGUzZCgnICsgbGVmdCArICdweCwwLDApJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmtCYXJOb2RlU3R5bGUubGVmdCA9IGxlZnQgKyAncHgnO1xuICAgICAgfVxuICAgICAgaW5rQmFyTm9kZVN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdG9wID0gKDAsIF91dGlscy5nZXRUb3ApKHRhYk5vZGUsIHdyYXBOb2RlLCB0cnVlKTtcbiAgICAgIHZhciBoZWlnaHQgPSB0YWJOb2RlLm9mZnNldEhlaWdodDtcbiAgICAgIGlmIChzdHlsZXMuaW5rQmFyICYmIHN0eWxlcy5pbmtCYXIuaGVpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaGVpZ2h0ID0gcGFyc2VGbG9hdChzdHlsZXMuaW5rQmFyLmhlaWdodCwgMTApO1xuICAgICAgICBpZiAoaGVpZ2h0KSB7XG4gICAgICAgICAgdG9wICs9ICh0YWJOb2RlLm9mZnNldEhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHJhbnNmb3JtU3VwcG9ydGVkKSB7XG4gICAgICAgICgwLCBfdXRpbHMuc2V0VHJhbnNmb3JtKShpbmtCYXJOb2RlU3R5bGUsICd0cmFuc2xhdGUzZCgwLCcgKyB0b3AgKyAncHgsMCknKTtcbiAgICAgICAgaW5rQmFyTm9kZVN0eWxlLnRvcCA9ICcwJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlua0Jhck5vZGVTdHlsZS50b3AgPSB0b3AgKyAncHgnO1xuICAgICAgfVxuICAgICAgaW5rQmFyTm9kZVN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gICAgfVxuICB9XG4gIGlua0Jhck5vZGVTdHlsZS5kaXNwbGF5ID0gYWN0aXZlSW5kZXggIT09IC0xID8gJ2Jsb2NrJyA6ICdub25lJztcbn1cblxudmFyIElua1RhYkJhck5vZGUgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAoMCwgX2luaGVyaXRzM1snZGVmYXVsdCddKShJbmtUYWJCYXJOb2RlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBJbmtUYWJCYXJOb2RlKCkge1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2szWydkZWZhdWx0J10pKHRoaXMsIElua1RhYkJhck5vZGUpO1xuICAgIHJldHVybiAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zWydkZWZhdWx0J10pKHRoaXMsIChJbmtUYWJCYXJOb2RlLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoSW5rVGFiQmFyTm9kZSkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgKDAsIF9jcmVhdGVDbGFzczNbJ2RlZmF1bHQnXSkoSW5rVGFiQmFyTm9kZSwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIC8vIHJlZiBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy84Njc4XG4gICAgICAvLyByZWYgaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90YWJzL2lzc3Vlcy8xMzVcbiAgICAgIC8vIElua1RhYkJhck5vZGUgbmVlZCBwYXJlbnQvcm9vdCByZWYgZm9yIGNhbGN1bGF0aW5nIHBvc2l0aW9uXG4gICAgICAvLyBzaW5jZSBwYXJlbnQgY29tcG9uZW50RGlkTW91bnQgdHJpZ2dlcmVkIGFmdGVyIGNoaWxkIGNvbXBvbmVudERpZE1vdW50XG4gICAgICAvLyB3ZSdyZSBkb2luZyBhIHF1aWNrIGZpeCBoZXJlIHRvIHVzZSBzZXRUaW1lb3V0IHRvIGNhbGN1bGF0ZSBwb3NpdGlvblxuICAgICAgLy8gYWZ0ZXIgcGFyZW50L3Jvb3QgY29tcG9uZW50IG1vdW50ZWRcbiAgICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBfY29tcG9uZW50RGlkVXBkYXRlKF90aGlzMiwgdHJ1ZSk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnREaWRVcGRhdGUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBfY29tcG9uZW50RGlkVXBkYXRlKHRoaXMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzbmFtZXM7XG5cbiAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHByZWZpeENscyA9IF9wcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgc3R5bGVzID0gX3Byb3BzLnN0eWxlcyxcbiAgICAgICAgICBpbmtCYXJBbmltYXRlZCA9IF9wcm9wcy5pbmtCYXJBbmltYXRlZDtcblxuICAgICAgdmFyIGNsYXNzTmFtZSA9IHByZWZpeENscyArICctaW5rLWJhcic7XG4gICAgICB2YXIgY2xhc3NlcyA9ICgwLCBfY2xhc3NuYW1lczNbJ2RlZmF1bHQnXSkoKF9jbGFzc25hbWVzID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkzWydkZWZhdWx0J10pKF9jbGFzc25hbWVzLCBjbGFzc05hbWUsIHRydWUpLCAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKShfY2xhc3NuYW1lcywgaW5rQmFyQW5pbWF0ZWQgPyBjbGFzc05hbWUgKyAnLWFuaW1hdGVkJyA6IGNsYXNzTmFtZSArICctbm8tYW5pbWF0ZWQnLCB0cnVlKSwgX2NsYXNzbmFtZXMpKTtcbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICBzdHlsZTogc3R5bGVzLmlua0JhcixcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLFxuICAgICAgICBrZXk6ICdpbmtCYXInLFxuICAgICAgICByZWY6IHRoaXMucHJvcHMuc2F2ZVJlZignaW5rQmFyJylcbiAgICAgIH0pO1xuICAgIH1cbiAgfV0pO1xuICByZXR1cm4gSW5rVGFiQmFyTm9kZTtcbn0oX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElua1RhYkJhck5vZGU7XG5cblxuSW5rVGFiQmFyTm9kZS5wcm9wVHlwZXMgPSB7XG4gIHByZWZpeENsczogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5zdHJpbmcsXG4gIHN0eWxlczogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5vYmplY3QsXG4gIGlua0JhckFuaW1hdGVkOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmJvb2wsXG4gIHNhdmVSZWY6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uZnVuYyxcbiAgZGlyZWN0aW9uOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLnN0cmluZ1xufTtcblxuSW5rVGFiQmFyTm9kZS5kZWZhdWx0UHJvcHMgPSB7XG4gIHByZWZpeENsczogJycsXG4gIGlua0JhckFuaW1hdGVkOiB0cnVlLFxuICBzdHlsZXM6IHt9LFxuICBzYXZlUmVmOiBmdW5jdGlvbiBzYXZlUmVmKCkge31cbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kczIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcycpO1xuXG52YXIgX2V4dGVuZHMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXh0ZW5kczIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eScpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5Mik7XG5cbnZhciBfY2xhc3NDYWxsQ2hlY2syID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJyk7XG5cbnZhciBfY2xhc3NDYWxsQ2hlY2szID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NDYWxsQ2hlY2syKTtcblxudmFyIF9jcmVhdGVDbGFzczIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnKTtcblxudmFyIF9jcmVhdGVDbGFzczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jcmVhdGVDbGFzczIpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nKTtcblxudmFyIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yKTtcblxudmFyIF9pbmhlcml0czIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnKTtcblxudmFyIF9pbmhlcml0czMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbmhlcml0czIpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJ3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG52YXIgX3Byb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgVGFiQmFyVGFic05vZGUgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAoMCwgX2luaGVyaXRzM1snZGVmYXVsdCddKShUYWJCYXJUYWJzTm9kZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVGFiQmFyVGFic05vZGUoKSB7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazNbJ2RlZmF1bHQnXSkodGhpcywgVGFiQmFyVGFic05vZGUpO1xuICAgIHJldHVybiAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zWydkZWZhdWx0J10pKHRoaXMsIChUYWJCYXJUYWJzTm9kZS5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKFRhYkJhclRhYnNOb2RlKSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH1cblxuICAoMCwgX2NyZWF0ZUNsYXNzM1snZGVmYXVsdCddKShUYWJCYXJUYWJzTm9kZSwgW3tcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfcHJvcHMucGFuZWxzLFxuICAgICAgICAgIGFjdGl2ZUtleSA9IF9wcm9wcy5hY3RpdmVLZXksXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3Byb3BzLnByZWZpeENscyxcbiAgICAgICAgICB0YWJCYXJHdXR0ZXIgPSBfcHJvcHMudGFiQmFyR3V0dGVyLFxuICAgICAgICAgIHNhdmVSZWYgPSBfcHJvcHMuc2F2ZVJlZixcbiAgICAgICAgICB0YWJCYXJQb3NpdGlvbiA9IF9wcm9wcy50YWJCYXJQb3NpdGlvbixcbiAgICAgICAgICByZW5kZXJUYWJCYXJOb2RlID0gX3Byb3BzLnJlbmRlclRhYkJhck5vZGUsXG4gICAgICAgICAgZGlyZWN0aW9uID0gX3Byb3BzLmRpcmVjdGlvbjtcblxuICAgICAgdmFyIHJzdCA9IFtdO1xuXG4gICAgICBfcmVhY3QyWydkZWZhdWx0J10uQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgICBpZiAoIWNoaWxkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBrZXkgPSBjaGlsZC5rZXk7XG4gICAgICAgIHZhciBjbHMgPSBhY3RpdmVLZXkgPT09IGtleSA/IHByZWZpeENscyArICctdGFiLWFjdGl2ZScgOiAnJztcbiAgICAgICAgY2xzICs9ICcgJyArIHByZWZpeENscyArICctdGFiJztcbiAgICAgICAgdmFyIGV2ZW50cyA9IHt9O1xuICAgICAgICBpZiAoY2hpbGQucHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgICBjbHMgKz0gJyAnICsgcHJlZml4Q2xzICsgJy10YWItZGlzYWJsZWQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50cyA9IHtcbiAgICAgICAgICAgIG9uQ2xpY2s6IF90aGlzMi5wcm9wcy5vblRhYkNsaWNrLmJpbmQoX3RoaXMyLCBrZXkpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVmID0ge307XG4gICAgICAgIGlmIChhY3RpdmVLZXkgPT09IGtleSkge1xuICAgICAgICAgIHJlZi5yZWYgPSBzYXZlUmVmKCdhY3RpdmVUYWInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBndXR0ZXIgPSB0YWJCYXJHdXR0ZXIgJiYgaW5kZXggPT09IGNoaWxkcmVuLmxlbmd0aCAtIDEgPyAwIDogdGFiQmFyR3V0dGVyO1xuXG4gICAgICAgIHZhciBtYXJnaW5Qcm9wZXJ0eSA9IGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyAnbWFyZ2luTGVmdCcgOiAnbWFyZ2luUmlnaHQnO1xuICAgICAgICB2YXIgc3R5bGUgPSAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKSh7fSwgKDAsIF91dGlscy5pc1ZlcnRpY2FsKSh0YWJCYXJQb3NpdGlvbikgPyAnbWFyZ2luQm90dG9tJyA6IG1hcmdpblByb3BlcnR5LCBndXR0ZXIpO1xuICAgICAgICAoMCwgX3dhcm5pbmcyWydkZWZhdWx0J10pKCd0YWInIGluIGNoaWxkLnByb3BzLCAnVGhlcmUgbXVzdCBiZSBgdGFiYCBwcm9wZXJ0eSBvbiBjaGlsZHJlbiBvZiBUYWJzLicpO1xuXG4gICAgICAgIHZhciBub2RlID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgKDAsIF9leHRlbmRzM1snZGVmYXVsdCddKSh7XG4gICAgICAgICAgICByb2xlOiAndGFiJyxcbiAgICAgICAgICAgICdhcmlhLWRpc2FibGVkJzogY2hpbGQucHJvcHMuZGlzYWJsZWQgPyAndHJ1ZScgOiAnZmFsc2UnLFxuICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBhY3RpdmVLZXkgPT09IGtleSA/ICd0cnVlJyA6ICdmYWxzZSdcbiAgICAgICAgICB9LCBldmVudHMsIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xzLFxuICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgICAgICB9LCByZWYpLFxuICAgICAgICAgIGNoaWxkLnByb3BzLnRhYlxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChyZW5kZXJUYWJCYXJOb2RlKSB7XG4gICAgICAgICAgbm9kZSA9IHJlbmRlclRhYkJhck5vZGUobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICByc3QucHVzaChub2RlKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICB7IHJlZjogc2F2ZVJlZignbmF2VGFic0NvbnRhaW5lcicpIH0sXG4gICAgICAgIHJzdFxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFRhYkJhclRhYnNOb2RlO1xufShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVGFiQmFyVGFic05vZGU7XG5cblxuVGFiQmFyVGFic05vZGUucHJvcFR5cGVzID0ge1xuICBhY3RpdmVLZXk6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uc3RyaW5nLFxuICBwYW5lbHM6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ubm9kZSxcbiAgcHJlZml4Q2xzOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLnN0cmluZyxcbiAgdGFiQmFyR3V0dGVyOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLm51bWJlcixcbiAgb25UYWJDbGljazogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5mdW5jLFxuICBzYXZlUmVmOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmZ1bmMsXG4gIHJlbmRlclRhYkJhck5vZGU6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uZnVuYyxcbiAgdGFiQmFyUG9zaXRpb246IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uc3RyaW5nLFxuICBkaXJlY3Rpb246IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uc3RyaW5nXG59O1xuXG5UYWJCYXJUYWJzTm9kZS5kZWZhdWx0UHJvcHMgPSB7XG4gIHBhbmVsczogW10sXG4gIHByZWZpeENsczogW10sXG4gIHRhYkJhckd1dHRlcjogbnVsbCxcbiAgb25UYWJDbGljazogZnVuY3Rpb24gb25UYWJDbGljaygpIHt9LFxuICBzYXZlUmVmOiBmdW5jdGlvbiBzYXZlUmVmKCkge31cbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kczIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcycpO1xuXG52YXIgX2V4dGVuZHMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXh0ZW5kczIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eScpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5Mik7XG5cbnZhciBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzJyk7XG5cbnZhciBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyKTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snKTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc0NhbGxDaGVjazIpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcycpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZUNsYXNzMik7XG5cbnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybicpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIpO1xuXG52YXIgX2luaGVyaXRzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cycpO1xuXG52YXIgX2luaGVyaXRzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2luaGVyaXRzMik7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9wcm9wVHlwZXMgPSByZXF1aXJlKCdwcm9wLXR5cGVzJyk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfY2xhc3NuYW1lczIgPSByZXF1aXJlKCdjbGFzc25hbWVzJyk7XG5cbnZhciBfY2xhc3NuYW1lczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc25hbWVzMik7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIFRhYkJhclJvb3ROb2RlID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgKDAsIF9pbmhlcml0czNbJ2RlZmF1bHQnXSkoVGFiQmFyUm9vdE5vZGUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFRhYkJhclJvb3ROb2RlKCkge1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2szWydkZWZhdWx0J10pKHRoaXMsIFRhYkJhclJvb3ROb2RlKTtcbiAgICByZXR1cm4gKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuM1snZGVmYXVsdCddKSh0aGlzLCAoVGFiQmFyUm9vdE5vZGUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihUYWJCYXJSb290Tm9kZSkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgKDAsIF9jcmVhdGVDbGFzczNbJ2RlZmF1bHQnXSkoVGFiQmFyUm9vdE5vZGUsIFt7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3Byb3BzLnByZWZpeENscyxcbiAgICAgICAgICBvbktleURvd24gPSBfcHJvcHMub25LZXlEb3duLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF9wcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgZXh0cmFDb250ZW50ID0gX3Byb3BzLmV4dHJhQ29udGVudCxcbiAgICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgICB0YWJCYXJQb3NpdGlvbiA9IF9wcm9wcy50YWJCYXJQb3NpdGlvbixcbiAgICAgICAgICBjaGlsZHJlbiA9IF9wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICByZXN0UHJvcHMgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzM1snZGVmYXVsdCddKShfcHJvcHMsIFsncHJlZml4Q2xzJywgJ29uS2V5RG93bicsICdjbGFzc05hbWUnLCAnZXh0cmFDb250ZW50JywgJ3N0eWxlJywgJ3RhYkJhclBvc2l0aW9uJywgJ2NoaWxkcmVuJ10pO1xuXG4gICAgICB2YXIgY2xzID0gKDAsIF9jbGFzc25hbWVzM1snZGVmYXVsdCddKShwcmVmaXhDbHMgKyAnLWJhcicsICgwLCBfZGVmaW5lUHJvcGVydHkzWydkZWZhdWx0J10pKHt9LCBjbGFzc05hbWUsICEhY2xhc3NOYW1lKSk7XG4gICAgICB2YXIgdG9wT3JCb3R0b20gPSB0YWJCYXJQb3NpdGlvbiA9PT0gJ3RvcCcgfHwgdGFiQmFyUG9zaXRpb24gPT09ICdib3R0b20nO1xuICAgICAgdmFyIHRhYkJhckV4dHJhQ29udGVudFN0eWxlID0gdG9wT3JCb3R0b20gPyB7IGZsb2F0OiAncmlnaHQnIH0gOiB7fTtcbiAgICAgIHZhciBleHRyYUNvbnRlbnRTdHlsZSA9IGV4dHJhQ29udGVudCAmJiBleHRyYUNvbnRlbnQucHJvcHMgPyBleHRyYUNvbnRlbnQucHJvcHMuc3R5bGUgOiB7fTtcbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgaWYgKGV4dHJhQ29udGVudCkge1xuICAgICAgICBuZXdDaGlsZHJlbiA9IFsoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkoZXh0cmFDb250ZW50LCB7XG4gICAgICAgICAga2V5OiAnZXh0cmEnLFxuICAgICAgICAgIHN0eWxlOiAoMCwgX2V4dGVuZHMzWydkZWZhdWx0J10pKHt9LCB0YWJCYXJFeHRyYUNvbnRlbnRTdHlsZSwgZXh0cmFDb250ZW50U3R5bGUpXG4gICAgICAgIH0pLCAoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkoY2hpbGRyZW4sIHsga2V5OiAnY29udGVudCcgfSldO1xuICAgICAgICBuZXdDaGlsZHJlbiA9IHRvcE9yQm90dG9tID8gbmV3Q2hpbGRyZW4gOiBuZXdDaGlsZHJlbi5yZXZlcnNlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICAoMCwgX2V4dGVuZHMzWydkZWZhdWx0J10pKHtcbiAgICAgICAgICByb2xlOiAndGFibGlzdCcsXG4gICAgICAgICAgY2xhc3NOYW1lOiBjbHMsXG4gICAgICAgICAgdGFiSW5kZXg6ICcwJyxcbiAgICAgICAgICByZWY6IHRoaXMucHJvcHMuc2F2ZVJlZigncm9vdCcpLFxuICAgICAgICAgIG9uS2V5RG93bjogb25LZXlEb3duLFxuICAgICAgICAgIHN0eWxlOiBzdHlsZVxuICAgICAgICB9LCAoMCwgX3V0aWxzLmdldERhdGFBdHRyKShyZXN0UHJvcHMpKSxcbiAgICAgICAgbmV3Q2hpbGRyZW5cbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG4gIHJldHVybiBUYWJCYXJSb290Tm9kZTtcbn0oX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRhYkJhclJvb3ROb2RlO1xuXG5cblRhYkJhclJvb3ROb2RlLnByb3BUeXBlcyA9IHtcbiAgcHJlZml4Q2xzOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLnN0cmluZyxcbiAgc3R5bGU6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ub2JqZWN0LFxuICB0YWJCYXJQb3NpdGlvbjogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5vbmVPZihbJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddKSxcbiAgY2hpbGRyZW46IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ubm9kZSxcbiAgZXh0cmFDb250ZW50OiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLm5vZGUsXG4gIG9uS2V5RG93bjogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5mdW5jLFxuICBzYXZlUmVmOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmZ1bmNcbn07XG5cblRhYkJhclJvb3ROb2RlLmRlZmF1bHRQcm9wcyA9IHtcbiAgcHJlZml4Q2xzOiAnJyxcbiAgY2xhc3NOYW1lOiAnJyxcbiAgc3R5bGU6IHt9LFxuICB0YWJCYXJQb3NpdGlvbjogJ3RvcCcsXG4gIGV4dHJhQ29udGVudDogbnVsbCxcbiAgY2hpbGRyZW46IG51bGwsXG4gIG9uS2V5RG93bjogZnVuY3Rpb24gb25LZXlEb3duKCkge30sXG4gIHNhdmVSZWY6IGZ1bmN0aW9uIHNhdmVSZWYoKSB7fVxufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kZWZpbmVQcm9wZXJ0eTIpO1xuXG52YXIgX2NsYXNzQ2FsbENoZWNrMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjaycpO1xuXG52YXIgX2NsYXNzQ2FsbENoZWNrMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NsYXNzQ2FsbENoZWNrMik7XG5cbnZhciBfY3JlYXRlQ2xhc3MyID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJyk7XG5cbnZhciBfY3JlYXRlQ2xhc3MzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlQ2xhc3MyKTtcblxudmFyIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJyk7XG5cbnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMik7XG5cbnZhciBfaW5oZXJpdHMyID0gcmVxdWlyZSgnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJyk7XG5cbnZhciBfaW5oZXJpdHMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaW5oZXJpdHMyKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3Byb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9jbGFzc25hbWVzNSA9IHJlcXVpcmUoJ2NsYXNzbmFtZXMnKTtcblxudmFyIF9jbGFzc25hbWVzNiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NsYXNzbmFtZXM1KTtcblxudmFyIF9kZWJvdW5jZSA9IHJlcXVpcmUoJ2xvZGFzaC9kZWJvdW5jZScpO1xuXG52YXIgX2RlYm91bmNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlYm91bmNlKTtcblxudmFyIF9yZXNpemVPYnNlcnZlclBvbHlmaWxsID0gcmVxdWlyZSgncmVzaXplLW9ic2VydmVyLXBvbHlmaWxsJyk7XG5cbnZhciBfcmVzaXplT2JzZXJ2ZXJQb2x5ZmlsbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZXNpemVPYnNlcnZlclBvbHlmaWxsKTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgU2Nyb2xsYWJsZVRhYkJhck5vZGUgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAoMCwgX2luaGVyaXRzM1snZGVmYXVsdCddKShTY3JvbGxhYmxlVGFiQmFyTm9kZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gU2Nyb2xsYWJsZVRhYkJhck5vZGUocHJvcHMpIHtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrM1snZGVmYXVsdCddKSh0aGlzLCBTY3JvbGxhYmxlVGFiQmFyTm9kZSk7XG5cbiAgICB2YXIgX3RoaXMgPSAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zWydkZWZhdWx0J10pKHRoaXMsIChTY3JvbGxhYmxlVGFiQmFyTm9kZS5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKFNjcm9sbGFibGVUYWJCYXJOb2RlKSkuY2FsbCh0aGlzLCBwcm9wcykpO1xuXG4gICAgX3RoaXMucHJldlRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKGUucHJvcGVydHlOYW1lICE9PSAnb3BhY2l0eScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGNvbnRhaW5lciA9IF90aGlzLnByb3BzLmdldFJlZignY29udGFpbmVyJyk7XG4gICAgICBfdGhpcy5zY3JvbGxUb0FjdGl2ZVRhYih7XG4gICAgICAgIHRhcmdldDogY29udGFpbmVyLFxuICAgICAgICBjdXJyZW50VGFyZ2V0OiBjb250YWluZXJcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5zY3JvbGxUb0FjdGl2ZVRhYiA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgYWN0aXZlVGFiID0gX3RoaXMucHJvcHMuZ2V0UmVmKCdhY3RpdmVUYWInKTtcbiAgICAgIHZhciBuYXZXcmFwID0gX3RoaXMucHJvcHMuZ2V0UmVmKCduYXZXcmFwJyk7XG4gICAgICBpZiAoZSAmJiBlLnRhcmdldCAhPT0gZS5jdXJyZW50VGFyZ2V0IHx8ICFhY3RpdmVUYWIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyB3aGVuIG5vdCBzY3JvbGxhYmxlIG9yIGVudGVyIHNjcm9sbGFibGUgZmlyc3QgdGltZSwgZG9uJ3QgZW1pdCBzY3JvbGxpbmdcbiAgICAgIHZhciBuZWVkVG9Tcm9sbCA9IF90aGlzLmlzTmV4dFByZXZTaG93bigpICYmIF90aGlzLmxhc3ROZXh0UHJldlNob3duO1xuICAgICAgX3RoaXMubGFzdE5leHRQcmV2U2hvd24gPSBfdGhpcy5pc05leHRQcmV2U2hvd24oKTtcbiAgICAgIGlmICghbmVlZFRvU3JvbGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWN0aXZlVGFiV0ggPSBfdGhpcy5nZXRTY3JvbGxXSChhY3RpdmVUYWIpO1xuICAgICAgdmFyIG5hdldyYXBOb2RlV0ggPSBfdGhpcy5nZXRPZmZzZXRXSChuYXZXcmFwKTtcbiAgICAgIHZhciBvZmZzZXQgPSBfdGhpcy5vZmZzZXQ7XG5cbiAgICAgIHZhciB3cmFwT2Zmc2V0ID0gX3RoaXMuZ2V0T2Zmc2V0TFQobmF2V3JhcCk7XG4gICAgICB2YXIgYWN0aXZlVGFiT2Zmc2V0ID0gX3RoaXMuZ2V0T2Zmc2V0TFQoYWN0aXZlVGFiKTtcbiAgICAgIGlmICh3cmFwT2Zmc2V0ID4gYWN0aXZlVGFiT2Zmc2V0KSB7XG4gICAgICAgIG9mZnNldCArPSB3cmFwT2Zmc2V0IC0gYWN0aXZlVGFiT2Zmc2V0O1xuICAgICAgICBfdGhpcy5zZXRPZmZzZXQob2Zmc2V0KTtcbiAgICAgIH0gZWxzZSBpZiAod3JhcE9mZnNldCArIG5hdldyYXBOb2RlV0ggPCBhY3RpdmVUYWJPZmZzZXQgKyBhY3RpdmVUYWJXSCkge1xuICAgICAgICBvZmZzZXQgLT0gYWN0aXZlVGFiT2Zmc2V0ICsgYWN0aXZlVGFiV0ggLSAod3JhcE9mZnNldCArIG5hdldyYXBOb2RlV0gpO1xuICAgICAgICBfdGhpcy5zZXRPZmZzZXQob2Zmc2V0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMucHJldiA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5wcm9wcy5vblByZXZDbGljayhlKTtcbiAgICAgIHZhciBuYXZXcmFwTm9kZSA9IF90aGlzLnByb3BzLmdldFJlZignbmF2V3JhcCcpO1xuICAgICAgdmFyIG5hdldyYXBOb2RlV0ggPSBfdGhpcy5nZXRPZmZzZXRXSChuYXZXcmFwTm9kZSk7XG4gICAgICB2YXIgb2Zmc2V0ID0gX3RoaXMub2Zmc2V0O1xuXG4gICAgICBfdGhpcy5zZXRPZmZzZXQob2Zmc2V0ICsgbmF2V3JhcE5vZGVXSCk7XG4gICAgfTtcblxuICAgIF90aGlzLm5leHQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgX3RoaXMucHJvcHMub25OZXh0Q2xpY2soZSk7XG4gICAgICB2YXIgbmF2V3JhcE5vZGUgPSBfdGhpcy5wcm9wcy5nZXRSZWYoJ25hdldyYXAnKTtcbiAgICAgIHZhciBuYXZXcmFwTm9kZVdIID0gX3RoaXMuZ2V0T2Zmc2V0V0gobmF2V3JhcE5vZGUpO1xuICAgICAgdmFyIG9mZnNldCA9IF90aGlzLm9mZnNldDtcblxuICAgICAgX3RoaXMuc2V0T2Zmc2V0KG9mZnNldCAtIG5hdldyYXBOb2RlV0gpO1xuICAgIH07XG5cbiAgICBfdGhpcy5vZmZzZXQgPSAwO1xuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBuZXh0OiBmYWxzZSxcbiAgICAgIHByZXY6IGZhbHNlXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICAoMCwgX2NyZWF0ZUNsYXNzM1snZGVmYXVsdCddKShTY3JvbGxhYmxlVGFiQmFyTm9kZSwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHRoaXMuY29tcG9uZW50RGlkVXBkYXRlKCk7XG4gICAgICB0aGlzLmRlYm91bmNlZFJlc2l6ZSA9ICgwLCBfZGVib3VuY2UyWydkZWZhdWx0J10pKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnNldE5leHRQcmV2KCk7XG4gICAgICAgIF90aGlzMi5zY3JvbGxUb0FjdGl2ZVRhYigpO1xuICAgICAgfSwgMjAwKTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgX3Jlc2l6ZU9ic2VydmVyUG9seWZpbGwyWydkZWZhdWx0J10odGhpcy5kZWJvdW5jZWRSZXNpemUpO1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMucHJvcHMuZ2V0UmVmKCdjb250YWluZXInKSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIGlmIChwcmV2UHJvcHMgJiYgcHJldlByb3BzLnRhYkJhclBvc2l0aW9uICE9PSBwcm9wcy50YWJCYXJQb3NpdGlvbikge1xuICAgICAgICB0aGlzLnNldE9mZnNldCgwKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIG5leHRQcmV2ID0gdGhpcy5zZXROZXh0UHJldigpO1xuICAgICAgLy8gd2FpdCBuZXh0LCBwcmV2IHNob3cgaGlkZVxuICAgICAgLyogZXNsaW50IHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlOjAgKi9cbiAgICAgIGlmICh0aGlzLmlzTmV4dFByZXZTaG93bih0aGlzLnN0YXRlKSAhPT0gdGhpcy5pc05leHRQcmV2U2hvd24obmV4dFByZXYpKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe30sIHRoaXMuc2Nyb2xsVG9BY3RpdmVUYWIpO1xuICAgICAgfSBlbHNlIGlmICghcHJldlByb3BzIHx8IHByb3BzLmFjdGl2ZUtleSAhPT0gcHJldlByb3BzLmFjdGl2ZUtleSkge1xuICAgICAgICAvLyBjYW4gbm90IHVzZSBwcm9wcy5hY3RpdmVLZXlcbiAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZVRhYigpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRlYm91bmNlZFJlc2l6ZSAmJiB0aGlzLmRlYm91bmNlZFJlc2l6ZS5jYW5jZWwpIHtcbiAgICAgICAgdGhpcy5kZWJvdW5jZWRSZXNpemUuY2FuY2VsKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc2V0TmV4dFByZXYnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXROZXh0UHJldigpIHtcbiAgICAgIHZhciBuYXZOb2RlID0gdGhpcy5wcm9wcy5nZXRSZWYoJ25hdicpO1xuICAgICAgdmFyIG5hdlRhYnNDb250YWluZXIgPSB0aGlzLnByb3BzLmdldFJlZignbmF2VGFic0NvbnRhaW5lcicpO1xuICAgICAgdmFyIG5hdk5vZGVXSCA9IHRoaXMuZ2V0U2Nyb2xsV0gobmF2VGFic0NvbnRhaW5lciB8fCBuYXZOb2RlKTtcbiAgICAgIC8vIEFkZCAxcHggdG8gZml4IGBvZmZzZXRXaWR0aGAgd2l0aCBkZWNpbWFsIGluIENocm9tZSBub3QgY29ycmVjdCBoYW5kbGVcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzEzNDIzXG4gICAgICB2YXIgY29udGFpbmVyV0ggPSB0aGlzLmdldE9mZnNldFdIKHRoaXMucHJvcHMuZ2V0UmVmKCdjb250YWluZXInKSkgKyAxO1xuICAgICAgdmFyIG5hdldyYXBOb2RlV0ggPSB0aGlzLmdldE9mZnNldFdIKHRoaXMucHJvcHMuZ2V0UmVmKCduYXZXcmFwJykpO1xuICAgICAgdmFyIG9mZnNldCA9IHRoaXMub2Zmc2V0O1xuXG4gICAgICB2YXIgbWluT2Zmc2V0ID0gY29udGFpbmVyV0ggLSBuYXZOb2RlV0g7XG4gICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZSxcbiAgICAgICAgICBuZXh0ID0gX3N0YXRlLm5leHQsXG4gICAgICAgICAgcHJldiA9IF9zdGF0ZS5wcmV2O1xuXG4gICAgICBpZiAobWluT2Zmc2V0ID49IDApIHtcbiAgICAgICAgbmV4dCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldE9mZnNldCgwLCBmYWxzZSk7XG4gICAgICAgIG9mZnNldCA9IDA7XG4gICAgICB9IGVsc2UgaWYgKG1pbk9mZnNldCA8IG9mZnNldCkge1xuICAgICAgICBuZXh0ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQgPSBmYWxzZTtcbiAgICAgICAgLy8gRml4IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzg4NjFcbiAgICAgICAgLy8gVGVzdCB3aXRoIGNvbnRhaW5lciBvZmZzZXQgd2hpY2ggaXMgc3RhYmxlXG4gICAgICAgIC8vIGFuZCBzZXQgdGhlIG9mZnNldCBvZiB0aGUgbmF2IHdyYXAgbm9kZVxuICAgICAgICB2YXIgcmVhbE9mZnNldCA9IG5hdldyYXBOb2RlV0ggLSBuYXZOb2RlV0g7XG4gICAgICAgIHRoaXMuc2V0T2Zmc2V0KHJlYWxPZmZzZXQsIGZhbHNlKTtcbiAgICAgICAgb2Zmc2V0ID0gcmVhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgaWYgKG9mZnNldCA8IDApIHtcbiAgICAgICAgcHJldiA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcmV2ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0TmV4dChuZXh0KTtcbiAgICAgIHRoaXMuc2V0UHJldihwcmV2KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5leHQ6IG5leHQsXG4gICAgICAgIHByZXY6IHByZXZcbiAgICAgIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0T2Zmc2V0V0gnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRPZmZzZXRXSChub2RlKSB7XG4gICAgICB2YXIgdGFiQmFyUG9zaXRpb24gPSB0aGlzLnByb3BzLnRhYkJhclBvc2l0aW9uO1xuICAgICAgdmFyIHByb3AgPSAnb2Zmc2V0V2lkdGgnO1xuICAgICAgaWYgKHRhYkJhclBvc2l0aW9uID09PSAnbGVmdCcgfHwgdGFiQmFyUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgcHJvcCA9ICdvZmZzZXRIZWlnaHQnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vZGVbcHJvcF07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0U2Nyb2xsV0gnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTY3JvbGxXSChub2RlKSB7XG4gICAgICB2YXIgdGFiQmFyUG9zaXRpb24gPSB0aGlzLnByb3BzLnRhYkJhclBvc2l0aW9uO1xuICAgICAgdmFyIHByb3AgPSAnc2Nyb2xsV2lkdGgnO1xuICAgICAgaWYgKHRhYkJhclBvc2l0aW9uID09PSAnbGVmdCcgfHwgdGFiQmFyUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgcHJvcCA9ICdzY3JvbGxIZWlnaHQnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vZGVbcHJvcF07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0T2Zmc2V0TFQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRPZmZzZXRMVChub2RlKSB7XG4gICAgICB2YXIgdGFiQmFyUG9zaXRpb24gPSB0aGlzLnByb3BzLnRhYkJhclBvc2l0aW9uO1xuICAgICAgdmFyIHByb3AgPSAnbGVmdCc7XG4gICAgICBpZiAodGFiQmFyUG9zaXRpb24gPT09ICdsZWZ0JyB8fCB0YWJCYXJQb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICBwcm9wID0gJ3RvcCc7XG4gICAgICB9XG4gICAgICByZXR1cm4gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtwcm9wXTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdzZXRPZmZzZXQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRPZmZzZXQob2Zmc2V0KSB7XG4gICAgICB2YXIgY2hlY2tOZXh0UHJldiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHJ1ZTtcblxuICAgICAgdmFyIHRhcmdldCA9IE1hdGgubWluKDAsIG9mZnNldCk7XG4gICAgICBpZiAodGhpcy5vZmZzZXQgIT09IHRhcmdldCkge1xuICAgICAgICB0aGlzLm9mZnNldCA9IHRhcmdldDtcbiAgICAgICAgdmFyIG5hdk9mZnNldCA9IHt9O1xuICAgICAgICB2YXIgdGFiQmFyUG9zaXRpb24gPSB0aGlzLnByb3BzLnRhYkJhclBvc2l0aW9uO1xuICAgICAgICB2YXIgbmF2U3R5bGUgPSB0aGlzLnByb3BzLmdldFJlZignbmF2Jykuc3R5bGU7XG4gICAgICAgIHZhciB0cmFuc2Zvcm1TdXBwb3J0ZWQgPSAoMCwgX3V0aWxzLmlzVHJhbnNmb3JtM2RTdXBwb3J0ZWQpKG5hdlN0eWxlKTtcbiAgICAgICAgaWYgKHRhYkJhclBvc2l0aW9uID09PSAnbGVmdCcgfHwgdGFiQmFyUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICBpZiAodHJhbnNmb3JtU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICBuYXZPZmZzZXQgPSB7XG4gICAgICAgICAgICAgIHZhbHVlOiAndHJhbnNsYXRlM2QoMCwnICsgdGFyZ2V0ICsgJ3B4LDApJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmF2T2Zmc2V0ID0ge1xuICAgICAgICAgICAgICBuYW1lOiAndG9wJyxcbiAgICAgICAgICAgICAgdmFsdWU6IHRhcmdldCArICdweCdcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRyYW5zZm9ybVN1cHBvcnRlZCkge1xuICAgICAgICAgIGlmICh0aGlzLnByb3BzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIHRhcmdldCA9IC10YXJnZXQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5hdk9mZnNldCA9IHtcbiAgICAgICAgICAgIHZhbHVlOiAndHJhbnNsYXRlM2QoJyArIHRhcmdldCArICdweCwwLDApJ1xuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmF2T2Zmc2V0ID0ge1xuICAgICAgICAgICAgbmFtZTogJ2xlZnQnLFxuICAgICAgICAgICAgdmFsdWU6IHRhcmdldCArICdweCdcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0cmFuc2Zvcm1TdXBwb3J0ZWQpIHtcbiAgICAgICAgICAoMCwgX3V0aWxzLnNldFRyYW5zZm9ybSkobmF2U3R5bGUsIG5hdk9mZnNldC52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmF2U3R5bGVbbmF2T2Zmc2V0Lm5hbWVdID0gbmF2T2Zmc2V0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGVja05leHRQcmV2KSB7XG4gICAgICAgICAgdGhpcy5zZXROZXh0UHJldigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc2V0UHJldicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldFByZXYodikge1xuICAgICAgaWYgKHRoaXMuc3RhdGUucHJldiAhPT0gdikge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBwcmV2OiB2XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3NldE5leHQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXROZXh0KHYpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLm5leHQgIT09IHYpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgbmV4dDogdlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdpc05leHRQcmV2U2hvd24nLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc05leHRQcmV2U2hvd24oc3RhdGUpIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICByZXR1cm4gc3RhdGUubmV4dCB8fCBzdGF0ZS5wcmV2O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUubmV4dCB8fCB0aGlzLnN0YXRlLnByZXY7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9jbGFzc25hbWVzLCBfY2xhc3NuYW1lczIsIF9jbGFzc25hbWVzMywgX2NsYXNzbmFtZXM0O1xuXG4gICAgICB2YXIgX3N0YXRlMiA9IHRoaXMuc3RhdGUsXG4gICAgICAgICAgbmV4dCA9IF9zdGF0ZTIubmV4dCxcbiAgICAgICAgICBwcmV2ID0gX3N0YXRlMi5wcmV2O1xuICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3Byb3BzLnByZWZpeENscyxcbiAgICAgICAgICBzY3JvbGxBbmltYXRlZCA9IF9wcm9wcy5zY3JvbGxBbmltYXRlZCxcbiAgICAgICAgICBuYXZXcmFwcGVyID0gX3Byb3BzLm5hdldyYXBwZXIsXG4gICAgICAgICAgcHJldkljb24gPSBfcHJvcHMucHJldkljb24sXG4gICAgICAgICAgbmV4dEljb24gPSBfcHJvcHMubmV4dEljb247XG5cbiAgICAgIHZhciBzaG93TmV4dFByZXYgPSBwcmV2IHx8IG5leHQ7XG5cbiAgICAgIHZhciBwcmV2QnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdzcGFuJyxcbiAgICAgICAge1xuICAgICAgICAgIG9uQ2xpY2s6IHByZXYgPyB0aGlzLnByZXYgOiBudWxsLFxuICAgICAgICAgIHVuc2VsZWN0YWJsZTogJ3Vuc2VsZWN0YWJsZScsXG4gICAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXM2WydkZWZhdWx0J10pKChfY2xhc3NuYW1lcyA9IHt9LCAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKShfY2xhc3NuYW1lcywgcHJlZml4Q2xzICsgJy10YWItcHJldicsIDEpLCAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKShfY2xhc3NuYW1lcywgcHJlZml4Q2xzICsgJy10YWItYnRuLWRpc2FibGVkJywgIXByZXYpLCAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKShfY2xhc3NuYW1lcywgcHJlZml4Q2xzICsgJy10YWItYXJyb3ctc2hvdycsIHNob3dOZXh0UHJldiksIF9jbGFzc25hbWVzKSksXG4gICAgICAgICAgb25UcmFuc2l0aW9uRW5kOiB0aGlzLnByZXZUcmFuc2l0aW9uRW5kXG4gICAgICAgIH0sXG4gICAgICAgIHByZXZJY29uIHx8IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6IHByZWZpeENscyArICctdGFiLXByZXYtaWNvbicgfSlcbiAgICAgICk7XG5cbiAgICAgIHZhciBuZXh0QnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdzcGFuJyxcbiAgICAgICAge1xuICAgICAgICAgIG9uQ2xpY2s6IG5leHQgPyB0aGlzLm5leHQgOiBudWxsLFxuICAgICAgICAgIHVuc2VsZWN0YWJsZTogJ3Vuc2VsZWN0YWJsZScsXG4gICAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXM2WydkZWZhdWx0J10pKChfY2xhc3NuYW1lczIgPSB7fSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTNbJ2RlZmF1bHQnXSkoX2NsYXNzbmFtZXMyLCBwcmVmaXhDbHMgKyAnLXRhYi1uZXh0JywgMSksICgwLCBfZGVmaW5lUHJvcGVydHkzWydkZWZhdWx0J10pKF9jbGFzc25hbWVzMiwgcHJlZml4Q2xzICsgJy10YWItYnRuLWRpc2FibGVkJywgIW5leHQpLCAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKShfY2xhc3NuYW1lczIsIHByZWZpeENscyArICctdGFiLWFycm93LXNob3cnLCBzaG93TmV4dFByZXYpLCBfY2xhc3NuYW1lczIpKVxuICAgICAgICB9LFxuICAgICAgICBuZXh0SWNvbiB8fCBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiBwcmVmaXhDbHMgKyAnLXRhYi1uZXh0LWljb24nIH0pXG4gICAgICApO1xuXG4gICAgICB2YXIgbmF2Q2xhc3NOYW1lID0gcHJlZml4Q2xzICsgJy1uYXYnO1xuICAgICAgdmFyIG5hdkNsYXNzZXMgPSAoMCwgX2NsYXNzbmFtZXM2WydkZWZhdWx0J10pKChfY2xhc3NuYW1lczMgPSB7fSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTNbJ2RlZmF1bHQnXSkoX2NsYXNzbmFtZXMzLCBuYXZDbGFzc05hbWUsIHRydWUpLCAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKShfY2xhc3NuYW1lczMsIHNjcm9sbEFuaW1hdGVkID8gbmF2Q2xhc3NOYW1lICsgJy1hbmltYXRlZCcgOiBuYXZDbGFzc05hbWUgKyAnLW5vLWFuaW1hdGVkJywgdHJ1ZSksIF9jbGFzc25hbWVzMykpO1xuXG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXM2WydkZWZhdWx0J10pKChfY2xhc3NuYW1lczQgPSB7fSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTNbJ2RlZmF1bHQnXSkoX2NsYXNzbmFtZXM0LCBwcmVmaXhDbHMgKyAnLW5hdi1jb250YWluZXInLCAxKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTNbJ2RlZmF1bHQnXSkoX2NsYXNzbmFtZXM0LCBwcmVmaXhDbHMgKyAnLW5hdi1jb250YWluZXItc2Nyb2xsaW5nJywgc2hvd05leHRQcmV2KSwgX2NsYXNzbmFtZXM0KSksXG4gICAgICAgICAga2V5OiAnY29udGFpbmVyJyxcbiAgICAgICAgICByZWY6IHRoaXMucHJvcHMuc2F2ZVJlZignY29udGFpbmVyJylcbiAgICAgICAgfSxcbiAgICAgICAgcHJldkJ1dHRvbixcbiAgICAgICAgbmV4dEJ1dHRvbixcbiAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgeyBjbGFzc05hbWU6IHByZWZpeENscyArICctbmF2LXdyYXAnLCByZWY6IHRoaXMucHJvcHMuc2F2ZVJlZignbmF2V3JhcCcpIH0sXG4gICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBwcmVmaXhDbHMgKyAnLW5hdi1zY3JvbGwnIH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBuYXZDbGFzc2VzLCByZWY6IHRoaXMucHJvcHMuc2F2ZVJlZignbmF2JykgfSxcbiAgICAgICAgICAgICAgbmF2V3JhcHBlcih0aGlzLnByb3BzLmNoaWxkcmVuKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFNjcm9sbGFibGVUYWJCYXJOb2RlO1xufShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gU2Nyb2xsYWJsZVRhYkJhck5vZGU7XG5cblxuU2Nyb2xsYWJsZVRhYkJhck5vZGUucHJvcFR5cGVzID0ge1xuICBhY3RpdmVLZXk6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uc3RyaW5nLFxuICBnZXRSZWY6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uZnVuYy5pc1JlcXVpcmVkLFxuICBzYXZlUmVmOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdGFiQmFyUG9zaXRpb246IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ub25lT2YoWydsZWZ0JywgJ3JpZ2h0JywgJ3RvcCcsICdib3R0b20nXSksXG4gIHByZWZpeENsczogX3Byb3BUeXBlczJbJ2RlZmF1bHQnXS5zdHJpbmcsXG4gIHNjcm9sbEFuaW1hdGVkOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmJvb2wsXG4gIG9uUHJldkNsaWNrOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmZ1bmMsXG4gIG9uTmV4dENsaWNrOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmZ1bmMsXG4gIG5hdldyYXBwZXI6IF9wcm9wVHlwZXMyWydkZWZhdWx0J10uZnVuYyxcbiAgY2hpbGRyZW46IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ubm9kZSxcbiAgcHJldkljb246IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ubm9kZSxcbiAgbmV4dEljb246IF9wcm9wVHlwZXMyWydkZWZhdWx0J10ubm9kZSxcbiAgZGlyZWN0aW9uOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLm5vZGVcbn07XG5cblNjcm9sbGFibGVUYWJCYXJOb2RlLmRlZmF1bHRQcm9wcyA9IHtcbiAgdGFiQmFyUG9zaXRpb246ICdsZWZ0JyxcbiAgcHJlZml4Q2xzOiAnJyxcbiAgc2Nyb2xsQW5pbWF0ZWQ6IHRydWUsXG4gIG9uUHJldkNsaWNrOiBmdW5jdGlvbiBvblByZXZDbGljaygpIHt9LFxuICBvbk5leHRDbGljazogZnVuY3Rpb24gb25OZXh0Q2xpY2soKSB7fSxcbiAgbmF2V3JhcHBlcjogZnVuY3Rpb24gbmF2V3JhcHBlcihlbGUpIHtcbiAgICByZXR1cm4gZWxlO1xuICB9XG59O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIG5vdyA9IHJlcXVpcmUoJy4vbm93JyksXG4gICAgdG9OdW1iZXIgPSByZXF1aXJlKCcuL3RvTnVtYmVyJyk7XG5cbi8qKiBFcnJvciBtZXNzYWdlIGNvbnN0YW50cy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heCxcbiAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGVib3VuY2VkIGZ1bmN0aW9uIHRoYXQgZGVsYXlzIGludm9raW5nIGBmdW5jYCB1bnRpbCBhZnRlciBgd2FpdGBcbiAqIG1pbGxpc2Vjb25kcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHdhc1xuICogaW52b2tlZC4gVGhlIGRlYm91bmNlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxuICogZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG8gaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uXG4gKiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYCBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGVcbiAqIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcbiAqIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnRcbiAqIGNhbGxzIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgXG4gKiBpbnZvY2F0aW9uLlxuICpcbiAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uXG4gKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gKlxuICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXG4gKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXG4gKlxuICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXG4gKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLmRlYm91bmNlYCBhbmQgYF8udGhyb3R0bGVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz1mYWxzZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4V2FpdF1cbiAqICBUaGUgbWF4aW11bSB0aW1lIGBmdW5jYCBpcyBhbGxvd2VkIHRvIGJlIGRlbGF5ZWQgYmVmb3JlIGl0J3MgaW52b2tlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZGVib3VuY2VkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBBdm9pZCBjb3N0bHkgY2FsY3VsYXRpb25zIHdoaWxlIHRoZSB3aW5kb3cgc2l6ZSBpcyBpbiBmbHV4LlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsIF8uZGVib3VuY2UoY2FsY3VsYXRlTGF5b3V0LCAxNTApKTtcbiAqXG4gKiAvLyBJbnZva2UgYHNlbmRNYWlsYCB3aGVuIGNsaWNrZWQsIGRlYm91bmNpbmcgc3Vic2VxdWVudCBjYWxscy5cbiAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmRlYm91bmNlKHNlbmRNYWlsLCAzMDAsIHtcbiAqICAgJ2xlYWRpbmcnOiB0cnVlLFxuICogICAndHJhaWxpbmcnOiBmYWxzZVxuICogfSkpO1xuICpcbiAqIC8vIEVuc3VyZSBgYmF0Y2hMb2dgIGlzIGludm9rZWQgb25jZSBhZnRlciAxIHNlY29uZCBvZiBkZWJvdW5jZWQgY2FsbHMuXG4gKiB2YXIgZGVib3VuY2VkID0gXy5kZWJvdW5jZShiYXRjaExvZywgMjUwLCB7ICdtYXhXYWl0JzogMTAwMCB9KTtcbiAqIHZhciBzb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoJy9zdHJlYW0nKTtcbiAqIGpRdWVyeShzb3VyY2UpLm9uKCdtZXNzYWdlJywgZGVib3VuY2VkKTtcbiAqXG4gKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIGRlYm91bmNlZCBpbnZvY2F0aW9uLlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgZGVib3VuY2VkLmNhbmNlbCk7XG4gKi9cbmZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RBcmdzLFxuICAgICAgbGFzdFRoaXMsXG4gICAgICBtYXhXYWl0LFxuICAgICAgcmVzdWx0LFxuICAgICAgdGltZXJJZCxcbiAgICAgIGxhc3RDYWxsVGltZSxcbiAgICAgIGxhc3RJbnZva2VUaW1lID0gMCxcbiAgICAgIGxlYWRpbmcgPSBmYWxzZSxcbiAgICAgIG1heGluZyA9IGZhbHNlLFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHdhaXQgPSB0b051bWJlcih3YWl0KSB8fCAwO1xuICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICBsZWFkaW5nID0gISFvcHRpb25zLmxlYWRpbmc7XG4gICAgbWF4aW5nID0gJ21heFdhaXQnIGluIG9wdGlvbnM7XG4gICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcihvcHRpb25zLm1heFdhaXQpIHx8IDAsIHdhaXQpIDogbWF4V2FpdDtcbiAgICB0cmFpbGluZyA9ICd0cmFpbGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlRnVuYyh0aW1lKSB7XG4gICAgdmFyIGFyZ3MgPSBsYXN0QXJncyxcbiAgICAgICAgdGhpc0FyZyA9IGxhc3RUaGlzO1xuXG4gICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gbGVhZGluZ0VkZ2UodGltZSkge1xuICAgIC8vIFJlc2V0IGFueSBgbWF4V2FpdGAgdGltZXIuXG4gICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgIC8vIFN0YXJ0IHRoZSB0aW1lciBmb3IgdGhlIHRyYWlsaW5nIGVkZ2UuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAvLyBJbnZva2UgdGhlIGxlYWRpbmcgZWRnZS5cbiAgICByZXR1cm4gbGVhZGluZyA/IGludm9rZUZ1bmModGltZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiByZW1haW5pbmdXYWl0KHRpbWUpIHtcbiAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lLFxuICAgICAgICB0aW1lV2FpdGluZyA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmdcbiAgICAgID8gbmF0aXZlTWluKHRpbWVXYWl0aW5nLCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSlcbiAgICAgIDogdGltZVdhaXRpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkZWJvdW5jZTtcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vdztcbiIsIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbm1vZHVsZS5leHBvcnRzID0gZnJlZUdsb2JhbDtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTkFOID0gMCAvIDA7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgbnVtYmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvTnVtYmVyKDMuMik7XG4gKiAvLyA9PiAzLjJcbiAqXG4gKiBfLnRvTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gNWUtMzI0XG4gKlxuICogXy50b051bWJlcihJbmZpbml0eSk7XG4gKiAvLyA9PiBJbmZpbml0eVxuICpcbiAqIF8udG9OdW1iZXIoJzMuMicpO1xuICogLy8gPT4gMy4yXG4gKi9cbmZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBOQU47XG4gIH1cbiAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHZhciBvdGhlciA9IHR5cGVvZiB2YWx1ZS52YWx1ZU9mID09ICdmdW5jdGlvbicgPyB2YWx1ZS52YWx1ZU9mKCkgOiB2YWx1ZTtcbiAgICB2YWx1ZSA9IGlzT2JqZWN0KG90aGVyKSA/IChvdGhlciArICcnKSA6IG90aGVyO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgfVxuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UocmVUcmltLCAnJyk7XG4gIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gIHJldHVybiAoaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpKVxuICAgID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KVxuICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvTnVtYmVyO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzU3ltYm9sO1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpLFxuICAgIGdldFJhd1RhZyA9IHJlcXVpcmUoJy4vX2dldFJhd1RhZycpLFxuICAgIG9iamVjdFRvU3RyaW5nID0gcmVxdWlyZSgnLi9fb2JqZWN0VG9TdHJpbmcnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldFRhZztcbiIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFJhd1RhZztcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9iamVjdFRvU3RyaW5nO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3RMaWtlO1xuIiwiLyoqXHJcbiAqIEEgY29sbGVjdGlvbiBvZiBzaGltcyB0aGF0IHByb3ZpZGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFUzYgY29sbGVjdGlvbnMuXHJcbiAqXHJcbiAqIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJcclxuICogbW9kdWxlcyBhcyB0aGV5IGNvdmVyIG9ubHkgYSBsaW1pdGVkIHJhbmdlIG9mIHVzZSBjYXNlcy5cclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtanNkb2MsIHZhbGlkLWpzZG9jICovXHJcbnZhciBNYXBTaGltID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgTWFwICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBNYXA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgaW5kZXggaW4gcHJvdmlkZWQgYXJyYXkgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk+fSBhcnJcclxuICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRJbmRleChhcnIsIGtleSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAtMTtcclxuICAgICAgICBhcnIuc29tZShmdW5jdGlvbiAoZW50cnksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeVswXSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbGFzc18xLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMgeyp9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleCh0aGlzLl9fZW50cmllc19fLCBrZXkpO1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9fZW50cmllc19fW2luZGV4XTtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5WzFdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX18ucHVzaChba2V5LCB2YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB0aGlzLl9fZW50cmllc19fO1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleChlbnRyaWVzLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAofmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnNwbGljZSgwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBbY3R4PW51bGxdXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdHggPT09IHZvaWQgMCkgeyBjdHggPSBudWxsOyB9XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9fZW50cmllc19fOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gX2FbX2ldO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjdHgsIGVudHJ5WzFdLCBlbnRyeVswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufSkoKTtcblxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciB3aW5kb3cgYW5kIGRvY3VtZW50IG9iamVjdHMgYXJlIGF2YWlsYWJsZSBpbiBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxudmFyIGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ID09PSBkb2N1bWVudDtcblxuLy8gUmV0dXJucyBnbG9iYWwgb2JqZWN0IG9mIGEgY3VycmVudCBlbnZpcm9ubWVudC5cclxudmFyIGdsb2JhbCQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBzZWxmO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09PSBNYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xyXG4gICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBBIHNoaW0gZm9yIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hpY2ggZmFsbHMgYmFjayB0byB0aGUgc2V0VGltZW91dCBpZlxyXG4gKiBmaXJzdCBvbmUgaXMgbm90IHN1cHBvcnRlZC5cclxuICpcclxuICogQHJldHVybnMge251bWJlcn0gUmVxdWVzdHMnIGlkZW50aWZpZXIuXHJcbiAqL1xyXG52YXIgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBJdCdzIHJlcXVpcmVkIHRvIHVzZSBhIGJvdW5kZWQgZnVuY3Rpb24gYmVjYXVzZSBJRSBzb21ldGltZXMgdGhyb3dzXHJcbiAgICAgICAgLy8gYW4gXCJJbnZhbGlkIGNhbGxpbmcgb2JqZWN0XCIgZXJyb3IgaWYgckFGIGlzIGludm9rZWQgd2l0aG91dCB0aGUgZ2xvYmFsXHJcbiAgICAgICAgLy8gb2JqZWN0IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZS5cclxuICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQoZ2xvYmFsJDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjaykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjayhEYXRlLm5vdygpKTsgfSwgMTAwMCAvIDYwKTsgfTtcclxufSkoKTtcblxuLy8gRGVmaW5lcyBtaW5pbXVtIHRpbWVvdXQgYmVmb3JlIGFkZGluZyBhIHRyYWlsaW5nIGNhbGwuXHJcbnZhciB0cmFpbGluZ1RpbWVvdXQgPSAyO1xyXG4vKipcclxuICogQ3JlYXRlcyBhIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggZW5zdXJlcyB0aGF0IHByb3ZpZGVkIGNhbGxiYWNrIHdpbGwgYmVcclxuICogaW52b2tlZCBvbmx5IG9uY2UgZHVyaW5nIHRoZSBzcGVjaWZpZWQgZGVsYXkgcGVyaW9kLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRlbGF5IHBlcmlvZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IC0gRGVsYXkgYWZ0ZXIgd2hpY2ggdG8gaW52b2tlIGNhbGxiYWNrLlxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XHJcbiAqL1xyXG5mdW5jdGlvbiB0aHJvdHRsZSAoY2FsbGJhY2ssIGRlbGF5KSB7XHJcbiAgICB2YXIgbGVhZGluZ0NhbGwgPSBmYWxzZSwgdHJhaWxpbmdDYWxsID0gZmFsc2UsIGxhc3RDYWxsVGltZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCBzY2hlZHVsZXMgbmV3IGludm9jYXRpb24gaWZcclxuICAgICAqIHRoZSBcInByb3h5XCIgd2FzIGNhbGxlZCBkdXJpbmcgY3VycmVudCByZXF1ZXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpIHtcclxuICAgICAgICBpZiAobGVhZGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgbGVhZGluZ0NhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYWlsaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICBwcm94eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgaW52b2tlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LiBJdCB3aWxsIGZ1cnRoZXIgcG9zdHBvbmVcclxuICAgICAqIGludm9jYXRpb24gb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGRlbGVnYXRpbmcgaXQgdG8gdGhlXHJcbiAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMShyZXNvbHZlUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNjaGVkdWxlcyBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJveHkoKSB7XHJcbiAgICAgICAgdmFyIHRpbWVTdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIC8vIFJlamVjdCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbHMuXHJcbiAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgLSBsYXN0Q2FsbFRpbWUgPCB0cmFpbGluZ1RpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBuZXcgY2FsbCB0byBiZSBpbiBpbnZva2VkIHdoZW4gdGhlIHBlbmRpbmcgb25lIGlzIHJlc29sdmVkLlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBmb3IgXCJ0cmFuc2l0aW9uc1wiIHdoaWNoIG5ldmVyIGFjdHVhbGx5IHN0YXJ0XHJcbiAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UgbWlnaHQgbWlzcyBvbmUgaWYgY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIGhhcHBlbnMgYW1pZHMgdGhlIHBlbmRpbmcgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQodGltZW91dENhbGxiYWNrLCBkZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWVTdGFtcDtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm94eTtcclxufVxuXG4vLyBNaW5pbXVtIGRlbGF5IGJlZm9yZSBpbnZva2luZyB0aGUgdXBkYXRlIG9mIG9ic2VydmVycy5cclxudmFyIFJFRlJFU0hfREVMQVkgPSAyMDtcclxuLy8gQSBsaXN0IG9mIHN1YnN0cmluZ3Mgb2YgQ1NTIHByb3BlcnRpZXMgdXNlZCB0byBmaW5kIHRyYW5zaXRpb24gZXZlbnRzIHRoYXRcclxuLy8gbWlnaHQgYWZmZWN0IGRpbWVuc2lvbnMgb2Ygb2JzZXJ2ZWQgZWxlbWVudHMuXHJcbnZhciB0cmFuc2l0aW9uS2V5cyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdzaXplJywgJ3dlaWdodCddO1xyXG4vLyBDaGVjayBpZiBNdXRhdGlvbk9ic2VydmVyIGlzIGF2YWlsYWJsZS5cclxudmFyIG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XHJcbi8qKlxyXG4gKiBTaW5nbGV0b24gY29udHJvbGxlciBjbGFzcyB3aGljaCBoYW5kbGVzIHVwZGF0ZXMgb2YgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2VzLlxyXG4gKi9cclxudmFyIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIERPTSBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFkZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVsbHMgdGhhdCBjb250cm9sbGVyIGhhcyBzdWJzY3JpYmVkIGZvciBNdXRhdGlvbiBFdmVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogS2VlcHMgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW5jZSBvZiBNdXRhdGlvbk9ic2VydmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge011dGF0aW9uT2JzZXJ2ZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgbGlzdCBvZiBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmVyU1BJPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmVyc18gPSBbXTtcclxuICAgICAgICB0aGlzLm9uVHJhbnNpdGlvbkVuZF8gPSB0aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2ggPSB0aHJvdHRsZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgUkVGUkVTSF9ERUxBWSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb2JzZXJ2ZXIgdG8gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSBhZGRlZC5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmFkZE9ic2VydmVyID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XHJcbiAgICAgICAgaWYgKCF+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2Yob2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzXy5wdXNoKG9ic2VydmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWRkIGxpc3RlbmVycyBpZiB0aGV5IGhhdmVuJ3QgYmVlbiBhZGRlZCB5ZXQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyU1BJfSBvYnNlcnZlciAtIE9ic2VydmVyIHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc187XHJcbiAgICAgICAgdmFyIGluZGV4ID0gb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBvYnNlcnZlciBpZiBpdCdzIHByZXNlbnQgaW4gcmVnaXN0cnkuXHJcbiAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycyBpZiBjb250cm9sbGVyIGhhcyBubyBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzLmxlbmd0aCAmJiB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuIEl0IHdpbGwgY29udGludWUgcnVubmluZyB1cGRhdGVzIGluc29mYXJcclxuICAgICAqIGl0IGRldGVjdHMgY2hhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtcclxuICAgICAgICAvLyBDb250aW51ZSBydW5uaW5nIHVwZGF0ZXMgaWYgY2hhbmdlcyBoYXZlIGJlZW4gZGV0ZWN0ZWQgYXMgdGhlcmUgbWlnaHRcclxuICAgICAgICAvLyBiZSBmdXR1cmUgb25lcyBjYXVzZWQgYnkgQ1NTIHRyYW5zaXRpb25zLlxyXG4gICAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBldmVyeSBvYnNlcnZlciBmcm9tIG9ic2VydmVycyBsaXN0IGFuZCBub3RpZmllcyB0aGVtIG9mIHF1ZXVlZFxyXG4gICAgICogZW50cmllcy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgXCJ0cnVlXCIgaWYgYW55IG9ic2VydmVyIGhhcyBkZXRlY3RlZCBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgaXQncyBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIENvbGxlY3Qgb2JzZXJ2ZXJzIHRoYXQgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHZhciBhY3RpdmVPYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc18uZmlsdGVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZ2F0aGVyQWN0aXZlKCksIG9ic2VydmVyLmhhc0FjdGl2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIERlbGl2ZXIgbm90aWZpY2F0aW9ucyBpbiBhIHNlcGFyYXRlIGN5Y2xlIGluIG9yZGVyIHRvIGF2b2lkIGFueVxyXG4gICAgICAgIC8vIGNvbGxpc2lvbnMgYmV0d2VlbiBvYnNlcnZlcnMsIGUuZy4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2ZcclxuICAgICAgICAvLyBSZXNpemVPYnNlcnZlciBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZWxlbWVudCBhbmQgdGhlIGNhbGxiYWNrIG9mIG9uZVxyXG4gICAgICAgIC8vIG9mIHRoZW0gY2hhbmdlcyBjb250ZW50IGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIHRhcmdldC4gU29tZXRpbWVzXHJcbiAgICAgICAgLy8gdGhpcyBtYXkgcmVzdWx0IGluIG5vdGlmaWNhdGlvbnMgYmVpbmcgYmxvY2tlZCBmb3IgdGhlIHJlc3Qgb2Ygb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGFjdGl2ZU9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikgeyByZXR1cm4gb2JzZXJ2ZXIuYnJvYWRjYXN0QWN0aXZlKCk7IH0pO1xyXG4gICAgICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnMubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLlxyXG4gICAgICAgIGlmICghaXNCcm93c2VyIHx8IHRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN1YnNjcmlwdGlvbiB0byB0aGUgXCJUcmFuc2l0aW9uZW5kXCIgZXZlbnQgaXMgdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yXHJcbiAgICAgICAgLy8gZGVsYXllZCB0cmFuc2l0aW9ucy4gVGhpcyB3YXkgaXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIGF0IGxlYXN0IHRoZVxyXG4gICAgICAgIC8vIGZpbmFsIHN0YXRlIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgRE9NIGxpc3RlbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUuZGlzY29ubmVjdF8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBydW5uaW5nIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQgb3IgaWYgbGlzdGVuZXJzXHJcbiAgICAgICAgLy8gaGF2ZSBiZWVuIGFscmVhZHkgcmVtb3ZlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8pIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZF8gPSBmYWxzZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBwYXJhbSB7VHJhbnNpdGlvbkV2ZW50fSBldmVudFxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kXyA9IGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgIHZhciBfYiA9IF9hLnByb3BlcnR5TmFtZSwgcHJvcGVydHlOYW1lID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgdHJhbnNpdGlvbiBtYXkgYWZmZWN0IGRpbWVuc2lvbnMgb2YgYW4gZWxlbWVudC5cclxuICAgICAgICB2YXIgaXNSZWZsb3dQcm9wZXJ0eSA9IHRyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+cHJvcGVydHlOYW1lLmluZGV4T2Yoa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNSZWZsb3dQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIHRoZSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZV8pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZV8gPSBuZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEhvbGRzIHJlZmVyZW5jZSB0byB0aGUgY29udHJvbGxlcidzIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5pbnN0YW5jZV8gPSBudWxsO1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcjtcclxufSgpKTtcblxuLyoqXHJcbiAqIERlZmluZXMgbm9uLXdyaXRhYmxlL2VudW1lcmFibGUgcHJvcGVydGllcyBvZiB0aGUgcHJvdmlkZWQgdGFyZ2V0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldCAtIE9iamVjdCBmb3Igd2hpY2ggdG8gZGVmaW5lIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIFByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZC5cclxuICogQHJldHVybnMge09iamVjdH0gVGFyZ2V0IG9iamVjdC5cclxuICovXHJcbnZhciBkZWZpbmVDb25maWd1cmFibGUgPSAoZnVuY3Rpb24gKHRhcmdldCwgcHJvcHMpIHtcclxuICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwcm9wcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGtleSA9IF9hW19pXTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcclxuICAgICAgICAgICAgdmFsdWU6IHByb3BzW2tleV0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufSk7XG5cbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBwcm92aWRlZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0XHJcbiAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAqL1xyXG52YXIgZ2V0V2luZG93T2YgPSAoZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgLy8gQXNzdW1lIHRoYXQgdGhlIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTm9kZSwgd2hpY2ggbWVhbnMgdGhhdCBpdFxyXG4gICAgLy8gaGFzIHRoZSBcIm93bmVyRG9jdW1lbnRcIiBwcm9wZXJ0eSBmcm9tIHdoaWNoIHdlIGNhbiByZXRyaWV2ZSBhXHJcbiAgICAvLyBjb3JyZXNwb25kaW5nIGdsb2JhbCBvYmplY3QuXHJcbiAgICB2YXIgb3duZXJHbG9iYWwgPSB0YXJnZXQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgICAvLyBSZXR1cm4gdGhlIGxvY2FsIGdsb2JhbCBvYmplY3QgaWYgaXQncyBub3QgcG9zc2libGUgZXh0cmFjdCBvbmUgZnJvbVxyXG4gICAgLy8gcHJvdmlkZWQgZWxlbWVudC5cclxuICAgIHJldHVybiBvd25lckdsb2JhbCB8fCBnbG9iYWwkMTtcclxufSk7XG5cbi8vIFBsYWNlaG9sZGVyIG9mIGFuIGVtcHR5IGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG52YXIgZW1wdHlSZWN0ID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBwcm92aWRlZCBzdHJpbmcgdG8gYSBudW1iZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gdmFsdWVcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBib3JkZXJzIHNpemUgZnJvbSBwcm92aWRlZCBzdHlsZXMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXHJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwb3NpdGlvbnMgLSBCb3JkZXJzIHBvc2l0aW9ucyAodG9wLCByaWdodCwgLi4uKVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gW107XHJcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHBvc2l0aW9uc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChzaXplLCBwb3NpdGlvbikge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1snYm9yZGVyLScgKyBwb3NpdGlvbiArICctd2lkdGgnXTtcclxuICAgICAgICByZXR1cm4gc2l6ZSArIHRvRmxvYXQodmFsdWUpO1xyXG4gICAgfSwgMCk7XHJcbn1cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHBhZGRpbmdzIHNpemVzIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBQYWRkaW5ncyBib3guXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYWRkaW5ncyhzdHlsZXMpIHtcclxuICAgIHZhciBwb3NpdGlvbnMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG4gICAgdmFyIHBhZGRpbmdzID0ge307XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIHBvc2l0aW9uc18xID0gcG9zaXRpb25zOyBfaSA8IHBvc2l0aW9uc18xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHBvc2l0aW9uc18xW19pXTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ3BhZGRpbmctJyArIHBvc2l0aW9uXTtcclxuICAgICAgICBwYWRkaW5nc1twb3NpdGlvbl0gPSB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5ncztcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlcyBjb250ZW50IHJlY3RhbmdsZSBvZiBwcm92aWRlZCBTVkcgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtTVkdHcmFwaGljc0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHNcclxuICogICAgICB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIHZhciBiYm94ID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdCgwLCAwLCBiYm94LndpZHRoLCBiYm94LmhlaWdodCk7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgSFRNTEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgY29udGVudCByZWN0YW5nbGUuXHJcbiAqIEByZXR1cm5zIHtET01SZWN0SW5pdH1cclxuICovXHJcbmZ1bmN0aW9uIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICAvLyBDbGllbnQgd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBjYW4ndCBiZVxyXG4gICAgLy8gdXNlZCBleGNsdXNpdmVseSBhcyB0aGV5IHByb3ZpZGUgcm91bmRlZCB2YWx1ZXMuXHJcbiAgICB2YXIgY2xpZW50V2lkdGggPSB0YXJnZXQuY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XHJcbiAgICAvLyBCeSB0aGlzIGNvbmRpdGlvbiB3ZSBjYW4gY2F0Y2ggYWxsIG5vbi1yZXBsYWNlZCBpbmxpbmUsIGhpZGRlbiBhbmRcclxuICAgIC8vIGRldGFjaGVkIGVsZW1lbnRzLiBUaG91Z2ggZWxlbWVudHMgd2l0aCB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGxlc3NcclxuICAgIC8vIHRoYW4gMC41IHdpbGwgYmUgZGlzY2FyZGVkIGFzIHdlbGwuXHJcbiAgICAvL1xyXG4gICAgLy8gV2l0aG91dCBpdCB3ZSB3b3VsZCBuZWVkIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBtZXRob2RzIGZvciBlYWNoIG9mXHJcbiAgICAvLyB0aG9zZSBjYXNlcyBhbmQgaXQncyBub3QgcG9zc2libGUgdG8gcGVyZm9ybSBhIHByZWNpc2UgYW5kIHBlcmZvcm1hbmNlXHJcbiAgICAvLyBlZmZlY3RpdmUgdGVzdCBmb3IgaGlkZGVuIGVsZW1lbnRzLiBFLmcuIGV2ZW4galF1ZXJ5J3MgJzp2aXNpYmxlJyBmaWx0ZXJcclxuICAgIC8vIGdpdmVzIHdyb25nIHJlc3VsdHMgZm9yIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgbGVzcyB0aGFuIDAuNS5cclxuICAgIGlmICghY2xpZW50V2lkdGggJiYgIWNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICB2YXIgc3R5bGVzID0gZ2V0V2luZG93T2YodGFyZ2V0KS5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7XHJcbiAgICB2YXIgcGFkZGluZ3MgPSBnZXRQYWRkaW5ncyhzdHlsZXMpO1xyXG4gICAgdmFyIGhvcml6UGFkID0gcGFkZGluZ3MubGVmdCArIHBhZGRpbmdzLnJpZ2h0O1xyXG4gICAgdmFyIHZlcnRQYWQgPSBwYWRkaW5ncy50b3AgKyBwYWRkaW5ncy5ib3R0b207XHJcbiAgICAvLyBDb21wdXRlZCBzdHlsZXMgb2Ygd2lkdGggJiBoZWlnaHQgYXJlIGJlaW5nIHVzZWQgYmVjYXVzZSB0aGV5IGFyZSB0aGVcclxuICAgIC8vIG9ubHkgZGltZW5zaW9ucyBhdmFpbGFibGUgdG8gSlMgdGhhdCBjb250YWluIG5vbi1yb3VuZGVkIHZhbHVlcy4gSXQgY291bGRcclxuICAgIC8vIGJlIHBvc3NpYmxlIHRvIHV0aWxpemUgdGhlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpZiBvbmx5IGl0J3MgZGF0YSB3YXNuJ3RcclxuICAgIC8vIGFmZmVjdGVkIGJ5IENTUyB0cmFuc2Zvcm1hdGlvbnMgbGV0IGFsb25lIHBhZGRpbmdzLCBib3JkZXJzIGFuZCBzY3JvbGwgYmFycy5cclxuICAgIHZhciB3aWR0aCA9IHRvRmxvYXQoc3R5bGVzLndpZHRoKSwgaGVpZ2h0ID0gdG9GbG9hdChzdHlsZXMuaGVpZ2h0KTtcclxuICAgIC8vIFdpZHRoICYgaGVpZ2h0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgd2hlbiB0aGUgJ2JvcmRlci1ib3gnIGJveFxyXG4gICAgLy8gbW9kZWwgaXMgYXBwbGllZCAoZXhjZXB0IGZvciBJRSkuXHJcbiAgICBpZiAoc3R5bGVzLmJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XHJcbiAgICAgICAgLy8gRm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGhhbmRsZSBJbnRlcm5ldCBFeHBsb3JlciB3aGljaFxyXG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBwYWRkaW5ncyBhbmQgYm9yZGVycyB0byBjb21wdXRlZCBDU1MgZGltZW5zaW9ucy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdlIGNhbiBzYXkgdGhhdCBpZiBDU1MgZGltZW5zaW9ucyArIHBhZGRpbmdzIGFyZSBlcXVhbCB0byB0aGUgXCJjbGllbnRcIlxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgdGhlbiBpdCdzIGVpdGhlciBJRSwgYW5kIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBzdWJ0cmFjdFxyXG4gICAgICAgIC8vIGFueXRoaW5nLCBvciBhbiBlbGVtZW50IG1lcmVseSBkb2Vzbid0IGhhdmUgcGFkZGluZ3MvYm9yZGVycyBzdHlsZXMuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQod2lkdGggKyBob3JpelBhZCkgIT09IGNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ2xlZnQnLCAncmlnaHQnKSArIGhvcml6UGFkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAhPT0gY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd0b3AnLCAnYm90dG9tJykgKyB2ZXJ0UGFkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZvbGxvd2luZyBzdGVwcyBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudCBhcyBpdHNcclxuICAgIC8vIGNsaWVudFtXaWR0aC9IZWlnaHRdIHByb3BlcnRpZXMgcmVwcmVzZW50IHZpZXdwb3J0IGFyZWEgb2YgdGhlIHdpbmRvdy5cclxuICAgIC8vIEJlc2lkZXMsIGl0J3MgYXMgd2VsbCBub3QgbmVjZXNzYXJ5IGFzIHRoZSA8aHRtbD4gaXRzZWxmIG5laXRoZXIgaGFzXHJcbiAgICAvLyByZW5kZXJlZCBzY3JvbGwgYmFycyBub3IgaXQgY2FuIGJlIGNsaXBwZWQuXHJcbiAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkpIHtcclxuICAgICAgICAvLyBJbiBzb21lIGJyb3dzZXJzIChvbmx5IGluIEZpcmVmb3gsIGFjdHVhbGx5KSBDU1Mgd2lkdGggJiBoZWlnaHRcclxuICAgICAgICAvLyBpbmNsdWRlIHNjcm9sbCBiYXJzIHNpemUgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYXQgdGhpcyBzdGVwIGFzIHNjcm9sbFxyXG4gICAgICAgIC8vIGJhcnMgYXJlIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiByb3VuZGVkIGRpbWVuc2lvbnMgKyBwYWRkaW5nc1xyXG4gICAgICAgIC8vIGFuZCBcImNsaWVudFwiIHByb3BlcnRpZXMsIHRob3VnaCB0aGF0IGlzIG5vdCBhbHdheXMgdHJ1ZSBpbiBDaHJvbWUuXHJcbiAgICAgICAgdmFyIHZlcnRTY3JvbGxiYXIgPSBNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpIC0gY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIGhvcml6U2Nyb2xsYmFyID0gTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAtIGNsaWVudEhlaWdodDtcclxuICAgICAgICAvLyBDaHJvbWUgaGFzIGEgcmF0aGVyIHdlaXJkIHJvdW5kaW5nIG9mIFwiY2xpZW50XCIgcHJvcGVydGllcy5cclxuICAgICAgICAvLyBFLmcuIGZvciBhbiBlbGVtZW50IHdpdGggY29udGVudCB3aWR0aCBvZiAzMTQuMnB4IGl0IHNvbWV0aW1lcyBnaXZlc1xyXG4gICAgICAgIC8vIHRoZSBjbGllbnQgd2lkdGggb2YgMzE1cHggYW5kIGZvciB0aGUgd2lkdGggb2YgMzE0LjdweCBpdCBtYXkgZ2l2ZVxyXG4gICAgICAgIC8vIDMxNHB4LiBBbmQgaXQgZG9lc24ndCBoYXBwZW4gYWxsIHRoZSB0aW1lLiBTbyBqdXN0IGlnbm9yZSB0aGlzIGRlbHRhXHJcbiAgICAgICAgLy8gYXMgYSBub24tcmVsZXZhbnQuXHJcbiAgICAgICAgaWYgKE1hdGguYWJzKHZlcnRTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IHZlcnRTY3JvbGxiYXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNYXRoLmFicyhob3JpelNjcm9sbGJhcikgIT09IDEpIHtcclxuICAgICAgICAgICAgaGVpZ2h0IC09IGhvcml6U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdChwYWRkaW5ncy5sZWZ0LCBwYWRkaW5ncy50b3AsIHdpZHRoLCBoZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBwcm92aWRlZCBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBTVkdHcmFwaGljc0VsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbnZhciBpc1NWR0dyYXBoaWNzRWxlbWVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBTb21lIGJyb3dzZXJzLCBuYW1lbHkgSUUgYW5kIEVkZ2UsIGRvbid0IGhhdmUgdGhlIFNWR0dyYXBoaWNzRWxlbWVudFxyXG4gICAgLy8gaW50ZXJmYWNlLlxyXG4gICAgaWYgKHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHR3JhcGhpY3NFbGVtZW50OyB9O1xyXG4gICAgfVxyXG4gICAgLy8gSWYgaXQncyBzbywgdGhlbiBjaGVjayB0aGF0IGVsZW1lbnQgaXMgYXQgbGVhc3QgYW4gaW5zdGFuY2Ugb2YgdGhlXHJcbiAgICAvLyBTVkdFbGVtZW50IGFuZCB0aGF0IGl0IGhhcyB0aGUgXCJnZXRCQm94XCIgbWV0aG9kLlxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVuc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuICh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0VsZW1lbnQgJiZcclxuICAgICAgICB0eXBlb2YgdGFyZ2V0LmdldEJCb3ggPT09ICdmdW5jdGlvbicpOyB9O1xyXG59KSgpO1xyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgKDxodG1sPikuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldCA9PT0gZ2V0V2luZG93T2YodGFyZ2V0KS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgYW4gYXBwcm9wcmlhdGUgY29udGVudCByZWN0YW5nbGUgZm9yIHByb3ZpZGVkIGh0bWwgb3Igc3ZnIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCBjb250ZW50IHJlY3RhbmdsZSBvZiB3aGljaCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIGlmICghaXNCcm93c2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtcHR5UmVjdDtcclxuICAgIH1cclxuICAgIGlmIChpc1NWR0dyYXBoaWNzRWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldFNWR0NvbnRlbnRSZWN0KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRDb250ZW50UmVjdCh0YXJnZXQpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIHJlY3RhbmdsZSB3aXRoIGFuIGludGVyZmFjZSBvZiB0aGUgRE9NUmVjdFJlYWRPbmx5LlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tcmVjdHJlYWRvbmx5XHJcbiAqXHJcbiAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gT2JqZWN0IHdpdGggcmVjdGFuZ2xlJ3MgeC95IGNvb3JkaW5hdGVzIGFuZCBkaW1lbnNpb25zLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdFJlYWRPbmx5fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVhZE9ubHlSZWN0KF9hKSB7XHJcbiAgICB2YXIgeCA9IF9hLngsIHkgPSBfYS55LCB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICAvLyBJZiBET01SZWN0UmVhZE9ubHkgaXMgYXZhaWxhYmxlIHVzZSBpdCBhcyBhIHByb3RvdHlwZSBmb3IgdGhlIHJlY3RhbmdsZS5cclxuICAgIHZhciBDb25zdHIgPSB0eXBlb2YgRE9NUmVjdFJlYWRPbmx5ICE9PSAndW5kZWZpbmVkJyA/IERPTVJlY3RSZWFkT25seSA6IE9iamVjdDtcclxuICAgIHZhciByZWN0ID0gT2JqZWN0LmNyZWF0ZShDb25zdHIucHJvdG90eXBlKTtcclxuICAgIC8vIFJlY3RhbmdsZSdzIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0YWJsZSBhbmQgbm9uLWVudW1lcmFibGUuXHJcbiAgICBkZWZpbmVDb25maWd1cmFibGUocmVjdCwge1xyXG4gICAgICAgIHg6IHgsIHk6IHksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdG9wOiB5LFxyXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXHJcbiAgICAgICAgYm90dG9tOiBoZWlnaHQgKyB5LFxyXG4gICAgICAgIGxlZnQ6IHhcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgRE9NUmVjdEluaXQgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zIGFuZCB0aGUgeC95IGNvb3JkaW5hdGVzLlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZGljdGRlZi1kb21yZWN0aW5pdFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFggY29vcmRpbmF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFJlY3RhbmdsZSdzIHdpZHRoLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gUmVjdGFuZ2xlJ3MgaGVpZ2h0LlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICByZXR1cm4geyB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH07XHJcbn1cblxuLyoqXHJcbiAqIENsYXNzIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNvbXB1dGF0aW9ucyBvZiB0aGUgY29udGVudCByZWN0YW5nbGUgb2ZcclxuICogcHJvdmlkZWQgRE9NIGVsZW1lbnQgYW5kIGZvciBrZWVwaW5nIHRyYWNrIG9mIGl0J3MgY2hhbmdlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmF0aW9uKHRhcmdldCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJyb2FkY2FzdGVkIHdpZHRoIG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCBoZWlnaHQgb2YgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7RE9NUmVjdEluaXR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSBjcmVhdGVSZWN0SW5pdCgwLCAwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBjb250ZW50IHJlY3RhbmdsZSBhbmQgdGVsbHMgd2hldGhlciBpdCdzIHdpZHRoIG9yIGhlaWdodCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgYnJvYWRjYXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuaXNBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSBnZXRDb250ZW50UmVjdCh0aGlzLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSByZWN0O1xyXG4gICAgICAgIHJldHVybiAocmVjdC53aWR0aCAhPT0gdGhpcy5icm9hZGNhc3RXaWR0aCB8fFxyXG4gICAgICAgICAgICByZWN0LmhlaWdodCAhPT0gdGhpcy5icm9hZGNhc3RIZWlnaHQpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyAnYnJvYWRjYXN0V2lkdGgnIGFuZCAnYnJvYWRjYXN0SGVpZ2h0JyBwcm9wZXJ0aWVzIHdpdGggYSBkYXRhXHJcbiAgICAgKiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb2YgdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge0RPTVJlY3RJbml0fSBMYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuY29udGVudFJlY3RfO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0V2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmF0aW9uO1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJFbnRyeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckVudHJ5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0aGF0IGlzIGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICogQHBhcmFtIHtET01SZWN0SW5pdH0gcmVjdEluaXQgLSBEYXRhIG9mIHRoZSBlbGVtZW50J3MgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyRW50cnkodGFyZ2V0LCByZWN0SW5pdCkge1xyXG4gICAgICAgIHZhciBjb250ZW50UmVjdCA9IGNyZWF0ZVJlYWRPbmx5UmVjdChyZWN0SW5pdCk7XHJcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGVcclxuICAgICAgICAvLyBhbmQgYXJlIGFsc28gbm90IGVudW1lcmFibGUgaW4gdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFByb3BlcnR5IGFjY2Vzc29ycyBhcmUgbm90IGJlaW5nIHVzZWQgYXMgdGhleSdkIHJlcXVpcmUgdG8gZGVmaW5lIGFcclxuICAgICAgICAvLyBwcml2YXRlIFdlYWtNYXAgc3RvcmFnZSB3aGljaCBtYXkgY2F1c2UgbWVtb3J5IGxlYWtzIGluIGJyb3dzZXJzIHRoYXRcclxuICAgICAgICAvLyBkb24ndCBzdXBwb3J0IHRoaXMgdHlwZSBvZiBjb2xsZWN0aW9ucy5cclxuICAgICAgICBkZWZpbmVDb25maWd1cmFibGUodGhpcywgeyB0YXJnZXQ6IHRhcmdldCwgY29udGVudFJlY3Q6IGNvbnRlbnRSZWN0IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyRW50cnk7XHJcbn0oKSk7XG5cbnZhciBSZXNpemVPYnNlcnZlclNQSSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkXHJcbiAgICAgKiAgICAgIHdoZW4gb25lIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50cyBjaGFuZ2VzIGl0J3MgY29udGVudCBkaW1lbnNpb25zLlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9IGNvbnRyb2xsZXIgLSBDb250cm9sbGVyIGluc3RhbmNlIHdoaWNoXHJcbiAgICAgKiAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgdXBkYXRlcyBvZiBvYnNlcnZlci5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJ9IGNhbGxiYWNrQ3R4IC0gUmVmZXJlbmNlIHRvIHRoZSBwdWJsaWNcclxuICAgICAqICAgICAgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU1BJKGNhbGxiYWNrLCBjb250cm9sbGVyLCBjYWxsYmFja0N0eCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbGxlY3Rpb24gb2YgcmVzaXplIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgZGV0ZWN0ZWQgY2hhbmdlcyBpbiBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgZWxlbWVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7QXJyYXk8UmVzaXplT2JzZXJ2YXRpb24+fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlZ2lzdHJ5IG9mIHRoZSBSZXNpemVPYnNlcnZhdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7TWFwPEVsZW1lbnQsIFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18gPSBuZXcgTWFwU2hpbSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIGNhbGxiYWNrIHByb3ZpZGVkIGFzIHBhcmFtZXRlciAxIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxiYWNrXyA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8gPSBjb250cm9sbGVyO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tDdHhfID0gY2FsbGJhY2tDdHg7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBvYnNlcnZpbmcgcHJvdmlkZWQgZWxlbWVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgYWxyZWFkeSBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAob2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLnNldCh0YXJnZXQsIG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpO1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIHN0b3Agb2JzZXJ2aW5nLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgbm90IGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLmRlbGV0ZSh0YXJnZXQpO1xyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLnNpemUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyBvYnNlcnZpbmcgYWxsIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3RzIG9ic2VydmF0aW9uIGluc3RhbmNlcyB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IG9mIHdoaWNoIGhhcyBjaGFuZ2VkXHJcbiAgICAgKiBpdCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZ2F0aGVyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob2JzZXJ2YXRpb24uaXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBpbml0aWFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGggYSBsaXN0IG9mIFJlc2l6ZU9ic2VydmVyRW50cnlcclxuICAgICAqIGluc3RhbmNlcyBjb2xsZWN0ZWQgZnJvbSBhY3RpdmUgcmVzaXplIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG9ic2VydmVyIGRvZXNuJ3QgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIGlmICghdGhpcy5oYXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdHggPSB0aGlzLmNhbGxiYWNrQ3R4XztcclxuICAgICAgICAvLyBDcmVhdGUgUmVzaXplT2JzZXJ2ZXJFbnRyeSBpbnN0YW5jZSBmb3IgZXZlcnkgYWN0aXZlIG9ic2VydmF0aW9uLlxyXG4gICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLm1hcChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlckVudHJ5KG9ic2VydmF0aW9uLnRhcmdldCwgb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKGN0eCwgZW50cmllcywgY3R4KTtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIGNvbGxlY3Rpb24gb2YgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmNsZWFyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5zcGxpY2UoMCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyB3aGV0aGVyIG9ic2VydmVyIGhhcyBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTUEk7XHJcbn0oKSk7XG5cbi8vIFJlZ2lzdHJ5IG9mIGludGVybmFsIG9ic2VydmVycy4gSWYgV2Vha01hcCBpcyBub3QgYXZhaWxhYmxlIHVzZSBjdXJyZW50IHNoaW1cclxuLy8gZm9yIHRoZSBNYXAgY29sbGVjdGlvbiBhcyBpdCBoYXMgYWxsIHJlcXVpcmVkIG1ldGhvZHMgYW5kIGJlY2F1c2UgV2Vha01hcFxyXG4vLyBjYW4ndCBiZSBmdWxseSBwb2x5ZmlsbGVkIGFueXdheS5cclxudmFyIG9ic2VydmVycyA9IHR5cGVvZiBXZWFrTWFwICE9PSAndW5kZWZpbmVkJyA/IG5ldyBXZWFrTWFwKCkgOiBuZXcgTWFwU2hpbSgpO1xyXG4vKipcclxuICogUmVzaXplT2JzZXJ2ZXIgQVBJLiBFbmNhcHN1bGF0ZXMgdGhlIFJlc2l6ZU9ic2VydmVyIFNQSSBpbXBsZW1lbnRhdGlvblxyXG4gKiBleHBvc2luZyBvbmx5IHRob3NlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3BlYy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW5cclxuICAgICAqICAgICAgZGltZW5zaW9ucyBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNpemVPYnNlcnZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udHJvbGxlciA9IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgdGhpcyk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLCBvYnNlcnZlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXI7XHJcbn0oKSk7XHJcbi8vIEV4cG9zZSBwdWJsaWMgbWV0aG9kcyBvZiBSZXNpemVPYnNlcnZlci5cclxuW1xyXG4gICAgJ29ic2VydmUnLFxyXG4gICAgJ3Vub2JzZXJ2ZScsXHJcbiAgICAnZGlzY29ubmVjdCdcclxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcclxuICAgIFJlc2l6ZU9ic2VydmVyLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICByZXR1cm4gKF9hID0gb2JzZXJ2ZXJzLmdldCh0aGlzKSlbbWV0aG9kXS5hcHBseShfYSwgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn0pO1xuXG52YXIgaW5kZXggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gRXhwb3J0IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlmIGF2YWlsYWJsZS5cclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcbiIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snKTtcblxudmFyIF9jbGFzc0NhbGxDaGVjazMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc0NhbGxDaGVjazIpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcycpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZUNsYXNzMik7XG5cbnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybicpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIpO1xuXG52YXIgX2luaGVyaXRzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cycpO1xuXG52YXIgX2luaGVyaXRzMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2luaGVyaXRzMik7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9wcm9wVHlwZXMgPSByZXF1aXJlKCdwcm9wLXR5cGVzJyk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIFNhdmVSZWYgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAoMCwgX2luaGVyaXRzM1snZGVmYXVsdCddKShTYXZlUmVmLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBTYXZlUmVmKCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIF90ZW1wLCBfdGhpcywgX3JldDtcblxuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2szWydkZWZhdWx0J10pKHRoaXMsIFNhdmVSZWYpO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIF9yZXQgPSAoX3RlbXAgPSAoX3RoaXMgPSAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4zWydkZWZhdWx0J10pKHRoaXMsIChfcmVmID0gU2F2ZVJlZi5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKFNhdmVSZWYpKS5jYWxsLmFwcGx5KF9yZWYsIFt0aGlzXS5jb25jYXQoYXJncykpKSwgX3RoaXMpLCBfdGhpcy5nZXRSZWYgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgcmV0dXJuIF90aGlzW25hbWVdO1xuICAgIH0sIF90aGlzLnNhdmVSZWYgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgX3RoaXNbbmFtZV0gPSBub2RlO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIF90ZW1wKSwgKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuM1snZGVmYXVsdCddKShfdGhpcywgX3JldCk7XG4gIH1cblxuICAoMCwgX2NyZWF0ZUNsYXNzM1snZGVmYXVsdCddKShTYXZlUmVmLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuKHRoaXMuc2F2ZVJlZiwgdGhpcy5nZXRSZWYpO1xuICAgIH1cbiAgfV0pO1xuICByZXR1cm4gU2F2ZVJlZjtcbn0oX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNhdmVSZWY7XG5cblxuU2F2ZVJlZi5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBfcHJvcFR5cGVzMlsnZGVmYXVsdCddLmZ1bmNcbn07XG5cblNhdmVSZWYuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogZnVuY3Rpb24gY2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gZXhwb3J0cy5pc0ZsZXhTdXBwb3J0ZWQgPSB2b2lkIDA7XG5cbnZhciBpc1N0eWxlU3VwcG9ydCA9IGZ1bmN0aW9uIGlzU3R5bGVTdXBwb3J0KHN0eWxlTmFtZSkge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICB2YXIgc3R5bGVOYW1lTGlzdCA9IEFycmF5LmlzQXJyYXkoc3R5bGVOYW1lKSA/IHN0eWxlTmFtZSA6IFtzdHlsZU5hbWVdO1xuICAgIHZhciBkb2N1bWVudEVsZW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIHJldHVybiBzdHlsZU5hbWVMaXN0LnNvbWUoZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHJldHVybiBuYW1lIGluIGRvY3VtZW50RWxlbWVudC5zdHlsZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbnZhciBpc0ZsZXhTdXBwb3J0ZWQgPSBpc1N0eWxlU3VwcG9ydChbJ2ZsZXgnLCAnd2Via2l0RmxleCcsICdGbGV4JywgJ21zRmxleCddKTtcbmV4cG9ydHMuaXNGbGV4U3VwcG9ydGVkID0gaXNGbGV4U3VwcG9ydGVkO1xudmFyIF9kZWZhdWx0ID0gaXNTdHlsZVN1cHBvcnQ7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gYWRkRXZlbnRMaXN0ZW5lcldyYXA7XG5cbnZhciBfYWRkRG9tRXZlbnRMaXN0ZW5lciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImFkZC1kb20tZXZlbnQtbGlzdGVuZXJcIikpO1xuXG52YXIgX3JlYWN0RG9tID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcldyYXAodGFyZ2V0LCBldmVudFR5cGUsIGNiLCBvcHRpb24pIHtcbiAgLyogZXNsaW50IGNhbWVsY2FzZTogMiAqL1xuICB2YXIgY2FsbGJhY2sgPSBfcmVhY3REb20uZGVmYXVsdC51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyA/IGZ1bmN0aW9uIHJ1bihlKSB7XG4gICAgX3JlYWN0RG9tLmRlZmF1bHQudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoY2IsIGUpO1xuICB9IDogY2I7XG4gIHJldHVybiAoMCwgX2FkZERvbUV2ZW50TGlzdGVuZXIuZGVmYXVsdCkodGFyZ2V0LCBldmVudFR5cGUsIGNhbGxiYWNrLCBvcHRpb24pO1xufSIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBhZGRFdmVudExpc3RlbmVyO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfRXZlbnRPYmplY3QgPSByZXF1aXJlKCcuL0V2ZW50T2JqZWN0Jyk7XG5cbnZhciBfRXZlbnRPYmplY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRXZlbnRPYmplY3QpO1xuXG5mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBjYWxsYmFjaywgb3B0aW9uKSB7XG4gIGZ1bmN0aW9uIHdyYXBDYWxsYmFjayhlKSB7XG4gICAgdmFyIG5lID0gbmV3IF9FdmVudE9iamVjdDJbJ2RlZmF1bHQnXShlKTtcbiAgICBjYWxsYmFjay5jYWxsKHRhcmdldCwgbmUpO1xuICB9XG5cbiAgaWYgKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgdmFyIF9yZXQgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHVzZUNhcHR1cmUgPSBmYWxzZTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgICB1c2VDYXB0dXJlID0gb3B0aW9uLmNhcHR1cmUgfHwgZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdib29sZWFuJykge1xuICAgICAgICB1c2VDYXB0dXJlID0gb3B0aW9uO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHdyYXBDYWxsYmFjaywgb3B0aW9uIHx8IGZhbHNlKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdjoge1xuICAgICAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCB3cmFwQ2FsbGJhY2ssIHVzZUNhcHR1cmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KSgpO1xuXG4gICAgaWYgKHR5cGVvZiBfcmV0ID09PSAnb2JqZWN0JykgcmV0dXJuIF9yZXQudjtcbiAgfSBlbHNlIGlmICh0YXJnZXQuYXR0YWNoRXZlbnQpIHtcbiAgICB0YXJnZXQuYXR0YWNoRXZlbnQoJ29uJyArIGV2ZW50VHlwZSwgd3JhcENhbGxiYWNrKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICAgIHRhcmdldC5kZXRhY2hFdmVudCgnb24nICsgZXZlbnRUeXBlLCB3cmFwQ2FsbGJhY2spO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiLyoqXG4gKiBAaWdub3JlXG4gKiBldmVudCBvYmplY3QgZm9yIGRvbVxuICogQGF1dGhvciB5aW1pbmdoZUBnbWFpbC5jb21cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfRXZlbnRCYXNlT2JqZWN0ID0gcmVxdWlyZSgnLi9FdmVudEJhc2VPYmplY3QnKTtcblxudmFyIF9FdmVudEJhc2VPYmplY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRXZlbnRCYXNlT2JqZWN0KTtcblxudmFyIF9vYmplY3RBc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBfb2JqZWN0QXNzaWduMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX29iamVjdEFzc2lnbik7XG5cbnZhciBUUlVFID0gdHJ1ZTtcbnZhciBGQUxTRSA9IGZhbHNlO1xudmFyIGNvbW1vblByb3BzID0gWydhbHRLZXknLCAnYnViYmxlcycsICdjYW5jZWxhYmxlJywgJ2N0cmxLZXknLCAnY3VycmVudFRhcmdldCcsICdldmVudFBoYXNlJywgJ21ldGFLZXknLCAnc2hpZnRLZXknLCAndGFyZ2V0JywgJ3RpbWVTdGFtcCcsICd2aWV3JywgJ3R5cGUnXTtcblxuZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQodykge1xuICByZXR1cm4gdyA9PT0gbnVsbCB8fCB3ID09PSB1bmRlZmluZWQ7XG59XG5cbnZhciBldmVudE5vcm1hbGl6ZXJzID0gW3tcbiAgcmVnOiAvXmtleS8sXG4gIHByb3BzOiBbJ2NoYXInLCAnY2hhckNvZGUnLCAna2V5JywgJ2tleUNvZGUnLCAnd2hpY2gnXSxcbiAgZml4OiBmdW5jdGlvbiBmaXgoZXZlbnQsIG5hdGl2ZUV2ZW50KSB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGV2ZW50LndoaWNoKSkge1xuICAgICAgZXZlbnQud2hpY2ggPSAhaXNOdWxsT3JVbmRlZmluZWQobmF0aXZlRXZlbnQuY2hhckNvZGUpID8gbmF0aXZlRXZlbnQuY2hhckNvZGUgOiBuYXRpdmVFdmVudC5rZXlDb2RlO1xuICAgIH1cblxuICAgIC8vIGFkZCBtZXRhS2V5IHRvIG5vbi1NYWMgYnJvd3NlcnMgKHVzZSBjdHJsIGZvciBQQyAncyBhbmQgTWV0YSBmb3IgTWFjcylcbiAgICBpZiAoZXZlbnQubWV0YUtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBldmVudC5tZXRhS2V5ID0gZXZlbnQuY3RybEtleTtcbiAgICB9XG4gIH1cbn0sIHtcbiAgcmVnOiAvXnRvdWNoLyxcbiAgcHJvcHM6IFsndG91Y2hlcycsICdjaGFuZ2VkVG91Y2hlcycsICd0YXJnZXRUb3VjaGVzJ11cbn0sIHtcbiAgcmVnOiAvXmhhc2hjaGFuZ2UkLyxcbiAgcHJvcHM6IFsnbmV3VVJMJywgJ29sZFVSTCddXG59LCB7XG4gIHJlZzogL15nZXN0dXJlY2hhbmdlJC9pLFxuICBwcm9wczogWydyb3RhdGlvbicsICdzY2FsZSddXG59LCB7XG4gIHJlZzogL14obW91c2V3aGVlbHxET01Nb3VzZVNjcm9sbCkkLyxcbiAgcHJvcHM6IFtdLFxuICBmaXg6IGZ1bmN0aW9uIGZpeChldmVudCwgbmF0aXZlRXZlbnQpIHtcbiAgICB2YXIgZGVsdGFYID0gdW5kZWZpbmVkO1xuICAgIHZhciBkZWx0YVkgPSB1bmRlZmluZWQ7XG4gICAgdmFyIGRlbHRhID0gdW5kZWZpbmVkO1xuICAgIHZhciB3aGVlbERlbHRhID0gbmF0aXZlRXZlbnQud2hlZWxEZWx0YTtcbiAgICB2YXIgYXhpcyA9IG5hdGl2ZUV2ZW50LmF4aXM7XG4gICAgdmFyIHdoZWVsRGVsdGFZID0gbmF0aXZlRXZlbnQud2hlZWxEZWx0YVk7XG4gICAgdmFyIHdoZWVsRGVsdGFYID0gbmF0aXZlRXZlbnQud2hlZWxEZWx0YVg7XG4gICAgdmFyIGRldGFpbCA9IG5hdGl2ZUV2ZW50LmRldGFpbDtcblxuICAgIC8vIGllL3dlYmtpdFxuICAgIGlmICh3aGVlbERlbHRhKSB7XG4gICAgICBkZWx0YSA9IHdoZWVsRGVsdGEgLyAxMjA7XG4gICAgfVxuXG4gICAgLy8gZ2Vja29cbiAgICBpZiAoZGV0YWlsKSB7XG4gICAgICAvLyBwcmVzcyBjb250cm9sIGUuZGV0YWlsID09IDEgZWxzZSBlLmRldGFpbCA9PSAzXG4gICAgICBkZWx0YSA9IDAgLSAoZGV0YWlsICUgMyA9PT0gMCA/IGRldGFpbCAvIDMgOiBkZXRhaWwpO1xuICAgIH1cblxuICAgIC8vIEdlY2tvXG4gICAgaWYgKGF4aXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGF4aXMgPT09IGV2ZW50LkhPUklaT05UQUxfQVhJUykge1xuICAgICAgICBkZWx0YVkgPSAwO1xuICAgICAgICBkZWx0YVggPSAwIC0gZGVsdGE7XG4gICAgICB9IGVsc2UgaWYgKGF4aXMgPT09IGV2ZW50LlZFUlRJQ0FMX0FYSVMpIHtcbiAgICAgICAgZGVsdGFYID0gMDtcbiAgICAgICAgZGVsdGFZID0gZGVsdGE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2Via2l0XG4gICAgaWYgKHdoZWVsRGVsdGFZICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbHRhWSA9IHdoZWVsRGVsdGFZIC8gMTIwO1xuICAgIH1cbiAgICBpZiAod2hlZWxEZWx0YVggIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVsdGFYID0gLTEgKiB3aGVlbERlbHRhWCAvIDEyMDtcbiAgICB9XG5cbiAgICAvLyDpu5jorqQgZGVsdGFZIChpZSlcbiAgICBpZiAoIWRlbHRhWCAmJiAhZGVsdGFZKSB7XG4gICAgICBkZWx0YVkgPSBkZWx0YTtcbiAgICB9XG5cbiAgICBpZiAoZGVsdGFYICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8qKlxuICAgICAgICogZGVsdGFYIG9mIG1vdXNld2hlZWwgZXZlbnRcbiAgICAgICAqIEBwcm9wZXJ0eSBkZWx0YVhcbiAgICAgICAqIEBtZW1iZXIgRXZlbnQuRG9tRXZlbnQuT2JqZWN0XG4gICAgICAgKi9cbiAgICAgIGV2ZW50LmRlbHRhWCA9IGRlbHRhWDtcbiAgICB9XG5cbiAgICBpZiAoZGVsdGFZICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8qKlxuICAgICAgICogZGVsdGFZIG9mIG1vdXNld2hlZWwgZXZlbnRcbiAgICAgICAqIEBwcm9wZXJ0eSBkZWx0YVlcbiAgICAgICAqIEBtZW1iZXIgRXZlbnQuRG9tRXZlbnQuT2JqZWN0XG4gICAgICAgKi9cbiAgICAgIGV2ZW50LmRlbHRhWSA9IGRlbHRhWTtcbiAgICB9XG5cbiAgICBpZiAoZGVsdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLyoqXG4gICAgICAgKiBkZWx0YSBvZiBtb3VzZXdoZWVsIGV2ZW50XG4gICAgICAgKiBAcHJvcGVydHkgZGVsdGFcbiAgICAgICAqIEBtZW1iZXIgRXZlbnQuRG9tRXZlbnQuT2JqZWN0XG4gICAgICAgKi9cbiAgICAgIGV2ZW50LmRlbHRhID0gZGVsdGE7XG4gICAgfVxuICB9XG59LCB7XG4gIHJlZzogL15tb3VzZXxjb250ZXh0bWVudXxjbGlja3xtc3BvaW50ZXJ8KF5ET01Nb3VzZVNjcm9sbCQpL2ksXG4gIHByb3BzOiBbJ2J1dHRvbnMnLCAnY2xpZW50WCcsICdjbGllbnRZJywgJ2J1dHRvbicsICdvZmZzZXRYJywgJ3JlbGF0ZWRUYXJnZXQnLCAnd2hpY2gnLCAnZnJvbUVsZW1lbnQnLCAndG9FbGVtZW50JywgJ29mZnNldFknLCAncGFnZVgnLCAncGFnZVknLCAnc2NyZWVuWCcsICdzY3JlZW5ZJ10sXG4gIGZpeDogZnVuY3Rpb24gZml4KGV2ZW50LCBuYXRpdmVFdmVudCkge1xuICAgIHZhciBldmVudERvYyA9IHVuZGVmaW5lZDtcbiAgICB2YXIgZG9jID0gdW5kZWZpbmVkO1xuICAgIHZhciBib2R5ID0gdW5kZWZpbmVkO1xuICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgdmFyIGJ1dHRvbiA9IG5hdGl2ZUV2ZW50LmJ1dHRvbjtcblxuICAgIC8vIENhbGN1bGF0ZSBwYWdlWC9ZIGlmIG1pc3NpbmcgYW5kIGNsaWVudFgvWSBhdmFpbGFibGVcbiAgICBpZiAodGFyZ2V0ICYmIGlzTnVsbE9yVW5kZWZpbmVkKGV2ZW50LnBhZ2VYKSAmJiAhaXNOdWxsT3JVbmRlZmluZWQobmF0aXZlRXZlbnQuY2xpZW50WCkpIHtcbiAgICAgIGV2ZW50RG9jID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG4gICAgICBkb2MgPSBldmVudERvYy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICBib2R5ID0gZXZlbnREb2MuYm9keTtcbiAgICAgIGV2ZW50LnBhZ2VYID0gbmF0aXZlRXZlbnQuY2xpZW50WCArIChkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRMZWZ0IHx8IGJvZHkgJiYgYm9keS5jbGllbnRMZWZ0IHx8IDApO1xuICAgICAgZXZlbnQucGFnZVkgPSBuYXRpdmVFdmVudC5jbGllbnRZICsgKGRvYyAmJiBkb2Muc2Nyb2xsVG9wIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRUb3AgfHwgYm9keSAmJiBib2R5LmNsaWVudFRvcCB8fCAwKTtcbiAgICB9XG5cbiAgICAvLyB3aGljaCBmb3IgY2xpY2s6IDEgPT09IGxlZnQ7IDIgPT09IG1pZGRsZTsgMyA9PT0gcmlnaHRcbiAgICAvLyBkbyBub3QgdXNlIGJ1dHRvblxuICAgIGlmICghZXZlbnQud2hpY2ggJiYgYnV0dG9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChidXR0b24gJiAxKSB7XG4gICAgICAgIGV2ZW50LndoaWNoID0gMTtcbiAgICAgIH0gZWxzZSBpZiAoYnV0dG9uICYgMikge1xuICAgICAgICBldmVudC53aGljaCA9IDM7XG4gICAgICB9IGVsc2UgaWYgKGJ1dHRvbiAmIDQpIHtcbiAgICAgICAgZXZlbnQud2hpY2ggPSAyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZlbnQud2hpY2ggPSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFkZCByZWxhdGVkVGFyZ2V0LCBpZiBuZWNlc3NhcnlcbiAgICBpZiAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgJiYgZXZlbnQuZnJvbUVsZW1lbnQpIHtcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPSBldmVudC5mcm9tRWxlbWVudCA9PT0gdGFyZ2V0ID8gZXZlbnQudG9FbGVtZW50IDogZXZlbnQuZnJvbUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50O1xuICB9XG59XTtcblxuZnVuY3Rpb24gcmV0VHJ1ZSgpIHtcbiAgcmV0dXJuIFRSVUU7XG59XG5cbmZ1bmN0aW9uIHJldEZhbHNlKCkge1xuICByZXR1cm4gRkFMU0U7XG59XG5cbmZ1bmN0aW9uIERvbUV2ZW50T2JqZWN0KG5hdGl2ZUV2ZW50KSB7XG4gIHZhciB0eXBlID0gbmF0aXZlRXZlbnQudHlwZTtcblxuICB2YXIgaXNOYXRpdmUgPSB0eXBlb2YgbmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBuYXRpdmVFdmVudC5jYW5jZWxCdWJibGUgPT09ICdib29sZWFuJztcblxuICBfRXZlbnRCYXNlT2JqZWN0MlsnZGVmYXVsdCddLmNhbGwodGhpcyk7XG5cbiAgdGhpcy5uYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50O1xuXG4gIC8vIGluIGNhc2UgZG9tIGV2ZW50IGhhcyBiZWVuIG1hcmsgYXMgZGVmYXVsdCBwcmV2ZW50ZWQgYnkgbG93ZXIgZG9tIG5vZGVcbiAgdmFyIGlzRGVmYXVsdFByZXZlbnRlZCA9IHJldEZhbHNlO1xuICBpZiAoJ2RlZmF1bHRQcmV2ZW50ZWQnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgaXNEZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCA/IHJldFRydWUgOiByZXRGYWxzZTtcbiAgfSBlbHNlIGlmICgnZ2V0UHJldmVudERlZmF1bHQnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMTUxXG4gICAgaXNEZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQuZ2V0UHJldmVudERlZmF1bHQoKSA/IHJldFRydWUgOiByZXRGYWxzZTtcbiAgfSBlbHNlIGlmICgncmV0dXJuVmFsdWUnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgaXNEZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQucmV0dXJuVmFsdWUgPT09IEZBTFNFID8gcmV0VHJ1ZSA6IHJldEZhbHNlO1xuICB9XG5cbiAgdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBpc0RlZmF1bHRQcmV2ZW50ZWQ7XG5cbiAgdmFyIGZpeEZucyA9IFtdO1xuICB2YXIgZml4Rm4gPSB1bmRlZmluZWQ7XG4gIHZhciBsID0gdW5kZWZpbmVkO1xuICB2YXIgcHJvcCA9IHVuZGVmaW5lZDtcbiAgdmFyIHByb3BzID0gY29tbW9uUHJvcHMuY29uY2F0KCk7XG5cbiAgZXZlbnROb3JtYWxpemVycy5mb3JFYWNoKGZ1bmN0aW9uIChub3JtYWxpemVyKSB7XG4gICAgaWYgKHR5cGUubWF0Y2gobm9ybWFsaXplci5yZWcpKSB7XG4gICAgICBwcm9wcyA9IHByb3BzLmNvbmNhdChub3JtYWxpemVyLnByb3BzKTtcbiAgICAgIGlmIChub3JtYWxpemVyLmZpeCkge1xuICAgICAgICBmaXhGbnMucHVzaChub3JtYWxpemVyLmZpeCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBsID0gcHJvcHMubGVuZ3RoO1xuXG4gIC8vIGNsb25lIHByb3BlcnRpZXMgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IG9iamVjdFxuICB3aGlsZSAobCkge1xuICAgIHByb3AgPSBwcm9wc1stLWxdO1xuICAgIHRoaXNbcHJvcF0gPSBuYXRpdmVFdmVudFtwcm9wXTtcbiAgfVxuXG4gIC8vIGZpeCB0YXJnZXQgcHJvcGVydHksIGlmIG5lY2Vzc2FyeVxuICBpZiAoIXRoaXMudGFyZ2V0ICYmIGlzTmF0aXZlKSB7XG4gICAgdGhpcy50YXJnZXQgPSBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IGRvY3VtZW50OyAvLyBzcmNFbGVtZW50IG1pZ2h0IG5vdCBiZSBkZWZpbmVkIGVpdGhlclxuICB9XG5cbiAgLy8gY2hlY2sgaWYgdGFyZ2V0IGlzIGEgdGV4dCBub2RlIChzYWZhcmkpXG4gIGlmICh0aGlzLnRhcmdldCAmJiB0aGlzLnRhcmdldC5ub2RlVHlwZSA9PT0gMykge1xuICAgIHRoaXMudGFyZ2V0ID0gdGhpcy50YXJnZXQucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGwgPSBmaXhGbnMubGVuZ3RoO1xuXG4gIHdoaWxlIChsKSB7XG4gICAgZml4Rm4gPSBmaXhGbnNbLS1sXTtcbiAgICBmaXhGbih0aGlzLCBuYXRpdmVFdmVudCk7XG4gIH1cblxuICB0aGlzLnRpbWVTdGFtcCA9IG5hdGl2ZUV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xufVxuXG52YXIgRXZlbnRCYXNlT2JqZWN0UHJvdG8gPSBfRXZlbnRCYXNlT2JqZWN0MlsnZGVmYXVsdCddLnByb3RvdHlwZTtcblxuKDAsIF9vYmplY3RBc3NpZ24yWydkZWZhdWx0J10pKERvbUV2ZW50T2JqZWN0LnByb3RvdHlwZSwgRXZlbnRCYXNlT2JqZWN0UHJvdG8sIHtcbiAgY29uc3RydWN0b3I6IERvbUV2ZW50T2JqZWN0LFxuXG4gIHByZXZlbnREZWZhdWx0OiBmdW5jdGlvbiBwcmV2ZW50RGVmYXVsdCgpIHtcbiAgICB2YXIgZSA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAvLyBpZiBwcmV2ZW50RGVmYXVsdCBleGlzdHMgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVudFxuICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHJldHVyblZhbHVlIHByb3BlcnR5IG9mIHRoZSBvcmlnaW5hbCBldmVudCB0byBGQUxTRSAoSUUpXG4gICAgICBlLnJldHVyblZhbHVlID0gRkFMU0U7XG4gICAgfVxuXG4gICAgRXZlbnRCYXNlT2JqZWN0UHJvdG8ucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKTtcbiAgfSxcblxuICBzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uIHN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICB2YXIgZSA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAvLyBpZiBzdG9wUHJvcGFnYXRpb24gZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnRcbiAgICBpZiAoZS5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIGNhbmNlbEJ1YmJsZSBwcm9wZXJ0eSBvZiB0aGUgb3JpZ2luYWwgZXZlbnQgdG8gVFJVRSAoSUUpXG4gICAgICBlLmNhbmNlbEJ1YmJsZSA9IFRSVUU7XG4gICAgfVxuXG4gICAgRXZlbnRCYXNlT2JqZWN0UHJvdG8uc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyk7XG4gIH1cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBEb21FdmVudE9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIi8qKlxuICogQGlnbm9yZVxuICogYmFzZSBldmVudCBvYmplY3QgZm9yIGN1c3RvbSBhbmQgZG9tIGV2ZW50LlxuICogQGF1dGhvciB5aW1pbmdoZUBnbWFpbC5jb21cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmZ1bmN0aW9uIHJldHVybkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHJldHVyblRydWUoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEJhc2VPYmplY3QoKSB7XG4gIHRoaXMudGltZVN0YW1wID0gRGF0ZS5ub3coKTtcbiAgdGhpcy50YXJnZXQgPSB1bmRlZmluZWQ7XG4gIHRoaXMuY3VycmVudFRhcmdldCA9IHVuZGVmaW5lZDtcbn1cblxuRXZlbnRCYXNlT2JqZWN0LnByb3RvdHlwZSA9IHtcbiAgaXNFdmVudE9iamVjdDogMSxcblxuICBjb25zdHJ1Y3RvcjogRXZlbnRCYXNlT2JqZWN0LFxuXG4gIGlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsXG5cbiAgaXNQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLFxuXG4gIGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZSxcblxuICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gcHJldmVudERlZmF1bHQoKSB7XG4gICAgdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSByZXR1cm5UcnVlO1xuICB9LFxuXG4gIHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24gc3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuICB9LFxuXG4gIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjogZnVuY3Rpb24gc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkge1xuICAgIHRoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuICAgIC8vIGZpeGVkIDEuMlxuICAgIC8vIGNhbGwgc3RvcFByb3BhZ2F0aW9uIGltcGxpY2l0bHlcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9LFxuXG4gIGhhbHQ6IGZ1bmN0aW9uIGhhbHQoaW1tZWRpYXRlKSB7XG4gICAgaWYgKGltbWVkaWF0ZSkge1xuICAgICAgdGhpcy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59O1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEV2ZW50QmFzZU9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0ID0gcmVxdWlyZShcInJlYWN0LWxpZmVjeWNsZXMtY29tcGF0XCIpO1xuXG52YXIgX29taXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJvbWl0LmpzXCIpKTtcblxudmFyIF9pY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vaWNvblwiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG52YXIgX3dhdmUgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9fdXRpbC93YXZlXCIpKTtcblxudmFyIF90eXBlID0gcmVxdWlyZShcIi4uL191dGlsL3R5cGVcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvYnV0dG9uLWhhcy10eXBlICovXG5cblxudmFyIHJ4VHdvQ05DaGFyID0gL15bXFx1NGUwMC1cXHU5ZmE1XXsyfSQvO1xudmFyIGlzVHdvQ05DaGFyID0gcnhUd29DTkNoYXIudGVzdC5iaW5kKHJ4VHdvQ05DaGFyKTtcblxuZnVuY3Rpb24gaXNTdHJpbmcoc3RyKSB7XG4gIHJldHVybiB0eXBlb2Ygc3RyID09PSAnc3RyaW5nJztcbn0gLy8gSW5zZXJ0IG9uZSBzcGFjZSBiZXR3ZWVuIHR3byBjaGluZXNlIGNoYXJhY3RlcnMgYXV0b21hdGljYWxseS5cblxuXG5mdW5jdGlvbiBpbnNlcnRTcGFjZShjaGlsZCwgbmVlZEluc2VydGVkKSB7XG4gIC8vIENoZWNrIHRoZSBjaGlsZCBpZiBpcyB1bmRlZmluZWQgb3IgbnVsbC5cbiAgaWYgKGNoaWxkID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgU1BBQ0UgPSBuZWVkSW5zZXJ0ZWQgPyAnICcgOiAnJzsgLy8gc3RyaWN0TnVsbENoZWNrcyBvb3BzLlxuXG4gIGlmICh0eXBlb2YgY2hpbGQgIT09ICdzdHJpbmcnICYmIHR5cGVvZiBjaGlsZCAhPT0gJ251bWJlcicgJiYgaXNTdHJpbmcoY2hpbGQudHlwZSkgJiYgaXNUd29DTkNoYXIoY2hpbGQucHJvcHMuY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHt9LCBjaGlsZC5wcm9wcy5jaGlsZHJlbi5zcGxpdCgnJykuam9pbihTUEFDRSkpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoaXNUd29DTkNoYXIoY2hpbGQpKSB7XG4gICAgICBjaGlsZCA9IGNoaWxkLnNwbGl0KCcnKS5qb2luKFNQQUNFKTtcbiAgICB9XG5cbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIGNoaWxkKTtcbiAgfVxuXG4gIHJldHVybiBjaGlsZDtcbn1cblxuZnVuY3Rpb24gc3BhY2VDaGlsZHJlbihjaGlsZHJlbiwgbmVlZEluc2VydGVkKSB7XG4gIHZhciBpc1ByZXZDaGlsZFB1cmUgPSBmYWxzZTtcbiAgdmFyIGNoaWxkTGlzdCA9IFtdO1xuICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICB2YXIgdHlwZSA9IF90eXBlb2YoY2hpbGQpO1xuXG4gICAgdmFyIGlzQ3VycmVudENoaWxkUHVyZSA9IHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGUgPT09ICdudW1iZXInO1xuXG4gICAgaWYgKGlzUHJldkNoaWxkUHVyZSAmJiBpc0N1cnJlbnRDaGlsZFB1cmUpIHtcbiAgICAgIHZhciBsYXN0SW5kZXggPSBjaGlsZExpc3QubGVuZ3RoIC0gMTtcbiAgICAgIHZhciBsYXN0Q2hpbGQgPSBjaGlsZExpc3RbbGFzdEluZGV4XTtcbiAgICAgIGNoaWxkTGlzdFtsYXN0SW5kZXhdID0gXCJcIi5jb25jYXQobGFzdENoaWxkKS5jb25jYXQoY2hpbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGlsZExpc3QucHVzaChjaGlsZCk7XG4gICAgfVxuXG4gICAgaXNQcmV2Q2hpbGRQdXJlID0gaXNDdXJyZW50Q2hpbGRQdXJlO1xuICB9KTsgLy8gUGFzcyB0byBSZWFjdC5DaGlsZHJlbi5tYXAgdG8gYXV0byBmaWxsIGtleVxuXG4gIHJldHVybiBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRMaXN0LCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICByZXR1cm4gaW5zZXJ0U3BhY2UoY2hpbGQsIG5lZWRJbnNlcnRlZCk7XG4gIH0pO1xufVxuXG52YXIgQnV0dG9uVHlwZXMgPSAoMCwgX3R5cGUudHVwbGUpKCdkZWZhdWx0JywgJ3ByaW1hcnknLCAnZ2hvc3QnLCAnZGFzaGVkJywgJ2RhbmdlcicsICdsaW5rJyk7XG52YXIgQnV0dG9uU2hhcGVzID0gKDAsIF90eXBlLnR1cGxlKSgnY2lyY2xlJywgJ2NpcmNsZS1vdXRsaW5lJywgJ3JvdW5kJyk7XG52YXIgQnV0dG9uU2l6ZXMgPSAoMCwgX3R5cGUudHVwbGUpKCdsYXJnZScsICdkZWZhdWx0JywgJ3NtYWxsJyk7XG52YXIgQnV0dG9uSFRNTFR5cGVzID0gKDAsIF90eXBlLnR1cGxlKSgnc3VibWl0JywgJ2J1dHRvbicsICdyZXNldCcpO1xuXG52YXIgQnV0dG9uID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhCdXR0b24sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoQnV0dG9uKTtcblxuICBmdW5jdGlvbiBCdXR0b24ocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQnV0dG9uKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX3RoaXMuc2F2ZUJ1dHRvblJlZiA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBfdGhpcy5idXR0b25Ob2RlID0gbm9kZTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlQ2xpY2sgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIGxvYWRpbmcgPSBfdGhpcy5zdGF0ZS5sb2FkaW5nO1xuICAgICAgdmFyIG9uQ2xpY2sgPSBfdGhpcy5wcm9wcy5vbkNsaWNrO1xuXG4gICAgICBpZiAobG9hZGluZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgIG9uQ2xpY2soZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckJ1dHRvbiA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscyxcbiAgICAgICAgICBhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbiA9IF9yZWYuYXV0b0luc2VydFNwYWNlSW5CdXR0b247XG5cbiAgICAgIHZhciBfYSA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGN1c3RvbWl6ZVByZWZpeENscyA9IF9hLnByZWZpeENscyxcbiAgICAgICAgICB0eXBlID0gX2EudHlwZSxcbiAgICAgICAgICBzaGFwZSA9IF9hLnNoYXBlLFxuICAgICAgICAgIHNpemUgPSBfYS5zaXplLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLFxuICAgICAgICAgIGljb24gPSBfYS5pY29uLFxuICAgICAgICAgIGdob3N0ID0gX2EuZ2hvc3QsXG4gICAgICAgICAgYmxvY2sgPSBfYS5ibG9jayxcbiAgICAgICAgICByZXN0ID0gX19yZXN0KF9hLCBbXCJwcmVmaXhDbHNcIiwgXCJ0eXBlXCIsIFwic2hhcGVcIiwgXCJzaXplXCIsIFwiY2xhc3NOYW1lXCIsIFwiY2hpbGRyZW5cIiwgXCJpY29uXCIsIFwiZ2hvc3RcIiwgXCJibG9ja1wiXSk7XG5cbiAgICAgIHZhciBfdGhpcyRzdGF0ZSA9IF90aGlzLnN0YXRlLFxuICAgICAgICAgIGxvYWRpbmcgPSBfdGhpcyRzdGF0ZS5sb2FkaW5nLFxuICAgICAgICAgIGhhc1R3b0NOQ2hhciA9IF90aGlzJHN0YXRlLmhhc1R3b0NOQ2hhcjtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2J0bicsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgYXV0b0luc2VydFNwYWNlID0gYXV0b0luc2VydFNwYWNlSW5CdXR0b24gIT09IGZhbHNlOyAvLyBsYXJnZSA9PiBsZ1xuICAgICAgLy8gc21hbGwgPT4gc21cblxuICAgICAgdmFyIHNpemVDbHMgPSAnJztcblxuICAgICAgc3dpdGNoIChzaXplKSB7XG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICBzaXplQ2xzID0gJ2xnJztcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgc2l6ZUNscyA9ICdzbSc7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgdmFyIGljb25UeXBlID0gbG9hZGluZyA/ICdsb2FkaW5nJyA6IGljb247XG4gICAgICB2YXIgY2xhc3NlcyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgY2xhc3NOYW1lLCAoX2NsYXNzTmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodHlwZSksIHR5cGUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaGFwZSksIHNoYXBlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQoc2l6ZUNscyksIHNpemVDbHMpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaWNvbi1vbmx5XCIpLCAhY2hpbGRyZW4gJiYgY2hpbGRyZW4gIT09IDAgJiYgaWNvblR5cGUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbG9hZGluZ1wiKSwgISFsb2FkaW5nKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWJhY2tncm91bmQtZ2hvc3RcIiksIGdob3N0KSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXR3by1jaGluZXNlLWNoYXJzXCIpLCBoYXNUd29DTkNoYXIgJiYgYXV0b0luc2VydFNwYWNlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWJsb2NrXCIpLCBibG9jayksIF9jbGFzc05hbWVzKSk7XG4gICAgICB2YXIgaWNvbk5vZGUgPSBpY29uVHlwZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICB0eXBlOiBpY29uVHlwZVxuICAgICAgfSkgOiBudWxsO1xuICAgICAgdmFyIGtpZHMgPSBjaGlsZHJlbiB8fCBjaGlsZHJlbiA9PT0gMCA/IHNwYWNlQ2hpbGRyZW4oY2hpbGRyZW4sIF90aGlzLmlzTmVlZEluc2VydGVkKCkgJiYgYXV0b0luc2VydFNwYWNlKSA6IG51bGw7XG4gICAgICB2YXIgbGlua0J1dHRvblJlc3RQcm9wcyA9ICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHJlc3QsIFsnaHRtbFR5cGUnLCAnbG9hZGluZyddKTtcblxuICAgICAgaWYgKGxpbmtCdXR0b25SZXN0UHJvcHMuaHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwgX2V4dGVuZHMoe30sIGxpbmtCdXR0b25SZXN0UHJvcHMsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMsXG4gICAgICAgICAgb25DbGljazogX3RoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgcmVmOiBfdGhpcy5zYXZlQnV0dG9uUmVmXG4gICAgICAgIH0pLCBpY29uTm9kZSwga2lkcyk7XG4gICAgICB9IC8vIFJlYWN0IGRvZXMgbm90IHJlY29nbml6ZSB0aGUgYGh0bWxUeXBlYCBwcm9wIG9uIGEgRE9NIGVsZW1lbnQuIEhlcmUgd2UgcGljayBpdCBvdXQgb2YgYHJlc3RgLlxuXG5cbiAgICAgIHZhciBfYiA9IHJlc3QsXG4gICAgICAgICAgaHRtbFR5cGUgPSBfYi5odG1sVHlwZSxcbiAgICAgICAgICBvdGhlclByb3BzID0gX19yZXN0KF9iLCBbXCJodG1sVHlwZVwiXSk7XG5cbiAgICAgIHZhciBidXR0b25Ob2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgX2V4dGVuZHMoe30sICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKG90aGVyUHJvcHMsIFsnbG9hZGluZyddKSwge1xuICAgICAgICB0eXBlOiBodG1sVHlwZSxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLFxuICAgICAgICBvbkNsaWNrOiBfdGhpcy5oYW5kbGVDbGljayxcbiAgICAgICAgcmVmOiBfdGhpcy5zYXZlQnV0dG9uUmVmXG4gICAgICB9KSwgaWNvbk5vZGUsIGtpZHMpO1xuXG4gICAgICBpZiAodHlwZSA9PT0gJ2xpbmsnKSB7XG4gICAgICAgIHJldHVybiBidXR0b25Ob2RlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3dhdmVbXCJkZWZhdWx0XCJdLCBudWxsLCBidXR0b25Ob2RlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBsb2FkaW5nOiBwcm9wcy5sb2FkaW5nLFxuICAgICAgaGFzVHdvQ05DaGFyOiBmYWxzZVxuICAgIH07XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEJ1dHRvbiwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLmZpeFR3b0NOQ2hhcigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHRoaXMuZml4VHdvQ05DaGFyKCk7XG5cbiAgICAgIGlmIChwcmV2UHJvcHMubG9hZGluZyAmJiB0eXBlb2YgcHJldlByb3BzLmxvYWRpbmcgIT09ICdib29sZWFuJykge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVvdXQpO1xuICAgICAgfVxuXG4gICAgICB2YXIgbG9hZGluZyA9IHRoaXMucHJvcHMubG9hZGluZztcblxuICAgICAgaWYgKGxvYWRpbmcgJiYgdHlwZW9mIGxvYWRpbmcgIT09ICdib29sZWFuJyAmJiBsb2FkaW5nLmRlbGF5KSB7XG4gICAgICAgIHRoaXMuZGVsYXlUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBsb2FkaW5nOiBsb2FkaW5nXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIGxvYWRpbmcuZGVsYXkpO1xuICAgICAgfSBlbHNlIGlmIChwcmV2UHJvcHMubG9hZGluZyAhPT0gbG9hZGluZykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZGlkLXVwZGF0ZS1zZXQtc3RhdGVcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgbG9hZGluZzogbG9hZGluZ1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5kZWxheVRpbWVvdXQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZml4VHdvQ05DaGFyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZpeFR3b0NOQ2hhcigpIHtcbiAgICAgIC8vIEZpeCBmb3IgSE9DIHVzYWdlIGxpa2UgPEZvcm1hdE1lc3NhZ2UgLz5cbiAgICAgIGlmICghdGhpcy5idXR0b25Ob2RlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGJ1dHRvblRleHQgPSB0aGlzLmJ1dHRvbk5vZGUudGV4dENvbnRlbnQ7XG5cbiAgICAgIGlmICh0aGlzLmlzTmVlZEluc2VydGVkKCkgJiYgaXNUd29DTkNoYXIoYnV0dG9uVGV4dCkpIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLmhhc1R3b0NOQ2hhcikge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgaGFzVHdvQ05DaGFyOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5oYXNUd29DTkNoYXIpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaGFzVHdvQ05DaGFyOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNOZWVkSW5zZXJ0ZWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaXNOZWVkSW5zZXJ0ZWQoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGljb24gPSBfdGhpcyRwcm9wcy5pY29uLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgdHlwZSA9IF90aGlzJHByb3BzLnR5cGU7XG4gICAgICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID09PSAxICYmICFpY29uICYmIHR5cGUgIT09ICdsaW5rJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyQnV0dG9uKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQnV0dG9uO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5CdXR0b24uX19BTlRfQlVUVE9OID0gdHJ1ZTtcbkJ1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGxvYWRpbmc6IGZhbHNlLFxuICBnaG9zdDogZmFsc2UsXG4gIGJsb2NrOiBmYWxzZSxcbiAgaHRtbFR5cGU6ICdidXR0b24nXG59O1xuQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2hhcGU6IFByb3BUeXBlcy5vbmVPZihCdXR0b25TaGFwZXMpLFxuICBzaXplOiBQcm9wVHlwZXMub25lT2YoQnV0dG9uU2l6ZXMpLFxuICBodG1sVHlwZTogUHJvcFR5cGVzLm9uZU9mKEJ1dHRvbkhUTUxUeXBlcyksXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBsb2FkaW5nOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYm9vbCwgUHJvcFR5cGVzLm9iamVjdF0pLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGljb246IFByb3BUeXBlcy5zdHJpbmcsXG4gIGJsb2NrOiBQcm9wVHlwZXMuYm9vbCxcbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmdcbn07XG4oMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoQnV0dG9uKTtcbnZhciBfZGVmYXVsdCA9IEJ1dHRvbjtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yZWFjdERvbSA9IHJlcXVpcmUoXCJyZWFjdC1kb21cIik7XG5cbnZhciBfRXZlbnQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjc3MtYW5pbWF0aW9uL2xpYi9FdmVudFwiKSk7XG5cbnZhciBfcmFmID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9yYWZcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIHN0eWxlRm9yUGVzdWRvOyAvLyBXaGVyZSBlbCBpcyB0aGUgRE9NIGVsZW1lbnQgeW91J2QgbGlrZSB0byB0ZXN0IGZvciB2aXNpYmlsaXR5XG5cbmZ1bmN0aW9uIGlzSGlkZGVuKGVsZW1lbnQpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIWVsZW1lbnQgfHwgZWxlbWVudC5vZmZzZXRQYXJlbnQgPT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTm90R3JleShjb2xvcikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgdmFyIG1hdGNoID0gKGNvbG9yIHx8ICcnKS5tYXRjaCgvcmdiYT9cXCgoXFxkKiksIChcXGQqKSwgKFxcZCopKCwgW1xcLlxcZF0qKT9cXCkvKTtcblxuICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0gJiYgbWF0Y2hbMl0gJiYgbWF0Y2hbM10pIHtcbiAgICByZXR1cm4gIShtYXRjaFsxXSA9PT0gbWF0Y2hbMl0gJiYgbWF0Y2hbMl0gPT09IG1hdGNoWzNdKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG52YXIgV2F2ZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoV2F2ZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihXYXZlKTtcblxuICBmdW5jdGlvbiBXYXZlKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBXYXZlKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgX3RoaXMuYW5pbWF0aW9uU3RhcnQgPSBmYWxzZTtcbiAgICBfdGhpcy5kZXN0cm95ID0gZmFsc2U7XG5cbiAgICBfdGhpcy5vbkNsaWNrID0gZnVuY3Rpb24gKG5vZGUsIHdhdmVDb2xvcikge1xuICAgICAgaWYgKCFub2RlIHx8IGlzSGlkZGVuKG5vZGUpIHx8IG5vZGUuY2xhc3NOYW1lLmluZGV4T2YoJy1sZWF2ZScpID49IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgaW5zZXJ0RXh0cmFOb2RlID0gX3RoaXMucHJvcHMuaW5zZXJ0RXh0cmFOb2RlO1xuICAgICAgX3RoaXMuZXh0cmFOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgIHZhciBfYXNzZXJ0VGhpc0luaXRpYWxpemUgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSxcbiAgICAgICAgICBleHRyYU5vZGUgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUuZXh0cmFOb2RlO1xuXG4gICAgICBleHRyYU5vZGUuY2xhc3NOYW1lID0gJ2FudC1jbGljay1hbmltYXRpbmctbm9kZSc7XG5cbiAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gX3RoaXMuZ2V0QXR0cmlidXRlTmFtZSgpO1xuXG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCAndHJ1ZScpOyAvLyBOb3Qgd2hpdGUgb3IgdHJhbnNwYXJudCBvciBncmV5XG5cbiAgICAgIHN0eWxlRm9yUGVzdWRvID0gc3R5bGVGb3JQZXN1ZG8gfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgaWYgKHdhdmVDb2xvciAmJiB3YXZlQ29sb3IgIT09ICcjZmZmZmZmJyAmJiB3YXZlQ29sb3IgIT09ICdyZ2IoMjU1LCAyNTUsIDI1NSknICYmIGlzTm90R3JleSh3YXZlQ29sb3IpICYmICEvcmdiYVxcKFxcZCosIFxcZCosIFxcZCosIDBcXCkvLnRlc3Qod2F2ZUNvbG9yKSAmJiAvLyBhbnkgdHJhbnNwYXJlbnQgcmdiYSBjb2xvclxuICAgICAgd2F2ZUNvbG9yICE9PSAndHJhbnNwYXJlbnQnKSB7XG4gICAgICAgIC8vIEFkZCBub25jZSBpZiBDU1AgZXhpc3RcbiAgICAgICAgaWYgKF90aGlzLmNzcCAmJiBfdGhpcy5jc3Aubm9uY2UpIHtcbiAgICAgICAgICBzdHlsZUZvclBlc3Vkby5ub25jZSA9IF90aGlzLmNzcC5ub25jZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4dHJhTm9kZS5zdHlsZS5ib3JkZXJDb2xvciA9IHdhdmVDb2xvcjtcbiAgICAgICAgc3R5bGVGb3JQZXN1ZG8uaW5uZXJIVE1MID0gXCJcXG4gICAgICBbYW50LWNsaWNrLWFuaW1hdGluZy13aXRob3V0LWV4dHJhLW5vZGU9J3RydWUnXTo6YWZ0ZXIsIC5hbnQtY2xpY2stYW5pbWF0aW5nLW5vZGUge1xcbiAgICAgICAgLS1hbnRkLXdhdmUtc2hhZG93LWNvbG9yOiBcIi5jb25jYXQod2F2ZUNvbG9yLCBcIjtcXG4gICAgICB9XCIpO1xuXG4gICAgICAgIGlmICghZG9jdW1lbnQuYm9keS5jb250YWlucyhzdHlsZUZvclBlc3VkbykpIHtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHN0eWxlRm9yUGVzdWRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaW5zZXJ0RXh0cmFOb2RlKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZXh0cmFOb2RlKTtcbiAgICAgIH1cblxuICAgICAgX0V2ZW50W1wiZGVmYXVsdFwiXS5hZGRTdGFydEV2ZW50TGlzdGVuZXIobm9kZSwgX3RoaXMub25UcmFuc2l0aW9uU3RhcnQpO1xuXG4gICAgICBfRXZlbnRbXCJkZWZhdWx0XCJdLmFkZEVuZEV2ZW50TGlzdGVuZXIobm9kZSwgX3RoaXMub25UcmFuc2l0aW9uRW5kKTtcbiAgICB9O1xuXG4gICAgX3RoaXMub25UcmFuc2l0aW9uU3RhcnQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKF90aGlzLmRlc3Ryb3kpIHJldHVybjtcbiAgICAgIHZhciBub2RlID0gKDAsIF9yZWFjdERvbS5maW5kRE9NTm9kZSkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuXG4gICAgICBpZiAoIWUgfHwgZS50YXJnZXQgIT09IG5vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIV90aGlzLmFuaW1hdGlvblN0YXJ0KSB7XG4gICAgICAgIF90aGlzLnJlc2V0RWZmZWN0KG5vZGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vblRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKCFlIHx8IGUuYW5pbWF0aW9uTmFtZSAhPT0gJ2ZhZGVFZmZlY3QnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgX3RoaXMucmVzZXRFZmZlY3QoZS50YXJnZXQpO1xuICAgIH07XG5cbiAgICBfdGhpcy5iaW5kQW5pbWF0aW9uRXZlbnQgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKCFub2RlIHx8ICFub2RlLmdldEF0dHJpYnV0ZSB8fCBub2RlLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSB8fCBub2RlLmNsYXNzTmFtZS5pbmRleE9mKCdkaXNhYmxlZCcpID49IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgb25DbGljayA9IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAvLyBGaXggcmFkaW8gYnV0dG9uIGNsaWNrIHR3aWNlXG4gICAgICAgIGlmIChlLnRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnIHx8IGlzSGlkZGVuKGUudGFyZ2V0KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIF90aGlzLnJlc2V0RWZmZWN0KG5vZGUpOyAvLyBHZXQgd2F2ZSBjb2xvciBmcm9tIHRhcmdldFxuXG5cbiAgICAgICAgdmFyIHdhdmVDb2xvciA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC1jb2xvcicpIHx8IC8vIEZpcmVmb3ggQ29tcGF0aWJsZVxuICAgICAgICBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1jb2xvcicpIHx8IGdldENvbXB1dGVkU3R5bGUobm9kZSkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpO1xuICAgICAgICBfdGhpcy5jbGlja1dhdmVUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIF90aGlzLm9uQ2xpY2sobm9kZSwgd2F2ZUNvbG9yKTtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgX3JhZltcImRlZmF1bHRcIl0uY2FuY2VsKF90aGlzLmFuaW1hdGlvblN0YXJ0SWQpO1xuXG4gICAgICAgIF90aGlzLmFuaW1hdGlvblN0YXJ0ID0gdHJ1ZTsgLy8gUmVuZGVyIHRvIHRyaWdnZXIgdHJhbnNpdGlvbiBldmVudCBjb3N0IDMgZnJhbWVzLiBMZXQncyBkZWxheSAxMCBmcmFtZXMgdG8gcmVzZXQgdGhpcy5cblxuICAgICAgICBfdGhpcy5hbmltYXRpb25TdGFydElkID0gKDAsIF9yYWZbXCJkZWZhdWx0XCJdKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMuYW5pbWF0aW9uU3RhcnQgPSBmYWxzZTtcbiAgICAgICAgfSwgMTApO1xuICAgICAgfTtcblxuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG9uQ2xpY2ssIHRydWUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2FuY2VsOiBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIG9uQ2xpY2ssIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJXYXZlID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBjc3AgPSBfcmVmLmNzcDtcbiAgICAgIHZhciBjaGlsZHJlbiA9IF90aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgX3RoaXMuY3NwID0gY3NwO1xuICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoV2F2ZSwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgbm9kZSA9ICgwLCBfcmVhY3REb20uZmluZERPTU5vZGUpKHRoaXMpO1xuXG4gICAgICBpZiAoIW5vZGUgfHwgbm9kZS5ub2RlVHlwZSAhPT0gMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLmJpbmRBbmltYXRpb25FdmVudChub2RlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgICB0aGlzLmluc3RhbmNlLmNhbmNlbCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jbGlja1dhdmVUaW1lb3V0SWQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xpY2tXYXZlVGltZW91dElkKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kZXN0cm95ID0gdHJ1ZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0QXR0cmlidXRlTmFtZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVOYW1lKCkge1xuICAgICAgdmFyIGluc2VydEV4dHJhTm9kZSA9IHRoaXMucHJvcHMuaW5zZXJ0RXh0cmFOb2RlO1xuICAgICAgcmV0dXJuIGluc2VydEV4dHJhTm9kZSA/ICdhbnQtY2xpY2stYW5pbWF0aW5nJyA6ICdhbnQtY2xpY2stYW5pbWF0aW5nLXdpdGhvdXQtZXh0cmEtbm9kZSc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc2V0RWZmZWN0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc2V0RWZmZWN0KG5vZGUpIHtcbiAgICAgIGlmICghbm9kZSB8fCBub2RlID09PSB0aGlzLmV4dHJhTm9kZSB8fCAhKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBpbnNlcnRFeHRyYU5vZGUgPSB0aGlzLnByb3BzLmluc2VydEV4dHJhTm9kZTtcbiAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gdGhpcy5nZXRBdHRyaWJ1dGVOYW1lKCk7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCAnZmFsc2UnKTsgLy8gZWRnZSBoYXMgYnVnIG9uIGByZW1vdmVBdHRyaWJ1dGVgICMxNDQ2NlxuXG4gICAgICBpZiAoc3R5bGVGb3JQZXN1ZG8pIHtcbiAgICAgICAgc3R5bGVGb3JQZXN1ZG8uaW5uZXJIVE1MID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnNlcnRFeHRyYU5vZGUgJiYgdGhpcy5leHRyYU5vZGUgJiYgbm9kZS5jb250YWlucyh0aGlzLmV4dHJhTm9kZSkpIHtcbiAgICAgICAgbm9kZS5yZW1vdmVDaGlsZCh0aGlzLmV4dHJhTm9kZSk7XG4gICAgICB9XG5cbiAgICAgIF9FdmVudFtcImRlZmF1bHRcIl0ucmVtb3ZlU3RhcnRFdmVudExpc3RlbmVyKG5vZGUsIHRoaXMub25UcmFuc2l0aW9uU3RhcnQpO1xuXG4gICAgICBfRXZlbnRbXCJkZWZhdWx0XCJdLnJlbW92ZUVuZEV2ZW50TGlzdGVuZXIobm9kZSwgdGhpcy5vblRyYW5zaXRpb25FbmQpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJXYXZlKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gV2F2ZTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBXYXZlOyIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbnZhciBTVEFSVF9FVkVOVF9OQU1FX01BUCA9IHtcbiAgdHJhbnNpdGlvbnN0YXJ0OiB7XG4gICAgdHJhbnNpdGlvbjogJ3RyYW5zaXRpb25zdGFydCcsXG4gICAgV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25TdGFydCcsXG4gICAgTW96VHJhbnNpdGlvbjogJ21velRyYW5zaXRpb25TdGFydCcsXG4gICAgT1RyYW5zaXRpb246ICdvVHJhbnNpdGlvblN0YXJ0JyxcbiAgICBtc1RyYW5zaXRpb246ICdNU1RyYW5zaXRpb25TdGFydCdcbiAgfSxcblxuICBhbmltYXRpb25zdGFydDoge1xuICAgIGFuaW1hdGlvbjogJ2FuaW1hdGlvbnN0YXJ0JyxcbiAgICBXZWJraXRBbmltYXRpb246ICd3ZWJraXRBbmltYXRpb25TdGFydCcsXG4gICAgTW96QW5pbWF0aW9uOiAnbW96QW5pbWF0aW9uU3RhcnQnLFxuICAgIE9BbmltYXRpb246ICdvQW5pbWF0aW9uU3RhcnQnLFxuICAgIG1zQW5pbWF0aW9uOiAnTVNBbmltYXRpb25TdGFydCdcbiAgfVxufTtcblxudmFyIEVORF9FVkVOVF9OQU1FX01BUCA9IHtcbiAgdHJhbnNpdGlvbmVuZDoge1xuICAgIHRyYW5zaXRpb246ICd0cmFuc2l0aW9uZW5kJyxcbiAgICBXZWJraXRUcmFuc2l0aW9uOiAnd2Via2l0VHJhbnNpdGlvbkVuZCcsXG4gICAgTW96VHJhbnNpdGlvbjogJ21velRyYW5zaXRpb25FbmQnLFxuICAgIE9UcmFuc2l0aW9uOiAnb1RyYW5zaXRpb25FbmQnLFxuICAgIG1zVHJhbnNpdGlvbjogJ01TVHJhbnNpdGlvbkVuZCdcbiAgfSxcblxuICBhbmltYXRpb25lbmQ6IHtcbiAgICBhbmltYXRpb246ICdhbmltYXRpb25lbmQnLFxuICAgIFdlYmtpdEFuaW1hdGlvbjogJ3dlYmtpdEFuaW1hdGlvbkVuZCcsXG4gICAgTW96QW5pbWF0aW9uOiAnbW96QW5pbWF0aW9uRW5kJyxcbiAgICBPQW5pbWF0aW9uOiAnb0FuaW1hdGlvbkVuZCcsXG4gICAgbXNBbmltYXRpb246ICdNU0FuaW1hdGlvbkVuZCdcbiAgfVxufTtcblxudmFyIHN0YXJ0RXZlbnRzID0gW107XG52YXIgZW5kRXZlbnRzID0gW107XG5cbmZ1bmN0aW9uIGRldGVjdEV2ZW50cygpIHtcbiAgdmFyIHRlc3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICB2YXIgc3R5bGUgPSB0ZXN0RWwuc3R5bGU7XG5cbiAgaWYgKCEoJ0FuaW1hdGlvbkV2ZW50JyBpbiB3aW5kb3cpKSB7XG4gICAgZGVsZXRlIFNUQVJUX0VWRU5UX05BTUVfTUFQLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbjtcbiAgICBkZWxldGUgRU5EX0VWRU5UX05BTUVfTUFQLmFuaW1hdGlvbmVuZC5hbmltYXRpb247XG4gIH1cblxuICBpZiAoISgnVHJhbnNpdGlvbkV2ZW50JyBpbiB3aW5kb3cpKSB7XG4gICAgZGVsZXRlIFNUQVJUX0VWRU5UX05BTUVfTUFQLnRyYW5zaXRpb25zdGFydC50cmFuc2l0aW9uO1xuICAgIGRlbGV0ZSBFTkRfRVZFTlRfTkFNRV9NQVAudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJvY2VzcyhFVkVOVF9OQU1FX01BUCwgZXZlbnRzKSB7XG4gICAgZm9yICh2YXIgYmFzZUV2ZW50TmFtZSBpbiBFVkVOVF9OQU1FX01BUCkge1xuICAgICAgaWYgKEVWRU5UX05BTUVfTUFQLmhhc093blByb3BlcnR5KGJhc2VFdmVudE5hbWUpKSB7XG4gICAgICAgIHZhciBiYXNlRXZlbnRzID0gRVZFTlRfTkFNRV9NQVBbYmFzZUV2ZW50TmFtZV07XG4gICAgICAgIGZvciAodmFyIHN0eWxlTmFtZSBpbiBiYXNlRXZlbnRzKSB7XG4gICAgICAgICAgaWYgKHN0eWxlTmFtZSBpbiBzdHlsZSkge1xuICAgICAgICAgICAgZXZlbnRzLnB1c2goYmFzZUV2ZW50c1tzdHlsZU5hbWVdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3MoU1RBUlRfRVZFTlRfTkFNRV9NQVAsIHN0YXJ0RXZlbnRzKTtcbiAgcHJvY2VzcyhFTkRfRVZFTlRfTkFNRV9NQVAsIGVuZEV2ZW50cyk7XG59XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gIGRldGVjdEV2ZW50cygpO1xufVxuXG5mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lcikge1xuICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudExpc3RlbmVyLCBmYWxzZSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnROYW1lLCBldmVudExpc3RlbmVyKSB7XG4gIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIsIGZhbHNlKTtcbn1cblxudmFyIFRyYW5zaXRpb25FdmVudHMgPSB7XG4gIC8vIFN0YXJ0IGV2ZW50c1xuICBzdGFydEV2ZW50czogc3RhcnRFdmVudHMsXG5cbiAgYWRkU3RhcnRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiBhZGRTdGFydEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChzdGFydEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGV2ZW50TGlzdGVuZXIsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdGFydEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzdGFydEV2ZW50KSB7XG4gICAgICBhZGRFdmVudExpc3RlbmVyKG5vZGUsIHN0YXJ0RXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9LFxuICByZW1vdmVTdGFydEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIHJlbW92ZVN0YXJ0RXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKHN0YXJ0RXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdGFydEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzdGFydEV2ZW50KSB7XG4gICAgICByZW1vdmVFdmVudExpc3RlbmVyKG5vZGUsIHN0YXJ0RXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9LFxuXG5cbiAgLy8gRW5kIGV2ZW50c1xuICBlbmRFdmVudHM6IGVuZEV2ZW50cyxcblxuICBhZGRFbmRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiBhZGRFbmRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoZW5kRXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoZXZlbnRMaXN0ZW5lciwgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVuZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbmRFdmVudCkge1xuICAgICAgYWRkRXZlbnRMaXN0ZW5lcihub2RlLCBlbmRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH0sXG4gIHJlbW92ZUVuZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIHJlbW92ZUVuZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChlbmRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVuZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbmRFdmVudCkge1xuICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlLCBlbmRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyYW5zaXRpb25FdmVudHM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gd3JhcHBlclJhZjtcblxudmFyIF9yYWYgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYWZcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIGlkID0gMDtcbnZhciBpZHMgPSB7fTsgLy8gU3VwcG9ydCBjYWxsIHJhZiB3aXRoIGRlbGF5IHNwZWNpZmllZCBmcmFtZVxuXG5mdW5jdGlvbiB3cmFwcGVyUmFmKGNhbGxiYWNrKSB7XG4gIHZhciBkZWxheUZyYW1lcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogMTtcbiAgdmFyIG15SWQgPSBpZCsrO1xuICB2YXIgcmVzdEZyYW1lcyA9IGRlbGF5RnJhbWVzO1xuXG4gIGZ1bmN0aW9uIGludGVybmFsQ2FsbGJhY2soKSB7XG4gICAgcmVzdEZyYW1lcyAtPSAxO1xuXG4gICAgaWYgKHJlc3RGcmFtZXMgPD0gMCkge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICAgIGRlbGV0ZSBpZHNbbXlJZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkc1tteUlkXSA9ICgwLCBfcmFmW1wiZGVmYXVsdFwiXSkoaW50ZXJuYWxDYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgaWRzW215SWRdID0gKDAsIF9yYWZbXCJkZWZhdWx0XCJdKShpbnRlcm5hbENhbGxiYWNrKTtcbiAgcmV0dXJuIG15SWQ7XG59XG5cbndyYXBwZXJSYWYuY2FuY2VsID0gZnVuY3Rpb24gY2FuY2VsKHBpZCkge1xuICBpZiAocGlkID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICBfcmFmW1wiZGVmYXVsdFwiXS5jYW5jZWwoaWRzW3BpZF0pO1xuXG4gIGRlbGV0ZSBpZHNbcGlkXTtcbn07XG5cbndyYXBwZXJSYWYuaWRzID0gaWRzOyAvLyBleHBvcnQgdGhpcyBmb3IgdGVzdCB1c2FnZSIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBCdXR0b25Hcm91cCA9IGZ1bmN0aW9uIEJ1dHRvbkdyb3VwKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgdmFyIGN1c3RvbWl6ZVByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgICAgc2l6ZSA9IHByb3BzLnNpemUsXG4gICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgb3RoZXJzID0gX19yZXN0KHByb3BzLCBbXCJwcmVmaXhDbHNcIiwgXCJzaXplXCIsIFwiY2xhc3NOYW1lXCJdKTtcblxuICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2J0bi1ncm91cCcsIGN1c3RvbWl6ZVByZWZpeENscyk7IC8vIGxhcmdlID0+IGxnXG4gICAgLy8gc21hbGwgPT4gc21cblxuICAgIHZhciBzaXplQ2xzID0gJyc7XG5cbiAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgc2l6ZUNscyA9ICdsZyc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgIHNpemVDbHMgPSAnc20nO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdmFyIGNsYXNzZXMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNpemVDbHMpLCBzaXplQ2xzKSwgY2xhc3NOYW1lKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe30sIG90aGVycywge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzXG4gICAgfSkpO1xuICB9KTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IEJ1dHRvbkdyb3VwO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBjb25maXJtO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUmVhY3RET00gPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfaWNvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2ljb25cIikpO1xuXG52YXIgX01vZGFsID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vTW9kYWxcIikpO1xuXG52YXIgX0FjdGlvbkJ1dHRvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vQWN0aW9uQnV0dG9uXCIpKTtcblxudmFyIF9sb2NhbGUgPSByZXF1aXJlKFwiLi9sb2NhbGVcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIElTX1JFQUNUXzE2ID0gISFSZWFjdERPTS5jcmVhdGVQb3J0YWw7XG5cbnZhciBDb25maXJtRGlhbG9nID0gZnVuY3Rpb24gQ29uZmlybURpYWxvZyhwcm9wcykge1xuICB2YXIgb25DYW5jZWwgPSBwcm9wcy5vbkNhbmNlbCxcbiAgICAgIG9uT2sgPSBwcm9wcy5vbk9rLFxuICAgICAgY2xvc2UgPSBwcm9wcy5jbG9zZSxcbiAgICAgIHpJbmRleCA9IHByb3BzLnpJbmRleCxcbiAgICAgIGFmdGVyQ2xvc2UgPSBwcm9wcy5hZnRlckNsb3NlLFxuICAgICAgdmlzaWJsZSA9IHByb3BzLnZpc2libGUsXG4gICAgICBrZXlib2FyZCA9IHByb3BzLmtleWJvYXJkLFxuICAgICAgY2VudGVyZWQgPSBwcm9wcy5jZW50ZXJlZCxcbiAgICAgIGdldENvbnRhaW5lciA9IHByb3BzLmdldENvbnRhaW5lcixcbiAgICAgIG1hc2tTdHlsZSA9IHByb3BzLm1hc2tTdHlsZSxcbiAgICAgIG9rQnV0dG9uUHJvcHMgPSBwcm9wcy5va0J1dHRvblByb3BzLFxuICAgICAgY2FuY2VsQnV0dG9uUHJvcHMgPSBwcm9wcy5jYW5jZWxCdXR0b25Qcm9wcyxcbiAgICAgIF9wcm9wcyRpY29uVHlwZSA9IHByb3BzLmljb25UeXBlLFxuICAgICAgaWNvblR5cGUgPSBfcHJvcHMkaWNvblR5cGUgPT09IHZvaWQgMCA/ICdxdWVzdGlvbi1jaXJjbGUnIDogX3Byb3BzJGljb25UeXBlO1xuICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKSghKCdpY29uVHlwZScgaW4gcHJvcHMpLCAnTW9kYWwnLCBcIlRoZSBwcm9wZXJ0eSAnaWNvblR5cGUnIGlzIGRlcHJlY2F0ZWQuIFVzZSB0aGUgcHJvcGVydHkgJ2ljb24nIGluc3RlYWQuXCIpOyAvLyDmlK/mjIHkvKDlhaV7IGljb246IG51bGwgfeadpemakOiXj2BNb2RhbC5jb25maXJtYOm7mOiupOeahEljb25cblxuICB2YXIgaWNvbiA9IHByb3BzLmljb24gPT09IHVuZGVmaW5lZCA/IGljb25UeXBlIDogcHJvcHMuaWNvbjtcbiAgdmFyIG9rVHlwZSA9IHByb3BzLm9rVHlwZSB8fCAncHJpbWFyeSc7XG4gIHZhciBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMgfHwgJ2FudC1tb2RhbCc7XG4gIHZhciBjb250ZW50UHJlZml4Q2xzID0gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jb25maXJtXCIpOyAvLyDpu5jorqTkuLogdHJ1Ze+8jOS/neaMgeWQkeS4i+WFvOWuuVxuXG4gIHZhciBva0NhbmNlbCA9ICdva0NhbmNlbCcgaW4gcHJvcHMgPyBwcm9wcy5va0NhbmNlbCA6IHRydWU7XG4gIHZhciB3aWR0aCA9IHByb3BzLndpZHRoIHx8IDQxNjtcbiAgdmFyIHN0eWxlID0gcHJvcHMuc3R5bGUgfHwge307XG4gIHZhciBtYXNrID0gcHJvcHMubWFzayA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHByb3BzLm1hc2s7IC8vIOm7mOiupOS4uiBmYWxzZe+8jOS/neaMgeaXp+eJiOm7mOiupOihjOS4ulxuXG4gIHZhciBtYXNrQ2xvc2FibGUgPSBwcm9wcy5tYXNrQ2xvc2FibGUgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogcHJvcHMubWFza0Nsb3NhYmxlO1xuICB2YXIgcnVudGltZUxvY2FsZSA9ICgwLCBfbG9jYWxlLmdldENvbmZpcm1Mb2NhbGUpKCk7XG4gIHZhciBva1RleHQgPSBwcm9wcy5va1RleHQgfHwgKG9rQ2FuY2VsID8gcnVudGltZUxvY2FsZS5va1RleHQgOiBydW50aW1lTG9jYWxlLmp1c3RPa1RleHQpO1xuICB2YXIgY2FuY2VsVGV4dCA9IHByb3BzLmNhbmNlbFRleHQgfHwgcnVudGltZUxvY2FsZS5jYW5jZWxUZXh0O1xuICB2YXIgYXV0b0ZvY3VzQnV0dG9uID0gcHJvcHMuYXV0b0ZvY3VzQnV0dG9uID09PSBudWxsID8gZmFsc2UgOiBwcm9wcy5hdXRvRm9jdXNCdXR0b24gfHwgJ29rJztcbiAgdmFyIHRyYW5zaXRpb25OYW1lID0gcHJvcHMudHJhbnNpdGlvbk5hbWUgfHwgJ3pvb20nO1xuICB2YXIgbWFza1RyYW5zaXRpb25OYW1lID0gcHJvcHMubWFza1RyYW5zaXRpb25OYW1lIHx8ICdmYWRlJztcbiAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoY29udGVudFByZWZpeENscywgXCJcIi5jb25jYXQoY29udGVudFByZWZpeENscywgXCItXCIpLmNvbmNhdChwcm9wcy50eXBlKSwgcHJvcHMuY2xhc3NOYW1lKTtcbiAgdmFyIGNhbmNlbEJ1dHRvbiA9IG9rQ2FuY2VsICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9BY3Rpb25CdXR0b25bXCJkZWZhdWx0XCJdLCB7XG4gICAgYWN0aW9uRm46IG9uQ2FuY2VsLFxuICAgIGNsb3NlTW9kYWw6IGNsb3NlLFxuICAgIGF1dG9Gb2N1czogYXV0b0ZvY3VzQnV0dG9uID09PSAnY2FuY2VsJyxcbiAgICBidXR0b25Qcm9wczogY2FuY2VsQnV0dG9uUHJvcHNcbiAgfSwgY2FuY2VsVGV4dCk7XG4gIHZhciBpY29uTm9kZSA9IHR5cGVvZiBpY29uID09PSAnc3RyaW5nJyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgIHR5cGU6IGljb25cbiAgfSkgOiBpY29uO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX01vZGFsW1wiZGVmYXVsdFwiXSwge1xuICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgIGNsYXNzTmFtZTogY2xhc3NTdHJpbmcsXG4gICAgd3JhcENsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChjb250ZW50UHJlZml4Q2xzLCBcIi1jZW50ZXJlZFwiKSwgISFwcm9wcy5jZW50ZXJlZCkpLFxuICAgIG9uQ2FuY2VsOiBmdW5jdGlvbiBvbkNhbmNlbCgpIHtcbiAgICAgIHJldHVybiBjbG9zZSh7XG4gICAgICAgIHRyaWdnZXJDYW5jZWw6IHRydWVcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICB0aXRsZTogXCJcIixcbiAgICB0cmFuc2l0aW9uTmFtZTogdHJhbnNpdGlvbk5hbWUsXG4gICAgZm9vdGVyOiBcIlwiLFxuICAgIG1hc2tUcmFuc2l0aW9uTmFtZTogbWFza1RyYW5zaXRpb25OYW1lLFxuICAgIG1hc2s6IG1hc2ssXG4gICAgbWFza0Nsb3NhYmxlOiBtYXNrQ2xvc2FibGUsXG4gICAgbWFza1N0eWxlOiBtYXNrU3R5bGUsXG4gICAgc3R5bGU6IHN0eWxlLFxuICAgIHdpZHRoOiB3aWR0aCxcbiAgICB6SW5kZXg6IHpJbmRleCxcbiAgICBhZnRlckNsb3NlOiBhZnRlckNsb3NlLFxuICAgIGtleWJvYXJkOiBrZXlib2FyZCxcbiAgICBjZW50ZXJlZDogY2VudGVyZWQsXG4gICAgZ2V0Q29udGFpbmVyOiBnZXRDb250YWluZXJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoY29udGVudFByZWZpeENscywgXCItYm9keS13cmFwcGVyXCIpXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGNvbnRlbnRQcmVmaXhDbHMsIFwiLWJvZHlcIilcbiAgfSwgaWNvbk5vZGUsIHByb3BzLnRpdGxlID09PSB1bmRlZmluZWQgPyBudWxsIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGNvbnRlbnRQcmVmaXhDbHMsIFwiLXRpdGxlXCIpXG4gIH0sIHByb3BzLnRpdGxlKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoY29udGVudFByZWZpeENscywgXCItY29udGVudFwiKVxuICB9LCBwcm9wcy5jb250ZW50KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGNvbnRlbnRQcmVmaXhDbHMsIFwiLWJ0bnNcIilcbiAgfSwgY2FuY2VsQnV0dG9uLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfQWN0aW9uQnV0dG9uW1wiZGVmYXVsdFwiXSwge1xuICAgIHR5cGU6IG9rVHlwZSxcbiAgICBhY3Rpb25Gbjogb25PayxcbiAgICBjbG9zZU1vZGFsOiBjbG9zZSxcbiAgICBhdXRvRm9jdXM6IGF1dG9Gb2N1c0J1dHRvbiA9PT0gJ29rJyxcbiAgICBidXR0b25Qcm9wczogb2tCdXR0b25Qcm9wc1xuICB9LCBva1RleHQpKSkpO1xufTtcblxuZnVuY3Rpb24gY29uZmlybShjb25maWcpIHtcbiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuXG4gIHZhciBjdXJyZW50Q29uZmlnID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIGNvbmZpZyksIHtcbiAgICBjbG9zZTogY2xvc2UsXG4gICAgdmlzaWJsZTogdHJ1ZVxuICB9KTtcblxuICBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgIHZhciB1bm1vdW50UmVzdWx0ID0gUmVhY3RET00udW5tb3VudENvbXBvbmVudEF0Tm9kZShkaXYpO1xuXG4gICAgaWYgKHVubW91bnRSZXN1bHQgJiYgZGl2LnBhcmVudE5vZGUpIHtcbiAgICAgIGRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRpdik7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHZhciB0cmlnZ2VyQ2FuY2VsID0gYXJncy5zb21lKGZ1bmN0aW9uIChwYXJhbSkge1xuICAgICAgcmV0dXJuIHBhcmFtICYmIHBhcmFtLnRyaWdnZXJDYW5jZWw7XG4gICAgfSk7XG5cbiAgICBpZiAoY29uZmlnLm9uQ2FuY2VsICYmIHRyaWdnZXJDYW5jZWwpIHtcbiAgICAgIGNvbmZpZy5vbkNhbmNlbC5hcHBseShjb25maWcsIGFyZ3MpO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX01vZGFsLmRlc3Ryb3lGbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBmbiA9IF9Nb2RhbC5kZXN0cm95Rm5zW2ldOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcblxuICAgICAgaWYgKGZuID09PSBjbG9zZSkge1xuICAgICAgICBfTW9kYWwuZGVzdHJveUZucy5zcGxpY2UoaSwgMSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVuZGVyKHByb3BzKSB7XG4gICAgUmVhY3RET00ucmVuZGVyKCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb25maXJtRGlhbG9nLCBwcm9wcyksIGRpdik7XG4gIH1cblxuICBmdW5jdGlvbiBjbG9zZSgpIHtcbiAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICB9XG5cbiAgICBjdXJyZW50Q29uZmlnID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIGN1cnJlbnRDb25maWcpLCB7XG4gICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgIGFmdGVyQ2xvc2U6IGRlc3Ryb3kuYmluZC5hcHBseShkZXN0cm95LCBbdGhpc10uY29uY2F0KGFyZ3MpKVxuICAgIH0pO1xuXG4gICAgaWYgKElTX1JFQUNUXzE2KSB7XG4gICAgICByZW5kZXIoY3VycmVudENvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlc3Ryb3kuYXBwbHkodm9pZCAwLCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGUobmV3Q29uZmlnKSB7XG4gICAgY3VycmVudENvbmZpZyA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCBjdXJyZW50Q29uZmlnKSwgbmV3Q29uZmlnKTtcbiAgICByZW5kZXIoY3VycmVudENvbmZpZyk7XG4gIH1cblxuICByZW5kZXIoY3VycmVudENvbmZpZyk7XG5cbiAgX01vZGFsLmRlc3Ryb3lGbnMucHVzaChjbG9zZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkZXN0cm95OiBjbG9zZSxcbiAgICB1cGRhdGU6IHVwZGF0ZVxuICB9O1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBSZWFjdERPTSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdC1kb21cIikpO1xuXG52YXIgX2J1dHRvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2J1dHRvblwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBBY3Rpb25CdXR0b24gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEFjdGlvbkJ1dHRvbiwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihBY3Rpb25CdXR0b24pO1xuXG4gIGZ1bmN0aW9uIEFjdGlvbkJ1dHRvbihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpb25CdXR0b24pO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5vbkNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgYWN0aW9uRm4gPSBfdGhpcyRwcm9wcy5hY3Rpb25GbixcbiAgICAgICAgICBjbG9zZU1vZGFsID0gX3RoaXMkcHJvcHMuY2xvc2VNb2RhbDtcblxuICAgICAgaWYgKGFjdGlvbkZuKSB7XG4gICAgICAgIHZhciByZXQ7XG5cbiAgICAgICAgaWYgKGFjdGlvbkZuLmxlbmd0aCkge1xuICAgICAgICAgIHJldCA9IGFjdGlvbkZuKGNsb3NlTW9kYWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldCA9IGFjdGlvbkZuKCk7XG5cbiAgICAgICAgICBpZiAoIXJldCkge1xuICAgICAgICAgICAgY2xvc2VNb2RhbCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXQgJiYgcmV0LnRoZW4pIHtcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXQudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyBJdCdzIHVubmVjZXNzYXJ5IHRvIHNldCBsb2FkaW5nPWZhbHNlLCBmb3IgdGhlIE1vZGFsIHdpbGwgYmUgdW5tb3VudGVkIGFmdGVyIGNsb3NlLlxuICAgICAgICAgICAgLy8gdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgY2xvc2VNb2RhbC5hcHBseSh2b2lkIDAsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgfSwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIEVtaXQgZXJyb3Igd2hlbiBjYXRjaCBwcm9taXNlIHJlamVjdFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7IC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNjE4M1xuXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VNb2RhbCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQWN0aW9uQnV0dG9uLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgICB2YXIgJHRoaXMgPSBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgICAgdGhpcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gJHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHR5cGUgPSBfdGhpcyRwcm9wczIudHlwZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IF90aGlzJHByb3BzMi5jaGlsZHJlbixcbiAgICAgICAgICBidXR0b25Qcm9wcyA9IF90aGlzJHByb3BzMi5idXR0b25Qcm9wcztcbiAgICAgIHZhciBsb2FkaW5nID0gdGhpcy5zdGF0ZS5sb2FkaW5nO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9idXR0b25bXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7XG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIG9uQ2xpY2s6IHRoaXMub25DbGljayxcbiAgICAgICAgbG9hZGluZzogbG9hZGluZ1xuICAgICAgfSwgYnV0dG9uUHJvcHMpLCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEFjdGlvbkJ1dHRvbjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBBY3Rpb25CdXR0b247IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kc1wiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrXCI7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSBcImJhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHNcIjtcbnZhciBfX3Jlc3QgPSB0aGlzICYmIHRoaXMuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgICB9aWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgICB9cmV0dXJuIHQ7XG59O1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG52YXIgTGF6eVJlbmRlckJveCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKExhenlSZW5kZXJCb3gsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gTGF6eVJlbmRlckJveCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExhenlSZW5kZXJCb3gpO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgIH1cblxuICAgIExhenlSZW5kZXJCb3gucHJvdG90eXBlLnNob3VsZENvbXBvbmVudFVwZGF0ZSA9IGZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKG5leHRQcm9wcy5mb3JjZVJlbmRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhbmV4dFByb3BzLmhpZGRlbkNsYXNzTmFtZSB8fCAhIW5leHRQcm9wcy52aXNpYmxlO1xuICAgIH07XG5cbiAgICBMYXp5UmVuZGVyQm94LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsXG4gICAgICAgICAgICBoaWRkZW5DbGFzc05hbWUgPSBfYS5oaWRkZW5DbGFzc05hbWUsXG4gICAgICAgICAgICB2aXNpYmxlID0gX2EudmlzaWJsZSxcbiAgICAgICAgICAgIGZvcmNlUmVuZGVyID0gX2EuZm9yY2VSZW5kZXIsXG4gICAgICAgICAgICByZXN0UHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNsYXNzTmFtZVwiLCBcImhpZGRlbkNsYXNzTmFtZVwiLCBcInZpc2libGVcIiwgXCJmb3JjZVJlbmRlclwiXSk7XG4gICAgICAgIHZhciB1c2VDbGFzc05hbWUgPSBjbGFzc05hbWU7XG4gICAgICAgIGlmICghIWhpZGRlbkNsYXNzTmFtZSAmJiAhdmlzaWJsZSkge1xuICAgICAgICAgICAgdXNlQ2xhc3NOYW1lICs9IFwiIFwiICsgaGlkZGVuQ2xhc3NOYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9leHRlbmRzKHt9LCByZXN0UHJvcHMsIHsgY2xhc3NOYW1lOiB1c2VDbGFzc05hbWUgfSkpO1xuICAgIH07XG5cbiAgICByZXR1cm4gTGF6eVJlbmRlckJveDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0IGRlZmF1bHQgTGF6eVJlbmRlckJveDsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgS2V5Q29kZSBmcm9tICdyYy11dGlsL2VzL0tleUNvZGUnO1xuaW1wb3J0IGNvbnRhaW5zIGZyb20gJ3JjLXV0aWwvZXMvRG9tL2NvbnRhaW5zJztcbmltcG9ydCBBbmltYXRlIGZyb20gJ3JjLWFuaW1hdGUnO1xuaW1wb3J0IExhenlSZW5kZXJCb3ggZnJvbSAnLi9MYXp5UmVuZGVyQm94JztcbnZhciB1dWlkID0gMDtcbi8qIGVzbGludCByZWFjdC9uby1pcy1tb3VudGVkOjAgKi9cbmZ1bmN0aW9uIGdldFNjcm9sbCh3LCB0b3ApIHtcbiAgICB2YXIgcmV0ID0gd1sncGFnZScgKyAodG9wID8gJ1knIDogJ1gnKSArICdPZmZzZXQnXTtcbiAgICB2YXIgbWV0aG9kID0gJ3Njcm9sbCcgKyAodG9wID8gJ1RvcCcgOiAnTGVmdCcpO1xuICAgIGlmICh0eXBlb2YgcmV0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICB2YXIgZCA9IHcuZG9jdW1lbnQ7XG4gICAgICAgIHJldCA9IGQuZG9jdW1lbnRFbGVtZW50W21ldGhvZF07XG4gICAgICAgIGlmICh0eXBlb2YgcmV0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0ID0gZC5ib2R5W21ldGhvZF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbn1cbmZ1bmN0aW9uIHNldFRyYW5zZm9ybU9yaWdpbihub2RlLCB2YWx1ZSkge1xuICAgIHZhciBzdHlsZSA9IG5vZGUuc3R5bGU7XG4gICAgWydXZWJraXQnLCAnTW96JywgJ01zJywgJ21zJ10uZm9yRWFjaChmdW5jdGlvbiAocHJlZml4KSB7XG4gICAgICAgIHN0eWxlW3ByZWZpeCArICdUcmFuc2Zvcm1PcmlnaW4nXSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHN0eWxlWyd0cmFuc2Zvcm1PcmlnaW4nXSA9IHZhbHVlO1xufVxuZnVuY3Rpb24gb2Zmc2V0KGVsKSB7XG4gICAgdmFyIHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB2YXIgcG9zID0ge1xuICAgICAgICBsZWZ0OiByZWN0LmxlZnQsXG4gICAgICAgIHRvcDogcmVjdC50b3BcbiAgICB9O1xuICAgIHZhciBkb2MgPSBlbC5vd25lckRvY3VtZW50O1xuICAgIHZhciB3ID0gZG9jLmRlZmF1bHRWaWV3IHx8IGRvYy5wYXJlbnRXaW5kb3c7XG4gICAgcG9zLmxlZnQgKz0gZ2V0U2Nyb2xsKHcpO1xuICAgIHBvcy50b3AgKz0gZ2V0U2Nyb2xsKHcsIHRydWUpO1xuICAgIHJldHVybiBwb3M7XG59XG5cbnZhciBEaWFsb2cgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhEaWFsb2csIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gRGlhbG9nKHByb3BzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBEaWFsb2cpO1xuXG4gICAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcykpO1xuXG4gICAgICAgIF90aGlzLmluVHJhbnNpdGlvbiA9IGZhbHNlO1xuICAgICAgICBfdGhpcy5vbkFuaW1hdGVMZWF2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhZnRlckNsb3NlID0gX3RoaXMucHJvcHMuYWZ0ZXJDbG9zZTtcbiAgICAgICAgICAgIC8vIG5lZWQgZGVtbz9cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvZGlhbG9nL3B1bGwvMjhcblxuICAgICAgICAgICAgaWYgKF90aGlzLndyYXApIHtcbiAgICAgICAgICAgICAgICBfdGhpcy53cmFwLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfdGhpcy5pblRyYW5zaXRpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIF90aGlzLnN3aXRjaFNjcm9sbGluZ0VmZmVjdCgpO1xuICAgICAgICAgICAgaWYgKGFmdGVyQ2xvc2UpIHtcbiAgICAgICAgICAgICAgICBhZnRlckNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLm9uRGlhbG9nTW91c2VEb3duID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMuZGlhbG9nTW91c2VEb3duID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMub25NYXNrTW91c2VVcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChfdGhpcy5kaWFsb2dNb3VzZURvd24pIHtcbiAgICAgICAgICAgICAgICBfdGhpcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuZGlhbG9nTW91c2VEb3duID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLm9uTWFza0NsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIGFuZHJvaWQgdHJpZ2dlciBjbGljayBvbiBvcGVuIChmYXN0Y2xpY2s/PylcbiAgICAgICAgICAgIGlmIChEYXRlLm5vdygpIC0gX3RoaXMub3BlblRpbWUgPCAzMDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZS50YXJnZXQgPT09IGUuY3VycmVudFRhcmdldCAmJiAhX3RoaXMuZGlhbG9nTW91c2VEb3duKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuY2xvc2UoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLm9uS2V5RG93biA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSBfdGhpcy5wcm9wcztcbiAgICAgICAgICAgIGlmIChwcm9wcy5rZXlib2FyZCAmJiBlLmtleUNvZGUgPT09IEtleUNvZGUuRVNDKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBfdGhpcy5jbG9zZShlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBrZWVwIGZvY3VzIGluc2lkZSBkaWFsb2dcbiAgICAgICAgICAgIGlmIChwcm9wcy52aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gS2V5Q29kZS5UQUIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VudGluZWxTdGFydCA9IF90aGlzLnNlbnRpbmVsU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlRWxlbWVudCA9PT0gc2VudGluZWxTdGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnNlbnRpbmVsRW5kLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aXZlRWxlbWVudCA9PT0gX3RoaXMuc2VudGluZWxFbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbmVsU3RhcnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMuZ2V0RGlhbG9nRWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBwcm9wcyA9IF90aGlzLnByb3BzO1xuICAgICAgICAgICAgdmFyIGNsb3NhYmxlID0gcHJvcHMuY2xvc2FibGU7XG4gICAgICAgICAgICB2YXIgcHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzO1xuICAgICAgICAgICAgdmFyIGRlc3QgPSB7fTtcbiAgICAgICAgICAgIGlmIChwcm9wcy53aWR0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZGVzdC53aWR0aCA9IHByb3BzLndpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb3BzLmhlaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZGVzdC5oZWlnaHQgPSBwcm9wcy5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZm9vdGVyID0gdm9pZCAwO1xuICAgICAgICAgICAgaWYgKHByb3BzLmZvb3Rlcikge1xuICAgICAgICAgICAgICAgIGZvb3RlciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHByZWZpeENscyArICctZm9vdGVyJywgcmVmOiBfdGhpcy5zYXZlUmVmKCdmb290ZXInKSB9LCBwcm9wcy5mb290ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGhlYWRlciA9IHZvaWQgMDtcbiAgICAgICAgICAgIGlmIChwcm9wcy50aXRsZSkge1xuICAgICAgICAgICAgICAgIGhlYWRlciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHByZWZpeENscyArICctaGVhZGVyJywgcmVmOiBfdGhpcy5zYXZlUmVmKCdoZWFkZXInKSB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBwcmVmaXhDbHMgKyAnLXRpdGxlJywgaWQ6IF90aGlzLnRpdGxlSWQgfSwgcHJvcHMudGl0bGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjbG9zZXIgPSB2b2lkIDA7XG4gICAgICAgICAgICBpZiAoY2xvc2FibGUpIHtcbiAgICAgICAgICAgICAgICBjbG9zZXIgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHsgdHlwZTogXCJidXR0b25cIiwgb25DbGljazogX3RoaXMuY2xvc2UsIFwiYXJpYS1sYWJlbFwiOiBcIkNsb3NlXCIsIGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJy1jbG9zZScgfSwgcHJvcHMuY2xvc2VJY29uIHx8IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBwcmVmaXhDbHMgKyAnLWNsb3NlLXgnIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBzdHlsZSA9IF9leHRlbmRzKHt9LCBwcm9wcy5zdHlsZSwgZGVzdCk7XG4gICAgICAgICAgICB2YXIgc2VudGluZWxTdHlsZSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nLCBvdXRsaW5lOiAnbm9uZScgfTtcbiAgICAgICAgICAgIHZhciB0cmFuc2l0aW9uTmFtZSA9IF90aGlzLmdldFRyYW5zaXRpb25OYW1lKCk7XG4gICAgICAgICAgICB2YXIgZGlhbG9nRWxlbWVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoTGF6eVJlbmRlckJveCwgeyBrZXk6IFwiZGlhbG9nLWVsZW1lbnRcIiwgcm9sZTogXCJkb2N1bWVudFwiLCByZWY6IF90aGlzLnNhdmVSZWYoJ2RpYWxvZycpLCBzdHlsZTogc3R5bGUsIGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJyAnICsgKHByb3BzLmNsYXNzTmFtZSB8fCAnJyksIHZpc2libGU6IHByb3BzLnZpc2libGUsIGZvcmNlUmVuZGVyOiBwcm9wcy5mb3JjZVJlbmRlciwgb25Nb3VzZURvd246IF90aGlzLm9uRGlhbG9nTW91c2VEb3duIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyB0YWJJbmRleDogMCwgcmVmOiBfdGhpcy5zYXZlUmVmKCdzZW50aW5lbFN0YXJ0JyksIHN0eWxlOiBzZW50aW5lbFN0eWxlLCBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0pLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBwcmVmaXhDbHMgKyAnLWNvbnRlbnQnIH0sIGNsb3NlciwgaGVhZGVyLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9leHRlbmRzKHsgY2xhc3NOYW1lOiBwcmVmaXhDbHMgKyAnLWJvZHknLCBzdHlsZTogcHJvcHMuYm9keVN0eWxlLCByZWY6IF90aGlzLnNhdmVSZWYoJ2JvZHknKSB9LCBwcm9wcy5ib2R5UHJvcHMpLCBwcm9wcy5jaGlsZHJlbiksIGZvb3RlciksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyB0YWJJbmRleDogMCwgcmVmOiBfdGhpcy5zYXZlUmVmKCdzZW50aW5lbEVuZCcpLCBzdHlsZTogc2VudGluZWxTdHlsZSwgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9KSk7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChBbmltYXRlLCB7IGtleTogXCJkaWFsb2dcIiwgc2hvd1Byb3A6IFwidmlzaWJsZVwiLCBvbkxlYXZlOiBfdGhpcy5vbkFuaW1hdGVMZWF2ZSwgdHJhbnNpdGlvbk5hbWU6IHRyYW5zaXRpb25OYW1lLCBjb21wb25lbnQ6IFwiXCIsIHRyYW5zaXRpb25BcHBlYXI6IHRydWUgfSwgcHJvcHMudmlzaWJsZSB8fCAhcHJvcHMuZGVzdHJveU9uQ2xvc2UgPyBkaWFsb2dFbGVtZW50IDogbnVsbCk7XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLmdldFpJbmRleFN0eWxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHN0eWxlID0ge307XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSBfdGhpcy5wcm9wcztcbiAgICAgICAgICAgIGlmIChwcm9wcy56SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHN0eWxlLnpJbmRleCA9IHByb3BzLnpJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMuZ2V0V3JhcFN0eWxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBfdGhpcy5nZXRaSW5kZXhTdHlsZSgpLCBfdGhpcy5wcm9wcy53cmFwU3R5bGUpO1xuICAgICAgICB9O1xuICAgICAgICBfdGhpcy5nZXRNYXNrU3R5bGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIF90aGlzLmdldFpJbmRleFN0eWxlKCksIF90aGlzLnByb3BzLm1hc2tTdHlsZSk7XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLmdldE1hc2tFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHByb3BzID0gX3RoaXMucHJvcHM7XG4gICAgICAgICAgICB2YXIgbWFza0VsZW1lbnQgPSB2b2lkIDA7XG4gICAgICAgICAgICBpZiAocHJvcHMubWFzaykge1xuICAgICAgICAgICAgICAgIHZhciBtYXNrVHJhbnNpdGlvbiA9IF90aGlzLmdldE1hc2tUcmFuc2l0aW9uTmFtZSgpO1xuICAgICAgICAgICAgICAgIG1hc2tFbGVtZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChMYXp5UmVuZGVyQm94LCBfZXh0ZW5kcyh7IHN0eWxlOiBfdGhpcy5nZXRNYXNrU3R5bGUoKSwga2V5OiBcIm1hc2tcIiwgY2xhc3NOYW1lOiBwcm9wcy5wcmVmaXhDbHMgKyAnLW1hc2snLCBoaWRkZW5DbGFzc05hbWU6IHByb3BzLnByZWZpeENscyArICctbWFzay1oaWRkZW4nLCB2aXNpYmxlOiBwcm9wcy52aXNpYmxlIH0sIHByb3BzLm1hc2tQcm9wcykpO1xuICAgICAgICAgICAgICAgIGlmIChtYXNrVHJhbnNpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBtYXNrRWxlbWVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5pbWF0ZSwgeyBrZXk6IFwibWFza1wiLCBzaG93UHJvcDogXCJ2aXNpYmxlXCIsIHRyYW5zaXRpb25BcHBlYXI6IHRydWUsIGNvbXBvbmVudDogXCJcIiwgdHJhbnNpdGlvbk5hbWU6IG1hc2tUcmFuc2l0aW9uIH0sIG1hc2tFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFza0VsZW1lbnQ7XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLmdldE1hc2tUcmFuc2l0aW9uTmFtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBwcm9wcyA9IF90aGlzLnByb3BzO1xuICAgICAgICAgICAgdmFyIHRyYW5zaXRpb25OYW1lID0gcHJvcHMubWFza1RyYW5zaXRpb25OYW1lO1xuICAgICAgICAgICAgdmFyIGFuaW1hdGlvbiA9IHByb3BzLm1hc2tBbmltYXRpb247XG4gICAgICAgICAgICBpZiAoIXRyYW5zaXRpb25OYW1lICYmIGFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25OYW1lID0gcHJvcHMucHJlZml4Q2xzICsgJy0nICsgYW5pbWF0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zaXRpb25OYW1lO1xuICAgICAgICB9O1xuICAgICAgICBfdGhpcy5nZXRUcmFuc2l0aW9uTmFtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBwcm9wcyA9IF90aGlzLnByb3BzO1xuICAgICAgICAgICAgdmFyIHRyYW5zaXRpb25OYW1lID0gcHJvcHMudHJhbnNpdGlvbk5hbWU7XG4gICAgICAgICAgICB2YXIgYW5pbWF0aW9uID0gcHJvcHMuYW5pbWF0aW9uO1xuICAgICAgICAgICAgaWYgKCF0cmFuc2l0aW9uTmFtZSAmJiBhbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uTmFtZSA9IHByb3BzLnByZWZpeENscyArICctJyArIGFuaW1hdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2l0aW9uTmFtZTtcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMuY2xvc2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIG9uQ2xvc2UgPSBfdGhpcy5wcm9wcy5vbkNsb3NlO1xuXG4gICAgICAgICAgICBpZiAob25DbG9zZSkge1xuICAgICAgICAgICAgICAgIG9uQ2xvc2UoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzLnNhdmVSZWYgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXNbbmFtZV0gPSBub2RlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMudGl0bGVJZCA9ICdyY0RpYWxvZ1RpdGxlJyArIHV1aWQrKztcbiAgICAgICAgX3RoaXMuc3dpdGNoU2Nyb2xsaW5nRWZmZWN0ID0gcHJvcHMuc3dpdGNoU2Nyb2xsaW5nRWZmZWN0IHx8IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuXG4gICAgRGlhbG9nLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudERpZFVwZGF0ZSh7fSk7XG4gICAgICAgIC8vIGlmIGZvcmNlUmVuZGVyIGlzIHRydWUsIHNldCBlbGVtZW50IHN0eWxlIGRpc3BsYXkgdG8gYmUgbm9uZTtcbiAgICAgICAgaWYgKCh0aGlzLnByb3BzLmZvcmNlUmVuZGVyIHx8IHRoaXMucHJvcHMuZ2V0Q29udGFpbmVyID09PSBmYWxzZSAmJiAhdGhpcy5wcm9wcy52aXNpYmxlKSAmJiB0aGlzLndyYXApIHtcbiAgICAgICAgICAgIHRoaXMud3JhcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIERpYWxvZy5wcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgIHZpc2libGUgPSBfcHJvcHMudmlzaWJsZSxcbiAgICAgICAgICAgIG1hc2sgPSBfcHJvcHMubWFzayxcbiAgICAgICAgICAgIGZvY3VzVHJpZ2dlckFmdGVyQ2xvc2UgPSBfcHJvcHMuZm9jdXNUcmlnZ2VyQWZ0ZXJDbG9zZTtcblxuICAgICAgICB2YXIgbW91c2VQb3NpdGlvbiA9IHRoaXMucHJvcHMubW91c2VQb3NpdGlvbjtcbiAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgIC8vIGZpcnN0IHNob3dcbiAgICAgICAgICAgIGlmICghcHJldlByb3BzLnZpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5UaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXRjaFNjcm9sbGluZ0VmZmVjdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMudHJ5Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICB2YXIgZGlhbG9nTm9kZSA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMuZGlhbG9nKTtcbiAgICAgICAgICAgICAgICBpZiAobW91c2VQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxPZmZzZXQgPSBvZmZzZXQoZGlhbG9nTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRyYW5zZm9ybU9yaWdpbihkaWFsb2dOb2RlLCBtb3VzZVBvc2l0aW9uLnggLSBlbE9mZnNldC5sZWZ0ICsgJ3B4ICcgKyAobW91c2VQb3NpdGlvbi55IC0gZWxPZmZzZXQudG9wKSArICdweCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRyYW5zZm9ybU9yaWdpbihkaWFsb2dOb2RlLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHByZXZQcm9wcy52aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmluVHJhbnNpdGlvbiA9IHRydWU7XG4gICAgICAgICAgICBpZiAobWFzayAmJiB0aGlzLmxhc3RPdXRTaWRlRm9jdXNOb2RlICYmIGZvY3VzVHJpZ2dlckFmdGVyQ2xvc2UpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RPdXRTaWRlRm9jdXNOb2RlLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RPdXRTaWRlRm9jdXNOb2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0T3V0U2lkZUZvY3VzTm9kZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgRGlhbG9nLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB2YXIgX3Byb3BzMiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICB2aXNpYmxlID0gX3Byb3BzMi52aXNpYmxlLFxuICAgICAgICAgICAgZ2V0T3BlbkNvdW50ID0gX3Byb3BzMi5nZXRPcGVuQ291bnQ7XG5cbiAgICAgICAgaWYgKCh2aXNpYmxlIHx8IHRoaXMuaW5UcmFuc2l0aW9uKSAmJiAhZ2V0T3BlbkNvdW50KCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3dpdGNoU2Nyb2xsaW5nRWZmZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgICB9O1xuXG4gICAgRGlhbG9nLnByb3RvdHlwZS50cnlGb2N1cyA9IGZ1bmN0aW9uIHRyeUZvY3VzKCkge1xuICAgICAgICBpZiAoIWNvbnRhaW5zKHRoaXMud3JhcCwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdE91dFNpZGVGb2N1c05vZGUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5zZW50aW5lbFN0YXJ0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgRGlhbG9nLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgICBtYXNrQ2xvc2FibGUgPSBwcm9wcy5tYXNrQ2xvc2FibGU7XG5cbiAgICAgICAgdmFyIHN0eWxlID0gdGhpcy5nZXRXcmFwU3R5bGUoKTtcbiAgICAgICAgLy8gY2xlYXIgaGlkZSBkaXNwbGF5XG4gICAgICAgIC8vIGFuZCBvbmx5IHNldCBkaXNwbGF5IGFmdGVyIGFzeW5jIGFuaW0sIG5vdCBoZXJlIGZvciBoaWRlXG4gICAgICAgIGlmIChwcm9wcy52aXNpYmxlKSB7XG4gICAgICAgICAgICBzdHlsZS5kaXNwbGF5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJy1yb290JyB9LCB0aGlzLmdldE1hc2tFbGVtZW50KCksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoeyB0YWJJbmRleDogLTEsIG9uS2V5RG93bjogdGhpcy5vbktleURvd24sIGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJy13cmFwICcgKyAocHJvcHMud3JhcENsYXNzTmFtZSB8fCAnJyksIHJlZjogdGhpcy5zYXZlUmVmKCd3cmFwJyksIG9uQ2xpY2s6IG1hc2tDbG9zYWJsZSA/IHRoaXMub25NYXNrQ2xpY2sgOiBudWxsLCBvbk1vdXNlVXA6IG1hc2tDbG9zYWJsZSA/IHRoaXMub25NYXNrTW91c2VVcCA6IG51bGwsIHJvbGU6IFwiZGlhbG9nXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHByb3BzLnRpdGxlID8gdGhpcy50aXRsZUlkIDogbnVsbCwgc3R5bGU6IHN0eWxlIH0sIHByb3BzLndyYXBQcm9wcyksIHRoaXMuZ2V0RGlhbG9nRWxlbWVudCgpKSk7XG4gICAgfTtcblxuICAgIHJldHVybiBEaWFsb2c7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydCBkZWZhdWx0IERpYWxvZztcblxuRGlhbG9nLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc05hbWU6ICcnLFxuICAgIG1hc2s6IHRydWUsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAga2V5Ym9hcmQ6IHRydWUsXG4gICAgY2xvc2FibGU6IHRydWUsXG4gICAgbWFza0Nsb3NhYmxlOiB0cnVlLFxuICAgIGRlc3Ryb3lPbkNsb3NlOiBmYWxzZSxcbiAgICBwcmVmaXhDbHM6ICdyYy1kaWFsb2cnLFxuICAgIGZvY3VzVHJpZ2dlckFmdGVyQ2xvc2U6IHRydWVcbn07IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGFpbnMocm9vdCwgbikge1xuICB2YXIgbm9kZSA9IG47XG5cbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZSA9PT0gcm9vdCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0iLCJmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbnZhciBDb250YWluZXJSZW5kZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKENvbnRhaW5lclJlbmRlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDb250YWluZXJSZW5kZXIpO1xuXG4gIGZ1bmN0aW9uIENvbnRhaW5lclJlbmRlcigpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29udGFpbmVyUmVuZGVyKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsLmFwcGx5KF9zdXBlciwgW3RoaXNdLmNvbmNhdChhcmdzKSk7XG5cbiAgICBfdGhpcy5yZW1vdmVDb250YWluZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMuY29udGFpbmVyKSB7XG4gICAgICAgIFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUoX3RoaXMuY29udGFpbmVyKTtcblxuICAgICAgICBfdGhpcy5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChfdGhpcy5jb250YWluZXIpO1xuXG4gICAgICAgIF90aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckNvbXBvbmVudCA9IGZ1bmN0aW9uIChwcm9wcywgcmVhZHkpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIHZpc2libGUgPSBfdGhpcyRwcm9wcy52aXNpYmxlLFxuICAgICAgICAgIGdldENvbXBvbmVudCA9IF90aGlzJHByb3BzLmdldENvbXBvbmVudCxcbiAgICAgICAgICBmb3JjZVJlbmRlciA9IF90aGlzJHByb3BzLmZvcmNlUmVuZGVyLFxuICAgICAgICAgIGdldENvbnRhaW5lciA9IF90aGlzJHByb3BzLmdldENvbnRhaW5lcixcbiAgICAgICAgICBwYXJlbnQgPSBfdGhpcyRwcm9wcy5wYXJlbnQ7XG5cbiAgICAgIGlmICh2aXNpYmxlIHx8IHBhcmVudC5fY29tcG9uZW50IHx8IGZvcmNlUmVuZGVyKSB7XG4gICAgICAgIGlmICghX3RoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgX3RoaXMuY29udGFpbmVyID0gZ2V0Q29udGFpbmVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBSZWFjdERPTS51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnQsIGdldENvbXBvbmVudChwcm9wcyksIF90aGlzLmNvbnRhaW5lciwgZnVuY3Rpb24gY2FsbGJhY2soKSB7XG4gICAgICAgICAgaWYgKHJlYWR5KSB7XG4gICAgICAgICAgICByZWFkeS5jYWxsKHRoaXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDb250YWluZXJSZW5kZXIsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b01vdW50KSB7XG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hdXRvTW91bnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hdXRvRGVzdHJveSkge1xuICAgICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW4oe1xuICAgICAgICByZW5kZXJDb21wb25lbnQ6IHRoaXMucmVuZGVyQ29tcG9uZW50LFxuICAgICAgICByZW1vdmVDb250YWluZXI6IHRoaXMucmVtb3ZlQ29udGFpbmVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ29udGFpbmVyUmVuZGVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5Db250YWluZXJSZW5kZXIucHJvcFR5cGVzID0ge1xuICBhdXRvTW91bnQ6IFByb3BUeXBlcy5ib29sLFxuICBhdXRvRGVzdHJveTogUHJvcFR5cGVzLmJvb2wsXG4gIHZpc2libGU6IFByb3BUeXBlcy5ib29sLFxuICBmb3JjZVJlbmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIHBhcmVudDogUHJvcFR5cGVzLmFueSxcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBnZXRDb250YWluZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG59O1xuQ29udGFpbmVyUmVuZGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgYXV0b01vdW50OiB0cnVlLFxuICBhdXRvRGVzdHJveTogdHJ1ZSxcbiAgZm9yY2VSZW5kZXI6IGZhbHNlXG59O1xuZXhwb3J0IHsgQ29udGFpbmVyUmVuZGVyIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbnZhciBQb3J0YWwgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFBvcnRhbCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihQb3J0YWwpO1xuXG4gIGZ1bmN0aW9uIFBvcnRhbCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUG9ydGFsKTtcblxuICAgIHJldHVybiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhQb3J0YWwsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5jcmVhdGVDb250YWluZXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIHZhciBkaWRVcGRhdGUgPSB0aGlzLnByb3BzLmRpZFVwZGF0ZTtcblxuICAgICAgaWYgKGRpZFVwZGF0ZSkge1xuICAgICAgICBkaWRVcGRhdGUocHJldlByb3BzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjcmVhdGVDb250YWluZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY3JlYXRlQ29udGFpbmVyKCkge1xuICAgICAgdGhpcy5fY29udGFpbmVyID0gdGhpcy5wcm9wcy5nZXRDb250YWluZXIoKTtcbiAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVtb3ZlQ29udGFpbmVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZUNvbnRhaW5lcigpIHtcbiAgICAgIGlmICh0aGlzLl9jb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY29udGFpbmVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIGlmICh0aGlzLl9jb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbCh0aGlzLnByb3BzLmNoaWxkcmVuLCB0aGlzLl9jb250YWluZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUG9ydGFsO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5Qb3J0YWwucHJvcFR5cGVzID0ge1xuICBnZXRDb250YWluZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICBkaWRVcGRhdGU6IFByb3BUeXBlcy5mdW5jXG59O1xuZXhwb3J0IHsgUG9ydGFsIGFzIGRlZmF1bHQgfTsiLCJ2YXIgY2FjaGVkO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0U2Nyb2xsQmFyU2l6ZShmcmVzaCkge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKGZyZXNoIHx8IGNhY2hlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgaW5uZXIuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgaW5uZXIuc3R5bGUuaGVpZ2h0ID0gJzIwMHB4JztcbiAgICB2YXIgb3V0ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB2YXIgb3V0ZXJTdHlsZSA9IG91dGVyLnN0eWxlO1xuICAgIG91dGVyU3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIG91dGVyU3R5bGUudG9wID0gMDtcbiAgICBvdXRlclN0eWxlLmxlZnQgPSAwO1xuICAgIG91dGVyU3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICBvdXRlclN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICBvdXRlclN0eWxlLndpZHRoID0gJzIwMHB4JztcbiAgICBvdXRlclN0eWxlLmhlaWdodCA9ICcxNTBweCc7XG4gICAgb3V0ZXJTdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIG91dGVyLmFwcGVuZENoaWxkKGlubmVyKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG91dGVyKTtcbiAgICB2YXIgd2lkdGhDb250YWluZWQgPSBpbm5lci5vZmZzZXRXaWR0aDtcbiAgICBvdXRlci5zdHlsZS5vdmVyZmxvdyA9ICdzY3JvbGwnO1xuICAgIHZhciB3aWR0aFNjcm9sbCA9IGlubmVyLm9mZnNldFdpZHRoO1xuXG4gICAgaWYgKHdpZHRoQ29udGFpbmVkID09PSB3aWR0aFNjcm9sbCkge1xuICAgICAgd2lkdGhTY3JvbGwgPSBvdXRlci5jbGllbnRXaWR0aDtcbiAgICB9XG5cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG91dGVyKTtcbiAgICBjYWNoZWQgPSB3aWR0aENvbnRhaW5lZCAtIHdpZHRoU2Nyb2xsO1xuICB9XG5cbiAgcmV0dXJuIGNhY2hlZDtcbn0iLCIvKipcbiAqIEVhc3kgdG8gc2V0IGVsZW1lbnQgc3R5bGUsIHJldHVybiBwcmV2aW91cyBzdHlsZVxuICogSUUgYnJvd3NlciBjb21wYXRpYmxlKElFIGJyb3dzZXIgZG9lc24ndCBtZXJnZSBvdmVyZmxvdyBzdHlsZSwgbmVlZCB0byBzZXQgaXQgc2VwYXJhdGVseSlcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE5MzkzXG4gKlxuICovXG5mdW5jdGlvbiBzZXRTdHlsZShzdHlsZSkge1xuICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBfb3B0aW9ucyRlbGVtZW50ID0gb3B0aW9ucy5lbGVtZW50LFxuICAgICAgZWxlbWVudCA9IF9vcHRpb25zJGVsZW1lbnQgPT09IHZvaWQgMCA/IGRvY3VtZW50LmJvZHkgOiBfb3B0aW9ucyRlbGVtZW50O1xuICB2YXIgb2xkU3R5bGUgPSB7fTtcbiAgdmFyIHN0eWxlS2V5cyA9IE9iamVjdC5rZXlzKHN0eWxlKTsgLy8gSUUgYnJvd3NlciBjb21wYXRpYmxlXG5cbiAgc3R5bGVLZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIG9sZFN0eWxlW2tleV0gPSBlbGVtZW50LnN0eWxlW2tleV07XG4gIH0pO1xuICBzdHlsZUtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgZWxlbWVudC5zdHlsZVtrZXldID0gc3R5bGVba2V5XTtcbiAgfSk7XG4gIHJldHVybiBvbGRTdHlsZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2V0U3R5bGU7IiwiaW1wb3J0IGdldFNjcm9sbEJhclNpemUgZnJvbSAnLi9nZXRTY3JvbGxCYXJTaXplJztcbmltcG9ydCBzZXRTdHlsZSBmcm9tICcuL3NldFN0eWxlJztcblxuZnVuY3Rpb24gaXNCb2R5T3ZlcmZsb3dpbmcoKSB7XG4gIHJldHVybiBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA+ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgJiYgd2luZG93LmlubmVyV2lkdGggPiBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO1xufVxuXG52YXIgY2FjaGVTdHlsZSA9IHt9O1xuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uIChjbG9zZSkge1xuICBpZiAoIWlzQm9keU92ZXJmbG93aW5nKCkgJiYgIWNsb3NlKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE5NzI5XG5cblxuICB2YXIgc2Nyb2xsaW5nRWZmZWN0Q2xhc3NOYW1lID0gJ2FudC1zY3JvbGxpbmctZWZmZWN0JztcbiAgdmFyIHNjcm9sbGluZ0VmZmVjdENsYXNzTmFtZVJlZyA9IG5ldyBSZWdFeHAoXCJcIi5jb25jYXQoc2Nyb2xsaW5nRWZmZWN0Q2xhc3NOYW1lKSwgJ2cnKTtcbiAgdmFyIGJvZHlDbGFzc05hbWUgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZTtcblxuICBpZiAoY2xvc2UpIHtcbiAgICBpZiAoIXNjcm9sbGluZ0VmZmVjdENsYXNzTmFtZVJlZy50ZXN0KGJvZHlDbGFzc05hbWUpKSByZXR1cm47XG4gICAgc2V0U3R5bGUoY2FjaGVTdHlsZSk7XG4gICAgY2FjaGVTdHlsZSA9IHt9O1xuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gYm9keUNsYXNzTmFtZS5yZXBsYWNlKHNjcm9sbGluZ0VmZmVjdENsYXNzTmFtZVJlZywgJycpLnRyaW0oKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2Nyb2xsQmFyU2l6ZSA9IGdldFNjcm9sbEJhclNpemUoKTtcblxuICBpZiAoc2Nyb2xsQmFyU2l6ZSkge1xuICAgIGNhY2hlU3R5bGUgPSBzZXRTdHlsZSh7XG4gICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgIHdpZHRoOiBcImNhbGMoMTAwJSAtIFwiLmNvbmNhdChzY3JvbGxCYXJTaXplLCBcInB4KVwiKVxuICAgIH0pO1xuXG4gICAgaWYgKCFzY3JvbGxpbmdFZmZlY3RDbGFzc05hbWVSZWcudGVzdChib2R5Q2xhc3NOYW1lKSkge1xuICAgICAgdmFyIGFkZENsYXNzTmFtZSA9IFwiXCIuY29uY2F0KGJvZHlDbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoc2Nyb2xsaW5nRWZmZWN0Q2xhc3NOYW1lKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gYWRkQ2xhc3NOYW1lLnRyaW0oKTtcbiAgICB9XG4gIH1cbn0pOyIsImZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlLHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHBvbHlmaWxsIH0gZnJvbSAncmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQnO1xuaW1wb3J0IENvbnRhaW5lclJlbmRlciBmcm9tICcuL0NvbnRhaW5lclJlbmRlcic7XG5pbXBvcnQgUG9ydGFsIGZyb20gJy4vUG9ydGFsJztcbmltcG9ydCBzd2l0Y2hTY3JvbGxpbmdFZmZlY3QgZnJvbSAnLi9zd2l0Y2hTY3JvbGxpbmdFZmZlY3QnO1xuaW1wb3J0IHNldFN0eWxlIGZyb20gJy4vc2V0U3R5bGUnO1xudmFyIG9wZW5Db3VudCA9IDA7XG52YXIgd2luZG93SXNVbmRlZmluZWQgPSAhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG52YXIgSVNfUkVBQ1RfMTYgPSAoJ2NyZWF0ZVBvcnRhbCcgaW4gUmVhY3RET00pOyAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xOTM0MFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTkzMzJcblxudmFyIGNhY2hlT3ZlcmZsb3cgPSB7fTtcblxudmFyIFBvcnRhbFdyYXBwZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFBvcnRhbFdyYXBwZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoUG9ydGFsV3JhcHBlcik7XG5cbiAgZnVuY3Rpb24gUG9ydGFsV3JhcHBlcihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQb3J0YWxXcmFwcGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX3RoaXMuZ2V0UGFyZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGdldENvbnRhaW5lciA9IF90aGlzLnByb3BzLmdldENvbnRhaW5lcjtcblxuICAgICAgaWYgKGdldENvbnRhaW5lcikge1xuICAgICAgICBpZiAodHlwZW9mIGdldENvbnRhaW5lciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChnZXRDb250YWluZXIpWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBnZXRDb250YWluZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0Q29udGFpbmVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX3R5cGVvZihnZXRDb250YWluZXIpID09PSAnb2JqZWN0JyAmJiBnZXRDb250YWluZXIgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0Q29udGFpbmVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5O1xuICAgIH07XG5cbiAgICBfdGhpcy5nZXRDb250YWluZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAod2luZG93SXNVbmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICghX3RoaXMuY29udGFpbmVyKSB7XG4gICAgICAgIF90aGlzLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIHZhciBwYXJlbnQgPSBfdGhpcy5nZXRQYXJlbnQoKTtcblxuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKF90aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0V3JhcHBlckNsYXNzTmFtZSgpO1xuXG4gICAgICByZXR1cm4gX3RoaXMuY29udGFpbmVyO1xuICAgIH07XG5cbiAgICBfdGhpcy5zZXRXcmFwcGVyQ2xhc3NOYW1lID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHdyYXBwZXJDbGFzc05hbWUgPSBfdGhpcy5wcm9wcy53cmFwcGVyQ2xhc3NOYW1lO1xuXG4gICAgICBpZiAoX3RoaXMuY29udGFpbmVyICYmIHdyYXBwZXJDbGFzc05hbWUgJiYgd3JhcHBlckNsYXNzTmFtZSAhPT0gX3RoaXMuY29udGFpbmVyLmNsYXNzTmFtZSkge1xuICAgICAgICBfdGhpcy5jb250YWluZXIuY2xhc3NOYW1lID0gd3JhcHBlckNsYXNzTmFtZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuc2F2ZVBvcnRhbCA9IGZ1bmN0aW9uIChjKSB7XG4gICAgICAvLyBXYXJuaW5nOiBkb24ndCByZW5hbWUgX2NvbXBvbmVudFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC91dGlsL3B1bGwvNjUjZGlzY3Vzc2lvbl9yMzUyNDA3OTE2XG4gICAgICBfdGhpcy5fY29tcG9uZW50ID0gYztcbiAgICB9O1xuXG4gICAgX3RoaXMucmVtb3ZlQ3VycmVudENvbnRhaW5lciA9IGZ1bmN0aW9uICh2aXNpYmxlKSB7XG4gICAgICBfdGhpcy5jb250YWluZXIgPSBudWxsO1xuICAgICAgX3RoaXMuX2NvbXBvbmVudCA9IG51bGw7XG5cbiAgICAgIGlmICghSVNfUkVBQ1RfMTYpIHtcbiAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICBfdGhpcy5yZW5kZXJDb21wb25lbnQoe1xuICAgICAgICAgICAgYWZ0ZXJDbG9zZTogX3RoaXMucmVtb3ZlQ29udGFpbmVyLFxuICAgICAgICAgICAgb25DbG9zZTogZnVuY3Rpb24gb25DbG9zZSgpIHt9LFxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5yZW1vdmVDb250YWluZXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5zd2l0Y2hTY3JvbGxpbmdFZmZlY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAob3BlbkNvdW50ID09PSAxICYmICFPYmplY3Qua2V5cyhjYWNoZU92ZXJmbG93KS5sZW5ndGgpIHtcbiAgICAgICAgc3dpdGNoU2Nyb2xsaW5nRWZmZWN0KCk7IC8vIE11c3QgYmUgc2V0IGFmdGVyIHN3aXRjaFNjcm9sbGluZ0VmZmVjdFxuXG4gICAgICAgIGNhY2hlT3ZlcmZsb3cgPSBzZXRTdHlsZSh7XG4gICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgICAgb3ZlcmZsb3dZOiAnaGlkZGVuJ1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoIW9wZW5Db3VudCkge1xuICAgICAgICBzZXRTdHlsZShjYWNoZU92ZXJmbG93KTtcbiAgICAgICAgY2FjaGVPdmVyZmxvdyA9IHt9O1xuICAgICAgICBzd2l0Y2hTY3JvbGxpbmdFZmZlY3QodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHZhciBfdmlzaWJsZSA9IHByb3BzLnZpc2libGU7XG4gICAgb3BlbkNvdW50ID0gX3Zpc2libGUgPyBvcGVuQ291bnQgKyAxIDogb3BlbkNvdW50O1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgX3NlbGY6IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUG9ydGFsV3JhcHBlciwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIHRoaXMuc2V0V3JhcHBlckNsYXNzTmFtZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHZhciB2aXNpYmxlID0gdGhpcy5wcm9wcy52aXNpYmxlOyAvLyDnprvlvIDml7bkuI3kvJogcmVuZGVy77yMIOWvvOWIsOemu+W8gOaXtuaVsOWAvOS4jeWPmO+8jOaUueeUqCBmdW5jIOOAguOAglxuXG4gICAgICBvcGVuQ291bnQgPSB2aXNpYmxlICYmIG9wZW5Db3VudCA/IG9wZW5Db3VudCAtIDEgOiBvcGVuQ291bnQ7XG4gICAgICB0aGlzLnJlbW92ZUN1cnJlbnRDb250YWluZXIodmlzaWJsZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjaGlsZHJlbiA9IF90aGlzJHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIGZvcmNlUmVuZGVyID0gX3RoaXMkcHJvcHMuZm9yY2VSZW5kZXIsXG4gICAgICAgICAgdmlzaWJsZSA9IF90aGlzJHByb3BzLnZpc2libGU7XG4gICAgICB2YXIgcG9ydGFsID0gbnVsbDtcbiAgICAgIHZhciBjaGlsZFByb3BzID0ge1xuICAgICAgICBnZXRPcGVuQ291bnQ6IGZ1bmN0aW9uIGdldE9wZW5Db3VudCgpIHtcbiAgICAgICAgICByZXR1cm4gb3BlbkNvdW50O1xuICAgICAgICB9LFxuICAgICAgICBnZXRDb250YWluZXI6IHRoaXMuZ2V0Q29udGFpbmVyLFxuICAgICAgICBzd2l0Y2hTY3JvbGxpbmdFZmZlY3Q6IHRoaXMuc3dpdGNoU2Nyb2xsaW5nRWZmZWN0XG4gICAgICB9OyAvLyBzdXBwcG9ydCByZWFjdDE1XG5cbiAgICAgIGlmICghSVNfUkVBQ1RfMTYpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbnRhaW5lclJlbmRlciwge1xuICAgICAgICAgIHBhcmVudDogdGhpcyxcbiAgICAgICAgICB2aXNpYmxlOiB2aXNpYmxlLFxuICAgICAgICAgIGF1dG9EZXN0cm95OiBmYWxzZSxcbiAgICAgICAgICBnZXRDb21wb25lbnQ6IGZ1bmN0aW9uIGdldENvbXBvbmVudCgpIHtcbiAgICAgICAgICAgIHZhciBleHRyYSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW4oX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGV4dHJhKSwgY2hpbGRQcm9wcyksIHt9LCB7XG4gICAgICAgICAgICAgIHJlZjogX3RoaXMyLnNhdmVQb3J0YWxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldENvbnRhaW5lcjogdGhpcy5nZXRDb250YWluZXIsXG4gICAgICAgICAgZm9yY2VSZW5kZXI6IGZvcmNlUmVuZGVyXG4gICAgICAgIH0sIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICAgICAgdmFyIHJlbmRlckNvbXBvbmVudCA9IF9yZWYucmVuZGVyQ29tcG9uZW50LFxuICAgICAgICAgICAgICByZW1vdmVDb250YWluZXIgPSBfcmVmLnJlbW92ZUNvbnRhaW5lcjtcbiAgICAgICAgICBfdGhpczIucmVuZGVyQ29tcG9uZW50ID0gcmVuZGVyQ29tcG9uZW50O1xuICAgICAgICAgIF90aGlzMi5yZW1vdmVDb250YWluZXIgPSByZW1vdmVDb250YWluZXI7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9yY2VSZW5kZXIgfHwgdmlzaWJsZSB8fCB0aGlzLl9jb21wb25lbnQpIHtcbiAgICAgICAgcG9ydGFsID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUG9ydGFsLCB7XG4gICAgICAgICAgZ2V0Q29udGFpbmVyOiB0aGlzLmdldENvbnRhaW5lcixcbiAgICAgICAgICByZWY6IHRoaXMuc2F2ZVBvcnRhbFxuICAgICAgICB9LCBjaGlsZHJlbihjaGlsZFByb3BzKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwb3J0YWw7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgX3JlZjIpIHtcbiAgICAgIHZhciBwcmV2UHJvcHMgPSBfcmVmMi5wcmV2UHJvcHMsXG4gICAgICAgICAgX3NlbGYgPSBfcmVmMi5fc2VsZjtcbiAgICAgIHZhciB2aXNpYmxlID0gcHJvcHMudmlzaWJsZSxcbiAgICAgICAgICBnZXRDb250YWluZXIgPSBwcm9wcy5nZXRDb250YWluZXI7XG5cbiAgICAgIGlmIChwcmV2UHJvcHMpIHtcbiAgICAgICAgdmFyIHByZXZWaXNpYmxlID0gcHJldlByb3BzLnZpc2libGUsXG4gICAgICAgICAgICBwcmV2R2V0Q29udGFpbmVyID0gcHJldlByb3BzLmdldENvbnRhaW5lcjtcblxuICAgICAgICBpZiAodmlzaWJsZSAhPT0gcHJldlZpc2libGUpIHtcbiAgICAgICAgICBvcGVuQ291bnQgPSB2aXNpYmxlICYmICFwcmV2VmlzaWJsZSA/IG9wZW5Db3VudCArIDEgOiBvcGVuQ291bnQgLSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGdldENvbnRhaW5lcklzRnVuYyA9IHR5cGVvZiBnZXRDb250YWluZXIgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHByZXZHZXRDb250YWluZXIgPT09ICdmdW5jdGlvbic7XG5cbiAgICAgICAgaWYgKGdldENvbnRhaW5lcklzRnVuYyA/IGdldENvbnRhaW5lci50b1N0cmluZygpICE9PSBwcmV2R2V0Q29udGFpbmVyLnRvU3RyaW5nKCkgOiBnZXRDb250YWluZXIgIT09IHByZXZHZXRDb250YWluZXIpIHtcbiAgICAgICAgICBfc2VsZi5yZW1vdmVDdXJyZW50Q29udGFpbmVyKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcmV2UHJvcHM6IHByb3BzXG4gICAgICB9O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBQb3J0YWxXcmFwcGVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5Qb3J0YWxXcmFwcGVyLnByb3BUeXBlcyA9IHtcbiAgd3JhcHBlckNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZm9yY2VSZW5kZXI6IFByb3BUeXBlcy5ib29sLFxuICBnZXRDb250YWluZXI6IFByb3BUeXBlcy5hbnksXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYyxcbiAgdmlzaWJsZTogUHJvcFR5cGVzLmJvb2xcbn07XG5leHBvcnQgZGVmYXVsdCBwb2x5ZmlsbChQb3J0YWxXcmFwcGVyKTsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IERpYWxvZyBmcm9tICcuL0RpYWxvZyc7XG5pbXBvcnQgUG9ydGFsIGZyb20gJ3JjLXV0aWwvZXMvUG9ydGFsV3JhcHBlcic7XG4vLyBmaXggaXNzdWUgIzEwNjU2XG4vKlxuKiBnZXRDb250YWluZXIgcmVtYXJrc1xuKiBDdXN0b20gY29udGFpbmVyIHNob3VsZCBub3QgYmUgcmV0dXJuLCBiZWNhdXNlIGluIHRoZSBQb3J0YWwgY29tcG9uZW50LCBpdCB3aWxsIHJlbW92ZSB0aGVcbiogcmV0dXJuIGNvbnRhaW5lciBlbGVtZW50IGhlcmUsIGlmIHRoZSBjdXN0b20gY29udGFpbmVyIGlzIHRoZSBvbmx5IGNoaWxkIG9mIGl0J3MgY29tcG9uZW50LFxuKiBsaWtlIGlzc3VlICMxMDY1NiwgSXQgd2lsbCBoYXMgYSBjb25mbGljdCB3aXRoIHJlbW92ZUNoaWxkIG1ldGhvZCBpbiByZWFjdC1kb20uXG4qIFNvIGhlcmUgc2hvdWxkIGFkZCBhIGNoaWxkIChkaXYgZWxlbWVudCkgdG8gY3VzdG9tIGNvbnRhaW5lci5cbiogKi9cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgdmlzaWJsZSA9IHByb3BzLnZpc2libGUsXG4gICAgICAgIGdldENvbnRhaW5lciA9IHByb3BzLmdldENvbnRhaW5lcixcbiAgICAgICAgZm9yY2VSZW5kZXIgPSBwcm9wcy5mb3JjZVJlbmRlcjtcbiAgICAvLyDmuLLmn5PlnKjlvZPliY0gZG9tIOmHjO+8m1xuXG4gICAgaWYgKGdldENvbnRhaW5lciA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHsgZ2V0T3BlbkNvdW50OiBmdW5jdGlvbiBnZXRPcGVuQ291bnQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDI7XG4gICAgICAgICAgICB9IH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUG9ydGFsLCB7IHZpc2libGU6IHZpc2libGUsIGZvcmNlUmVuZGVyOiBmb3JjZVJlbmRlciwgZ2V0Q29udGFpbmVyOiBnZXRDb250YWluZXIgfSwgZnVuY3Rpb24gKGNoaWxkUHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIGNoaWxkUHJvcHMpKTtcbiAgICB9KTtcbn0pOyIsIi8qIGdsb2JhbHMgaWNsX3ZhcnMgKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdFJlcXVlc3Qge1xuXG5cdGNvbnN0cnVjdG9yKHRpbWVvdXRJblNlY29uZHMgPSAzMDApIHtcblx0XHR0aGlzLnRpbWVvdXRJblNlY29uZHMgPSB0aW1lb3V0SW5TZWNvbmRzO1xuXHR9XG5cdC8qKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG5cdCAqIEByZXR1cm4ge1Byb21pc2V9XG5cdCAqL1xuXHRnZXQodXJsKSB7XG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh1cmwsICdHRVQnKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG5cdCAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gYm9keVxuXHQgKiBAcmV0dXJuIHtQcm9taXNlfVxuXHQgKi9cblx0cG9zdCh1cmwsIGJvZHkgPSBudWxsKSB7XG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh1cmwsICdQT1NUJywgYm9keSk7XG5cdH1cblxuXHRhc3luYyBkb3dubG9hZCh1cmwpIHtcblx0XHRyZXR1cm4gZmV0Y2godXJsLCB0aGlzLmdlbmVyYXRlQXJncygnR0VUJykpLnRoZW4ocmVzcG9uc2UgPT4ge1xuXHRcdFx0aWYgKCFyZXNwb25zZS5vaykge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5idWlsZEVycm9yKHJlc3BvbnNlKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXNwb25zZS5ibG9iKCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtzdHJpbmd9IHVybFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdmVyYlxuXHQgKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IGJvZHlcblx0ICogQHJldHVybiB7UHJvbWlzZX1cblx0ICovXG5cdHJlcXVlc3QodXJsLCB2ZXJiLCBib2R5ID0gbnVsbCkge1xuXG5cdFx0Y29uc3QgYXJncyA9IHRoaXMuZ2VuZXJhdGVBcmdzKHZlcmIsIGJvZHkpO1xuXG5cdFx0cmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdChpY2xfdmFycy5yZXN0VXJsICsgdXJsLCBhcmdzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG5cdCAqIEByZXR1cm4ge1Byb21pc2U8UmVzcG9uc2U+fVxuXHQgKi9cblx0aGFuZGxlUmVxdWVzdCh1cmwsIGFyZ3MpIHtcblx0XHRyZXR1cm4gdGhpcy5mZXRjaFdpdGhUaW1lb3V0KHVybCwgYXJncywgdGhpcy50aW1lb3V0SW5TZWNvbmRzKVxuXHRcdFx0LnRoZW4ocmVzcG9uc2UgPT4ge1xuXHRcdFx0XHRpZiAoIXJlc3BvbnNlLm9rKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuYnVpbGRFcnJvcihyZXNwb25zZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0ZmV0Y2hXaXRoVGltZW91dCggdXJsLCBhcmdzLCB0aW1lb3V0SW5TZWNvbmRzICkge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSggKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0bGV0IHRpbWVyID0gc2V0VGltZW91dChcblx0XHRcdFx0KCkgPT4gcmVqZWN0KCBuZXcgRXJyb3IoJ1JlcXVlc3QgdGltZWQgb3V0JykgKSxcblx0XHRcdFx0dGltZW91dEluU2Vjb25kcyAqIDEwMDBcblx0XHRcdCk7XG5cblx0XHRcdGZldGNoKCB1cmwsIGFyZ3MgKS50aGVuKFxuXHRcdFx0XHRyZXNwb25zZSA9PiByZXNvbHZlKCByZXNwb25zZSApLFxuXHRcdFx0XHRlcnIgPT4gcmVqZWN0KCBlcnIgKVxuXHRcdFx0KS5maW5hbGx5KCAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpICk7XG5cdFx0fSk7XG5cdH1cblxuXHRnZW5lcmF0ZUFyZ3ModmVyYiwgYm9keSA9IG51bGwpIHtcblx0XHRjb25zdCBhcmdzID0ge1xuXHRcdFx0bWV0aG9kOiB2ZXJiLnRvVXBwZXJDYXNlKCksXG5cdFx0XHRoZWFkZXJzOiB7XG5cdFx0XHRcdCdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG5cdFx0XHRcdCdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG5cdFx0XHRcdCdYLVdQLU5vbmNlJzogaWNsX3ZhcnMucmVzdE5vbmNlLFxuXHRcdFx0fSxcblx0XHRcdGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuXHRcdH07XG5cblx0XHRpZiAoYXJncy5tZXRob2QgIT09ICdHRVQnICYmIGJvZHkpIHtcblx0XHRcdGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0YXJncy5ib2R5ID0gYm9keTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFyZ3MuYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBhcmdzO1xuXHR9O1xuXG5cdGJ1aWxkRXJyb3IocmVzcG9uc2UpIHtcblx0XHRyZXR1cm4gcmVzcG9uc2UuanNvbigpLnRoZW4oanNvbiA9PiB7XG5cdFx0XHRjb25zdCBlcnJvciA9IG5ldyBFcnJvcihqc29uLm1lc3NhZ2UgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoT2JqZWN0LmFzc2lnbihlcnJvciwge3Jlc3BvbnNlfSkpXG5cdFx0fSk7XG5cdH07XG59XG4iLCJpbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgdXNlQ2FsbGJhY2t9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtfXywgc3ByaW50Zn0gZnJvbSBcIndwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvaTE4blwiO1xuaW1wb3J0IFJlc3RSZXF1ZXN0IGZyb20gJ3dwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvUmVzdFJlcXVlc3QnO1xuaW1wb3J0IFByb2dyZXNzIGZyb20gJ2FudGQvbGliL3Byb2dyZXNzJztcbmltcG9ydCAnYW50ZC9saWIvcHJvZ3Jlc3Mvc3R5bGUvaW5kZXguY3NzJztcbmltcG9ydCBTcGluIGZyb20gJ2FudGQvbGliL3NwaW4nO1xuaW1wb3J0ICdhbnRkL2xpYi9zcGluL3N0eWxlL2luZGV4LmNzcyc7XG5pbXBvcnQgUm93IGZyb20gJ2FudGQvbGliL3Jvdyc7XG5pbXBvcnQgQ29sIGZyb20gJ2FudGQvbGliL2NvbCc7XG5cbmV4cG9ydCBjb25zdCBBcHAgPSAoe2ZpbGVDb3VudCwgdGl0bGUsIGluZm8sIGJ1dHRvblRleHQsIHNjYW5Qcm9ncmVzcywgcmVzdCwgb25IaWRlLCBvbkVycm9yLCBidXR0b25FeHRyYSwgZW5hYmxlPXRydWV9KSA9PiB7XG5cblx0Y29uc3QgW2ltcG9ydGluZywgc2V0SW1wb3J0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblx0Y29uc3QgW2RvbmUsIHNldERvbmVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXHRjb25zdCBbc2hvdywgc2V0U2hvd10gPSB1c2VTdGF0ZSh0cnVlKTtcblx0Y29uc3QgW251bWJlckltcG9ydGVkLCBzZXROdW1iZXJJbXBvcnRlZF0gPSB1c2VTdGF0ZSgwKTtcblxuXHRjb25zdCBkb0ltcG9ydCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcblx0XHRsZXQgcmVzcG9uc2U7XG5cblx0XHRzZXRJbXBvcnRpbmcodHJ1ZSk7XG5cdFx0dHJ5IHtcblx0XHRcdHJlc3BvbnNlID0gYXdhaXQgbmV3IFJlc3RSZXF1ZXN0KDMwKS5wb3N0KHJlc3QuZW5kcG9pbnQsIHJlc3QuZGF0YSk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRyZXNwb25zZSA9IHtlcnJvcjogJ3N5c3RlbSd9O1xuXHRcdH1cblxuXHRcdGlmIChyZXNwb25zZS5lcnJvcikge1xuXHRcdFx0c2V0SW1wb3J0aW5nKGZhbHNlKTtcblx0XHRcdG9uRXJyb3IocmVzcG9uc2UuZXJyb3IpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRzZXROdW1iZXJJbXBvcnRlZChmaWxlQ291bnQgLSByZXNwb25zZS5yZW1haW5pbmcpO1xuXHRcdGlmIChyZXNwb25zZS5yZW1haW5pbmcgPT09IDApIHtcblx0XHRcdHNldERvbmUodHJ1ZSk7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRzZXRTaG93KGZhbHNlKTtcblx0XHRcdFx0XHRvbkhpZGUgJiYgb25IaWRlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdDIwMDApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkb0ltcG9ydCgpO1xuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIHNob3cgJiZcblx0XHQoXG5cdFx0XHQ8Um93PlxuXG5cdFx0XHRcdDxUaXRsZSB0aXRsZT17dGl0bGV9Lz5cblx0XHRcdFx0PEluZm8gaW5mbz17aW5mb30vPlxuXG5cdFx0XHRcdHsoaW1wb3J0aW5nIHx8IGRvbmUpICYmXG5cdFx0XHRcdDxQcm9ncmVzc0FyZWEgcHJvZ3Jlc3NUZXh0PXtzY2FuUHJvZ3Jlc3N9IGNvdW50PXtudW1iZXJJbXBvcnRlZH0gdG90YWw9e2ZpbGVDb3VudH0vPn1cblxuXHRcdFx0XHQ8Q29sIHNwYW49ezI0fSBjbGFzc05hbWU9XCJidXR0b24tcm93XCI+XG5cdFx0XHRcdFx0e2J1dHRvbkV4dHJhfVxuXHRcdFx0XHRcdDxJbXBvcnRCdXR0b24gdGV4dD17YnV0dG9uVGV4dH0gZGlzYWJsZWQ9e2ltcG9ydGluZyB8fCAhZW5hYmxlfSBvbkNsaWNrPXtkb0ltcG9ydH0vPlxuXHRcdFx0XHQ8L0NvbD5cblx0XHRcdDwvUm93PlxuXHRcdCk7XG59O1xuXG5jb25zdCBUaXRsZSA9ICh7dGl0bGV9KSA9PiAoXG5cdHRpdGxlID8gPENvbCBzcGFuPXsyNH0+e3RpdGxlfTwvQ29sPiA6ICcnXG4pO1xuXG5jb25zdCBJbmZvID0gKHtpbmZvfSkgPT4gKFxuXHQ8Q29sIHNwYW49ezI0fT57aW5mb308L0NvbD5cbik7XG5cbmNvbnN0IEltcG9ydEJ1dHRvbiA9ICh7dGV4dCwgZGlzYWJsZWQsIG9uQ2xpY2t9KSA9PiAoXG5cdDxidXR0b24gY2xhc3NOYW1lPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5IGpzLWFjdGlvblwiIGRpc2FibGVkPXtkaXNhYmxlZH0gb25DbGljaz17b25DbGlja30+XG5cdFx0e3RleHR9XG5cdDwvYnV0dG9uPlxuKTtcblxuXG5jb25zdCBNZXNzYWdlID0gKHttZXNzYWdlfSkgPT4gKFxuXHQ8ZGl2IGNsYXNzTmFtZT1cIm1lc3NhZ2VcIj5cblx0XHR7bWVzc2FnZX1cblx0PC9kaXY+XG4pO1xuXG5jb25zdCBQcm9ncmVzc0FyZWEgPSAoe3Byb2dyZXNzVGV4dCwgY291bnQsIHRvdGFsfSkgPT4ge1xuXG5cdGNvbnN0IGNvbXBsZXRlZCA9IChjb3VudCAvIHRvdGFsKSAqIDEwMDtcblxuXHRyZXR1cm4gKFxuXHRcdDxSZWFjdC5GcmFnbWVudD5cblx0XHRcdDxDb2wgc3Bhbj17MjR9IGFsaWduPVwiY2VudGVyXCI+XG5cdFx0XHRcdDxNZXNzYWdlIG1lc3NhZ2U9e3NwcmludGYocHJvZ3Jlc3NUZXh0LCBjb3VudCwgdG90YWwpfS8+XG5cdFx0XHQ8L0NvbD5cblx0XHRcdDxDb2wgc3Bhbj17MjR9IGFsaWduPVwiY2VudGVyXCI+XG5cdFx0XHRcdHtjb3VudCAhPT0gdG90YWwgJiYgPFNwaW4gc2l6ZT1cImxhcmdlXCIvPn1cblx0XHRcdDwvQ29sPlxuXHRcdFx0PENvbCBzcGFuPXsyNH0gc3R5bGU9e3ttYXJnaW5Cb3R0b206ICcxMHB4J319PlxuXHRcdFx0XHQ8UHJvZ3Jlc3MgcGVyY2VudD17Y29tcGxldGVkfSBzaG93SW5mbz17ZmFsc2V9Lz5cblx0XHRcdDwvQ29sPlxuXHRcdDwvUmVhY3QuRnJhZ21lbnQ+XG5cdCk7XG59O1xuXG4iLCJpbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZX0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgJ2FudGQvbGliL2NvbGxhcHNlL3N0eWxlL2luZGV4LmNzcyc7XG5pbXBvcnQge0l0ZW1zVG9TY2FuTGlzdH0gZnJvbSAnLi9JdGVtc1RvU2NhblVJLnRzeCc7XG5pbXBvcnQge0FwcH0gZnJvbSBcIi4vQXBwXCI7XG5pbXBvcnQgKiBhcyBUZXh0IGZyb20gJy4vdGV4dHMnO1xuXG5leHBvcnQgY29uc3QgTU9TY2FuVUlTVFBhZ2UgPSAoe2ZpbGVzVG9TY2FufSkgPT4ge1xuXHRjb25zdCBbc2hvdywgc2V0U2hvd10gPSB1c2VTdGF0ZShmaWxlc1RvU2Nhbi5jb3VudCA+IDApO1xuXHRjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZVN0YXRlKHtwbHVnaW5zOiBbXSwgdGhlbWVzOiBbXSwgb3RoZXI6IFtdfSk7XG5cblx0Y29uc3QgYW55U2VsZWN0ZWQgPSAoKSA9PiBzZWxlY3RlZC5wbHVnaW5zLmxlbmd0aCA+IDAgfHwgc2VsZWN0ZWQudGhlbWVzLmxlbmd0aCA+IDAgfHwgc2VsZWN0ZWQub3RoZXIubGVuZ3RoID4gMDtcblxuXHRyZXR1cm4gKFxuXHRcdHNob3cgJiYgPEFwcFxuXHRcdFx0ZmlsZUNvdW50PXtmaWxlc1RvU2Nhbi5jb3VudH1cblx0XHRcdGluZm89e1xuXHRcdFx0XHQ8UmVhY3QuRnJhZ21lbnQ+XG5cdFx0XHRcdFx0PHA+e1RleHQubW9TY2FuQ2FyZENvbnRlbnR9PC9wPlxuXHRcdFx0XHRcdDxJdGVtc1RvU2Nhbkxpc3QgZmlsZXNUb1NjYW49e2ZpbGVzVG9TY2FufSBvblNlbGVjdGVkPXsoc3RhdGUpID0+IHNldFNlbGVjdGVkKHN0YXRlKX0vPlxuXHRcdFx0XHQ8L1JlYWN0LkZyYWdtZW50PlxuXHRcdFx0fVxuXHRcdFx0YnV0dG9uVGV4dD17VGV4dC5tb1NjYW5DYXJkQnV0dG9uVGV4dH1cblx0XHRcdHNjYW5Qcm9ncmVzcz17VGV4dC5tb1NjYW5DYXJkUHJvZ3Jlc3NUZXh0fVxuXHRcdFx0cmVzdD17e2VuZHBvaW50OiAnL3dwbWwvc3QvdjEvaW1wb3J0X21vX3N0cmluZ3MnLCBkYXRhOiBzZWxlY3RlZH19XG5cdFx0XHRvbkhpZGU9eygpID0+IHtcblx0XHRcdFx0c2V0U2hvdyhmYWxzZSk7XG5cdFx0XHRcdGxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0fX1cblx0XHRcdGVuYWJsZT17YW55U2VsZWN0ZWQoKX1cblx0XHQvPlxuXHQpO1xufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29sbGFwc2UgZnJvbSAnYW50ZC9saWIvY29sbGFwc2UnO1xuaW1wb3J0IFJvdyBmcm9tICdhbnRkL2xpYi9yb3cnO1xuaW1wb3J0IENvbCBmcm9tICdhbnRkL2xpYi9jb2wnO1xuaW1wb3J0IENhcmQgZnJvbSAnYW50ZC9saWIvY2FyZCc7XG5pbXBvcnQgKiBhcyBUZXh0IGZyb20gJy4vdGV4dHMnO1xuaW1wb3J0ICdhbnRkL2xpYi9jb2xsYXBzZS9zdHlsZS9pbmRleC5jc3MnO1xuaW1wb3J0ICdhbnRkL2xpYi9jYXJkL3N0eWxlL2luZGV4LmNzcyc7XG5pbXBvcnQgJ2FudGQvbGliL2dyaWQvc3R5bGUvaW5kZXguY3NzJztcblxuY29uc3QgeyBQYW5lbCB9ID0gQ29sbGFwc2U7XG5cbmV4cG9ydCBjb25zdCBTdHJpbmdUcmFuc2xhdGlvblBhbmVsID0gKCB7IG1vU2NhbkVsZW1lbnQsIGFkbWluVGV4dHNVcmwgfSApID0+IHtcblx0Y29uc3QgbW9TY2FuQ29sdW1uID0gbW9TY2FuRWxlbWVudCAmJiA8Q29sIG1kPXs4fSBzbT17MjR9PlxuXHRcdDxDYXJkIHR5cGU9XCJpbm5lclwiIHRpdGxlPXtUZXh0Lm1vU2NhbkNhcmRIZWFkZXJ9PlxuXHRcdFx0e21vU2NhbkVsZW1lbnR9XG5cdFx0PC9DYXJkPlxuXHQ8L0NvbD47XG5cblx0Y29uc3QgYWRtaW5UZXh0Q29sdW1uID0gPENvbCBtZD17OH0gc209ezI0fT5cblx0XHQ8Q2FyZCB0eXBlPVwiaW5uZXJcIiB0aXRsZT17VGV4dC5hZG1pblN0cmluZ3NDYXJkSGVhZGVyfT5cblx0XHRcdDxwPntUZXh0LmFkbWluU3RyaW5nc0NhcmRDb250ZW50fTwvcD5cblx0XHRcdDxhIGNsYXNzTmFtZT1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiXG5cdFx0XHQgICBocmVmPXthZG1pblRleHRzVXJsfT57VGV4dC5hZG1pblN0cmluZ3NDYXJkQnV0dG9uVGV4dH08L2E+XG5cdFx0PC9DYXJkPlxuXHQ8L0NvbD47XG5cblx0cmV0dXJuIChcblx0XHQ8Q29sbGFwc2UgYWNjb3JkaW9uPlxuXHRcdFx0PFBhbmVsIGhlYWRlcj17VGV4dC5zdHJpbmdUcmFuc2xhdGlvblBhbmVsSGVhZGVyfT5cblx0XHRcdFx0PFJvdyBzdHlsZT17eyBtYXJnaW5Cb3R0b206IDggfX0+XG5cdFx0XHRcdFx0PENvbCBzcGFuPXsyNH0+XG5cdFx0XHRcdFx0XHQ8cD57VGV4dC5zdHJpbmdUcmFuc2xhdGlvblBhbmVsQ29udGVudH08L3A+XG5cdFx0XHRcdFx0PC9Db2w+XG5cdFx0XHRcdDwvUm93PlxuXHRcdFx0XHQ8Um93IGd1dHRlcj17MTZ9PlxuXHRcdFx0XHRcdHttb1NjYW5Db2x1bW59XG5cdFx0XHRcdFx0e2FkbWluVGV4dENvbHVtbn1cblx0XHRcdFx0PC9Sb3c+XG5cdFx0XHQ8L1BhbmVsPlxuXHRcdDwvQ29sbGFwc2U+XG5cdCk7XG59OyIsImltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDb2xsYXBzZSBmcm9tIFwiYW50ZC9saWIvY29sbGFwc2VcIjtcbmltcG9ydCAnYW50ZC9saWIvY29sbGFwc2Uvc3R5bGUvaW5kZXguY3NzJztcblxuY29uc3Qge1BhbmVsfSA9IENvbGxhcHNlO1xuXG5pbXBvcnQge0FwcH0gZnJvbSBcIi4vQXBwXCI7XG5pbXBvcnQge19ffSBmcm9tIFwid3BtbC1jb21tb24tanMtc291cmNlL3NyYy9pMThuXCI7XG5pbXBvcnQge0l0ZW1zVG9TY2FuTGlzdH0gZnJvbSBcIi4vSXRlbXNUb1NjYW5VSS50c3hcIjtcblxuZXhwb3J0IGNvbnN0IE1PU2NhblVJTG9jYWxpemF0aW9uUGFnZSA9ICh7ZmlsZXNUb1NjYW59KSA9PiB7XG5cdGNvbnN0IFtzaG93LCBzZXRTaG93XSA9IHVzZVN0YXRlKGZpbGVzVG9TY2FuLmNvdW50ID4gMCk7XG5cdGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGUoe3BsdWdpbnM6IFtdLCB0aGVtZXM6IFtdLCBvdGhlcjogW119KTtcblxuXHRjb25zdCBhbnlTZWxlY3RlZCA9ICgpID0+IHNlbGVjdGVkLnBsdWdpbnMubGVuZ3RoID4gMCB8fCBzZWxlY3RlZC50aGVtZXMubGVuZ3RoID4gMCB8fCBzZWxlY3RlZC5vdGhlci5sZW5ndGggPiAwO1xuXG5cdHJldHVybiAoXG5cdFx0c2hvdyAmJiA8Q29sbGFwc2UgYWNjb3JkaWFuPlxuXHRcdFx0PFBhbmVsXG5cdFx0XHRcdGhlYWRlcj17X18oXCJXUE1MIGhhcyBkZXRlY3RlZCBjaGFuZ2VkIG9yIG5ldyBNTyBmaWxlc1wiLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX1cblx0XHRcdD5cblx0XHRcdFx0PEFwcFxuXHRcdFx0XHRcdGZpbGVDb3VudD17ZmlsZXNUb1NjYW4uY291bnR9XG5cdFx0XHRcdFx0aW5mbz17XG5cdFx0XHRcdFx0XHQ8UmVhY3QuRnJhZ21lbnQ+XG5cdFx0XHRcdFx0XHRcdDxwPntfXyhcIlRoZXJlIGFyZSBuZXcgb3IgdXBkYXRlZCAubW8gZmlsZXMuIFdQTUwgbmVlZHMgdG8gc2NhbiB0aGVtIHRvIGZpbmQgc3RyaW5ncyBmb3IgdHJhbnNsYXRpb24uXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfTwvcD5cblx0XHRcdFx0XHRcdFx0PEl0ZW1zVG9TY2FuTGlzdCBmaWxlc1RvU2Nhbj17ZmlsZXNUb1NjYW59IG9uU2VsZWN0ZWQ9eyhzdGF0ZSkgPT4gc2V0U2VsZWN0ZWQoc3RhdGUpfS8+XG5cdFx0XHRcdFx0XHQ8L1JlYWN0LkZyYWdtZW50PlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRidXR0b25UZXh0PXtfXyhcIlNjYW4gdHJhbnNsYXRpb24gZmlsZXNcIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9XG5cdFx0XHRcdFx0c2NhblByb2dyZXNzPXtfXyhcIlNjYW5uZWQgJTEkZCBvZiAlMiRkIGZpbGVzLi4uXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfVxuXHRcdFx0XHRcdHJlc3Q9e3tlbmRwb2ludDogJy93cG1sL3N0L3YxL2ltcG9ydF9tb19zdHJpbmdzJywgZGF0YTogc2VsZWN0ZWR9fVxuXHRcdFx0XHRcdG9uSGlkZT17KCkgPT4gc2V0U2hvdyhmYWxzZSl9XG5cdFx0XHRcdFx0ZW5hYmxlPXthbnlTZWxlY3RlZCgpfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9QYW5lbD5cblx0XHQ8L0NvbGxhcHNlPlxuXHQpO1xufTtcbiIsImltcG9ydCBSZWFjdCwge3VzZVN0YXRlLCB1c2VDYWxsYmFja30gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgTW9kYWwgZnJvbSAnYW50ZC9saWIvbW9kYWwnO1xuaW1wb3J0ICdhbnRkL2xpYi9tb2RhbC9zdHlsZS9pbmRleC5jc3MnO1xuXG5pbXBvcnQge0FwcH0gZnJvbSBcIi4uL0FwcFwiO1xuaW1wb3J0IHtfX30gZnJvbSBcIndwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvaTE4blwiO1xuXG5leHBvcnQgY29uc3QgVUkgPSAoe2ZpbGVDb3VudCwgZmlsZVBhdGgsIGlzU1RQYWdlLCBydW5Gb3JBbGxTaXRlcyA9IGZhbHNlLCBzZXR0aW5ncywgdGV4dHN9KSA9PiB7XG5cdGNvbnN0IFtzaG93LCBzZXRTaG93XSA9IHVzZVN0YXRlKHRydWUpO1xuXHRjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKTtcblx0Y29uc3QgW2Rpc21pc3NpbmcsIHNldERpc21pc3NpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG5cdGNvbnN0IG9uRGlzbWlzcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcblx0XHRzZXREaXNtaXNzaW5nKHRydWUpO1xuXHR9KTtcblxuXHRjb25zdCBvbkNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuXHRcdHNldFNob3coZmFsc2UpO1xuXHRcdHNldHRpbmdzLnNldCgnTU8nLCAncHJlZ2VuLWRpc21pc3NlZCcsIHRydWUpO1xuXHR9KTtcblxuXHRjb25zdCBnZXRTdGF0ZSA9ICgpID0+IHtcblx0XHRpZiAoZGlzbWlzc2luZykgcmV0dXJuICdkaXNtaXNzaW5nJztcblx0XHRpZiAoZXJyb3IpIHJldHVybiBlcnJvcjtcblx0XHRyZXR1cm4gJyc7XG5cdH07XG5cblx0Y29uc3QgZ2V0SW5mbyA9ICgpID0+IHtcblx0XHRyZXR1cm4gdGV4dHMuZ2V0SW5mbyhnZXRTdGF0ZSgpLCBmaWxlUGF0aCk7XG5cdH07XG5cblx0Y29uc3QgZ2V0QnV0dG9uVGV4dCA9ICgpID0+IHtcblx0XHRyZXR1cm4gdGV4dHMuZ2V0QnV0dG9uVGV4dChnZXRTdGF0ZSgpKTtcblx0fTtcblxuXHRjb25zdCBnZXRCdXR0b25FeHRyYSA9ICgpID0+IHtcblx0XHRpZiAoZGlzbWlzc2luZyB8fCBlcnJvciA9PT0gJ3N5c3RlbScpIHJldHVybiA8YnV0dG9uIGNsYXNzTmFtZT1cImJ1dHRvbi1zZWNvbmRhcnlcIiBvbkNsaWNrPXtvbkNsb3NlfSBzdHlsZT17e21hcmdpblJpZ2h0OiA4fX0+e3RleHRzLmdldERpc21pc3NCdXR0b25UZXh0KCl9PC9idXR0b24+O1xuXHR9XG5cblx0Y29uc3QgcHJvZ3Jlc3NNc2cgPSBydW5Gb3JBbGxTaXRlcyA/XG5cdFx0X18oXCJHZW5lcmF0ZWQgZmlsZXMgZm9yICUxJGQgb2YgJTIkZCBzaXRlcy4uLlwiLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKSA6XG5cdFx0X18oXCJHZW5lcmF0ZWQgJTEkZCBvZiAlMiRkIGZpbGVzLi4uXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpO1xuXG5cdHJldHVybiBmaWxlQ291bnQgJiYgPE1vZGFsXG5cdFx0dmlzaWJsZT17c2hvd31cblx0XHR0aXRsZT17X18oXCJXUE1MIG5lZWRzIHRvIGdlbmVyYXRlIC5tbyBmaWxlc1wiLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX1cblx0XHRmb290ZXI9e251bGx9XG5cdFx0Y2xvc2FibGU9eyFpc1NUUGFnZSAmJiAhZGlzbWlzc2luZ31cblx0XHRvbkNhbmNlbD17b25EaXNtaXNzfVxuXHRcdG1hc2tDbG9zYWJsZT17ZmFsc2V9XG5cdFx0a2V5Ym9hcmQ9e2ZhbHNlfVxuXHQ+XG5cdFx0PEFwcFxuXHRcdFx0ZmlsZUNvdW50PXtmaWxlQ291bnR9XG5cdFx0XHRpbmZvPXtnZXRJbmZvKCl9XG5cdFx0XHRidXR0b25UZXh0PXtnZXRCdXR0b25UZXh0KCl9XG5cdFx0XHRidXR0b25FeHRyYT17Z2V0QnV0dG9uRXh0cmEoKX1cblx0XHRcdHNjYW5Qcm9ncmVzcz17cHJvZ3Jlc3NNc2d9XG5cdFx0XHRyZXN0PXt7ZW5kcG9pbnQ6ICcvd3BtbC9zdC92MS9wcmVfZ2VuZXJhdGVfbW9fZmlsZXMnLCBkYXRhOiB7cnVuRm9yQWxsU2l0ZXN9fX1cblx0XHRcdG9uSGlkZT17KCkgPT4gc2V0U2hvdyhmYWxzZSl9XG5cdFx0XHRvbkVycm9yPXsoZXJyb3JTdGF0ZSkgPT4ge1xuXHRcdFx0XHRzZXRFcnJvcihlcnJvclN0YXRlKTtcblx0XHRcdFx0c2V0RGlzbWlzc2luZyhmYWxzZSk7XG5cdFx0XHR9fVxuXHRcdC8+XG5cdDwvTW9kYWw+XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge19fLCBzcHJpbnRmfSBmcm9tIFwid3BtbC1jb21tb24tanMtc291cmNlL3NyYy9pMThuXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRleHRzIHtcbiAgICBnZXRJbmZvKHN0YXRlLCBmaWxlUGF0aCkge1xuICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICAgICAgICBjYXNlICdubyBhY2Nlc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAge19fKFwiV1BNTCBTdHJpbmcgVHJhbnNsYXRpb24gdXNlcyAubW8gZmlsZXMgaW5zdGVhZCBvZiBkYXRhYmFzZSBjYWxscy4gV1BNTCBuZWVkcyB0byBnZW5lcmF0ZSB0aGVzZSAubW8gZmlsZXMgaW4gb3JkZXIgZm9yIHRyYW5zbGF0aW9ucyB0byBhcHBlYXIgb24gdGhlIGZyb250LWVuZC4gSG93ZXZlciwgdGhlIGZvbGRlciB0aGF0IHNob3VsZCBob2xkIHRoZXNlIC5tbyBmaWxlcyBpcyBub3Qgb3BlbiBmb3Igd3JpdGluZy5cIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X18oXCJQbGVhc2UgdXNlIHlvdXIgYWRtaW4gY29udHJvbCBwYW5lbCBvciBhbiBGVFAgcHJvZ3JhbSB0byBtYWtlIHRoZSBmb2xsb3dpbmcgZm9sZGVyIHdyaXRlYWJsZTpcIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZVBhdGh9XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PjtcblxuICAgICAgICAgICAgY2FzZSAnc3lzdGVtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICA8aDM+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X18oXCJUaGVyZSB3YXMgYSBwcm9ibGVtIGNyZWF0aW5nIHRoZSAubW8gZmlsZXNcIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAge19fKFwiWW91IGNhbiB0cnkgYWdhaW4gbm93IG9yIHRyeSBhZ2FpbiBsYXRlciBieSBnb2luZyB0byBcIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPntfXyhcIldQTUwtPlRoZW1lIGFuZCBwbHVnaW5zIGxvY2FsaXphdGlvbi5cIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PjtcblxuICAgICAgICAgICAgY2FzZSAnZGlzbWlzc2luZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGgzPlxuICAgICAgICAgICAgICAgICAgICAgICAge19fKFwiVHJhbnNsYXRpb25zIGFyZSBtaXNzaW5nIGZyb20gdGhlIGZyb250LWVuZCB1bnRpbCB5b3UgZ2VuZXJhdGUgLm1vIGZpbGVzXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfVxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtfXyhcIllvdXIgc2l0ZSBkb2Vzbid0IGhhdmUgdGhlIC5tbyBmaWxlcyB0aGF0IFdQTUwgbmVlZHMgaW4gb3JkZXIgdG8gZGlzcGxheSB0cmFuc2xhdGVkIHN0cmluZ3Mgb24gdGhlIGZyb250LWVuZC4gVG8gZ2VuZXJhdGUgdGhlc2UgLm1vIGZpbGVzLCByZW1lbWJlciB0byBnbyB0byBcIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPntfXyhcIldQTUwtPlRoZW1lIGFuZCBwbHVnaW5zIGxvY2FsaXphdGlvbi5cIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PjtcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gPHA+e19fKFwiV1BNTCBTdHJpbmcgVHJhbnNsYXRpb24gdXNlcyAubW8gZmlsZXMgaW5zdGVhZCBvZiBkYXRhYmFzZSBjYWxscy4gV1BNTCBuZWVkcyB0byBnZW5lcmF0ZSB0aGVzZSAubW8gZmlsZXMgaW4gb3JkZXIgZm9yIHRyYW5zbGF0aW9ucyB0byBhcHBlYXIgb24gdGhlIGZyb250LWVuZC5cIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9PC9wPjtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBnZXRCdXR0b25UZXh0KHN0YXRlKSB7XG4gICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ25vIGFjY2Vzcyc6XG4gICAgICAgICAgICBjYXNlICdzeXN0ZW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBfXyhcIlRyeSBhZ2FpblwiLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKTtcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gX18oXCJHZW5lcmF0ZSAubW8gZmlsZXNcIiwgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXREaXNtaXNzQnV0dG9uVGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIF9fKFwiQ2xvc2UgdGhpcyBtZXNzYWdlXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpO1xuICAgIH1cblxufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5cbmltcG9ydCB7TU9TY2FuVUlTVFBhZ2V9IGZyb20gXCIuL1NUUGFnZVVJXCI7XG5pbXBvcnQge1N0cmluZ1RyYW5zbGF0aW9uUGFuZWx9IGZyb20gXCIuL1N0cmluZ1RyYW5zbGF0aW9uUGFuZWxcIjtcbmltcG9ydCB7TU9TY2FuVUlMb2NhbGl6YXRpb25QYWdlfSBmcm9tIFwiLi9Mb2NhbGl6YXRpb25QYWdlVUlcIjtcbmltcG9ydCB7VUkgYXMgUHJlR2VuZXJhdGVVSX0gZnJvbSBcIi4vcHJlLWdlbmVyYXRlL1VJXCI7XG5pbXBvcnQgVGV4dHMgZnJvbSBcIi4vcHJlLWdlbmVyYXRlL3RleHRQcm92aWRlclwiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9TZXR0aW5ncy9TZXR0aW5ncy50c1wiO1xuaW1wb3J0IFJlc3RSZXF1ZXN0IGZyb20gXCJ3cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL1Jlc3RSZXF1ZXN0XCI7XG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG5cblx0Y29uc3Qgc3RQYWdlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cG1sLW1vLXNjYW4tc3QtcGFnZScpO1xuXHRjb25zdCBwcmVHZW5lcmF0ZSA9IHdwbWxfbW9fc2Nhbl91aV9maWxlcy5kb21haW5zX3RvX3ByZV9nZW5lcmF0ZV9jb3VudCA+IDAgJiYgPFByZUdlbmVyYXRlVUlcblx0XHRmaWxlQ291bnQ9e3dwbWxfbW9fc2Nhbl91aV9maWxlcy5kb21haW5zX3RvX3ByZV9nZW5lcmF0ZV9jb3VudH1cblx0XHRmaWxlUGF0aD17d3BtbF9tb19zY2FuX3VpX2ZpbGVzLmZpbGVfcGF0aH1cblx0XHRpc1NUUGFnZT17d3BtbF9tb19zY2FuX3VpX2ZpbGVzLmlzX3N0X3BhZ2V9XG5cdFx0c2V0dGluZ3M9e25ldyBTZXR0aW5ncyhuZXcgUmVzdFJlcXVlc3QoKSl9XG5cdFx0cnVuRm9yQWxsU2l0ZXM9e3dwbWxfbW9fc2Nhbl91aV9maWxlcy5ydW5fcm9yX2FsbF9zaXRlc31cblx0XHR0ZXh0cz17bmV3IFRleHRzKCl9XG5cdC8+O1xuXG5cdGNvbnN0IG1vU2NhbkVsZW1lbnQgPSB3cG1sX21vX3NjYW5fdWlfZmlsZXMuZmlsZXNfdG9fc2Nhbi5jb3VudCA+IDAgJiYgPE1PU2NhblVJU1RQYWdlXG5cdFx0ZmlsZXNUb1NjYW49e3dwbWxfbW9fc2Nhbl91aV9maWxlcy5maWxlc190b19zY2FufVxuXHQvPjtcblx0Y29uc3Qgc3RyaW5nVHJhbnNsYXRpb25QYW5lbEVsZW1lbnQgPSB3cG1sX21vX3NjYW5fdWlfZmlsZXMuaXNfc2VhcmNoICYmIDxTdHJpbmdUcmFuc2xhdGlvblBhbmVsXG5cdFx0YWRtaW5UZXh0c1VybD17d3BtbF9tb19zY2FuX3VpX2ZpbGVzLmFkbWluX3RleHRzX3VybH1cblx0XHRtb1NjYW5FbGVtZW50PXttb1NjYW5FbGVtZW50fVxuXHQvPjtcblxuXHRpZiAoc3RQYWdlRWxlbWVudCkge1xuXHRcdFJlYWN0RE9NLnJlbmRlcihcblx0XHRcdDxSZWFjdC5GcmFnbWVudD5cblx0XHRcdFx0e3N0cmluZ1RyYW5zbGF0aW9uUGFuZWxFbGVtZW50fVxuXHRcdFx0XHR7cHJlR2VuZXJhdGV9XG5cdFx0XHQ8L1JlYWN0LkZyYWdtZW50PlxuXHRcdFx0LFxuXHRcdFx0c3RQYWdlRWxlbWVudFxuXHRcdClcblx0XHQ7XG5cdH1cblxuXHRjb25zdCBsb2NhbGl6YXRpb25QYWdlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cG1sLW1vLXNjYW4tbG9jYWxpemF0aW9uLXBhZ2UnKTtcblxuXHRpZiAobG9jYWxpemF0aW9uUGFnZUVsZW1lbnQpIHtcblx0XHRSZWFjdERPTS5yZW5kZXIoXG5cdFx0XHQ8UmVhY3QuRnJhZ21lbnQ+XG5cdFx0XHRcdDxNT1NjYW5VSUxvY2FsaXphdGlvblBhZ2Vcblx0XHRcdFx0XHRmaWxlc1RvU2Nhbj17d3BtbF9tb19zY2FuX3VpX2ZpbGVzLmZpbGVzX3RvX3NjYW59XG5cdFx0XHRcdC8+XG5cdFx0XHRcdHtwcmVHZW5lcmF0ZX1cblx0XHRcdDwvUmVhY3QuRnJhZ21lbnQ+XG5cdFx0XHQsXG5cdFx0XHRsb2NhbGl6YXRpb25QYWdlRWxlbWVudFxuXHRcdClcblx0XHQ7XG5cdH1cblxufSk7XG5cbiIsImV4cG9ydCBkZWZhdWx0IHtcbiAgLyoqXG4gICAqIExFRlRcbiAgICovXG4gIExFRlQ6IDM3LCAvLyBhbHNvIE5VTV9XRVNUXG4gIC8qKlxuICAgKiBVUFxuICAgKi9cbiAgVVA6IDM4LCAvLyBhbHNvIE5VTV9OT1JUSFxuICAvKipcbiAgICogUklHSFRcbiAgICovXG4gIFJJR0hUOiAzOSwgLy8gYWxzbyBOVU1fRUFTVFxuICAvKipcbiAgICogRE9XTlxuICAgKi9cbiAgRE9XTjogNDAgLy8gYWxzbyBOVU1fU09VVEhcbn07IiwiaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXkoY2hpbGRyZW4pIHtcbiAgLy8gYWxsb3cgW2MsW2EsYl1dXG4gIHZhciBjID0gW107XG4gIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIGlmIChjaGlsZCkge1xuICAgICAgYy5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGl2ZUluZGV4KGNoaWxkcmVuLCBhY3RpdmVLZXkpIHtcbiAgdmFyIGMgPSB0b0FycmF5KGNoaWxkcmVuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGNbaV0ua2V5ID09PSBhY3RpdmVLZXkpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3RpdmVLZXkoY2hpbGRyZW4sIGluZGV4KSB7XG4gIHZhciBjID0gdG9BcnJheShjaGlsZHJlbik7XG4gIHJldHVybiBjW2luZGV4XS5rZXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRUcmFuc2Zvcm0oc3R5bGUsIHYpIHtcbiAgc3R5bGUudHJhbnNmb3JtID0gdjtcbiAgc3R5bGUud2Via2l0VHJhbnNmb3JtID0gdjtcbiAgc3R5bGUubW96VHJhbnNmb3JtID0gdjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVHJhbnNmb3JtM2RTdXBwb3J0ZWQoc3R5bGUpIHtcbiAgcmV0dXJuICgndHJhbnNmb3JtJyBpbiBzdHlsZSB8fCAnd2Via2l0VHJhbnNmb3JtJyBpbiBzdHlsZSB8fCAnTW96VHJhbnNmb3JtJyBpbiBzdHlsZSkgJiYgd2luZG93LmF0b2I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRUcmFuc2l0aW9uKHN0eWxlLCB2KSB7XG4gIHN0eWxlLnRyYW5zaXRpb24gPSB2O1xuICBzdHlsZS53ZWJraXRUcmFuc2l0aW9uID0gdjtcbiAgc3R5bGUuTW96VHJhbnNpdGlvbiA9IHY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2Zvcm1Qcm9wVmFsdWUodikge1xuICByZXR1cm4ge1xuICAgIHRyYW5zZm9ybTogdixcbiAgICBXZWJraXRUcmFuc2Zvcm06IHYsXG4gICAgTW96VHJhbnNmb3JtOiB2XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlcnRpY2FsKHRhYkJhclBvc2l0aW9uKSB7XG4gIHJldHVybiB0YWJCYXJQb3NpdGlvbiA9PT0gJ2xlZnQnIHx8IHRhYkJhclBvc2l0aW9uID09PSAncmlnaHQnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNmb3JtQnlJbmRleChpbmRleCwgdGFiQmFyUG9zaXRpb24pIHtcbiAgdmFyIGRpcmVjdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogJ2x0cic7XG5cbiAgdmFyIHRyYW5zbGF0ZSA9IGlzVmVydGljYWwodGFiQmFyUG9zaXRpb24pID8gJ3RyYW5zbGF0ZVknIDogJ3RyYW5zbGF0ZVgnO1xuXG4gIGlmICghaXNWZXJ0aWNhbCh0YWJCYXJQb3NpdGlvbikgJiYgZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgIHJldHVybiB0cmFuc2xhdGUgKyAnKCcgKyBpbmRleCAqIDEwMCArICclKSB0cmFuc2xhdGVaKDApJztcbiAgfVxuICByZXR1cm4gdHJhbnNsYXRlICsgJygnICsgLWluZGV4ICogMTAwICsgJyUpIHRyYW5zbGF0ZVooMCknO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFyZ2luU3R5bGUoaW5kZXgsIHRhYkJhclBvc2l0aW9uKSB7XG4gIHZhciBtYXJnaW5EaXJlY3Rpb24gPSBpc1ZlcnRpY2FsKHRhYkJhclBvc2l0aW9uKSA/ICdtYXJnaW5Ub3AnIDogJ21hcmdpbkxlZnQnO1xuICByZXR1cm4gX2RlZmluZVByb3BlcnR5KHt9LCBtYXJnaW5EaXJlY3Rpb24sIC1pbmRleCAqIDEwMCArICclJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdHlsZShlbCwgcHJvcGVydHkpIHtcbiAgcmV0dXJuICt3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSkucmVwbGFjZSgncHgnLCAnJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQeFN0eWxlKGVsLCB2YWx1ZSwgdmVydGljYWwpIHtcbiAgdmFsdWUgPSB2ZXJ0aWNhbCA/ICcwcHgsICcgKyB2YWx1ZSArICdweCwgMHB4JyA6IHZhbHVlICsgJ3B4LCAwcHgsIDBweCc7XG4gIHNldFRyYW5zZm9ybShlbC5zdHlsZSwgJ3RyYW5zbGF0ZTNkKCcgKyB2YWx1ZSArICcpJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhQXR0cihwcm9wcykge1xuICByZXR1cm4gT2JqZWN0LmtleXMocHJvcHMpLnJlZHVjZShmdW5jdGlvbiAocHJldiwga2V5KSB7XG4gICAgaWYgKGtleS5zdWJzdHIoMCwgNSkgPT09ICdhcmlhLScgfHwga2V5LnN1YnN0cigwLCA1KSA9PT0gJ2RhdGEtJyB8fCBrZXkgPT09ICdyb2xlJykge1xuICAgICAgcHJldltrZXldID0gcHJvcHNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gdG9OdW0oc3R5bGUsIHByb3BlcnR5KSB7XG4gIHJldHVybiArc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSkucmVwbGFjZSgncHgnLCAnJyk7XG59XG5cbmZ1bmN0aW9uIGdldFR5cGVWYWx1ZShzdGFydCwgY3VycmVudCwgZW5kLCB0YWJOb2RlLCB3cmFwcGVyTm9kZSkge1xuICB2YXIgdG90YWwgPSBnZXRTdHlsZSh3cmFwcGVyTm9kZSwgJ3BhZGRpbmctJyArIHN0YXJ0KTtcbiAgaWYgKCF0YWJOb2RlIHx8ICF0YWJOb2RlLnBhcmVudE5vZGUpIHtcbiAgICByZXR1cm4gdG90YWw7XG4gIH1cblxuICB2YXIgY2hpbGROb2RlcyA9IHRhYk5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzO1xuXG4gIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoY2hpbGROb2RlcywgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcblxuICAgIGlmIChub2RlICE9PSB0YWJOb2RlKSB7XG4gICAgICB0b3RhbCArPSB0b051bShzdHlsZSwgJ21hcmdpbi0nICsgc3RhcnQpO1xuICAgICAgdG90YWwgKz0gbm9kZVtjdXJyZW50XTtcbiAgICAgIHRvdGFsICs9IHRvTnVtKHN0eWxlLCAnbWFyZ2luLScgKyBlbmQpO1xuXG4gICAgICBpZiAoc3R5bGUuYm94U2l6aW5nID09PSAnY29udGVudC1ib3gnKSB7XG4gICAgICAgIHRvdGFsICs9IHRvTnVtKHN0eWxlLCAnYm9yZGVyLScgKyBzdGFydCArICctd2lkdGgnKSArIHRvTnVtKHN0eWxlLCAnYm9yZGVyLScgKyBlbmQgKyAnLXdpZHRoJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gV2UgbmVlZCBjb3VudCBjdXJyZW50IG5vZGUgbWFyZ2luXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtY29tcG9uZW50L3RhYnMvcHVsbC8xMzkjaXNzdWVjb21tZW50LTQzMTAwNTI2MlxuICAgIHRvdGFsICs9IHRvTnVtKHN0eWxlLCAnbWFyZ2luLScgKyBzdGFydCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRvdGFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGVmdCh0YWJOb2RlLCB3cmFwcGVyTm9kZSkge1xuICByZXR1cm4gZ2V0VHlwZVZhbHVlKCdsZWZ0JywgJ29mZnNldFdpZHRoJywgJ3JpZ2h0JywgdGFiTm9kZSwgd3JhcHBlck5vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wKHRhYk5vZGUsIHdyYXBwZXJOb2RlKSB7XG4gIHJldHVybiBnZXRUeXBlVmFsdWUoJ3RvcCcsICdvZmZzZXRIZWlnaHQnLCAnYm90dG9tJywgdGFiTm9kZSwgd3JhcHBlck5vZGUpO1xufSIsImltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1ub25pbnRlcmFjdGl2ZS10YWJpbmRleCAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgS2V5Q29kZSBmcm9tICdyYy11dGlsL2VzL0tleUNvZGUnO1xuaW1wb3J0IGNyZWF0ZVJlYWN0Q29udGV4dCBmcm9tICdAYW50LWRlc2lnbi9jcmVhdGUtcmVhY3QtY29udGV4dCc7XG5cbnZhciBTZW50aW5lbENvbnRleHQgPSBjcmVhdGVSZWFjdENvbnRleHQoe30pO1xuZXhwb3J0IHZhciBTZW50aW5lbFByb3ZpZGVyID0gU2VudGluZWxDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IHZhciBTZW50aW5lbENvbnN1bWVyID0gU2VudGluZWxDb250ZXh0LkNvbnN1bWVyO1xuXG52YXIgc2VudGluZWxTdHlsZSA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nLCBwb3NpdGlvbjogJ2Fic29sdXRlJyB9O1xuXG52YXIgU2VudGluZWwgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoU2VudGluZWwsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFNlbnRpbmVsKCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIF90ZW1wLCBfdGhpcywgX3JldDtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTZW50aW5lbCk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChfcmVmID0gU2VudGluZWwuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTZW50aW5lbCkpLmNhbGwuYXBwbHkoX3JlZiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpcyksIF90aGlzLm9uS2V5RG93biA9IGZ1bmN0aW9uIChfcmVmMikge1xuICAgICAgdmFyIHRhcmdldCA9IF9yZWYyLnRhcmdldCxcbiAgICAgICAgICB3aGljaCA9IF9yZWYyLndoaWNoLFxuICAgICAgICAgIHNoaWZ0S2V5ID0gX3JlZjIuc2hpZnRLZXk7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBuZXh0RWxlbWVudCA9IF90aGlzJHByb3BzLm5leHRFbGVtZW50LFxuICAgICAgICAgIHByZXZFbGVtZW50ID0gX3RoaXMkcHJvcHMucHJldkVsZW1lbnQ7XG5cbiAgICAgIGlmICh3aGljaCAhPT0gS2V5Q29kZS5UQUIgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGFyZ2V0KSByZXR1cm47XG5cbiAgICAgIC8vIFRhYiBuZXh0XG4gICAgICBpZiAoIXNoaWZ0S2V5ICYmIG5leHRFbGVtZW50KSB7XG4gICAgICAgIG5leHRFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRhYiBwcmV2XG4gICAgICBpZiAoc2hpZnRLZXkgJiYgcHJldkVsZW1lbnQpIHtcbiAgICAgICAgcHJldkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCBfdGVtcCksIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLCBfcmV0KTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTZW50aW5lbCwgW3tcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgc2V0UmVmID0gdGhpcy5wcm9wcy5zZXRSZWY7XG5cblxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtcbiAgICAgICAgdGFiSW5kZXg6IDAsXG4gICAgICAgIHJlZjogc2V0UmVmLFxuICAgICAgICBzdHlsZTogc2VudGluZWxTdHlsZSxcbiAgICAgICAgb25LZXlEb3duOiB0aGlzLm9uS2V5RG93bixcbiAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbidcbiAgICAgIH0pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBTZW50aW5lbDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuU2VudGluZWwucHJvcFR5cGVzID0ge1xuICBzZXRSZWY6IFByb3BUeXBlcy5mdW5jLFxuICBwcmV2RWxlbWVudDogUHJvcFR5cGVzLm9iamVjdCxcbiAgbmV4dEVsZW1lbnQ6IFByb3BUeXBlcy5vYmplY3Rcbn07XG5leHBvcnQgZGVmYXVsdCBTZW50aW5lbDsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBnZXREYXRhQXR0ciB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IFNlbnRpbmVsLCB7IFNlbnRpbmVsQ29uc3VtZXIgfSBmcm9tICcuL1NlbnRpbmVsJztcblxudmFyIFRhYlBhbmUgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVGFiUGFuZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVGFiUGFuZSgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGFiUGFuZSk7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKFRhYlBhbmUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihUYWJQYW5lKSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGFiUGFuZSwgW3tcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzbmFtZXM7XG5cbiAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGlkID0gX3Byb3BzLmlkLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF9wcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgZGVzdHJveUluYWN0aXZlVGFiUGFuZSA9IF9wcm9wcy5kZXN0cm95SW5hY3RpdmVUYWJQYW5lLFxuICAgICAgICAgIGFjdGl2ZSA9IF9wcm9wcy5hY3RpdmUsXG4gICAgICAgICAgZm9yY2VSZW5kZXIgPSBfcHJvcHMuZm9yY2VSZW5kZXIsXG4gICAgICAgICAgcm9vdFByZWZpeENscyA9IF9wcm9wcy5yb290UHJlZml4Q2xzLFxuICAgICAgICAgIHN0eWxlID0gX3Byb3BzLnN0eWxlLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3Byb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIHBsYWNlaG9sZGVyID0gX3Byb3BzLnBsYWNlaG9sZGVyLFxuICAgICAgICAgIHJlc3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcHJvcHMsIFsnaWQnLCAnY2xhc3NOYW1lJywgJ2Rlc3Ryb3lJbmFjdGl2ZVRhYlBhbmUnLCAnYWN0aXZlJywgJ2ZvcmNlUmVuZGVyJywgJ3Jvb3RQcmVmaXhDbHMnLCAnc3R5bGUnLCAnY2hpbGRyZW4nLCAncGxhY2Vob2xkZXInXSk7XG5cbiAgICAgIHRoaXMuX2lzQWN0aXZlZCA9IHRoaXMuX2lzQWN0aXZlZCB8fCBhY3RpdmU7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gcm9vdFByZWZpeENscyArICctdGFicGFuZSc7XG4gICAgICB2YXIgY2xzID0gY2xhc3NuYW1lcygoX2NsYXNzbmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc25hbWVzLCBwcmVmaXhDbHMsIDEpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIHByZWZpeENscyArICctaW5hY3RpdmUnLCAhYWN0aXZlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc25hbWVzLCBwcmVmaXhDbHMgKyAnLWFjdGl2ZScsIGFjdGl2ZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NuYW1lcywgY2xhc3NOYW1lLCBjbGFzc05hbWUpLCBfY2xhc3NuYW1lcykpO1xuICAgICAgdmFyIGlzUmVuZGVyID0gZGVzdHJveUluYWN0aXZlVGFiUGFuZSA/IGFjdGl2ZSA6IHRoaXMuX2lzQWN0aXZlZDtcbiAgICAgIHZhciBzaG91bGRSZW5kZXIgPSBpc1JlbmRlciB8fCBmb3JjZVJlbmRlcjtcblxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIFNlbnRpbmVsQ29uc3VtZXIsXG4gICAgICAgIG51bGwsXG4gICAgICAgIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICAgICAgdmFyIHNlbnRpbmVsU3RhcnQgPSBfcmVmLnNlbnRpbmVsU3RhcnQsXG4gICAgICAgICAgICAgIHNlbnRpbmVsRW5kID0gX3JlZi5zZW50aW5lbEVuZCxcbiAgICAgICAgICAgICAgc2V0UGFuZWxTZW50aW5lbFN0YXJ0ID0gX3JlZi5zZXRQYW5lbFNlbnRpbmVsU3RhcnQsXG4gICAgICAgICAgICAgIHNldFBhbmVsU2VudGluZWxFbmQgPSBfcmVmLnNldFBhbmVsU2VudGluZWxFbmQ7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgc2VudGluZWxcbiAgICAgICAgICB2YXIgcGFuZWxTZW50aW5lbFN0YXJ0ID0gdm9pZCAwO1xuICAgICAgICAgIHZhciBwYW5lbFNlbnRpbmVsRW5kID0gdm9pZCAwO1xuICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2hvdWxkUmVuZGVyKSB7XG4gICAgICAgICAgICBwYW5lbFNlbnRpbmVsU3RhcnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbnRpbmVsLCB7XG4gICAgICAgICAgICAgIHNldFJlZjogc2V0UGFuZWxTZW50aW5lbFN0YXJ0LFxuICAgICAgICAgICAgICBwcmV2RWxlbWVudDogc2VudGluZWxTdGFydFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBwYW5lbFNlbnRpbmVsRW5kID0gUmVhY3QuY3JlYXRlRWxlbWVudChTZW50aW5lbCwge1xuICAgICAgICAgICAgICBzZXRSZWY6IHNldFBhbmVsU2VudGluZWxFbmQsXG4gICAgICAgICAgICAgIG5leHRFbGVtZW50OiBzZW50aW5lbEVuZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIF9leHRlbmRzKHtcbiAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlLFxuICAgICAgICAgICAgICByb2xlOiAndGFicGFuZWwnLFxuICAgICAgICAgICAgICAnYXJpYS1oaWRkZW4nOiBhY3RpdmUgPyAnZmFsc2UnIDogJ3RydWUnLFxuICAgICAgICAgICAgICBjbGFzc05hbWU6IGNscyxcbiAgICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgICAgICB9LCBnZXREYXRhQXR0cihyZXN0UHJvcHMpKSxcbiAgICAgICAgICAgIHBhbmVsU2VudGluZWxTdGFydCxcbiAgICAgICAgICAgIHNob3VsZFJlbmRlciA/IGNoaWxkcmVuIDogcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICBwYW5lbFNlbnRpbmVsRW5kXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVGFiUGFuZTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0IGRlZmF1bHQgVGFiUGFuZTtcblxuXG5UYWJQYW5lLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICBzdHlsZTogUHJvcFR5cGVzLmFueSxcbiAgZGVzdHJveUluYWN0aXZlVGFiUGFuZTogUHJvcFR5cGVzLmJvb2wsXG4gIGZvcmNlUmVuZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5ub2RlLFxuICByb290UHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuXG5UYWJQYW5lLmRlZmF1bHRQcm9wcyA9IHtcbiAgcGxhY2Vob2xkZXI6IG51bGxcbn07IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5JztcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHJhZiBmcm9tICdyYWYnO1xuaW1wb3J0IHsgcG9seWZpbGwgfSBmcm9tICdyZWFjdC1saWZlY3ljbGVzLWNvbXBhdCc7XG5pbXBvcnQgS2V5Q29kZSBmcm9tICcuL0tleUNvZGUnO1xuaW1wb3J0IFRhYlBhbmUgZnJvbSAnLi9UYWJQYW5lJztcbmltcG9ydCB7IGdldERhdGFBdHRyIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgU2VudGluZWwsIHsgU2VudGluZWxQcm92aWRlciB9IGZyb20gJy4vU2VudGluZWwnO1xuXG5mdW5jdGlvbiBub29wKCkge31cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdEFjdGl2ZUtleShwcm9wcykge1xuICB2YXIgYWN0aXZlS2V5ID0gdm9pZCAwO1xuICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKHByb3BzLmNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQgJiYgIWFjdGl2ZUtleSAmJiAhY2hpbGQucHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIGFjdGl2ZUtleSA9IGNoaWxkLmtleTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYWN0aXZlS2V5O1xufVxuXG5mdW5jdGlvbiBhY3RpdmVLZXlJc1ZhbGlkKHByb3BzLCBrZXkpIHtcbiAgdmFyIGtleXMgPSBSZWFjdC5DaGlsZHJlbi5tYXAocHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZCAmJiBjaGlsZC5rZXk7XG4gIH0pO1xuICByZXR1cm4ga2V5cy5pbmRleE9mKGtleSkgPj0gMDtcbn1cblxudmFyIFRhYnMgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVGFicywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVGFicyhwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUYWJzKTtcblxuICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChUYWJzLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoVGFicykpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF9pbml0aWFsaXNlUHJvcHMuY2FsbChfdGhpcyk7XG5cbiAgICB2YXIgYWN0aXZlS2V5ID0gdm9pZCAwO1xuICAgIGlmICgnYWN0aXZlS2V5JyBpbiBwcm9wcykge1xuICAgICAgYWN0aXZlS2V5ID0gcHJvcHMuYWN0aXZlS2V5O1xuICAgIH0gZWxzZSBpZiAoJ2RlZmF1bHRBY3RpdmVLZXknIGluIHByb3BzKSB7XG4gICAgICBhY3RpdmVLZXkgPSBwcm9wcy5kZWZhdWx0QWN0aXZlS2V5O1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3RpdmVLZXkgPSBnZXREZWZhdWx0QWN0aXZlS2V5KHByb3BzKTtcbiAgICB9XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGFjdGl2ZUtleTogYWN0aXZlS2V5XG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGFicywgW3tcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5kZXN0cm95ID0gdHJ1ZTtcbiAgICAgIHJhZi5jYW5jZWwodGhpcy5zZW50aW5lbElkKTtcbiAgICB9XG5cbiAgICAvLyBTZW50aW5lbCBmb3IgdGFiIGluZGV4XG5cbiAgfSwge1xuICAgIGtleTogJ3VwZGF0ZVNlbnRpbmVsQ29udGV4dCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHVwZGF0ZVNlbnRpbmVsQ29udGV4dCgpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICBpZiAodGhpcy5kZXN0cm95KSByZXR1cm47XG5cbiAgICAgIHJhZi5jYW5jZWwodGhpcy5zZW50aW5lbElkKTtcbiAgICAgIHRoaXMuc2VudGluZWxJZCA9IHJhZihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChfdGhpczIuZGVzdHJveSkgcmV0dXJuO1xuICAgICAgICBfdGhpczIuZm9yY2VVcGRhdGUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY2xhc3NuYW1lcztcblxuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcblxuICAgICAgdmFyIHByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgICAgICBuYXZXcmFwcGVyID0gcHJvcHMubmF2V3JhcHBlcixcbiAgICAgICAgICB0YWJCYXJQb3NpdGlvbiA9IHByb3BzLnRhYkJhclBvc2l0aW9uLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICByZW5kZXJUYWJDb250ZW50ID0gcHJvcHMucmVuZGVyVGFiQ29udGVudCxcbiAgICAgICAgICByZW5kZXJUYWJCYXIgPSBwcm9wcy5yZW5kZXJUYWJCYXIsXG4gICAgICAgICAgZGVzdHJveUluYWN0aXZlVGFiUGFuZSA9IHByb3BzLmRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmUsXG4gICAgICAgICAgZGlyZWN0aW9uID0gcHJvcHMuZGlyZWN0aW9uLFxuICAgICAgICAgIHJlc3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgWydwcmVmaXhDbHMnLCAnbmF2V3JhcHBlcicsICd0YWJCYXJQb3NpdGlvbicsICdjbGFzc05hbWUnLCAncmVuZGVyVGFiQ29udGVudCcsICdyZW5kZXJUYWJCYXInLCAnZGVzdHJveUluYWN0aXZlVGFiUGFuZScsICdkaXJlY3Rpb24nXSk7XG5cbiAgICAgIHZhciBjbHMgPSBjbGFzc25hbWVzKChfY2xhc3NuYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIHByZWZpeENscywgMSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NuYW1lcywgcHJlZml4Q2xzICsgJy0nICsgdGFiQmFyUG9zaXRpb24sIDEpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIGNsYXNzTmFtZSwgISFjbGFzc05hbWUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIHByZWZpeENscyArICctcnRsJywgZGlyZWN0aW9uID09PSAncnRsJyksIF9jbGFzc25hbWVzKSk7XG5cbiAgICAgIHRoaXMudGFiQmFyID0gcmVuZGVyVGFiQmFyKCk7XG5cbiAgICAgIHZhciB0YWJCYXIgPSBSZWFjdC5jbG9uZUVsZW1lbnQodGhpcy50YWJCYXIsIHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIG5hdldyYXBwZXI6IG5hdldyYXBwZXIsXG4gICAgICAgIGtleTogJ3RhYkJhcicsXG4gICAgICAgIG9uS2V5RG93bjogdGhpcy5vbk5hdktleURvd24sXG4gICAgICAgIHRhYkJhclBvc2l0aW9uOiB0YWJCYXJQb3NpdGlvbixcbiAgICAgICAgb25UYWJDbGljazogdGhpcy5vblRhYkNsaWNrLFxuICAgICAgICBwYW5lbHM6IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICBhY3RpdmVLZXk6IHRoaXMuc3RhdGUuYWN0aXZlS2V5LFxuICAgICAgICBkaXJlY3Rpb246IHRoaXMucHJvcHMuZGlyZWN0aW9uXG4gICAgICB9KTtcblxuICAgICAgdmFyIHRhYkNvbnRlbnQgPSBSZWFjdC5jbG9uZUVsZW1lbnQocmVuZGVyVGFiQ29udGVudCgpLCB7XG4gICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICB0YWJCYXJQb3NpdGlvbjogdGFiQmFyUG9zaXRpb24sXG4gICAgICAgIGFjdGl2ZUtleTogdGhpcy5zdGF0ZS5hY3RpdmVLZXksXG4gICAgICAgIGRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmU6IGRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmUsXG4gICAgICAgIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMuc2V0QWN0aXZlS2V5LFxuICAgICAgICBrZXk6ICd0YWJDb250ZW50JyxcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnByb3BzLmRpcmVjdGlvblxuICAgICAgfSk7XG5cbiAgICAgIHZhciBzZW50aW5lbFN0YXJ0ID0gUmVhY3QuY3JlYXRlRWxlbWVudChTZW50aW5lbCwge1xuICAgICAgICBrZXk6ICdzZW50aW5lbFN0YXJ0JyxcbiAgICAgICAgc2V0UmVmOiB0aGlzLnNldFNlbnRpbmVsU3RhcnQsXG4gICAgICAgIG5leHRFbGVtZW50OiB0aGlzLnBhbmVsU2VudGluZWxTdGFydFxuICAgICAgfSk7XG4gICAgICB2YXIgc2VudGluZWxFbmQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbnRpbmVsLCB7XG4gICAgICAgIGtleTogJ3NlbnRpbmVsRW5kJyxcbiAgICAgICAgc2V0UmVmOiB0aGlzLnNldFNlbnRpbmVsRW5kLFxuICAgICAgICBwcmV2RWxlbWVudDogdGhpcy5wYW5lbFNlbnRpbmVsRW5kXG4gICAgICB9KTtcblxuICAgICAgdmFyIGNvbnRlbnRzID0gW107XG4gICAgICBpZiAodGFiQmFyUG9zaXRpb24gPT09ICdib3R0b20nKSB7XG4gICAgICAgIGNvbnRlbnRzLnB1c2goc2VudGluZWxTdGFydCwgdGFiQ29udGVudCwgc2VudGluZWxFbmQsIHRhYkJhcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZW50cy5wdXNoKHRhYkJhciwgc2VudGluZWxTdGFydCwgdGFiQ29udGVudCwgc2VudGluZWxFbmQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgU2VudGluZWxQcm92aWRlcixcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBzZW50aW5lbFN0YXJ0OiB0aGlzLnNlbnRpbmVsU3RhcnQsXG4gICAgICAgICAgICBzZW50aW5lbEVuZDogdGhpcy5zZW50aW5lbEVuZCxcbiAgICAgICAgICAgIHNldFBhbmVsU2VudGluZWxTdGFydDogdGhpcy5zZXRQYW5lbFNlbnRpbmVsU3RhcnQsXG4gICAgICAgICAgICBzZXRQYW5lbFNlbnRpbmVsRW5kOiB0aGlzLnNldFBhbmVsU2VudGluZWxFbmRcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgX2V4dGVuZHMoe1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBjbHMsXG4gICAgICAgICAgICBzdHlsZTogcHJvcHMuc3R5bGVcbiAgICAgICAgICB9LCBnZXREYXRhQXR0cihyZXN0UHJvcHMpLCB7XG4gICAgICAgICAgICBvblNjcm9sbDogdGhpcy5vblNjcm9sbFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNvbnRlbnRzXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6ICdnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMocHJvcHMsIHN0YXRlKSB7XG4gICAgICB2YXIgbmV3U3RhdGUgPSB7fTtcbiAgICAgIGlmICgnYWN0aXZlS2V5JyBpbiBwcm9wcykge1xuICAgICAgICBuZXdTdGF0ZS5hY3RpdmVLZXkgPSBwcm9wcy5hY3RpdmVLZXk7XG4gICAgICB9IGVsc2UgaWYgKCFhY3RpdmVLZXlJc1ZhbGlkKHByb3BzLCBzdGF0ZS5hY3RpdmVLZXkpKSB7XG4gICAgICAgIG5ld1N0YXRlLmFjdGl2ZUtleSA9IGdldERlZmF1bHRBY3RpdmVLZXkocHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUYWJzO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG52YXIgX2luaXRpYWxpc2VQcm9wcyA9IGZ1bmN0aW9uIF9pbml0aWFsaXNlUHJvcHMoKSB7XG4gIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gIHRoaXMub25UYWJDbGljayA9IGZ1bmN0aW9uIChhY3RpdmVLZXksIGUpIHtcbiAgICBpZiAoX3RoaXMzLnRhYkJhci5wcm9wcy5vblRhYkNsaWNrKSB7XG4gICAgICBfdGhpczMudGFiQmFyLnByb3BzLm9uVGFiQ2xpY2soYWN0aXZlS2V5LCBlKTtcbiAgICB9XG4gICAgX3RoaXMzLnNldEFjdGl2ZUtleShhY3RpdmVLZXkpO1xuICB9O1xuXG4gIHRoaXMub25OYXZLZXlEb3duID0gZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgZXZlbnRLZXlDb2RlID0gZS5rZXlDb2RlO1xuICAgIGlmIChldmVudEtleUNvZGUgPT09IEtleUNvZGUuUklHSFQgfHwgZXZlbnRLZXlDb2RlID09PSBLZXlDb2RlLkRPV04pIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHZhciBuZXh0S2V5ID0gX3RoaXMzLmdldE5leHRBY3RpdmVLZXkodHJ1ZSk7XG4gICAgICBfdGhpczMub25UYWJDbGljayhuZXh0S2V5KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50S2V5Q29kZSA9PT0gS2V5Q29kZS5MRUZUIHx8IGV2ZW50S2V5Q29kZSA9PT0gS2V5Q29kZS5VUCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdmFyIHByZXZpb3VzS2V5ID0gX3RoaXMzLmdldE5leHRBY3RpdmVLZXkoZmFsc2UpO1xuICAgICAgX3RoaXMzLm9uVGFiQ2xpY2socHJldmlvdXNLZXkpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLm9uU2Nyb2xsID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgdGFyZ2V0ID0gX3JlZi50YXJnZXQsXG4gICAgICAgIGN1cnJlbnRUYXJnZXQgPSBfcmVmLmN1cnJlbnRUYXJnZXQ7XG5cbiAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0ICYmIHRhcmdldC5zY3JvbGxMZWZ0ID4gMCkge1xuICAgICAgdGFyZ2V0LnNjcm9sbExlZnQgPSAwO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLnNldFNlbnRpbmVsU3RhcnQgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIF90aGlzMy5zZW50aW5lbFN0YXJ0ID0gbm9kZTtcbiAgfTtcblxuICB0aGlzLnNldFNlbnRpbmVsRW5kID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBfdGhpczMuc2VudGluZWxFbmQgPSBub2RlO1xuICB9O1xuXG4gIHRoaXMuc2V0UGFuZWxTZW50aW5lbFN0YXJ0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBpZiAobm9kZSAhPT0gX3RoaXMzLnBhbmVsU2VudGluZWxTdGFydCkge1xuICAgICAgX3RoaXMzLnVwZGF0ZVNlbnRpbmVsQ29udGV4dCgpO1xuICAgIH1cbiAgICBfdGhpczMucGFuZWxTZW50aW5lbFN0YXJ0ID0gbm9kZTtcbiAgfTtcblxuICB0aGlzLnNldFBhbmVsU2VudGluZWxFbmQgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIGlmIChub2RlICE9PSBfdGhpczMucGFuZWxTZW50aW5lbEVuZCkge1xuICAgICAgX3RoaXMzLnVwZGF0ZVNlbnRpbmVsQ29udGV4dCgpO1xuICAgIH1cbiAgICBfdGhpczMucGFuZWxTZW50aW5lbEVuZCA9IG5vZGU7XG4gIH07XG5cbiAgdGhpcy5zZXRBY3RpdmVLZXkgPSBmdW5jdGlvbiAoYWN0aXZlS2V5KSB7XG4gICAgaWYgKF90aGlzMy5zdGF0ZS5hY3RpdmVLZXkgIT09IGFjdGl2ZUtleSkge1xuICAgICAgaWYgKCEoJ2FjdGl2ZUtleScgaW4gX3RoaXMzLnByb3BzKSkge1xuICAgICAgICBfdGhpczMuc2V0U3RhdGUoe1xuICAgICAgICAgIGFjdGl2ZUtleTogYWN0aXZlS2V5XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgX3RoaXMzLnByb3BzLm9uQ2hhbmdlKGFjdGl2ZUtleSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuZ2V0TmV4dEFjdGl2ZUtleSA9IGZ1bmN0aW9uIChuZXh0KSB7XG4gICAgdmFyIGFjdGl2ZUtleSA9IF90aGlzMy5zdGF0ZS5hY3RpdmVLZXk7XG4gICAgdmFyIGNoaWxkcmVuID0gW107XG4gICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChfdGhpczMucHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChjKSB7XG4gICAgICBpZiAoYyAmJiAhYy5wcm9wcy5kaXNhYmxlZCkge1xuICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgIGNoaWxkcmVuLnB1c2goYyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hpbGRyZW4udW5zaGlmdChjKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBsZW5ndGggPSBjaGlsZHJlbi5sZW5ndGg7XG4gICAgdmFyIHJldCA9IGxlbmd0aCAmJiBjaGlsZHJlblswXS5rZXk7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQsIGkpIHtcbiAgICAgIGlmIChjaGlsZC5rZXkgPT09IGFjdGl2ZUtleSkge1xuICAgICAgICBpZiAoaSA9PT0gbGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHJldCA9IGNoaWxkcmVuWzBdLmtleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXQgPSBjaGlsZHJlbltpICsgMV0ua2V5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcbn07XG5cblRhYnMucHJvcFR5cGVzID0ge1xuICBkZXN0cm95SW5hY3RpdmVUYWJQYW5lOiBQcm9wVHlwZXMuYm9vbCxcbiAgcmVuZGVyVGFiQmFyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICByZW5kZXJUYWJDb250ZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBuYXZXcmFwcGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0YWJCYXJQb3NpdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFjdGl2ZUtleTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGVmYXVsdEFjdGl2ZUtleTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlyZWN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuXG5UYWJzLmRlZmF1bHRQcm9wcyA9IHtcbiAgcHJlZml4Q2xzOiAncmMtdGFicycsXG4gIGRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmU6IGZhbHNlLFxuICBvbkNoYW5nZTogbm9vcCxcbiAgbmF2V3JhcHBlcjogZnVuY3Rpb24gbmF2V3JhcHBlcihhcmcpIHtcbiAgICByZXR1cm4gYXJnO1xuICB9LFxuICB0YWJCYXJQb3NpdGlvbjogJ3RvcCcsXG4gIGNoaWxkcmVuOiBudWxsLFxuICBzdHlsZToge30sXG4gIGRpcmVjdGlvbjogJ2x0cidcbn07XG5cblRhYnMuVGFiUGFuZSA9IFRhYlBhbmU7XG5cbnBvbHlmaWxsKFRhYnMpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJzOyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5pbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGdldFRyYW5zZm9ybUJ5SW5kZXgsIGdldEFjdGl2ZUluZGV4LCBnZXRUcmFuc2Zvcm1Qcm9wVmFsdWUsIGdldE1hcmdpblN0eWxlIH0gZnJvbSAnLi91dGlscyc7XG5cbnZhciBUYWJDb250ZW50ID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRhYkNvbnRlbnQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFRhYkNvbnRlbnQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRhYkNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChUYWJDb250ZW50Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoVGFiQ29udGVudCkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRhYkNvbnRlbnQsIFt7XG4gICAga2V5OiAnZ2V0VGFiUGFuZXMnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRUYWJQYW5lcygpIHtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgYWN0aXZlS2V5ID0gcHJvcHMuYWN0aXZlS2V5O1xuICAgICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gICAgICB2YXIgbmV3Q2hpbGRyZW4gPSBbXTtcblxuICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmICghY2hpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleSA9IGNoaWxkLmtleTtcbiAgICAgICAgdmFyIGFjdGl2ZSA9IGFjdGl2ZUtleSA9PT0ga2V5O1xuICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgIGFjdGl2ZTogYWN0aXZlLFxuICAgICAgICAgIGRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmU6IHByb3BzLmRlc3Ryb3lJbmFjdGl2ZVRhYlBhbmUsXG4gICAgICAgICAgcm9vdFByZWZpeENsczogcHJvcHMucHJlZml4Q2xzXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbmV3Q2hpbGRyZW47XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9jbGFzc25hbWVzO1xuXG4gICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgdmFyIHByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIGFjdGl2ZUtleSA9IHByb3BzLmFjdGl2ZUtleSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgdGFiQmFyUG9zaXRpb24gPSBwcm9wcy50YWJCYXJQb3NpdGlvbixcbiAgICAgICAgICBhbmltYXRlZCA9IHByb3BzLmFuaW1hdGVkLFxuICAgICAgICAgIGFuaW1hdGVkV2l0aE1hcmdpbiA9IHByb3BzLmFuaW1hdGVkV2l0aE1hcmdpbixcbiAgICAgICAgICBkaXJlY3Rpb24gPSBwcm9wcy5kaXJlY3Rpb247XG4gICAgICB2YXIgc3R5bGUgPSBwcm9wcy5zdHlsZTtcblxuICAgICAgdmFyIGNsYXNzZXMgPSBjbGFzc25hbWVzKChfY2xhc3NuYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIHByZWZpeENscyArICctY29udGVudCcsIHRydWUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIGFuaW1hdGVkID8gcHJlZml4Q2xzICsgJy1jb250ZW50LWFuaW1hdGVkJyA6IHByZWZpeENscyArICctY29udGVudC1uby1hbmltYXRlZCcsIHRydWUpLCBfY2xhc3NuYW1lcyksIGNsYXNzTmFtZSk7XG4gICAgICBpZiAoYW5pbWF0ZWQpIHtcbiAgICAgICAgdmFyIGFjdGl2ZUluZGV4ID0gZ2V0QWN0aXZlSW5kZXgoY2hpbGRyZW4sIGFjdGl2ZUtleSk7XG4gICAgICAgIGlmIChhY3RpdmVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICB2YXIgYW5pbWF0ZWRTdHlsZSA9IGFuaW1hdGVkV2l0aE1hcmdpbiA/IGdldE1hcmdpblN0eWxlKGFjdGl2ZUluZGV4LCB0YWJCYXJQb3NpdGlvbikgOiBnZXRUcmFuc2Zvcm1Qcm9wVmFsdWUoZ2V0VHJhbnNmb3JtQnlJbmRleChhY3RpdmVJbmRleCwgdGFiQmFyUG9zaXRpb24sIGRpcmVjdGlvbikpO1xuICAgICAgICAgIHN0eWxlID0gX2V4dGVuZHMoe30sIHN0eWxlLCBhbmltYXRlZFN0eWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHlsZSA9IF9leHRlbmRzKHt9LCBzdHlsZSwge1xuICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZGl2JyxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcyxcbiAgICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5nZXRUYWJQYW5lcygpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUYWJDb250ZW50O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJDb250ZW50O1xuXG5cblRhYkNvbnRlbnQucHJvcFR5cGVzID0ge1xuICBhbmltYXRlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGFuaW1hdGVkV2l0aE1hcmdpbjogUHJvcFR5cGVzLmJvb2wsXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBhY3RpdmVLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0eWxlOiBQcm9wVHlwZXMuYW55LFxuICB0YWJCYXJQb3NpdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkZXN0cm95SW5hY3RpdmVUYWJQYW5lOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlyZWN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuXG5UYWJDb250ZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgYW5pbWF0ZWQ6IHRydWVcbn07IiwiaW1wb3J0IFRhYnMgZnJvbSAnLi9UYWJzJztcbmltcG9ydCBUYWJQYW5lIGZyb20gJy4vVGFiUGFuZSc7XG5pbXBvcnQgVGFiQ29udGVudCBmcm9tICcuL1RhYkNvbnRlbnQnO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJzO1xuZXhwb3J0IHsgVGFiUGFuZSwgVGFiQ29udGVudCB9OyIsImZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2dldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcikgeyBpZiAodHlwZW9mIFJlZmxlY3QgIT09IFwidW5kZWZpbmVkXCIgJiYgUmVmbGVjdC5nZXQpIHsgX2dldCA9IFJlZmxlY3QuZ2V0OyB9IGVsc2UgeyBfZ2V0ID0gZnVuY3Rpb24gX2dldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlcikgeyB2YXIgYmFzZSA9IF9zdXBlclByb3BCYXNlKHRhcmdldCwgcHJvcGVydHkpOyBpZiAoIWJhc2UpIHJldHVybjsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2UsIHByb3BlcnR5KTsgaWYgKGRlc2MuZ2V0KSB7IHJldHVybiBkZXNjLmdldC5jYWxsKHJlY2VpdmVyKTsgfSByZXR1cm4gZGVzYy52YWx1ZTsgfTsgfSByZXR1cm4gX2dldCh0YXJnZXQsIHByb3BlcnR5LCByZWNlaXZlciB8fCB0YXJnZXQpOyB9XG5cbmZ1bmN0aW9uIF9zdXBlclByb3BCYXNlKG9iamVjdCwgcHJvcGVydHkpIHsgd2hpbGUgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSkpIHsgb2JqZWN0ID0gX2dldFByb3RvdHlwZU9mKG9iamVjdCk7IGlmIChvYmplY3QgPT09IG51bGwpIGJyZWFrOyB9IHJldHVybiBvYmplY3Q7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiAoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIGVuaGFuY2VyID0gZnVuY3Rpb24gZW5oYW5jZXIoV3JhcHBlZENvbXBvbmVudCkge1xuICByZXR1cm4gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfV3JhcHBlZENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhQcm9ncmVzcywgX1dyYXBwZWRDb21wb25lbnQpO1xuXG4gICAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihQcm9ncmVzcyk7XG5cbiAgICBmdW5jdGlvbiBQcm9ncmVzcygpIHtcbiAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQcm9ncmVzcyk7XG5cbiAgICAgIHJldHVybiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoUHJvZ3Jlc3MsIFt7XG4gICAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICB2YXIgdXBkYXRlZCA9IGZhbHNlO1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnBhdGhzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICB2YXIgcGF0aCA9IF90aGlzLnBhdGhzW2tleV07XG5cbiAgICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB1cGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgICB2YXIgcGF0aFN0eWxlID0gcGF0aC5zdHlsZTtcbiAgICAgICAgICBwYXRoU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gJy4zcywgLjNzLCAuM3MsIC4wNnMnO1xuXG4gICAgICAgICAgaWYgKF90aGlzLnByZXZUaW1lU3RhbXAgJiYgbm93IC0gX3RoaXMucHJldlRpbWVTdGFtcCA8IDEwMCkge1xuICAgICAgICAgICAgcGF0aFN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICcwcywgMHMnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHVwZGF0ZWQpIHtcbiAgICAgICAgICB0aGlzLnByZXZUaW1lU3RhbXAgPSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcInJlbmRlclwiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIF9nZXQoX2dldFByb3RvdHlwZU9mKFByb2dyZXNzLnByb3RvdHlwZSksIFwicmVuZGVyXCIsIHRoaXMpLmNhbGwodGhpcyk7XG4gICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIFByb2dyZXNzO1xuICB9KFdyYXBwZWRDb21wb25lbnQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZW5oYW5jZXI7IiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmV4cG9ydCB2YXIgZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6ICcnLFxuICBwZXJjZW50OiAwLFxuICBwcmVmaXhDbHM6ICdyYy1wcm9ncmVzcycsXG4gIHN0cm9rZUNvbG9yOiAnIzJkYjdmNScsXG4gIHN0cm9rZUxpbmVjYXA6ICdyb3VuZCcsXG4gIHN0cm9rZVdpZHRoOiAxLFxuICBzdHlsZToge30sXG4gIHRyYWlsQ29sb3I6ICcjRDlEOUQ5JyxcbiAgdHJhaWxXaWR0aDogMVxufTtcbnZhciBtaXhlZFR5cGUgPSBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSk7XG5leHBvcnQgdmFyIHByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBwZXJjZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFttaXhlZFR5cGUsIFByb3BUeXBlcy5hcnJheU9mKG1peGVkVHlwZSldKSxcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdHJva2VDb2xvcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm9iamVjdF0pKSwgUHJvcFR5cGVzLm9iamVjdF0pLFxuICBzdHJva2VMaW5lY2FwOiBQcm9wVHlwZXMub25lT2YoWydidXR0JywgJ3JvdW5kJywgJ3NxdWFyZSddKSxcbiAgc3Ryb2tlV2lkdGg6IG1peGVkVHlwZSxcbiAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIHRyYWlsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRyYWlsV2lkdGg6IG1peGVkVHlwZVxufTsiLCJmdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpOyB2YXIga2V5LCBpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc291cmNlU3ltYm9sS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlU3ltYm9sS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IHt9OyB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7IHZhciBrZXksIGk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZUtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZW5oYW5jZXIgZnJvbSAnLi9lbmhhbmNlcic7XG5pbXBvcnQgeyBwcm9wVHlwZXMsIGRlZmF1bHRQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG52YXIgTGluZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTGluZSwgX0NvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihMaW5lKTtcblxuICBmdW5jdGlvbiBMaW5lKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaW5lKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsLmFwcGx5KF9zdXBlciwgW3RoaXNdLmNvbmNhdChhcmdzKSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwicGF0aHNcIiwge30pO1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExpbmUsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgcGVyY2VudCA9IF90aGlzJHByb3BzLnBlcmNlbnQsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIHN0cm9rZUNvbG9yID0gX3RoaXMkcHJvcHMuc3Ryb2tlQ29sb3IsXG4gICAgICAgICAgc3Ryb2tlTGluZWNhcCA9IF90aGlzJHByb3BzLnN0cm9rZUxpbmVjYXAsXG4gICAgICAgICAgc3Ryb2tlV2lkdGggPSBfdGhpcyRwcm9wcy5zdHJva2VXaWR0aCxcbiAgICAgICAgICBzdHlsZSA9IF90aGlzJHByb3BzLnN0eWxlLFxuICAgICAgICAgIHRyYWlsQ29sb3IgPSBfdGhpcyRwcm9wcy50cmFpbENvbG9yLFxuICAgICAgICAgIHRyYWlsV2lkdGggPSBfdGhpcyRwcm9wcy50cmFpbFdpZHRoLFxuICAgICAgICAgIHRyYW5zaXRpb24gPSBfdGhpcyRwcm9wcy50cmFuc2l0aW9uLFxuICAgICAgICAgIHJlc3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfdGhpcyRwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwicGVyY2VudFwiLCBcInByZWZpeENsc1wiLCBcInN0cm9rZUNvbG9yXCIsIFwic3Ryb2tlTGluZWNhcFwiLCBcInN0cm9rZVdpZHRoXCIsIFwic3R5bGVcIiwgXCJ0cmFpbENvbG9yXCIsIFwidHJhaWxXaWR0aFwiLCBcInRyYW5zaXRpb25cIl0pO1xuXG4gICAgICBkZWxldGUgcmVzdFByb3BzLmdhcFBvc2l0aW9uO1xuICAgICAgdmFyIHBlcmNlbnRMaXN0ID0gQXJyYXkuaXNBcnJheShwZXJjZW50KSA/IHBlcmNlbnQgOiBbcGVyY2VudF07XG4gICAgICB2YXIgc3Ryb2tlQ29sb3JMaXN0ID0gQXJyYXkuaXNBcnJheShzdHJva2VDb2xvcikgPyBzdHJva2VDb2xvciA6IFtzdHJva2VDb2xvcl07XG4gICAgICB2YXIgY2VudGVyID0gc3Ryb2tlV2lkdGggLyAyO1xuICAgICAgdmFyIHJpZ2h0ID0gMTAwIC0gc3Ryb2tlV2lkdGggLyAyO1xuICAgICAgdmFyIHBhdGhTdHJpbmcgPSBcIk0gXCIuY29uY2F0KHN0cm9rZUxpbmVjYXAgPT09ICdyb3VuZCcgPyBjZW50ZXIgOiAwLCBcIixcIikuY29uY2F0KGNlbnRlciwgXCJcXG4gICAgICAgICAgIEwgXCIpLmNvbmNhdChzdHJva2VMaW5lY2FwID09PSAncm91bmQnID8gcmlnaHQgOiAxMDAsIFwiLFwiKS5jb25jYXQoY2VudGVyKTtcbiAgICAgIHZhciB2aWV3Qm94U3RyaW5nID0gXCIwIDAgMTAwIFwiLmNvbmNhdChzdHJva2VXaWR0aCk7XG4gICAgICB2YXIgc3RhY2tQdGcgPSAwO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWxpbmUgXCIpLmNvbmNhdChjbGFzc05hbWUpLFxuICAgICAgICB2aWV3Qm94OiB2aWV3Qm94U3RyaW5nLFxuICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBcIm5vbmVcIixcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCByZXN0UHJvcHMpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbGluZS10cmFpbFwiKSxcbiAgICAgICAgZDogcGF0aFN0cmluZyxcbiAgICAgICAgc3Ryb2tlTGluZWNhcDogc3Ryb2tlTGluZWNhcCxcbiAgICAgICAgc3Ryb2tlOiB0cmFpbENvbG9yLFxuICAgICAgICBzdHJva2VXaWR0aDogdHJhaWxXaWR0aCB8fCBzdHJva2VXaWR0aCxcbiAgICAgICAgZmlsbE9wYWNpdHk6IFwiMFwiXG4gICAgICB9KSwgcGVyY2VudExpc3QubWFwKGZ1bmN0aW9uIChwdGcsIGluZGV4KSB7XG4gICAgICAgIHZhciBwYXRoU3R5bGUgPSB7XG4gICAgICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIlwiLmNvbmNhdChwdGcsIFwicHgsIDEwMHB4XCIpLFxuICAgICAgICAgIHN0cm9rZURhc2hvZmZzZXQ6IFwiLVwiLmNvbmNhdChzdGFja1B0ZywgXCJweFwiKSxcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2l0aW9uIHx8ICdzdHJva2UtZGFzaG9mZnNldCAwLjNzIGVhc2UgMHMsIHN0cm9rZS1kYXNoYXJyYXkgLjNzIGVhc2UgMHMsIHN0cm9rZSAwLjNzIGxpbmVhcidcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGNvbG9yID0gc3Ryb2tlQ29sb3JMaXN0W2luZGV4XSB8fCBzdHJva2VDb2xvckxpc3Rbc3Ryb2tlQ29sb3JMaXN0Lmxlbmd0aCAtIDFdO1xuICAgICAgICBzdGFja1B0ZyArPSBwdGc7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgICAgICAgIGtleTogaW5kZXgsXG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWxpbmUtcGF0aFwiKSxcbiAgICAgICAgICBkOiBwYXRoU3RyaW5nLFxuICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IHN0cm9rZUxpbmVjYXAsXG4gICAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgICBzdHJva2VXaWR0aDogc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgZmlsbE9wYWNpdHk6IFwiMFwiLFxuICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKHBhdGgpIHtcbiAgICAgICAgICAgIF90aGlzMi5wYXRoc1tpbmRleF0gPSBwYXRoO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc3R5bGU6IHBhdGhTdHlsZVxuICAgICAgICB9KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTGluZTtcbn0oQ29tcG9uZW50KTtcblxuTGluZS5wcm9wVHlwZXMgPSBwcm9wVHlwZXM7XG5MaW5lLmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wcztcbmV4cG9ydCBkZWZhdWx0IGVuaGFuY2VyKExpbmUpOyIsImZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpOyB2YXIga2V5LCBpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc291cmNlU3ltYm9sS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlU3ltYm9sS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IHt9OyB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7IHZhciBrZXksIGk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZUtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbi8qIGVzbGludCByZWFjdC9wcm9wLXR5cGVzOiAwICovXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBlbmhhbmNlciBmcm9tICcuL2VuaGFuY2VyJztcbmltcG9ydCB7IHByb3BUeXBlcywgZGVmYXVsdFByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG52YXIgZ3JhZGllbnRTZWVkID0gMDtcblxuZnVuY3Rpb24gc3RyaXBQZXJjZW50VG9OdW1iZXIocGVyY2VudCkge1xuICByZXR1cm4gK3BlcmNlbnQucmVwbGFjZSgnJScsICcnKTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheShzeW1BcnJheSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShzeW1BcnJheSkgPyBzeW1BcnJheSA6IFtzeW1BcnJheV07XG59XG5cbmZ1bmN0aW9uIGdldFBhdGhTdHlsZXMob2Zmc2V0LCBwZXJjZW50LCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgpIHtcbiAgdmFyIGdhcERlZ3JlZSA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMDtcbiAgdmFyIGdhcFBvc2l0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgPyBhcmd1bWVudHNbNV0gOiB1bmRlZmluZWQ7XG4gIHZhciByYWRpdXMgPSA1MCAtIHN0cm9rZVdpZHRoIC8gMjtcbiAgdmFyIGJlZ2luUG9zaXRpb25YID0gMDtcbiAgdmFyIGJlZ2luUG9zaXRpb25ZID0gLXJhZGl1cztcbiAgdmFyIGVuZFBvc2l0aW9uWCA9IDA7XG4gIHZhciBlbmRQb3NpdGlvblkgPSAtMiAqIHJhZGl1cztcblxuICBzd2l0Y2ggKGdhcFBvc2l0aW9uKSB7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBiZWdpblBvc2l0aW9uWCA9IC1yYWRpdXM7XG4gICAgICBiZWdpblBvc2l0aW9uWSA9IDA7XG4gICAgICBlbmRQb3NpdGlvblggPSAyICogcmFkaXVzO1xuICAgICAgZW5kUG9zaXRpb25ZID0gMDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgYmVnaW5Qb3NpdGlvblggPSByYWRpdXM7XG4gICAgICBiZWdpblBvc2l0aW9uWSA9IDA7XG4gICAgICBlbmRQb3NpdGlvblggPSAtMiAqIHJhZGl1cztcbiAgICAgIGVuZFBvc2l0aW9uWSA9IDA7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICBiZWdpblBvc2l0aW9uWSA9IHJhZGl1cztcbiAgICAgIGVuZFBvc2l0aW9uWSA9IDIgKiByYWRpdXM7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gIH1cblxuICB2YXIgcGF0aFN0cmluZyA9IFwiTSA1MCw1MCBtIFwiLmNvbmNhdChiZWdpblBvc2l0aW9uWCwgXCIsXCIpLmNvbmNhdChiZWdpblBvc2l0aW9uWSwgXCJcXG4gICBhIFwiKS5jb25jYXQocmFkaXVzLCBcIixcIikuY29uY2F0KHJhZGl1cywgXCIgMCAxIDEgXCIpLmNvbmNhdChlbmRQb3NpdGlvblgsIFwiLFwiKS5jb25jYXQoLWVuZFBvc2l0aW9uWSwgXCJcXG4gICBhIFwiKS5jb25jYXQocmFkaXVzLCBcIixcIikuY29uY2F0KHJhZGl1cywgXCIgMCAxIDEgXCIpLmNvbmNhdCgtZW5kUG9zaXRpb25YLCBcIixcIikuY29uY2F0KGVuZFBvc2l0aW9uWSk7XG4gIHZhciBsZW4gPSBNYXRoLlBJICogMiAqIHJhZGl1cztcbiAgdmFyIHBhdGhTdHlsZSA9IHtcbiAgICBzdHJva2U6IHN0cm9rZUNvbG9yLFxuICAgIHN0cm9rZURhc2hhcnJheTogXCJcIi5jb25jYXQocGVyY2VudCAvIDEwMCAqIChsZW4gLSBnYXBEZWdyZWUpLCBcInB4IFwiKS5jb25jYXQobGVuLCBcInB4XCIpLFxuICAgIHN0cm9rZURhc2hvZmZzZXQ6IFwiLVwiLmNvbmNhdChnYXBEZWdyZWUgLyAyICsgb2Zmc2V0IC8gMTAwICogKGxlbiAtIGdhcERlZ3JlZSksIFwicHhcIiksXG4gICAgdHJhbnNpdGlvbjogJ3N0cm9rZS1kYXNob2Zmc2V0IC4zcyBlYXNlIDBzLCBzdHJva2UtZGFzaGFycmF5IC4zcyBlYXNlIDBzLCBzdHJva2UgLjNzLCBzdHJva2Utd2lkdGggLjA2cyBlYXNlIC4zcycgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIH07XG4gIHJldHVybiB7XG4gICAgcGF0aFN0cmluZzogcGF0aFN0cmluZyxcbiAgICBwYXRoU3R5bGU6IHBhdGhTdHlsZVxuICB9O1xufVxuXG52YXIgQ2lyY2xlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhDaXJjbGUsIF9Db21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoQ2lyY2xlKTtcblxuICBmdW5jdGlvbiBDaXJjbGUoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENpcmNsZSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInBhdGhzXCIsIHt9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJncmFkaWVudElkXCIsIDApO1xuXG4gICAgX3RoaXMuZ3JhZGllbnRJZCA9IGdyYWRpZW50U2VlZDtcbiAgICBncmFkaWVudFNlZWQgKz0gMTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ2lyY2xlLCBbe1xuICAgIGtleTogXCJnZXRTdG9rZUxpc3RcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U3Rva2VMaXN0KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIHBlcmNlbnQgPSBfdGhpcyRwcm9wcy5wZXJjZW50LFxuICAgICAgICAgIHN0cm9rZUNvbG9yID0gX3RoaXMkcHJvcHMuc3Ryb2tlQ29sb3IsXG4gICAgICAgICAgc3Ryb2tlV2lkdGggPSBfdGhpcyRwcm9wcy5zdHJva2VXaWR0aCxcbiAgICAgICAgICBzdHJva2VMaW5lY2FwID0gX3RoaXMkcHJvcHMuc3Ryb2tlTGluZWNhcCxcbiAgICAgICAgICBnYXBEZWdyZWUgPSBfdGhpcyRwcm9wcy5nYXBEZWdyZWUsXG4gICAgICAgICAgZ2FwUG9zaXRpb24gPSBfdGhpcyRwcm9wcy5nYXBQb3NpdGlvbjtcbiAgICAgIHZhciBwZXJjZW50TGlzdCA9IHRvQXJyYXkocGVyY2VudCk7XG4gICAgICB2YXIgc3Ryb2tlQ29sb3JMaXN0ID0gdG9BcnJheShzdHJva2VDb2xvcik7XG4gICAgICB2YXIgc3RhY2tQdGcgPSAwO1xuICAgICAgcmV0dXJuIHBlcmNlbnRMaXN0Lm1hcChmdW5jdGlvbiAocHRnLCBpbmRleCkge1xuICAgICAgICB2YXIgY29sb3IgPSBzdHJva2VDb2xvckxpc3RbaW5kZXhdIHx8IHN0cm9rZUNvbG9yTGlzdFtzdHJva2VDb2xvckxpc3QubGVuZ3RoIC0gMV07XG4gICAgICAgIHZhciBzdHJva2UgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoY29sb3IpID09PSAnW29iamVjdCBPYmplY3RdJyA/IFwidXJsKCNcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ncmFkaWVudC1cIikuY29uY2F0KF90aGlzMi5ncmFkaWVudElkLCBcIilcIikgOiAnJztcblxuICAgICAgICB2YXIgX2dldFBhdGhTdHlsZXMgPSBnZXRQYXRoU3R5bGVzKHN0YWNrUHRnLCBwdGcsIGNvbG9yLCBzdHJva2VXaWR0aCwgZ2FwRGVncmVlLCBnYXBQb3NpdGlvbiksXG4gICAgICAgICAgICBwYXRoU3RyaW5nID0gX2dldFBhdGhTdHlsZXMucGF0aFN0cmluZyxcbiAgICAgICAgICAgIHBhdGhTdHlsZSA9IF9nZXRQYXRoU3R5bGVzLnBhdGhTdHlsZTtcblxuICAgICAgICBzdGFja1B0ZyArPSBwdGc7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgICAgICAgIGtleTogaW5kZXgsXG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNpcmNsZS1wYXRoXCIpLFxuICAgICAgICAgIGQ6IHBhdGhTdHJpbmcsXG4gICAgICAgICAgc3Ryb2tlOiBzdHJva2UsXG4gICAgICAgICAgc3Ryb2tlTGluZWNhcDogc3Ryb2tlTGluZWNhcCxcbiAgICAgICAgICBzdHJva2VXaWR0aDogc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgb3BhY2l0eTogcHRnID09PSAwID8gMCA6IDEsXG4gICAgICAgICAgZmlsbE9wYWNpdHk6IFwiMFwiLFxuICAgICAgICAgIHN0eWxlOiBwYXRoU3R5bGUsXG4gICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYocGF0aCkge1xuICAgICAgICAgICAgX3RoaXMyLnBhdGhzW2luZGV4XSA9IHBhdGg7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMyLnByZWZpeENscyxcbiAgICAgICAgICBzdHJva2VXaWR0aCA9IF90aGlzJHByb3BzMi5zdHJva2VXaWR0aCxcbiAgICAgICAgICB0cmFpbFdpZHRoID0gX3RoaXMkcHJvcHMyLnRyYWlsV2lkdGgsXG4gICAgICAgICAgZ2FwRGVncmVlID0gX3RoaXMkcHJvcHMyLmdhcERlZ3JlZSxcbiAgICAgICAgICBnYXBQb3NpdGlvbiA9IF90aGlzJHByb3BzMi5nYXBQb3NpdGlvbixcbiAgICAgICAgICB0cmFpbENvbG9yID0gX3RoaXMkcHJvcHMyLnRyYWlsQ29sb3IsXG4gICAgICAgICAgc3Ryb2tlTGluZWNhcCA9IF90aGlzJHByb3BzMi5zdHJva2VMaW5lY2FwLFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMyLnN0eWxlLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzMi5jbGFzc05hbWUsXG4gICAgICAgICAgc3Ryb2tlQ29sb3IgPSBfdGhpcyRwcm9wczIuc3Ryb2tlQ29sb3IsXG4gICAgICAgICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzMiwgW1wicHJlZml4Q2xzXCIsIFwic3Ryb2tlV2lkdGhcIiwgXCJ0cmFpbFdpZHRoXCIsIFwiZ2FwRGVncmVlXCIsIFwiZ2FwUG9zaXRpb25cIiwgXCJ0cmFpbENvbG9yXCIsIFwic3Ryb2tlTGluZWNhcFwiLCBcInN0eWxlXCIsIFwiY2xhc3NOYW1lXCIsIFwic3Ryb2tlQ29sb3JcIl0pO1xuXG4gICAgICB2YXIgX2dldFBhdGhTdHlsZXMyID0gZ2V0UGF0aFN0eWxlcygwLCAxMDAsIHRyYWlsQ29sb3IsIHN0cm9rZVdpZHRoLCBnYXBEZWdyZWUsIGdhcFBvc2l0aW9uKSxcbiAgICAgICAgICBwYXRoU3RyaW5nID0gX2dldFBhdGhTdHlsZXMyLnBhdGhTdHJpbmcsXG4gICAgICAgICAgcGF0aFN0eWxlID0gX2dldFBhdGhTdHlsZXMyLnBhdGhTdHlsZTtcblxuICAgICAgZGVsZXRlIHJlc3RQcm9wcy5wZXJjZW50O1xuICAgICAgdmFyIHN0cm9rZUNvbG9yTGlzdCA9IHRvQXJyYXkoc3Ryb2tlQ29sb3IpO1xuICAgICAgdmFyIGdyYWRpZW50ID0gc3Ryb2tlQ29sb3JMaXN0LmZpbmQoZnVuY3Rpb24gKGNvbG9yKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoY29sb3IpID09PSAnW29iamVjdCBPYmplY3RdJztcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNpcmNsZSBcIikuY29uY2F0KGNsYXNzTmFtZSksXG4gICAgICAgIHZpZXdCb3g6IFwiMCAwIDEwMCAxMDBcIixcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCByZXN0UHJvcHMpLCBncmFkaWVudCAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lYXJHcmFkaWVudFwiLCB7XG4gICAgICAgIGlkOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWdyYWRpZW50LVwiKS5jb25jYXQodGhpcy5ncmFkaWVudElkKSxcbiAgICAgICAgeDE6IFwiMTAwJVwiLFxuICAgICAgICB5MTogXCIwJVwiLFxuICAgICAgICB4MjogXCIwJVwiLFxuICAgICAgICB5MjogXCIwJVwiXG4gICAgICB9LCBPYmplY3Qua2V5cyhncmFkaWVudCkuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICByZXR1cm4gc3RyaXBQZXJjZW50VG9OdW1iZXIoYSkgLSBzdHJpcFBlcmNlbnRUb051bWJlcihiKTtcbiAgICAgIH0pLm1hcChmdW5jdGlvbiAoa2V5LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICAgICAgICBrZXk6IGluZGV4LFxuICAgICAgICAgIG9mZnNldDoga2V5LFxuICAgICAgICAgIHN0b3BDb2xvcjogZ3JhZGllbnRba2V5XVxuICAgICAgICB9KTtcbiAgICAgIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jaXJjbGUtdHJhaWxcIiksXG4gICAgICAgIGQ6IHBhdGhTdHJpbmcsXG4gICAgICAgIHN0cm9rZTogdHJhaWxDb2xvcixcbiAgICAgICAgc3Ryb2tlTGluZWNhcDogc3Ryb2tlTGluZWNhcCxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IHRyYWlsV2lkdGggfHwgc3Ryb2tlV2lkdGgsXG4gICAgICAgIGZpbGxPcGFjaXR5OiBcIjBcIixcbiAgICAgICAgc3R5bGU6IHBhdGhTdHlsZVxuICAgICAgfSksIHRoaXMuZ2V0U3Rva2VMaXN0KCkucmV2ZXJzZSgpKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ2lyY2xlO1xufShDb21wb25lbnQpO1xuXG5DaXJjbGUucHJvcFR5cGVzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBwcm9wVHlwZXMpLCB7fSwge1xuICBnYXBQb3NpdGlvbjogUHJvcFR5cGVzLm9uZU9mKFsndG9wJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0J10pXG59KTtcbkNpcmNsZS5kZWZhdWx0UHJvcHMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGRlZmF1bHRQcm9wcyksIHt9LCB7XG4gIGdhcFBvc2l0aW9uOiAndG9wJ1xufSk7XG5leHBvcnQgZGVmYXVsdCBlbmhhbmNlcihDaXJjbGUpOyIsImltcG9ydCBMaW5lIGZyb20gJy4vTGluZSc7XG5pbXBvcnQgQ2lyY2xlIGZyb20gJy4vQ2lyY2xlJztcbmV4cG9ydCB7IExpbmUsIENpcmNsZSB9O1xuZXhwb3J0IGRlZmF1bHQge1xuICBMaW5lOiBMaW5lLFxuICBDaXJjbGU6IENpcmNsZVxufTsiLCJpbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBwb2x5ZmlsbCB9IGZyb20gJ3JlYWN0LWxpZmVjeWNsZXMtY29tcGF0JztcblxudmFyIENoZWNrYm94ID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKENoZWNrYm94LCBfQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBDaGVja2JveChwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDaGVja2JveCk7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF90aGlzLmhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBkaXNhYmxlZCA9IF90aGlzJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgIG9uQ2hhbmdlID0gX3RoaXMkcHJvcHMub25DaGFuZ2U7XG5cbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoISgnY2hlY2tlZCcgaW4gX3RoaXMucHJvcHMpKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBjaGVja2VkOiBlLnRhcmdldC5jaGVja2VkXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgIG9uQ2hhbmdlKHtcbiAgICAgICAgICB0YXJnZXQ6IF9leHRlbmRzKHt9LCBfdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgY2hlY2tlZDogZS50YXJnZXQuY2hlY2tlZFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24gc3RvcFByb3BhZ2F0aW9uKCkge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByZXZlbnREZWZhdWx0OiBmdW5jdGlvbiBwcmV2ZW50RGVmYXVsdCgpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgbmF0aXZlRXZlbnQ6IGUubmF0aXZlRXZlbnRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnNhdmVJbnB1dCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBfdGhpcy5pbnB1dCA9IG5vZGU7XG4gICAgfTtcblxuICAgIHZhciBjaGVja2VkID0gJ2NoZWNrZWQnIGluIHByb3BzID8gcHJvcHMuY2hlY2tlZCA6IHByb3BzLmRlZmF1bHRDaGVja2VkO1xuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBjaGVja2VkOiBjaGVja2VkXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBDaGVja2JveC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMocHJvcHMsIHN0YXRlKSB7XG4gICAgaWYgKCdjaGVja2VkJyBpbiBwcm9wcykge1xuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICBjaGVja2VkOiBwcm9wcy5jaGVja2VkXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgQ2hlY2tib3gucHJvdG90eXBlLmZvY3VzID0gZnVuY3Rpb24gZm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICB9O1xuXG4gIENoZWNrYm94LnByb3RvdHlwZS5ibHVyID0gZnVuY3Rpb24gYmx1cigpIHtcbiAgICB0aGlzLmlucHV0LmJsdXIoKTtcbiAgfTtcblxuICBDaGVja2JveC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICBwcmVmaXhDbHMgPSBfcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgbmFtZSA9IF9wcm9wcy5uYW1lLFxuICAgICAgICBpZCA9IF9wcm9wcy5pZCxcbiAgICAgICAgdHlwZSA9IF9wcm9wcy50eXBlLFxuICAgICAgICBkaXNhYmxlZCA9IF9wcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHkgPSBfcHJvcHMucmVhZE9ubHksXG4gICAgICAgIHRhYkluZGV4ID0gX3Byb3BzLnRhYkluZGV4LFxuICAgICAgICBvbkNsaWNrID0gX3Byb3BzLm9uQ2xpY2ssXG4gICAgICAgIG9uRm9jdXMgPSBfcHJvcHMub25Gb2N1cyxcbiAgICAgICAgb25CbHVyID0gX3Byb3BzLm9uQmx1cixcbiAgICAgICAgYXV0b0ZvY3VzID0gX3Byb3BzLmF1dG9Gb2N1cyxcbiAgICAgICAgdmFsdWUgPSBfcHJvcHMudmFsdWUsXG4gICAgICAgIG90aGVycyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcHJvcHMsIFsncHJlZml4Q2xzJywgJ2NsYXNzTmFtZScsICdzdHlsZScsICduYW1lJywgJ2lkJywgJ3R5cGUnLCAnZGlzYWJsZWQnLCAncmVhZE9ubHknLCAndGFiSW5kZXgnLCAnb25DbGljaycsICdvbkZvY3VzJywgJ29uQmx1cicsICdhdXRvRm9jdXMnLCAndmFsdWUnXSk7XG5cbiAgICB2YXIgZ2xvYmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvdGhlcnMpLnJlZHVjZShmdW5jdGlvbiAocHJldiwga2V5KSB7XG4gICAgICBpZiAoa2V5LnN1YnN0cigwLCA1KSA9PT0gJ2FyaWEtJyB8fCBrZXkuc3Vic3RyKDAsIDUpID09PSAnZGF0YS0nIHx8IGtleSA9PT0gJ3JvbGUnKSB7XG4gICAgICAgIHByZXZba2V5XSA9IG90aGVyc1trZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfSwge30pO1xuXG4gICAgdmFyIGNoZWNrZWQgPSB0aGlzLnN0YXRlLmNoZWNrZWQ7XG5cbiAgICB2YXIgY2xhc3NTdHJpbmcgPSBjbGFzc05hbWVzKHByZWZpeENscywgY2xhc3NOYW1lLCAoX2NsYXNzTmFtZXMgPSB7fSwgX2NsYXNzTmFtZXNbcHJlZml4Q2xzICsgJy1jaGVja2VkJ10gPSBjaGVja2VkLCBfY2xhc3NOYW1lc1twcmVmaXhDbHMgKyAnLWRpc2FibGVkJ10gPSBkaXNhYmxlZCwgX2NsYXNzTmFtZXMpKTtcblxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgJ3NwYW4nLFxuICAgICAgeyBjbGFzc05hbWU6IGNsYXNzU3RyaW5nLCBzdHlsZTogc3R5bGUgfSxcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JywgX2V4dGVuZHMoe1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICBpZDogaWQsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIHJlYWRPbmx5OiByZWFkT25seSxcbiAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgICB0YWJJbmRleDogdGFiSW5kZXgsXG4gICAgICAgIGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJy1pbnB1dCcsXG4gICAgICAgIGNoZWNrZWQ6ICEhY2hlY2tlZCxcbiAgICAgICAgb25DbGljazogb25DbGljayxcbiAgICAgICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICAgICAgb25CbHVyOiBvbkJsdXIsXG4gICAgICAgIG9uQ2hhbmdlOiB0aGlzLmhhbmRsZUNoYW5nZSxcbiAgICAgICAgYXV0b0ZvY3VzOiBhdXRvRm9jdXMsXG4gICAgICAgIHJlZjogdGhpcy5zYXZlSW5wdXQsXG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgfSwgZ2xvYmFsUHJvcHMpKSxcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJy1pbm5lcicgfSlcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBDaGVja2JveDtcbn0oQ29tcG9uZW50KTtcblxuQ2hlY2tib3gucHJvcFR5cGVzID0ge1xuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkZWZhdWx0Q2hlY2tlZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLmJvb2xdKSxcbiAgY2hlY2tlZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLmJvb2xdKSxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgcmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICBhdXRvRm9jdXM6IFByb3BUeXBlcy5ib29sLFxuICB2YWx1ZTogUHJvcFR5cGVzLmFueVxufTtcbkNoZWNrYm94LmRlZmF1bHRQcm9wcyA9IHtcbiAgcHJlZml4Q2xzOiAncmMtY2hlY2tib3gnLFxuICBjbGFzc05hbWU6ICcnLFxuICBzdHlsZToge30sXG4gIHR5cGU6ICdjaGVja2JveCcsXG4gIGRlZmF1bHRDaGVja2VkOiBmYWxzZSxcbiAgb25Gb2N1czogZnVuY3Rpb24gb25Gb2N1cygpIHt9LFxuICBvbkJsdXI6IGZ1bmN0aW9uIG9uQmx1cigpIHt9LFxuICBvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoKSB7fVxufTtcblxuXG5wb2x5ZmlsbChDaGVja2JveCk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94OyIsImltcG9ydCBDaGVja2JveCBmcm9tICcuL0NoZWNrYm94JztcblxuZXhwb3J0IGRlZmF1bHQgQ2hlY2tib3g7Il0sInNvdXJjZVJvb3QiOiIifQ==
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.24 | Генерация страницы: 1.06 |
proxy
|
phpinfo
|
Настройка