resolver-egretimp-plus 0.0.107 → 0.0.109

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,2 @@
1
- var r={48618:(r,t,e)=>{e.d(t,{E1:()=>A,M6:()=>x,fN:()=>T}),e(16280),e(76918),e(54743),e(11745),e(38309),e(16573),e(78100),e(77936),e(23288),e(2892),e(79432),e(26099),e(84864),e(57465),e(27495),e(87745),e(90906),e(38781),e(25440),e(50375),e(21489),e(48140),e(81630),e(72170),e(75044),e(69539),e(31694),e(89955),e(21903),e(91134),e(33206),e(44496),e(66651),e(12887),e(19369),e(66812),e(8995),e(31575),e(36072),e(88747),e(28845),e(29423),e(57301),e(373),e(86614),e(41405),e(37467),e(44732),e(33684),e(79577);var n=e(27681),o=e.n(n),a=e(71426),i=e.n(a),u=e(27124),c=e.n(u),s=e(36586),f=e.n(s),p=e(18979),l=e.n(p),v=e(73363),y=e.n(v),d=(e(86226),e(50697),e(11393),e(66615),e(11265),e(48079)),h=e.n(d);function g(r){var t=o()(null);return function(e){return t[e]||(t[e]=r(e))}}function x(r){if(!r)return null;var t=Number(r);if(isNaN(t)){var e=["px","%","vh","vw","rem","em"],n=i()(e).call(e,(function(t){return null==r?void 0:c()(r).call(r,t)}));return n?f()(r)+n:null}return t+"px"}e(12935);var m=/-(\w)/g,b=g((function(r){return r.replace(m,(function(r,t){return t?t.toUpperCase():""}))})),w=g((function(r){return r.charAt(0).toUpperCase()+l()(r).call(r,1)}));function E(r,t){var e=function(r,t){if("string"!=typeof t)return null;var e=r;if(void 0!==e[t]&&null!==e[t])return e[t];var n=b(t);if(void 0!==e[n]&&null!==e[n])return e[n];var o=w(n);return void 0!==e[o]&&null!==e[o]?e[o]:null}(y()(r).call(r,(function(r,t,e){return r[t]=e,r}),{}),t);return null==e?-1:e}function A(r,t){return-1!==E(r,null==t?void 0:t.renderby)||-1!==E(r,null==t?void 0:t.metaType)}function T(r,t){var e,n,o,a=r.referenceOptions,i=r.selectKey,u=[];try{var c;u=h()(c=JSON.parse((null==r?void 0:r.optionItems)||"[]")).call(c,(function(r){return{columnValue:r.value,columnDesc_zh:r.label,columnDesc:r.label_en||r.label,columnStatus:r.columnStatus}}))}catch(r){u=[]}return(null==t?void 0:t.value)&&(null==t||null===(e=t.value)||void 0===e?void 0:e[i])||(null==t?void 0:t.value)&&(null==t||null===(n=t.value)||void 0===n?void 0:n["".concat(r.metaCode,"ListValue")])||(null==t?void 0:t.value)&&(null==t||null===(o=t.value)||void 0===o?void 0:o[a])||u||[]}Object.prototype.hasOwnProperty},12935:(r,t,e)=>{e(66615),e(76918),e(23288),e(26099),e(27495),e(90906),e(38781),Object.prototype.toString},66615:(r,t,e)=>{e(18402)},11393:(r,t,e)=>{r.exports=e(50530)},27124:(r,t,e)=>{r.exports=e(85837)},71426:(r,t,e)=>{r.exports=e(99617)},86226:(r,t,e)=>{e(24525)},64007:(r,t,e)=>{r.exports=e(77852)},48079:(r,t,e)=>{r.exports=e(98894)},73363:(r,t,e)=>{r.exports=e(79528)},18979:(r,t,e)=>{r.exports=e(6686)},11265:(r,t,e)=>{e(12217)},27681:(r,t,e)=>{r.exports=e(93658)},50697:(r,t,e)=>{e(76490)},36586:(r,t,e)=>{r.exports=e(91921)},13531:(r,t,e)=>{e(92425);var n=e(92046);r.exports=n.Array.isArray},96275:(r,t,e)=>{e(58545);var n=e(61747);r.exports=n("Array","concat")},94668:(r,t,e)=>{e(6290);var n=e(61747);r.exports=n("Array","find")},22092:(r,t,e)=>{e(95650);var n=e(61747);r.exports=n("Array","forEach")},83309:(r,t,e)=>{e(66391);var n=e(61747);r.exports=n("Array","indexOf")},28253:(r,t,e)=>{e(6687);var n=e(61747);r.exports=n("Array","map")},16693:(r,t,e)=>{e(46339);var n=e(61747);r.exports=n("Array","reduce")},75265:(r,t,e)=>{e(62099);var n=e(61747);r.exports=n("Array","slice")},45837:(r,t,e)=>{var n=e(88280),o=e(96275),a=Array.prototype;r.exports=function(r){var t=r.concat;return r===a||n(a,r)&&t===a.concat?o:t}},64048:(r,t,e)=>{var n=e(88280),o=e(48270),a=String.prototype;r.exports=function(r){var t=r.endsWith;return"string"==typeof r||r===a||n(a,r)&&t===a.endsWith?o:t}},63246:(r,t,e)=>{var n=e(88280),o=e(94668),a=Array.prototype;r.exports=function(r){var t=r.find;return r===a||n(a,r)&&t===a.find?o:t}},44507:(r,t,e)=>{var n=e(88280),o=e(83309),a=Array.prototype;r.exports=function(r){var t=r.indexOf;return r===a||n(a,r)&&t===a.indexOf?o:t}},39299:(r,t,e)=>{var n=e(88280),o=e(28253),a=Array.prototype;r.exports=function(r){var t=r.map;return r===a||n(a,r)&&t===a.map?o:t}},28823:(r,t,e)=>{var n=e(88280),o=e(16693),a=Array.prototype;r.exports=function(r){var t=r.reduce;return r===a||n(a,r)&&t===a.reduce?o:t}},40303:(r,t,e)=>{var n=e(88280),o=e(75265),a=Array.prototype;r.exports=function(r){var t=r.slice;return r===a||n(a,r)&&t===a.slice?o:t}},8661:(r,t,e)=>{var n=e(88280),o=e(77511),a=String.prototype;r.exports=function(r){var t=r.trim;return"string"==typeof r||r===a||n(a,r)&&t===a.trim?o:t}},80149:(r,t,e)=>{e(25837);var n=e(92046).Object;r.exports=function(r,t){return n.create(r,t)}},19661:(r,t,e)=>{e(83589);var n=e(92046);r.exports=n.Object.keys},84326:(r,t,e)=>{e(42193);var n=e(92046);r.exports=n.parseInt},48270:(r,t,e)=>{e(80430);var n=e(61747);r.exports=n("String","endsWith")},77511:(r,t,e)=>{e(50727);var n=e(61747);r.exports=n("String","trim")},82159:(r,t,e)=>{var n=e(62250),o=e(4640),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},42156:r=>{r.exports=function(){}},36624:(r,t,e)=>{var n=e(46285),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},22914:(r,t,e)=>{var n=e(70726).forEach,o=e(77623)("forEach");r.exports=o?[].forEach:function(r){return n(this,r,arguments.length>1?arguments[1]:void 0)}},74436:(r,t,e)=>{var n=e(27374),o=e(34849),a=e(20575),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},70726:(r,t,e)=>{var n=e(28311),o=e(1907),a=e(16946),i=e(39298),u=e(20575),c=e(56968),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},59552:(r,t,e)=>{var n=e(98828),o=e(76264),a=e(20798),i=o("species");r.exports=function(r){return a>=51||!n((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[r](Boolean).foo}))}},77623:(r,t,e)=>{var n=e(98828);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},35043:(r,t,e)=>{var n=e(82159),o=e(39298),a=e(16946),i=e(20575),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},93427:(r,t,e)=>{var n=e(1907);r.exports=n([].slice)},64010:(r,t,e)=>{var n=e(11793),o=e(25468),a=e(46285),i=e(76264)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},56968:(r,t,e)=>{var n=e(64010);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},45807:(r,t,e)=>{var n=e(1907),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},73948:(r,t,e)=>{var n=e(52623),o=e(62250),a=e(45807),i=e(76264)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},25735:(r,t,e)=>{var n=e(76264)("match");r.exports=function(r){var t=/./;try{"/./"[r](t)}catch(e){try{return t[n]=!1,"/./"[r](t)}catch(r){}}return!1}},61626:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},75817:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},5543:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=function(r,t,e){n?o.f(r,t,a(0,e)):r[t]=e}},2532:(r,t,e)=>{var n=e(45951),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},39447:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},49552:(r,t,e)=>{var n=e(45951),o=e(46285),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88024:r=>{var t=TypeError;r.exports=function(r){if(r>9007199254740991)throw t("Maximum allowed index exceeded");return r}},80376:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},47586:(r,t,e)=>{var n=e(42832);r.exports="NODE"===n},96794:(r,t,e)=>{var n=e(45951).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},20798:(r,t,e)=>{var n,o,a=e(45951),i=e(96794),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},42832:(r,t,e)=>{var n=e(45951),o=e(96794),a=e(45807),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},11091:(r,t,e)=>{var n=e(45951),o=e(76024),a=e(92361),i=e(62250),u=e(13846).f,c=e(7463),s=e(92046),f=e(28311),p=e(61626),l=e(49724);e(36128);var v=function(r){var t=function(e,n,a){if(this instanceof t){switch(arguments.length){case 0:return new r;case 1:return new r(e);case 2:return new r(e,n)}return new r(e,n,a)}return o(r,this,arguments)};return t.prototype=r.prototype,t};r.exports=function(r,t){var e,o,y,d,h,g,x,m,b,w=r.target,E=r.global,A=r.stat,T=r.proto,O=E?n:A?n[w]:n[w]&&n[w].prototype,S=E?s:s[w]||p(s,w,{})[w],C=S.prototype;for(d in t)o=!(e=c(E?d:w+(A?".":"#")+d,r.forced))&&O&&l(O,d),g=S[d],o&&(x=r.dontCallGetSet?(b=u(O,d))&&b.value:O[d]),h=o&&x?x:t[d],(e||T||typeof g!=typeof h)&&(m=r.bind&&o?f(h,n):r.wrap&&o?v(h):T&&i(h)?a(h):h,(r.sham||h&&h.sham||g&&g.sham)&&p(m,"sham",!0),p(S,d,m),T&&(l(s,y=w+"Prototype")||p(s,y,{}),p(s[y],d,h),r.real&&C&&(e||!C[d])&&p(C,d,h)))}},98828:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},76024:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},28311:(r,t,e)=>{var n=e(92361),o=e(82159),a=e(41505),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},41505:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},13930:(r,t,e)=>{var n=e(41505),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},36833:(r,t,e)=>{var n=e(39447),o=e(49724),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},92361:(r,t,e)=>{var n=e(45807),o=e(1907);r.exports=function(r){if("Function"===n(r))return o(r)}},1907:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},61747:(r,t,e)=>{var n=e(45951),o=e(92046);r.exports=function(r,t){var e=o[r+"Prototype"],a=e&&e[t];if(a)return a;var i=n[r],u=i&&i.prototype;return u&&u[t]}},85582:(r,t,e)=>{var n=e(92046),o=e(45951),a=e(62250),i=function(r){return a(r)?r:void 0};r.exports=function(r,t){return arguments.length<2?i(n[r])||i(o[r]):n[r]&&n[r][t]||o[r]&&o[r][t]}},29367:(r,t,e)=>{var n=e(82159),o=e(87136);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},45951:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},49724:(r,t,e)=>{var n=e(1907),o=e(39298),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},38530:r=>{r.exports={}},62416:(r,t,e)=>{var n=e(85582);r.exports=n("document","documentElement")},73648:(r,t,e)=>{var n=e(39447),o=e(98828),a=e(49552);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},16946:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(45807),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},12647:(r,t,e)=>{var n=e(1907),o=e(62250),a=e(36128),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},11793:(r,t,e)=>{var n=e(45807);r.exports=Array.isArray||function(r){return"Array"===n(r)}},62250:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},25468:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(62250),i=e(73948),u=e(85582),c=e(12647),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},7463:(r,t,e)=>{var n=e(98828),o=e(62250),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},87136:r=>{r.exports=function(r){return null==r}},46285:(r,t,e)=>{var n=e(62250);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},7376:r=>{r.exports=!0},72087:(r,t,e)=>{var n=e(46285),o=e(45807),a=e(76264)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},25594:(r,t,e)=>{var n=e(85582),o=e(62250),a=e(88280),i=e(51175),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},20575:(r,t,e)=>{var n=e(3121);r.exports=function(r){return n(r.length)}},41176:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},12074:(r,t,e)=>{var n=e(72087),o=TypeError;r.exports=function(r){if(n(r))throw new o("The method doesn't accept regular expressions");return r}},72778:(r,t,e)=>{var n=e(45951),o=e(98828),a=e(1907),i=e(90160),u=e(65993).trim,c=e(86395),s=n.parseInt,f=n.Symbol,p=f&&f.iterator,l=/^[+-]?0x/i,v=a(l.exec),y=8!==s(c+"08")||22!==s(c+"0x16")||p&&!o((function(){s(Object(p))}));r.exports=y?function(r,t){var e=u(i(r));return s(e,t>>>0||(v(l,e)?16:10))}:s},58075:(r,t,e)=>{var n,o=e(36624),a=e(42220),i=e(80376),u=e(38530),c=e(62416),s=e(49552),f=e(92522),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},42220:(r,t,e)=>{var n=e(39447),o=e(58661),a=e(74284),i=e(36624),u=e(27374),c=e(2875);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},74284:(r,t,e)=>{var n=e(39447),o=e(73648),a=e(58661),i=e(36624),u=e(70470),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},13846:(r,t,e)=>{var n=e(39447),o=e(13930),a=e(22574),i=e(75817),u=e(27374),c=e(70470),s=e(49724),f=e(73648),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},88280:(r,t,e)=>{var n=e(1907);r.exports=n({}.isPrototypeOf)},23045:(r,t,e)=>{var n=e(1907),o=e(49724),a=e(27374),i=e(74436).indexOf,u=e(38530),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},2875:(r,t,e)=>{var n=e(23045),o=e(80376);r.exports=Object.keys||function(r){return n(r,o)}},22574:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},60581:(r,t,e)=>{var n=e(13930),o=e(62250),a=e(46285),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},92046:r=>{r.exports={}},74239:(r,t,e)=>{var n=e(87136),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},92522:(r,t,e)=>{var n=e(85816),o=e(6499),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},36128:(r,t,e)=>{var n=e(7376),o=e(45951),a=e(2532),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},85816:(r,t,e)=>{var n=e(36128);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},95819:(r,t,e)=>{var n=e(36833),o=e(98828),a=e(86395);r.exports=function(r){return o((function(){return!!a[r]()||"​…᠎"!=="​…᠎"[r]()||n&&a[r].name!==r}))}},65993:(r,t,e)=>{var n=e(1907),o=e(74239),a=e(90160),i=e(86395),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},19846:(r,t,e)=>{var n=e(20798),o=e(98828),a=e(45951).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},34849:(r,t,e)=>{var n=e(65482),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},27374:(r,t,e)=>{var n=e(16946),o=e(74239);r.exports=function(r){return n(o(r))}},65482:(r,t,e)=>{var n=e(41176);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},3121:(r,t,e)=>{var n=e(65482),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},39298:(r,t,e)=>{var n=e(74239),o=Object;r.exports=function(r){return o(n(r))}},46028:(r,t,e)=>{var n=e(13930),o=e(46285),a=e(25594),i=e(29367),u=e(60581),c=e(76264),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},70470:(r,t,e)=>{var n=e(46028),o=e(25594);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},52623:(r,t,e)=>{var n={};n[e(76264)("toStringTag")]="z",r.exports="[object z]"===String(n)},90160:(r,t,e)=>{var n=e(73948),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},4640:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},6499:(r,t,e)=>{var n=e(1907),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},51175:(r,t,e)=>{var n=e(19846);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},58661:(r,t,e)=>{var n=e(39447),o=e(98828);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},76264:(r,t,e)=>{var n=e(45951),o=e(85816),a=e(49724),i=e(6499),u=e(19846),c=e(51175),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},86395:r=>{r.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},58545:(r,t,e)=>{var n=e(11091),o=e(98828),a=e(11793),i=e(46285),u=e(39298),c=e(20575),s=e(88024),f=e(5543),p=e(56968),l=e(59552),v=e(76264),y=e(20798),d=v("isConcatSpreadable"),h=y>=51||!o((function(){var r=[];return r[d]=!1,r.concat()[0]!==r})),g=function(r){if(!i(r))return!1;var t=r[d];return void 0!==t?!!t:a(r)};n({target:"Array",proto:!0,arity:1,forced:!h||!l("concat")},{concat:function(r){var t,e,n,o,a,i=u(this),l=p(i,0),v=0;for(t=-1,n=arguments.length;t<n;t++)if(g(a=-1===t?i:arguments[t]))for(o=c(a),s(v+o),e=0;e<o;e++,v++)e in a&&f(l,v,a[e]);else s(v+1),f(l,v++,a);return l.length=v,l}})},6290:(r,t,e)=>{var n=e(11091),o=e(70726).find,a=e(42156),i="find",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),n({target:"Array",proto:!0,forced:u},{find:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}}),a(i)},95650:(r,t,e)=>{var n=e(11091),o=e(22914);n({target:"Array",proto:!0,forced:[].forEach!==o},{forEach:o})},66391:(r,t,e)=>{var n=e(11091),o=e(92361),a=e(74436).indexOf,i=e(77623),u=o([].indexOf),c=!!u&&1/u([1],1,-0)<0;n({target:"Array",proto:!0,forced:c||!i("indexOf")},{indexOf:function(r){var t=arguments.length>1?arguments[1]:void 0;return c?u(this,r,t)||0:a(this,r,t)}})},92425:(r,t,e)=>{e(11091)({target:"Array",stat:!0},{isArray:e(11793)})},6687:(r,t,e)=>{var n=e(11091),o=e(70726).map;n({target:"Array",proto:!0,forced:!e(59552)("map")},{map:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}})},46339:(r,t,e)=>{var n=e(11091),o=e(35043).left,a=e(77623),i=e(20798);n({target:"Array",proto:!0,forced:!e(47586)&&i>79&&i<83||!a("reduce")},{reduce:function(r){var t=arguments.length;return o(this,r,t,t>1?arguments[1]:void 0)}})},62099:(r,t,e)=>{var n=e(11091),o=e(11793),a=e(25468),i=e(46285),u=e(34849),c=e(20575),s=e(27374),f=e(5543),p=e(76264),l=e(59552),v=e(93427),y=l("slice"),d=p("species"),h=Array,g=Math.max;n({target:"Array",proto:!0,forced:!y},{slice:function(r,t){var e,n,p,l=s(this),y=c(l),x=u(r,y),m=u(void 0===t?y:t,y);if(o(l)&&(e=l.constructor,(a(e)&&(e===h||o(e.prototype))||i(e)&&null===(e=e[d]))&&(e=void 0),e===h||void 0===e))return v(l,x,m);for(n=new(void 0===e?h:e)(g(m-x,0)),p=0;x<m;x++,p++)x in l&&f(n,p,l[x]);return n.length=p,n}})},25837:(r,t,e)=>{e(11091)({target:"Object",stat:!0,sham:!e(39447)},{create:e(58075)})},83589:(r,t,e)=>{var n=e(11091),o=e(39298),a=e(2875);n({target:"Object",stat:!0,forced:e(98828)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},42193:(r,t,e)=>{var n=e(11091),o=e(72778);n({global:!0,forced:parseInt!==o},{parseInt:o})},80430:(r,t,e)=>{var n,o=e(11091),a=e(92361),i=e(13846).f,u=e(3121),c=e(90160),s=e(12074),f=e(74239),p=e(25735),l=e(7376),v=a("".slice),y=Math.min,d=p("endsWith");o({target:"String",proto:!0,forced:!(!l&&!d&&(n=i(String.prototype,"endsWith"),n&&!n.writable)||d)},{endsWith:function(r){var t=c(f(this));s(r);var e=arguments.length>1?arguments[1]:void 0,n=t.length,o=void 0===e?n:y(u(e),n),a=c(r);return v(t,o-a.length,o)===a}})},50727:(r,t,e)=>{var n=e(11091),o=e(65993).trim;n({target:"String",proto:!0,forced:e(95819)("trim")},{trim:function(){return o(this)}})},60237:()=>{},18402:(r,t,e)=>{var n=e(13531);r.exports=n},41969:(r,t,e)=>{var n=e(22092);r.exports=n},50530:(r,t,e)=>{var n=e(45837);r.exports=n},85837:(r,t,e)=>{var n=e(64048);r.exports=n},99617:(r,t,e)=>{var n=e(63246);r.exports=n},24525:(r,t,e)=>{var n=e(73948),o=e(49724),a=e(88280),i=e(41969);e(60237);var u=Array.prototype,c={DOMTokenList:!0,NodeList:!0};r.exports=function(r){var t=r.forEach;return r===u||a(u,r)&&t===u.forEach||o(c,n(r))?i:t}},77852:(r,t,e)=>{var n=e(44507);r.exports=n},98894:(r,t,e)=>{var n=e(39299);r.exports=n},79528:(r,t,e)=>{var n=e(28823);r.exports=n},6686:(r,t,e)=>{var n=e(40303);r.exports=n},12217:(r,t,e)=>{var n=e(8661);r.exports=n},93658:(r,t,e)=>{var n=e(80149);r.exports=n},76490:(r,t,e)=>{var n=e(19661);r.exports=n},91921:(r,t,e)=>{var n=e(84326);r.exports=n},79306:(r,t,e)=>{var n=e(94901),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},35548:(r,t,e)=>{var n=e(33517),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a constructor")}},73506:(r,t,e)=>{var n=e(13925),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a("Can't set "+o(r)+" as a prototype")}},6469:(r,t,e)=>{var n=e(78227),o=e(2360),a=e(24913).f,i=n("unscopables"),u=Array.prototype;void 0===u[i]&&a(u,i,{configurable:!0,value:o(null)}),r.exports=function(r){u[i][r]=!0}},57829:(r,t,e)=>{var n=e(68183).charAt;r.exports=function(r,t,e){return t+(e?n(r,t).length:1)}},90679:(r,t,e)=>{var n=e(1625),o=TypeError;r.exports=function(r,t){if(n(t,r))return r;throw new o("Incorrect invocation")}},28551:(r,t,e)=>{var n=e(20034),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},77811:r=>{r.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},67394:(r,t,e)=>{var n=e(44576),o=e(46706),a=e(22195),i=n.ArrayBuffer,u=n.TypeError;r.exports=i&&o(i.prototype,"byteLength","get")||function(r){if("ArrayBuffer"!==a(r))throw new u("ArrayBuffer expected");return r.byteLength}},3238:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(67394),i=n.ArrayBuffer,u=i&&i.prototype,c=u&&o(u.slice);r.exports=function(r){if(0!==a(r))return!1;if(!c)return!1;try{return c(r,0,0),!1}catch(r){return!0}}},55169:(r,t,e)=>{var n=e(3238),o=TypeError;r.exports=function(r){if(n(r))throw new o("ArrayBuffer is detached");return r}},95636:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(46706),i=e(57696),u=e(55169),c=e(67394),s=e(94483),f=e(1548),p=n.structuredClone,l=n.ArrayBuffer,v=n.DataView,y=Math.min,d=l.prototype,h=v.prototype,g=o(d.slice),x=a(d,"resizable","get"),m=a(d,"maxByteLength","get"),b=o(h.getInt8),w=o(h.setInt8);r.exports=(f||s)&&function(r,t,e){var n,o=c(r),a=void 0===t?o:i(t),d=!x||!x(r);if(u(r),f&&(r=p(r,{transfer:[r]}),o===a&&(e||d)))return r;if(o>=a&&(!e||d))n=g(r,0,a);else{var h=e&&!d&&m?{maxByteLength:m(r)}:void 0;n=new l(a,h);for(var E=new v(r),A=new v(n),T=y(a,o),O=0;O<T;O++)w(A,O,b(E,O))}return f||s(r),n}},94644:(r,t,e)=>{var n,o,a,i=e(77811),u=e(43724),c=e(44576),s=e(94901),f=e(20034),p=e(39297),l=e(36955),v=e(16823),y=e(66699),d=e(36840),h=e(62106),g=e(1625),x=e(42787),m=e(52967),b=e(78227),w=e(33392),E=e(91181),A=E.enforce,T=E.get,O=c.Int8Array,S=O&&O.prototype,C=c.Uint8ClampedArray,I=C&&C.prototype,P=O&&x(O),R=S&&x(S),_=Object.prototype,j=c.TypeError,M=b("toStringTag"),L=w("TYPED_ARRAY_TAG"),N="TypedArrayConstructor",D=i&&!!m&&"Opera"!==l(c.opera),F=!1,k={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},B={BigInt64Array:8,BigUint64Array:8},U=function(r){var t=x(r);if(f(t)){var e=T(t);return e&&p(e,N)?e[N]:U(t)}},V=function(r){if(!f(r))return!1;var t=l(r);return p(k,t)||p(B,t)};for(n in k)(a=(o=c[n])&&o.prototype)?A(a)[N]=o:D=!1;for(n in B)(a=(o=c[n])&&o.prototype)&&(A(a)[N]=o);if((!D||!s(P)||P===Function.prototype)&&(P=function(){throw new j("Incorrect invocation")},D))for(n in k)c[n]&&m(c[n],P);if((!D||!R||R===_)&&(R=P.prototype,D))for(n in k)c[n]&&m(c[n].prototype,R);if(D&&x(I)!==R&&m(I,R),u&&!p(R,M))for(n in F=!0,h(R,M,{configurable:!0,get:function(){return f(this)?this[L]:void 0}}),k)c[n]&&y(c[n],L,n);r.exports={NATIVE_ARRAY_BUFFER_VIEWS:D,TYPED_ARRAY_TAG:F&&L,aTypedArray:function(r){if(V(r))return r;throw new j("Target is not a typed array")},aTypedArrayConstructor:function(r){if(s(r)&&(!m||g(P,r)))return r;throw new j(v(r)+" is not a typed array constructor")},exportTypedArrayMethod:function(r,t,e,n){if(u){if(e)for(var o in k){var a=c[o];if(a&&p(a.prototype,r))try{delete a.prototype[r]}catch(e){try{a.prototype[r]=t}catch(r){}}}R[r]&&!e||d(R,r,e?t:D&&S[r]||t,n)}},exportTypedArrayStaticMethod:function(r,t,e){var n,o;if(u){if(m){if(e)for(n in k)if((o=c[n])&&p(o,r))try{delete o[r]}catch(r){}if(P[r]&&!e)return;try{return d(P,r,e?t:D&&P[r]||t)}catch(r){}}for(n in k)!(o=c[n])||o[r]&&!e||d(o,r,t)}},getTypedArrayConstructor:U,isView:function(r){if(!f(r))return!1;var t=l(r);return"DataView"===t||p(k,t)||p(B,t)},isTypedArray:V,TypedArray:P,TypedArrayPrototype:R}},66346:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(43724),i=e(77811),u=e(10350),c=e(66699),s=e(62106),f=e(56279),p=e(79039),l=e(90679),v=e(91291),y=e(18014),d=e(57696),h=e(15617),g=e(88490),x=e(42787),m=e(52967),b=e(84373),w=e(67680),E=e(23167),A=e(77740),T=e(10687),O=e(91181),S=u.PROPER,C=u.CONFIGURABLE,I="ArrayBuffer",P="DataView",R="prototype",_="Wrong index",j=O.getterFor(I),M=O.getterFor(P),L=O.set,N=n[I],D=N,F=D&&D[R],k=n[P],B=k&&k[R],U=Object.prototype,V=n.Array,Y=n.RangeError,W=o(b),G=o([].reverse),H=g.pack,z=g.unpack,$=function(r){return[255&r]},X=function(r){return[255&r,r>>8&255]},q=function(r){return[255&r,r>>8&255,r>>16&255,r>>24&255]},K=function(r){return r[3]<<24|r[2]<<16|r[1]<<8|r[0]},J=function(r){return H(h(r),23,4)},Q=function(r){return H(r,52,8)},Z=function(r,t,e){s(r[R],t,{configurable:!0,get:function(){return e(this)[t]}})},rr=function(r,t,e,n){var o=M(r),a=d(e),i=!!n;if(a+t>o.byteLength)throw new Y(_);var u=o.bytes,c=a+o.byteOffset,s=w(u,c,c+t);return i?s:G(s)},tr=function(r,t,e,n,o,a){var i=M(r),u=d(e),c=n(+o),s=!!a;if(u+t>i.byteLength)throw new Y(_);for(var f=i.bytes,p=u+i.byteOffset,l=0;l<t;l++)f[p+l]=c[s?l:t-l-1]};if(i){var er=S&&N.name!==I;p((function(){N(1)}))&&p((function(){new N(-1)}))&&!p((function(){return new N,new N(1.5),new N(NaN),1!==N.length||er&&!C}))?er&&C&&c(N,"name",I):((D=function(r){return l(this,F),E(new N(d(r)),this,D)})[R]=F,F.constructor=D,A(D,N)),m&&x(B)!==U&&m(B,U);var nr=new k(new D(2)),or=o(B.setInt8);nr.setInt8(0,2147483648),nr.setInt8(1,2147483649),!nr.getInt8(0)&&nr.getInt8(1)||f(B,{setInt8:function(r,t){or(this,r,t<<24>>24)},setUint8:function(r,t){or(this,r,t<<24>>24)}},{unsafe:!0})}else F=(D=function(r){l(this,F);var t=d(r);L(this,{type:I,bytes:W(V(t),0),byteLength:t}),a||(this.byteLength=t,this.detached=!1)})[R],B=(k=function(r,t,e){l(this,B),l(r,F);var n=j(r),o=n.byteLength,i=v(t);if(i<0||i>o)throw new Y("Wrong offset");if(i+(e=void 0===e?o-i:y(e))>o)throw new Y("Wrong length");L(this,{type:P,buffer:r,byteLength:e,byteOffset:i,bytes:n.bytes}),a||(this.buffer=r,this.byteLength=e,this.byteOffset=i)})[R],a&&(Z(D,"byteLength",j),Z(k,"buffer",M),Z(k,"byteLength",M),Z(k,"byteOffset",M)),f(B,{getInt8:function(r){return rr(this,1,r)[0]<<24>>24},getUint8:function(r){return rr(this,1,r)[0]},getInt16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))},getUint32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(r){return z(rr(this,4,r,arguments.length>1&&arguments[1]),23)},getFloat64:function(r){return z(rr(this,8,r,arguments.length>1&&arguments[1]),52)},setInt8:function(r,t){tr(this,1,r,$,t)},setUint8:function(r,t){tr(this,1,r,$,t)},setInt16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setUint16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setInt32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setUint32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setFloat32:function(r,t){tr(this,4,r,J,t,arguments.length>2&&arguments[2])},setFloat64:function(r,t){tr(this,8,r,Q,t,arguments.length>2&&arguments[2])}});T(D,I),T(k,P),r.exports={ArrayBuffer:D,DataView:k}},57029:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198),i=e(84606),u=Math.min;r.exports=[].copyWithin||function(r,t){var e=n(this),c=a(e),s=o(r,c),f=o(t,c),p=arguments.length>2?arguments[2]:void 0,l=u((void 0===p?c:o(p,c))-f,c-s),v=1;for(f<s&&s<f+l&&(v=-1,f+=l-1,s+=l-1);l-- >0;)f in e?e[s]=e[f]:i(e,s),s+=v,f+=v;return e}},84373:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198);r.exports=function(r){for(var t=n(this),e=a(t),i=arguments.length,u=o(i>1?arguments[1]:void 0,e),c=i>2?arguments[2]:void 0,s=void 0===c?e:o(c,e);s>u;)t[u++]=r;return t}},35370:(r,t,e)=>{var n=e(26198);r.exports=function(r,t,e){for(var o=0,a=arguments.length>2?e:n(t),i=new r(a);a>o;)i[o]=t[o++];return i}},19617:(r,t,e)=>{var n=e(25397),o=e(35610),a=e(26198),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},43839:(r,t,e)=>{var n=e(76080),o=e(47055),a=e(48981),i=e(26198),u=function(r){var t=1===r;return function(e,u,c){for(var s,f=a(e),p=o(f),l=i(p),v=n(u,c);l-- >0;)if(v(s=p[l],l,f))switch(r){case 0:return s;case 1:return l}return t?-1:void 0}};r.exports={findLast:u(0),findLastIndex:u(1)}},59213:(r,t,e)=>{var n=e(76080),o=e(79504),a=e(47055),i=e(48981),u=e(26198),c=e(1469),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},8379:(r,t,e)=>{var n=e(18745),o=e(25397),a=e(91291),i=e(26198),u=e(34598),c=Math.min,s=[].lastIndexOf,f=!!s&&1/[1].lastIndexOf(1,-0)<0,p=u("lastIndexOf"),l=f||!p;r.exports=l?function(r){if(f)return n(s,this,arguments)||0;var t=o(this),e=i(t);if(0===e)return-1;var u=e-1;for(arguments.length>1&&(u=c(u,a(arguments[1]))),u<0&&(u=e+u);u>=0;u--)if(u in t&&t[u]===r)return u||0;return-1}:s},34598:(r,t,e)=>{var n=e(79039);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},80926:(r,t,e)=>{var n=e(79306),o=e(48981),a=e(47055),i=e(26198),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},67680:(r,t,e)=>{var n=e(79504);r.exports=n([].slice)},74488:(r,t,e)=>{var n=e(67680),o=Math.floor,a=function(r,t){var e=r.length;if(e<8)for(var i,u,c=1;c<e;){for(u=c,i=r[c];u&&t(r[u-1],i)>0;)r[u]=r[--u];u!==c++&&(r[u]=i)}else for(var s=o(e/2),f=a(n(r,0,s),t),p=a(n(r,s),t),l=f.length,v=p.length,y=0,d=0;y<l||d<v;)r[y+d]=y<l&&d<v?t(f[y],p[d])<=0?f[y++]:p[d++]:y<l?f[y++]:p[d++];return r};r.exports=a},87433:(r,t,e)=>{var n=e(34376),o=e(33517),a=e(20034),i=e(78227)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},1469:(r,t,e)=>{var n=e(87433);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},37628:(r,t,e)=>{var n=e(26198);r.exports=function(r,t){for(var e=n(r),o=new t(e),a=0;a<e;a++)o[a]=r[e-a-1];return o}},39928:(r,t,e)=>{var n=e(26198),o=e(91291),a=RangeError;r.exports=function(r,t,e,i){var u=n(r),c=o(e),s=c<0?u+c:c;if(s>=u||s<0)throw new a("Incorrect index");for(var f=new t(u),p=0;p<u;p++)f[p]=p===s?i:r[p];return f}},84428:(r,t,e)=>{var n=e(78227)("iterator"),o=!1;try{var a=0,i={next:function(){return{done:!!a++}},return:function(){o=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(r){}r.exports=function(r,t){try{if(!t&&!o)return!1}catch(r){return!1}var e=!1;try{var a={};a[n]=function(){return{next:function(){return{done:e=!0}}}},r(a)}catch(r){}return e}},22195:(r,t,e)=>{var n=e(79504),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},36955:(r,t,e)=>{var n=e(92140),o=e(94901),a=e(22195),i=e(78227)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},77740:(r,t,e)=>{var n=e(39297),o=e(35031),a=e(77347),i=e(24913);r.exports=function(r,t,e){for(var u=o(t),c=i.f,s=a.f,f=0;f<u.length;f++){var p=u[f];n(r,p)||e&&n(e,p)||c(r,p,s(t,p))}}},12211:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype}))},62529:r=>{r.exports=function(r,t){return{value:r,done:t}}},66699:(r,t,e)=>{var n=e(43724),o=e(24913),a=e(6980);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},6980:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},62106:(r,t,e)=>{var n=e(50283),o=e(24913);r.exports=function(r,t,e){return e.get&&n(e.get,t,{getter:!0}),e.set&&n(e.set,t,{setter:!0}),o.f(r,t,e)}},36840:(r,t,e)=>{var n=e(94901),o=e(24913),a=e(50283),i=e(39433);r.exports=function(r,t,e,u){u||(u={});var c=u.enumerable,s=void 0!==u.name?u.name:t;if(n(e)&&a(e,s,u),u.global)c?r[t]=e:i(t,e);else{try{u.unsafe?r[t]&&(c=!0):delete r[t]}catch(r){}c?r[t]=e:o.f(r,t,{value:e,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return r}},56279:(r,t,e)=>{var n=e(36840);r.exports=function(r,t,e){for(var o in t)n(r,o,t[o],e);return r}},39433:(r,t,e)=>{var n=e(44576),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},84606:(r,t,e)=>{var n=e(16823),o=TypeError;r.exports=function(r,t){if(!delete r[t])throw new o("Cannot delete property "+n(t)+" of "+n(r))}},43724:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},94483:(r,t,e)=>{var n,o,a,i,u=e(44576),c=e(89429),s=e(1548),f=u.structuredClone,p=u.ArrayBuffer,l=u.MessageChannel,v=!1;if(s)v=function(r){f(r,{transfer:[r]})};else if(p)try{l||(n=c("worker_threads"))&&(l=n.MessageChannel),l&&(o=new l,a=new p(2),i=function(r){o.port1.postMessage(null,[r])},2===a.byteLength&&(i(a),0===a.byteLength&&(v=i)))}catch(r){}r.exports=v},4055:(r,t,e)=>{var n=e(44576),o=e(20034),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88727:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},13709:(r,t,e)=>{var n=e(82839).match(/firefox\/(\d+)/i);r.exports=!!n&&+n[1]},13763:(r,t,e)=>{var n=e(82839);r.exports=/MSIE|Trident/.test(n)},38574:(r,t,e)=>{var n=e(84215);r.exports="NODE"===n},82839:(r,t,e)=>{var n=e(44576).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},39519:(r,t,e)=>{var n,o,a=e(44576),i=e(82839),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},3607:(r,t,e)=>{var n=e(82839).match(/AppleWebKit\/(\d+)\./);r.exports=!!n&&+n[1]},84215:(r,t,e)=>{var n=e(44576),o=e(82839),a=e(22195),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},16193:(r,t,e)=>{var n=e(79504),o=Error,a=n("".replace),i=String(new o("zxcasd").stack),u=/\n\s*at [^:]*:[^\n]*/,c=u.test(i);r.exports=function(r,t){if(c&&"string"==typeof r&&!o.prepareStackTrace)for(;t--;)r=a(r,u,"");return r}},80747:(r,t,e)=>{var n=e(66699),o=e(16193),a=e(24659),i=Error.captureStackTrace;r.exports=function(r,t,e,u){a&&(i?i(r,t):n(r,"stack",o(e,u)))}},24659:(r,t,e)=>{var n=e(79039),o=e(6980);r.exports=!n((function(){var r=new Error("a");return!("stack"in r)||(Object.defineProperty(r,"stack",o(1,7)),7!==r.stack)}))},77536:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(28551),i=e(32603),u=Error.prototype.toString,c=o((function(){if(n){var r=Object.create(Object.defineProperty({},"name",{get:function(){return this===r}}));if("true"!==u.call(r))return!0}return"2: 1"!==u.call({message:1,name:2})||"Error"!==u.call({})}));r.exports=c?function(){var r=a(this),t=i(r.name,"Error"),e=i(r.message);return t?e?t+": "+e:t:e}:u},46518:(r,t,e)=>{var n=e(44576),o=e(77347).f,a=e(66699),i=e(36840),u=e(39433),c=e(77740),s=e(92796);r.exports=function(r,t){var e,f,p,l,v,y=r.target,d=r.global,h=r.stat;if(e=d?n:h?n[y]||u(y,{}):n[y]&&n[y].prototype)for(f in t){if(l=t[f],p=r.dontCallGetSet?(v=o(e,f))&&v.value:e[f],!s(d?f:y+(h?".":"#")+f,r.forced)&&void 0!==p){if(typeof l==typeof p)continue;c(l,p)}(r.sham||p&&p.sham)&&a(l,"sham",!0),i(e,f,l,r)}}},79039:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},89228:(r,t,e)=>{e(27495);var n=e(69565),o=e(36840),a=e(57323),i=e(79039),u=e(78227),c=e(66699),s=u("species"),f=RegExp.prototype;r.exports=function(r,t,e,p){var l=u(r),v=!i((function(){var t={};return t[l]=function(){return 7},7!==""[r](t)})),y=v&&!i((function(){var t=!1,e=/a/;return"split"===r&&((e={}).constructor={},e.constructor[s]=function(){return e},e.flags="",e[l]=/./[l]),e.exec=function(){return t=!0,null},e[l](""),!t}));if(!v||!y||e){var d=/./[l],h=t(l,""[r],(function(r,t,e,o,i){var u=t.exec;return u===a||u===f.exec?v&&!i?{done:!0,value:n(d,t,e,o)}:{done:!0,value:n(r,e,t,o)}:{done:!1}}));o(String.prototype,r,h[0]),o(f,l,h[1])}p&&c(f[l],"sham",!0)}},18745:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},76080:(r,t,e)=>{var n=e(27476),o=e(79306),a=e(40616),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},40616:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},69565:(r,t,e)=>{var n=e(40616),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},10350:(r,t,e)=>{var n=e(43724),o=e(39297),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},46706:(r,t,e)=>{var n=e(79504),o=e(79306);r.exports=function(r,t,e){try{return n(o(Object.getOwnPropertyDescriptor(r,t)[e]))}catch(r){}}},27476:(r,t,e)=>{var n=e(22195),o=e(79504);r.exports=function(r){if("Function"===n(r))return o(r)}},79504:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},89429:(r,t,e)=>{var n=e(44576),o=e(38574);r.exports=function(r){if(o){try{return n.process.getBuiltinModule(r)}catch(r){}try{return Function('return require("'+r+'")')()}catch(r){}}}},97751:(r,t,e)=>{var n=e(44576),o=e(94901);r.exports=function(r,t){return arguments.length<2?(e=n[r],o(e)?e:void 0):n[r]&&n[r][t];var e}},50851:(r,t,e)=>{var n=e(36955),o=e(55966),a=e(64117),i=e(26269),u=e(78227)("iterator");r.exports=function(r){if(!a(r))return o(r,u)||o(r,"@@iterator")||i[n(r)]}},70081:(r,t,e)=>{var n=e(69565),o=e(79306),a=e(28551),i=e(16823),u=e(50851),c=TypeError;r.exports=function(r,t){var e=arguments.length<2?u(r):t;if(o(e))return a(n(e,r));throw new c(i(r)+" is not iterable")}},55966:(r,t,e)=>{var n=e(79306),o=e(64117);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},2478:(r,t,e)=>{var n=e(79504),o=e(48981),a=Math.floor,i=n("".charAt),u=n("".replace),c=n("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;r.exports=function(r,t,e,n,p,l){var v=e+r.length,y=n.length,d=f;return void 0!==p&&(p=o(p),d=s),u(l,d,(function(o,u){var s;switch(i(u,0)){case"$":return"$";case"&":return r;case"`":return c(t,0,e);case"'":return c(t,v);case"<":s=p[c(u,1,-1)];break;default:var f=+u;if(0===f)return o;if(f>y){var l=a(f/10);return 0===l?o:l<=y?void 0===n[l-1]?i(u,1):n[l-1]+i(u,1):o}s=n[f-1]}return void 0===s?"":s}))}},44576:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},39297:(r,t,e)=>{var n=e(79504),o=e(48981),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},30421:r=>{r.exports={}},20397:(r,t,e)=>{var n=e(97751);r.exports=n("document","documentElement")},35917:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(4055);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},88490:r=>{var t=Array,e=Math.abs,n=Math.pow,o=Math.floor,a=Math.log,i=Math.LN2;r.exports={pack:function(r,u,c){var s,f,p,l=t(c),v=8*c-u-1,y=(1<<v)-1,d=y>>1,h=23===u?n(2,-24)-n(2,-77):0,g=r<0||0===r&&1/r<0?1:0,x=0;for((r=e(r))!=r||r===1/0?(f=r!=r?1:0,s=y):(s=o(a(r)/i),r*(p=n(2,-s))<1&&(s--,p*=2),(r+=s+d>=1?h/p:h*n(2,1-d))*p>=2&&(s++,p/=2),s+d>=y?(f=0,s=y):s+d>=1?(f=(r*p-1)*n(2,u),s+=d):(f=r*n(2,d-1)*n(2,u),s=0));u>=8;)l[x++]=255&f,f/=256,u-=8;for(s=s<<u|f,v+=u;v>0;)l[x++]=255&s,s/=256,v-=8;return l[x-1]|=128*g,l},unpack:function(r,t){var e,o=r.length,a=8*o-t-1,i=(1<<a)-1,u=i>>1,c=a-7,s=o-1,f=r[s--],p=127&f;for(f>>=7;c>0;)p=256*p+r[s--],c-=8;for(e=p&(1<<-c)-1,p>>=-c,c+=t;c>0;)e=256*e+r[s--],c-=8;if(0===p)p=1-u;else{if(p===i)return e?NaN:f?-1/0:1/0;e+=n(2,t),p-=u}return(f?-1:1)*e*n(2,p-t)}}},47055:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(22195),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},23167:(r,t,e)=>{var n=e(94901),o=e(20034),a=e(52967);r.exports=function(r,t,e){var i,u;return a&&n(i=t.constructor)&&i!==e&&o(u=i.prototype)&&u!==e.prototype&&a(r,u),r}},33706:(r,t,e)=>{var n=e(79504),o=e(94901),a=e(77629),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},77584:(r,t,e)=>{var n=e(20034),o=e(66699);r.exports=function(r,t){n(t)&&"cause"in t&&o(r,"cause",t.cause)}},91181:(r,t,e)=>{var n,o,a,i=e(58622),u=e(44576),c=e(20034),s=e(66699),f=e(39297),p=e(77629),l=e(66119),v=e(30421),y="Object already initialized",d=u.TypeError,h=u.WeakMap;if(i||p.state){var g=p.state||(p.state=new h);g.get=g.get,g.has=g.has,g.set=g.set,n=function(r,t){if(g.has(r))throw new d(y);return t.facade=r,g.set(r,t),t},o=function(r){return g.get(r)||{}},a=function(r){return g.has(r)}}else{var x=l("state");v[x]=!0,n=function(r,t){if(f(r,x))throw new d(y);return t.facade=r,s(r,x,t),t},o=function(r){return f(r,x)?r[x]:{}},a=function(r){return f(r,x)}}r.exports={set:n,get:o,has:a,enforce:function(r){return a(r)?o(r):n(r,{})},getterFor:function(r){return function(t){var e;if(!c(t)||(e=o(t)).type!==r)throw new d("Incompatible receiver, "+r+" required");return e}}}},44209:(r,t,e)=>{var n=e(78227),o=e(26269),a=n("iterator"),i=Array.prototype;r.exports=function(r){return void 0!==r&&(o.Array===r||i[a]===r)}},34376:(r,t,e)=>{var n=e(22195);r.exports=Array.isArray||function(r){return"Array"===n(r)}},18727:(r,t,e)=>{var n=e(36955);r.exports=function(r){var t=n(r);return"BigInt64Array"===t||"BigUint64Array"===t}},94901:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},33517:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(36955),u=e(97751),c=e(33706),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},92796:(r,t,e)=>{var n=e(79039),o=e(94901),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},2087:(r,t,e)=>{var n=e(20034),o=Math.floor;r.exports=Number.isInteger||function(r){return!n(r)&&isFinite(r)&&o(r)===r}},64117:r=>{r.exports=function(r){return null==r}},20034:(r,t,e)=>{var n=e(94901);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},13925:(r,t,e)=>{var n=e(20034);r.exports=function(r){return n(r)||null===r}},96395:r=>{r.exports=!1},60788:(r,t,e)=>{var n=e(20034),o=e(22195),a=e(78227)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},10757:(r,t,e)=>{var n=e(97751),o=e(94901),a=e(1625),i=e(7040),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},33994:(r,t,e)=>{var n=e(57657).IteratorPrototype,o=e(2360),a=e(6980),i=e(10687),u=e(26269),c=function(){return this};r.exports=function(r,t,e,s){var f=t+" Iterator";return r.prototype=o(n,{next:a(+!s,e)}),i(r,f,!1,!0),u[f]=c,r}},51088:(r,t,e)=>{var n=e(46518),o=e(69565),a=e(96395),i=e(10350),u=e(94901),c=e(33994),s=e(42787),f=e(52967),p=e(10687),l=e(66699),v=e(36840),y=e(78227),d=e(26269),h=e(57657),g=i.PROPER,x=i.CONFIGURABLE,m=h.IteratorPrototype,b=h.BUGGY_SAFARI_ITERATORS,w=y("iterator"),E="keys",A="values",T="entries",O=function(){return this};r.exports=function(r,t,e,i,y,h,S){c(e,t,i);var C,I,P,R=function(r){if(r===y&&N)return N;if(!b&&r&&r in M)return M[r];switch(r){case E:case A:case T:return function(){return new e(this,r)}}return function(){return new e(this)}},_=t+" Iterator",j=!1,M=r.prototype,L=M[w]||M["@@iterator"]||y&&M[y],N=!b&&L||R(y),D="Array"===t&&M.entries||L;if(D&&(C=s(D.call(new r)))!==Object.prototype&&C.next&&(a||s(C)===m||(f?f(C,m):u(C[w])||v(C,w,O)),p(C,_,!0,!0),a&&(d[_]=O)),g&&y===A&&L&&L.name!==A&&(!a&&x?l(M,"name",A):(j=!0,N=function(){return o(L,this)})),y)if(I={values:R(A),keys:h?N:R(E),entries:R(T)},S)for(P in I)(b||j||!(P in M))&&v(M,P,I[P]);else n({target:t,proto:!0,forced:b||j},I);return a&&!S||M[w]===N||v(M,w,N,{name:y}),d[t]=N,I}},57657:(r,t,e)=>{var n,o,a,i=e(79039),u=e(94901),c=e(20034),s=e(2360),f=e(42787),p=e(36840),l=e(78227),v=e(96395),y=l("iterator"),d=!1;[].keys&&("next"in(a=[].keys())?(o=f(f(a)))!==Object.prototype&&(n=o):d=!0),!c(n)||i((function(){var r={};return n[y].call(r)!==r}))?n={}:v&&(n=s(n)),u(n[y])||p(n,y,(function(){return this})),r.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:d}},26269:r=>{r.exports={}},26198:(r,t,e)=>{var n=e(18014);r.exports=function(r){return n(r.length)}},50283:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(39297),u=e(43724),c=e(10350).CONFIGURABLE,s=e(33706),f=e(91181),p=f.enforce,l=f.get,v=String,y=Object.defineProperty,d=n("".slice),h=n("".replace),g=n([].join),x=u&&!o((function(){return 8!==y((function(){}),"length",{value:8}).length})),m=String(String).split("String"),b=r.exports=function(r,t,e){"Symbol("===d(v(t),0,7)&&(t="["+h(v(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),e&&e.getter&&(t="get "+t),e&&e.setter&&(t="set "+t),(!i(r,"name")||c&&r.name!==t)&&(u?y(r,"name",{value:t,configurable:!0}):r.name=t),x&&e&&i(e,"arity")&&r.length!==e.arity&&y(r,"length",{value:e.arity});try{e&&i(e,"constructor")&&e.constructor?u&&y(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch(r){}var n=p(r);return i(n,"source")||(n.source=g(m,"string"==typeof t?t:"")),r};Function.prototype.toString=b((function(){return a(this)&&l(this).source||s(this)}),"toString")},33164:(r,t,e)=>{var n=e(77782),o=Math.abs,a=2220446049250313e-31,i=1/a;r.exports=function(r,t,e,u){var c=+r,s=o(c),f=n(c);if(s<u)return f*function(r){return r+i-i}(s/u/t)*u*t;var p=(1+t/a)*s,l=p-(p-s);return l>e||l!=l?f*(1/0):f*l}},15617:(r,t,e)=>{var n=e(33164);r.exports=Math.fround||function(r){return n(r,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)}},77782:r=>{r.exports=Math.sign||function(r){var t=+r;return 0===t||t!=t?t:t<0?-1:1}},80741:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},32603:(r,t,e)=>{var n=e(655);r.exports=function(r,t){return void 0===r?arguments.length<2?"":t:n(r)}},2360:(r,t,e)=>{var n,o=e(28551),a=e(96801),i=e(88727),u=e(30421),c=e(20397),s=e(4055),f=e(66119),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},96801:(r,t,e)=>{var n=e(43724),o=e(48686),a=e(24913),i=e(28551),u=e(25397),c=e(71072);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},24913:(r,t,e)=>{var n=e(43724),o=e(35917),a=e(48686),i=e(28551),u=e(56969),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},77347:(r,t,e)=>{var n=e(43724),o=e(69565),a=e(48773),i=e(6980),u=e(25397),c=e(56969),s=e(39297),f=e(35917),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},38480:(r,t,e)=>{var n=e(61828),o=e(88727).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(r){return n(r,o)}},33717:(r,t)=>{t.f=Object.getOwnPropertySymbols},42787:(r,t,e)=>{var n=e(39297),o=e(94901),a=e(48981),i=e(66119),u=e(12211),c=i("IE_PROTO"),s=Object,f=s.prototype;r.exports=u?s.getPrototypeOf:function(r){var t=a(r);if(n(t,c))return t[c];var e=t.constructor;return o(e)&&t instanceof e?e.prototype:t instanceof s?f:null}},1625:(r,t,e)=>{var n=e(79504);r.exports=n({}.isPrototypeOf)},61828:(r,t,e)=>{var n=e(79504),o=e(39297),a=e(25397),i=e(19617).indexOf,u=e(30421),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},71072:(r,t,e)=>{var n=e(61828),o=e(88727);r.exports=Object.keys||function(r){return n(r,o)}},48773:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},52967:(r,t,e)=>{var n=e(46706),o=e(20034),a=e(67750),i=e(73506);r.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r,t=!1,e={};try{(r=n(Object.prototype,"__proto__","set"))(e,[]),t=e instanceof Array}catch(r){}return function(e,n){return a(e),i(n),o(e)?(t?r(e,n):e.__proto__=n,e):e}}():void 0)},53179:(r,t,e)=>{var n=e(92140),o=e(36955);r.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},84270:(r,t,e)=>{var n=e(69565),o=e(94901),a=e(20034),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},35031:(r,t,e)=>{var n=e(97751),o=e(79504),a=e(38480),i=e(33717),u=e(28551),c=o([].concat);r.exports=n("Reflect","ownKeys")||function(r){var t=a.f(u(r)),e=i.f;return e?c(t,e(r)):t}},19167:(r,t,e)=>{var n=e(44576);r.exports=n},11056:(r,t,e)=>{var n=e(24913).f;r.exports=function(r,t,e){e in r||n(r,e,{configurable:!0,get:function(){return t[e]},set:function(r){t[e]=r}})}},56682:(r,t,e)=>{var n=e(69565),o=e(28551),a=e(94901),i=e(22195),u=e(57323),c=TypeError;r.exports=function(r,t){var e=r.exec;if(a(e)){var s=n(e,r,t);return null!==s&&o(s),s}if("RegExp"===i(r))return n(u,r,t);throw new c("RegExp#exec called on incompatible receiver")}},57323:(r,t,e)=>{var n,o,a=e(69565),i=e(79504),u=e(655),c=e(67979),s=e(58429),f=e(25745),p=e(2360),l=e(91181).get,v=e(83635),y=e(18814),d=f("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,g=h,x=i("".charAt),m=i("".indexOf),b=i("".replace),w=i("".slice),E=(o=/b*/g,a(h,n=/a/,"a"),a(h,o,"a"),0!==n.lastIndex||0!==o.lastIndex),A=s.BROKEN_CARET,T=void 0!==/()??/.exec("")[1];(E||T||A||v||y)&&(g=function(r){var t,e,n,o,i,s,f,v=this,y=l(v),O=u(r),S=y.raw;if(S)return S.lastIndex=v.lastIndex,t=a(g,S,O),v.lastIndex=S.lastIndex,t;var C=y.groups,I=A&&v.sticky,P=a(c,v),R=v.source,_=0,j=O;if(I&&(P=b(P,"y",""),-1===m(P,"g")&&(P+="g"),j=w(O,v.lastIndex),v.lastIndex>0&&(!v.multiline||v.multiline&&"\n"!==x(O,v.lastIndex-1))&&(R="(?: "+R+")",j=" "+j,_++),e=new RegExp("^(?:"+R+")",P)),T&&(e=new RegExp("^"+R+"$(?!\\s)",P)),E&&(n=v.lastIndex),o=a(h,I?e:v,j),I?o?(o.input=w(o.input,_),o[0]=w(o[0],_),o.index=v.lastIndex,v.lastIndex+=o[0].length):v.lastIndex=0:E&&o&&(v.lastIndex=v.global?o.index+o[0].length:n),T&&o&&o.length>1&&a(d,o[0],e,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(o[i]=void 0)})),o&&C)for(o.groups=s=p(null),i=0;i<C.length;i++)s[(f=C[i])[0]]=o[f[1]];return o}),r.exports=g},67979:(r,t,e)=>{var n=e(28551);r.exports=function(){var r=n(this),t="";return r.hasIndices&&(t+="d"),r.global&&(t+="g"),r.ignoreCase&&(t+="i"),r.multiline&&(t+="m"),r.dotAll&&(t+="s"),r.unicode&&(t+="u"),r.unicodeSets&&(t+="v"),r.sticky&&(t+="y"),t}},61034:(r,t,e)=>{var n=e(69565),o=e(39297),a=e(1625),i=e(67979),u=RegExp.prototype;r.exports=function(r){var t=r.flags;return void 0!==t||"flags"in u||o(r,"flags")||!a(u,r)?t:n(i,r)}},58429:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp,a=n((function(){var r=o("a","y");return r.lastIndex=2,null!==r.exec("abcd")})),i=a||n((function(){return!o("a","y").sticky})),u=a||n((function(){var r=o("^r","gy");return r.lastIndex=2,null!==r.exec("str")}));r.exports={BROKEN_CARET:u,MISSED_STICKY:i,UNSUPPORTED_Y:a}},83635:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o(".","s");return!(r.dotAll&&r.test("\n")&&"s"===r.flags)}))},18814:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o("(?<a>b)","g");return"b"!==r.exec("b").groups.a||"bc"!=="b".replace(r,"$<a>c")}))},67750:(r,t,e)=>{var n=e(64117),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},87633:(r,t,e)=>{var n=e(97751),o=e(62106),a=e(78227),i=e(43724),u=a("species");r.exports=function(r){var t=n(r);i&&t&&!t[u]&&o(t,u,{configurable:!0,get:function(){return this}})}},10687:(r,t,e)=>{var n=e(24913).f,o=e(39297),a=e(78227)("toStringTag");r.exports=function(r,t,e){r&&!e&&(r=r.prototype),r&&!o(r,a)&&n(r,a,{configurable:!0,value:t})}},66119:(r,t,e)=>{var n=e(25745),o=e(33392),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},77629:(r,t,e)=>{var n=e(96395),o=e(44576),a=e(39433),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},25745:(r,t,e)=>{var n=e(77629);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},2293:(r,t,e)=>{var n=e(28551),o=e(35548),a=e(64117),i=e(78227)("species");r.exports=function(r,t){var e,u=n(r).constructor;return void 0===u||a(e=n(u)[i])?t:o(e)}},68183:(r,t,e)=>{var n=e(79504),o=e(91291),a=e(655),i=e(67750),u=n("".charAt),c=n("".charCodeAt),s=n("".slice),f=function(r){return function(t,e){var n,f,p=a(i(t)),l=o(e),v=p.length;return l<0||l>=v?r?"":void 0:(n=c(p,l))<55296||n>56319||l+1===v||(f=c(p,l+1))<56320||f>57343?r?u(p,l):n:r?s(p,l,l+2):f-56320+(n-55296<<10)+65536}};r.exports={codeAt:f(!1),charAt:f(!0)}},43802:(r,t,e)=>{var n=e(79504),o=e(67750),a=e(655),i=e(47452),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},1548:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(39519),i=e(84215),u=n.structuredClone;r.exports=!!u&&!o((function(){if("DENO"===i&&a>92||"NODE"===i&&a>94||"BROWSER"===i&&a>97)return!1;var r=new ArrayBuffer(8),t=u(r,{transfer:[r]});return 0!==r.byteLength||8!==t.byteLength}))},4495:(r,t,e)=>{var n=e(39519),o=e(79039),a=e(44576).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},31240:(r,t,e)=>{var n=e(79504);r.exports=n(1..valueOf)},35610:(r,t,e)=>{var n=e(91291),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},75854:(r,t,e)=>{var n=e(72777),o=TypeError;r.exports=function(r){var t=n(r,"number");if("number"==typeof t)throw new o("Can't convert number to bigint");return BigInt(t)}},57696:(r,t,e)=>{var n=e(91291),o=e(18014),a=RangeError;r.exports=function(r){if(void 0===r)return 0;var t=n(r),e=o(t);if(t!==e)throw new a("Wrong length or index");return e}},25397:(r,t,e)=>{var n=e(47055),o=e(67750);r.exports=function(r){return n(o(r))}},91291:(r,t,e)=>{var n=e(80741);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},18014:(r,t,e)=>{var n=e(91291),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},48981:(r,t,e)=>{var n=e(67750),o=Object;r.exports=function(r){return o(n(r))}},58229:(r,t,e)=>{var n=e(99590),o=RangeError;r.exports=function(r,t){var e=n(r);if(e%t)throw new o("Wrong offset");return e}},99590:(r,t,e)=>{var n=e(91291),o=RangeError;r.exports=function(r){var t=n(r);if(t<0)throw new o("The argument can't be less than 0");return t}},72777:(r,t,e)=>{var n=e(69565),o=e(20034),a=e(10757),i=e(55966),u=e(84270),c=e(78227),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},56969:(r,t,e)=>{var n=e(72777),o=e(10757);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},92140:(r,t,e)=>{var n={};n[e(78227)("toStringTag")]="z",r.exports="[object z]"===String(n)},655:(r,t,e)=>{var n=e(36955),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},58319:r=>{var t=Math.round;r.exports=function(r){var e=t(r);return e<0?0:e>255?255:255&e}},16823:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},15823:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(69565),i=e(43724),u=e(72805),c=e(94644),s=e(66346),f=e(90679),p=e(6980),l=e(66699),v=e(2087),y=e(18014),d=e(57696),h=e(58229),g=e(58319),x=e(56969),m=e(39297),b=e(36955),w=e(20034),E=e(10757),A=e(2360),T=e(1625),O=e(52967),S=e(38480).f,C=e(43251),I=e(59213).forEach,P=e(87633),R=e(62106),_=e(24913),j=e(77347),M=e(35370),L=e(91181),N=e(23167),D=L.get,F=L.set,k=L.enforce,B=_.f,U=j.f,V=o.RangeError,Y=s.ArrayBuffer,W=Y.prototype,G=s.DataView,H=c.NATIVE_ARRAY_BUFFER_VIEWS,z=c.TYPED_ARRAY_TAG,$=c.TypedArray,X=c.TypedArrayPrototype,q=c.isTypedArray,K="BYTES_PER_ELEMENT",J="Wrong length",Q=function(r,t){R(r,t,{configurable:!0,get:function(){return D(this)[t]}})},Z=function(r){var t;return T(W,r)||"ArrayBuffer"===(t=b(r))||"SharedArrayBuffer"===t},rr=function(r,t){return q(r)&&!E(t)&&t in r&&v(+t)&&t>=0},tr=function(r,t){return t=x(t),rr(r,t)?p(2,r[t]):U(r,t)},er=function(r,t,e){return t=x(t),!(rr(r,t)&&w(e)&&m(e,"value"))||m(e,"get")||m(e,"set")||e.configurable||m(e,"writable")&&!e.writable||m(e,"enumerable")&&!e.enumerable?B(r,t,e):(r[t]=e.value,r)};i?(H||(j.f=tr,_.f=er,Q(X,"buffer"),Q(X,"byteOffset"),Q(X,"byteLength"),Q(X,"length")),n({target:"Object",stat:!0,forced:!H},{getOwnPropertyDescriptor:tr,defineProperty:er}),r.exports=function(r,t,e){var i=r.match(/\d+/)[0]/8,c=r+(e?"Clamped":"")+"Array",s="get"+r,p="set"+r,v=o[c],x=v,m=x&&x.prototype,b={},E=function(r,t){B(r,t,{get:function(){return function(r,t){var e=D(r);return e.view[s](t*i+e.byteOffset,!0)}(this,t)},set:function(r){return function(r,t,n){var o=D(r);o.view[p](t*i+o.byteOffset,e?g(n):n,!0)}(this,t,r)},enumerable:!0})};H?u&&(x=t((function(r,t,e,n){return f(r,m),N(w(t)?Z(t)?void 0!==n?new v(t,h(e,i),n):void 0!==e?new v(t,h(e,i)):new v(t):q(t)?M(x,t):a(C,x,t):new v(d(t)),r,x)})),O&&O(x,$),I(S(v),(function(r){r in x||l(x,r,v[r])})),x.prototype=m):(x=t((function(r,t,e,n){f(r,m);var o,u,c,s=0,p=0;if(w(t)){if(!Z(t))return q(t)?M(x,t):a(C,x,t);o=t,p=h(e,i);var l=t.byteLength;if(void 0===n){if(l%i)throw new V(J);if((u=l-p)<0)throw new V(J)}else if((u=y(n)*i)+p>l)throw new V(J);c=u/i}else c=d(t),o=new Y(u=c*i);for(F(r,{buffer:o,byteOffset:p,byteLength:u,length:c,view:new G(o)});s<c;)E(r,s++)})),O&&O(x,$),m=x.prototype=A(X)),m.constructor!==x&&l(m,"constructor",x),k(m).TypedArrayConstructor=x,z&&l(m,z,c);var T=x!==v;b[c]=x,n({global:!0,constructor:!0,forced:T,sham:!H},b),K in x||l(x,K,i),K in m||l(m,K,i),P(c)}):r.exports=function(){}},72805:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(84428),i=e(94644).NATIVE_ARRAY_BUFFER_VIEWS,u=n.ArrayBuffer,c=n.Int8Array;r.exports=!i||!o((function(){c(1)}))||!o((function(){new c(-1)}))||!a((function(r){new c,new c(null),new c(1.5),new c(r)}),!0)||o((function(){return 1!==new c(new u(2),1,void 0).length}))},26357:(r,t,e)=>{var n=e(35370),o=e(61412);r.exports=function(r,t){return n(o(r),t)}},43251:(r,t,e)=>{var n=e(76080),o=e(69565),a=e(35548),i=e(48981),u=e(26198),c=e(70081),s=e(50851),f=e(44209),p=e(18727),l=e(94644).aTypedArrayConstructor,v=e(75854);r.exports=function(r){var t,e,y,d,h,g,x,m,b=a(this),w=i(r),E=arguments.length,A=E>1?arguments[1]:void 0,T=void 0!==A,O=s(w);if(O&&!f(O))for(m=(x=c(w,O)).next,w=[];!(g=o(m,x)).done;)w.push(g.value);for(T&&E>2&&(A=n(A,arguments[2])),e=u(w),y=new(l(b))(e),d=p(y),t=0;e>t;t++)h=T?A(w[t],t):w[t],y[t]=d?v(h):+h;return y}},61412:(r,t,e)=>{var n=e(94644),o=e(2293),a=n.aTypedArrayConstructor,i=n.getTypedArrayConstructor;r.exports=function(r){return a(o(r,i(r)))}},33392:(r,t,e)=>{var n=e(79504),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},7040:(r,t,e)=>{var n=e(4495);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},48686:(r,t,e)=>{var n=e(43724),o=e(79039);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},58622:(r,t,e)=>{var n=e(44576),o=e(94901),a=n.WeakMap;r.exports=o(a)&&/native code/.test(String(a))},78227:(r,t,e)=>{var n=e(44576),o=e(25745),a=e(39297),i=e(33392),u=e(4495),c=e(7040),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},47452:r=>{r.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},14601:(r,t,e)=>{var n=e(97751),o=e(39297),a=e(66699),i=e(1625),u=e(52967),c=e(77740),s=e(11056),f=e(23167),p=e(32603),l=e(77584),v=e(80747),y=e(43724),d=e(96395);r.exports=function(r,t,e,h){var g="stackTraceLimit",x=h?2:1,m=r.split("."),b=m[m.length-1],w=n.apply(null,m);if(w){var E=w.prototype;if(!d&&o(E,"cause")&&delete E.cause,!e)return w;var A=n("Error"),T=t((function(r,t){var e=p(h?t:r,void 0),n=h?new w(r):new w;return void 0!==e&&a(n,"message",e),v(n,T,n.stack,2),this&&i(E,this)&&f(n,this,T),arguments.length>x&&l(n,arguments[x]),n}));if(T.prototype=E,"Error"!==b?u?u(T,A):c(T,A,{name:!0}):y&&g in w&&(s(T,w,g),s(T,w,"prepareStackTrace")),c(T,w),!d)try{E.name!==b&&a(E,"name",b),E.constructor=T}catch(r){}return T}}},54743:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(66346),i=e(87633),u="ArrayBuffer",c=a[u];n({global:!0,constructor:!0,forced:o[u]!==c},{ArrayBuffer:c}),i(u)},16573:(r,t,e)=>{var n=e(43724),o=e(62106),a=e(3238),i=ArrayBuffer.prototype;n&&!("detached"in i)&&o(i,"detached",{configurable:!0,get:function(){return a(this)}})},11745:(r,t,e)=>{var n=e(46518),o=e(27476),a=e(79039),i=e(66346),u=e(28551),c=e(35610),s=e(18014),f=e(2293),p=i.ArrayBuffer,l=i.DataView,v=l.prototype,y=o(p.prototype.slice),d=o(v.getUint8),h=o(v.setUint8);n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:a((function(){return!new p(2).slice(1,void 0).byteLength}))},{slice:function(r,t){if(y&&void 0===t)return y(u(this),r);for(var e=u(this).byteLength,n=c(r,e),o=c(void 0===t?e:t,e),a=new(f(this,p))(s(o-n)),i=new l(this),v=new l(a),g=0;n<o;)h(v,g++,d(i,n++));return a}})},77936:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return o(this,arguments.length?arguments[0]:void 0,!1)}})},78100:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transfer:function(){return o(this,arguments.length?arguments[0]:void 0,!0)}})},23792:(r,t,e)=>{var n=e(25397),o=e(6469),a=e(26269),i=e(91181),u=e(24913).f,c=e(51088),s=e(62529),f=e(96395),p=e(43724),l="Array Iterator",v=i.set,y=i.getterFor(l);r.exports=c(Array,"Array",(function(r,t){v(this,{type:l,target:n(r),index:0,kind:t})}),(function(){var r=y(this),t=r.target,e=r.index++;if(!t||e>=t.length)return r.target=null,s(void 0,!0);switch(r.kind){case"keys":return s(e,!1);case"values":return s(t[e],!1)}return s([e,t[e]],!1)}),"values");var d=a.Arguments=a.Array;if(o("keys"),o("values"),o("entries"),!f&&p&&"values"!==d.name)try{u(d,"name",{value:"values"})}catch(r){}},24359:(r,t,e)=>{var n=e(46518),o=e(66346);n({global:!0,constructor:!0,forced:!e(77811)},{DataView:o.DataView})},38309:(r,t,e)=>{e(24359)},23288:(r,t,e)=>{var n=e(79504),o=e(36840),a=Date.prototype,i="Invalid Date",u="toString",c=n(a[u]),s=n(a.getTime);String(new Date(NaN))!==i&&o(a,u,(function(){var r=s(this);return r==r?c(this):i}))},16280:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(18745),i=e(14601),u="WebAssembly",c=o[u],s=7!==new Error("e",{cause:7}).cause,f=function(r,t){var e={};e[r]=i(r,t,s),n({global:!0,constructor:!0,arity:1,forced:s},e)},p=function(r,t){if(c&&c[r]){var e={};e[r]=i(u+"."+r,t,s),n({target:u,stat:!0,constructor:!0,arity:1,forced:s},e)}};f("Error",(function(r){return function(t){return a(r,this,arguments)}})),f("EvalError",(function(r){return function(t){return a(r,this,arguments)}})),f("RangeError",(function(r){return function(t){return a(r,this,arguments)}})),f("ReferenceError",(function(r){return function(t){return a(r,this,arguments)}})),f("SyntaxError",(function(r){return function(t){return a(r,this,arguments)}})),f("TypeError",(function(r){return function(t){return a(r,this,arguments)}})),f("URIError",(function(r){return function(t){return a(r,this,arguments)}})),p("CompileError",(function(r){return function(t){return a(r,this,arguments)}})),p("LinkError",(function(r){return function(t){return a(r,this,arguments)}})),p("RuntimeError",(function(r){return function(t){return a(r,this,arguments)}}))},76918:(r,t,e)=>{var n=e(36840),o=e(77536),a=Error.prototype;a.toString!==o&&n(a,"toString",o)},2892:(r,t,e)=>{var n=e(46518),o=e(96395),a=e(43724),i=e(44576),u=e(19167),c=e(79504),s=e(92796),f=e(39297),p=e(23167),l=e(1625),v=e(10757),y=e(72777),d=e(79039),h=e(38480).f,g=e(77347).f,x=e(24913).f,m=e(31240),b=e(43802).trim,w="Number",E=i[w],A=u[w],T=E.prototype,O=i.TypeError,S=c("".slice),C=c("".charCodeAt),I=s(w,!E(" 0o1")||!E("0b1")||E("+0x1")),P=function(r){var t,e=arguments.length<1?0:E(function(r){var t=y(r,"number");return"bigint"==typeof t?t:function(r){var t,e,n,o,a,i,u,c,s=y(r,"number");if(v(s))throw new O("Cannot convert a Symbol value to a number");if("string"==typeof s&&s.length>2)if(s=b(s),43===(t=C(s,0))||45===t){if(88===(e=C(s,2))||120===e)return NaN}else if(48===t){switch(C(s,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+s}for(i=(a=S(s,2)).length,u=0;u<i;u++)if((c=C(a,u))<48||c>o)return NaN;return parseInt(a,n)}return+s}(t)}(r));return l(T,t=this)&&d((function(){m(t)}))?p(Object(e),this,P):e};P.prototype=T,I&&!o&&(T.constructor=P),n({global:!0,constructor:!0,wrap:!0,forced:I},{Number:P});var R=function(r,t){for(var e,n=a?h(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)f(t,e=n[o])&&!f(r,e)&&x(r,e,g(t,e))};o&&A&&R(u[w],A),(I||o)&&R(u[w],E)},79432:(r,t,e)=>{var n=e(46518),o=e(48981),a=e(71072);n({target:"Object",stat:!0,forced:e(79039)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},26099:(r,t,e)=>{var n=e(92140),o=e(36840),a=e(53179);n||o(Object.prototype,"toString",a,{unsafe:!0})},84864:(r,t,e)=>{var n=e(43724),o=e(44576),a=e(79504),i=e(92796),u=e(23167),c=e(66699),s=e(2360),f=e(38480).f,p=e(1625),l=e(60788),v=e(655),y=e(61034),d=e(58429),h=e(11056),g=e(36840),x=e(79039),m=e(39297),b=e(91181).enforce,w=e(87633),E=e(78227),A=e(83635),T=e(18814),O=E("match"),S=o.RegExp,C=S.prototype,I=o.SyntaxError,P=a(C.exec),R=a("".charAt),_=a("".replace),j=a("".indexOf),M=a("".slice),L=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,N=/a/g,D=/a/g,F=new S(N)!==N,k=d.MISSED_STICKY,B=d.UNSUPPORTED_Y;if(i("RegExp",n&&(!F||k||A||T||x((function(){return D[O]=!1,S(N)!==N||S(D)===D||"/a/i"!==String(S(N,"i"))}))))){for(var U=function(r,t){var e,n,o,a,i,f,d=p(C,this),h=l(r),g=void 0===t,x=[],w=r;if(!d&&h&&g&&r.constructor===U)return r;if((h||p(C,r))&&(r=r.source,g&&(t=y(w))),r=void 0===r?"":v(r),t=void 0===t?"":v(t),w=r,A&&"dotAll"in N&&(n=!!t&&j(t,"s")>-1)&&(t=_(t,/s/g,"")),e=t,k&&"sticky"in N&&(o=!!t&&j(t,"y")>-1)&&B&&(t=_(t,/y/g,"")),T&&(a=function(r){for(var t,e=r.length,n=0,o="",a=[],i=s(null),u=!1,c=!1,f=0,p="";n<=e;n++){if("\\"===(t=R(r,n)))t+=R(r,++n);else if("]"===t)u=!1;else if(!u)switch(!0){case"["===t:u=!0;break;case"("===t:if(o+=t,"?:"===M(r,n+1,n+3))continue;P(L,M(r,n+1))&&(n+=2,c=!0),f++;continue;case">"===t&&c:if(""===p||m(i,p))throw new I("Invalid capture group name");i[p]=!0,a[a.length]=[p,f],c=!1,p="";continue}c?p+=t:o+=t}return[o,a]}(r),r=a[0],x=a[1]),i=u(S(r,t),d?this:C,U),(n||o||x.length)&&(f=b(i),n&&(f.dotAll=!0,f.raw=U(function(r){for(var t,e=r.length,n=0,o="",a=!1;n<=e;n++)"\\"!==(t=R(r,n))?a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),o+=t):o+="[\\s\\S]":o+=t+R(r,++n);return o}(r),e)),o&&(f.sticky=!0),x.length&&(f.groups=x)),r!==w)try{c(i,"source",""===w?"(?:)":w)}catch(r){}return i},V=f(S),Y=0;V.length>Y;)h(U,S,V[Y++]);C.constructor=U,U.prototype=C,g(o,"RegExp",U,{constructor:!0})}w("RegExp")},57465:(r,t,e)=>{var n=e(43724),o=e(83635),a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"dotAll",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).dotAll;throw new s("Incompatible receiver, RegExp required")}}})},27495:(r,t,e)=>{var n=e(46518),o=e(57323);n({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},87745:(r,t,e)=>{var n=e(43724),o=e(58429).MISSED_STICKY,a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).sticky;throw new s("Incompatible receiver, RegExp required")}}})},90906:(r,t,e)=>{e(27495);var n,o,a=e(46518),i=e(69565),u=e(94901),c=e(28551),s=e(655),f=(n=!1,(o=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&n),p=/./.test;a({target:"RegExp",proto:!0,forced:!f},{test:function(r){var t=c(this),e=s(r),n=t.exec;if(!u(n))return i(p,t,e);var o=i(n,t,e);return null!==o&&(c(o),!0)}})},38781:(r,t,e)=>{var n=e(10350).PROPER,o=e(36840),a=e(28551),i=e(655),u=e(79039),c=e(61034),s="toString",f=RegExp.prototype,p=f[s],l=u((function(){return"/a/b"!==p.call({source:"a",flags:"b"})})),v=n&&p.name!==s;(l||v)&&o(f,s,(function(){var r=a(this);return"/"+i(r.source)+"/"+i(c(r))}),{unsafe:!0})},25440:(r,t,e)=>{var n=e(18745),o=e(69565),a=e(79504),i=e(89228),u=e(79039),c=e(28551),s=e(94901),f=e(64117),p=e(91291),l=e(18014),v=e(655),y=e(67750),d=e(57829),h=e(55966),g=e(2478),x=e(56682),m=e(78227)("replace"),b=Math.max,w=Math.min,E=a([].concat),A=a([].push),T=a("".indexOf),O=a("".slice),S="$0"==="a".replace(/./,"$0"),C=!!/./[m]&&""===/./[m]("a","$0");i("replace",(function(r,t,e){var a=C?"$":"$0";return[function(r,e){var n=y(this),a=f(r)?void 0:h(r,m);return a?o(a,r,n,e):o(t,v(n),r,e)},function(r,o){var i=c(this),u=v(r);if("string"==typeof o&&-1===T(o,a)&&-1===T(o,"$<")){var f=e(t,i,u,o);if(f.done)return f.value}var y=s(o);y||(o=v(o));var h,m=i.global;m&&(h=i.unicode,i.lastIndex=0);for(var S,C=[];null!==(S=x(i,u))&&(A(C,S),m);)""===v(S[0])&&(i.lastIndex=d(u,l(i.lastIndex),h));for(var I,P="",R=0,_=0;_<C.length;_++){for(var j,M=v((S=C[_])[0]),L=b(w(p(S.index),u.length),0),N=[],D=1;D<S.length;D++)A(N,void 0===(I=S[D])?I:String(I));var F=S.groups;if(y){var k=E([M],N,L,u);void 0!==F&&A(k,F),j=v(n(o,void 0,k))}else j=g(M,u,L,N,F,o);L>=R&&(P+=O(u,R,L)+j,R=L+M.length)}return P+O(u,R)}]}),!!u((function(){var r=/./;return r.exec=function(){var r=[];return r.groups={a:"7"},r},"7"!=="".replace(r,"$<a>")}))||!S||C)},50375:(r,t,e)=>{var n=e(46518),o=e(79504),a=e(67750),i=e(91291),u=e(655),c=o("".slice),s=Math.max,f=Math.min;n({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(r,t){var e,n,o=u(a(this)),p=o.length,l=i(r);return l===1/0&&(l=0),l<0&&(l=s(p+l,0)),(e=void 0===t?p:i(t))<=0||e===1/0||l>=(n=f(l+e,p))?"":c(o,l,n)}})},48140:(r,t,e)=>{var n=e(94644),o=e(26198),a=e(91291),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("at",(function(r){var t=i(this),e=o(t),n=a(r),u=n>=0?n:e+n;return u<0||u>=e?void 0:t[u]}))},81630:(r,t,e)=>{var n=e(79504),o=e(94644),a=n(e(57029)),i=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(r,t){return a(i(this),r,t,arguments.length>2?arguments[2]:void 0)}))},72170:(r,t,e)=>{var n=e(94644),o=e(59213).every,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},75044:(r,t,e)=>{var n=e(94644),o=e(84373),a=e(75854),i=e(36955),u=e(69565),c=e(79504),s=e(79039),f=n.aTypedArray,p=n.exportTypedArrayMethod,l=c("".slice);p("fill",(function(r){var t=arguments.length;f(this);var e="Big"===l(i(this),0,3)?a(r):+r;return u(o,this,e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),s((function(){var r=0;return new Int8Array(2).fill({valueOf:function(){return r++}}),1!==r})))},69539:(r,t,e)=>{var n=e(94644),o=e(59213).filter,a=e(26357),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("filter",(function(r){var t=o(i(this),r,arguments.length>1?arguments[1]:void 0);return a(this,t)}))},89955:(r,t,e)=>{var n=e(94644),o=e(59213).findIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},91134:(r,t,e)=>{var n=e(94644),o=e(43839).findLastIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLastIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},21903:(r,t,e)=>{var n=e(94644),o=e(43839).findLast,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLast",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},31694:(r,t,e)=>{var n=e(94644),o=e(59213).find,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},33206:(r,t,e)=>{var n=e(94644),o=e(59213).forEach,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",(function(r){o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},44496:(r,t,e)=>{var n=e(94644),o=e(19617).includes,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},66651:(r,t,e)=>{var n=e(94644),o=e(19617).indexOf,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},12887:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(79504),i=e(94644),u=e(23792),c=e(78227)("iterator"),s=n.Uint8Array,f=a(u.values),p=a(u.keys),l=a(u.entries),v=i.aTypedArray,y=i.exportTypedArrayMethod,d=s&&s.prototype,h=!o((function(){d[c].call([1])})),g=!!d&&d.values&&d[c]===d.values&&"values"===d.values.name,x=function(){return f(v(this))};y("entries",(function(){return l(v(this))}),h),y("keys",(function(){return p(v(this))}),h),y("values",x,h||!g,{name:"values"}),y(c,x,h||!g,{name:"values"})},19369:(r,t,e)=>{var n=e(94644),o=e(79504),a=n.aTypedArray,i=n.exportTypedArrayMethod,u=o([].join);i("join",(function(r){return u(a(this),r)}))},66812:(r,t,e)=>{var n=e(94644),o=e(18745),a=e(8379),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",(function(r){var t=arguments.length;return o(a,i(this),t>1?[r,arguments[1]]:[r])}))},8995:(r,t,e)=>{var n=e(94644),o=e(59213).map,a=e(61412),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("map",(function(r){return o(i(this),r,arguments.length>1?arguments[1]:void 0,(function(r,t){return new(a(r))(t)}))}))},36072:(r,t,e)=>{var n=e(94644),o=e(80926).right,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},31575:(r,t,e)=>{var n=e(94644),o=e(80926).left,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},88747:(r,t,e)=>{var n=e(94644),o=n.aTypedArray,a=n.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var r,t=this,e=o(t).length,n=i(e/2),a=0;a<n;)r=t[a],t[a++]=t[--e],t[e]=r;return t}))},28845:(r,t,e)=>{var n=e(44576),o=e(69565),a=e(94644),i=e(26198),u=e(58229),c=e(48981),s=e(79039),f=n.RangeError,p=n.Int8Array,l=p&&p.prototype,v=l&&l.set,y=a.aTypedArray,d=a.exportTypedArrayMethod,h=!s((function(){var r=new Uint8ClampedArray(2);return o(v,r,{length:1,0:3},1),3!==r[1]})),g=h&&a.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var r=new p(2);return r.set(1),r.set("2",1),0!==r[0]||2!==r[1]}));d("set",(function(r){y(this);var t=u(arguments.length>1?arguments[1]:void 0,1),e=c(r);if(h)return o(v,this,e,t);var n=this.length,a=i(e),s=0;if(a+t>n)throw new f("Wrong length");for(;s<a;)this[t+s]=e[s++]}),!h||g)},29423:(r,t,e)=>{var n=e(94644),o=e(61412),a=e(79039),i=e(67680),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("slice",(function(r,t){for(var e=i(u(this),r,t),n=o(this),a=0,c=e.length,s=new n(c);c>a;)s[a]=e[a++];return s}),a((function(){new Int8Array(1).slice()})))},57301:(r,t,e)=>{var n=e(94644),o=e(59213).some,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},373:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(79039),i=e(79306),u=e(74488),c=e(94644),s=e(13709),f=e(13763),p=e(39519),l=e(3607),v=c.aTypedArray,y=c.exportTypedArrayMethod,d=n.Uint16Array,h=d&&o(d.prototype.sort),g=!(!h||a((function(){h(new d(2),null)}))&&a((function(){h(new d(2),{})}))),x=!!h&&!a((function(){if(p)return p<74;if(s)return s<67;if(f)return!0;if(l)return l<602;var r,t,e=new d(516),n=Array(516);for(r=0;r<516;r++)t=r%4,e[r]=515-r,n[r]=r-2*t+3;for(h(e,(function(r,t){return(r/4|0)-(t/4|0)})),r=0;r<516;r++)if(e[r]!==n[r])return!0}));y("sort",(function(r){return void 0!==r&&i(r),x?h(this,r):u(v(this),function(r){return function(t,e){return void 0!==r?+r(t,e)||0:e!=e?-1:t!=t?1:0===t&&0===e?1/t>0&&1/e<0?1:-1:t>e}}(r))}),!x||g)},86614:(r,t,e)=>{var n=e(94644),o=e(18014),a=e(35610),i=e(61412),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("subarray",(function(r,t){var e=u(this),n=e.length,c=a(r,n);return new(i(e))(e.buffer,e.byteOffset+c*e.BYTES_PER_ELEMENT,o((void 0===t?n:a(t,n))-c))}))},41405:(r,t,e)=>{var n=e(44576),o=e(18745),a=e(94644),i=e(79039),u=e(67680),c=n.Int8Array,s=a.aTypedArray,f=a.exportTypedArrayMethod,p=[].toLocaleString,l=!!c&&i((function(){p.call(new c(1))}));f("toLocaleString",(function(){return o(p,l?u(s(this)):s(this),u(arguments))}),i((function(){return[1,2].toLocaleString()!==new c([1,2]).toLocaleString()}))||!i((function(){c.prototype.toLocaleString.call([1,2])})))},37467:(r,t,e)=>{var n=e(37628),o=e(94644),a=o.aTypedArray,i=o.exportTypedArrayMethod,u=o.getTypedArrayConstructor;i("toReversed",(function(){return n(a(this),u(this))}))},44732:(r,t,e)=>{var n=e(94644),o=e(79504),a=e(79306),i=e(35370),u=n.aTypedArray,c=n.getTypedArrayConstructor,s=n.exportTypedArrayMethod,f=o(n.TypedArrayPrototype.sort);s("toSorted",(function(r){void 0!==r&&a(r);var t=u(this),e=i(c(t),t);return f(e,r)}))},33684:(r,t,e)=>{var n=e(94644).exportTypedArrayMethod,o=e(79039),a=e(44576),i=e(79504),u=a.Uint8Array,c=u&&u.prototype||{},s=[].toString,f=i([].join);o((function(){s.call({})}))&&(s=function(){return f(this)});var p=c.toString!==s;n("toString",s,p)},21489:(r,t,e)=>{e(15823)("Uint8",(function(r){return function(t,e,n){return r(this,t,e,n)}}))},79577:(r,t,e)=>{var n=e(39928),o=e(94644),a=e(18727),i=e(91291),u=e(75854),c=o.aTypedArray,s=o.getTypedArrayConstructor,f=o.exportTypedArrayMethod,p=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(r){return 8===r}}();f("with",{with:function(r,t){var e=c(this),o=i(r),f=a(e)?u(t):+t;return n(e,s(e),o,f)}}.with,!p)}},t={};function e(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return r[n].call(a.exports,a,a.exports,e),a.exports}e.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return e.d(t,{a:t}),t},e.d=(r,t)=>{for(var n in t)e.o(t,n)&&!e.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:t[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),e.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t);var n={};e.d(n,{AP:()=>j,Bv:()=>O,DE:()=>f,KD:()=>_,LX:()=>g,Lu:()=>x,MD:()=>w,Nl:()=>y,Op:()=>S,R_:()=>d,UP:()=>b,V6:()=>m,Xj:()=>P,aX:()=>A,dF:()=>R,fH:()=>T,g:()=>s,jf:()=>h,of:()=>v,pL:()=>E,qT:()=>p,s1:()=>M,ue:()=>I,un:()=>l,yD:()=>C,yz:()=>_});var o=e(64007),a=e.n(o),i=e(11393),u=e.n(i),c=(e(2892),e(48618)),s={OPERATE:"operate",DETAIL:"detail",LOG:"log"},f={CURRENT_DATE:"_currentDate",REF_VAL:"_refVal"},p=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentTabPaneH5"],l="CustomComponentFormLayout",v="CustomComponentFormLayoutH5",y=["CustomComponentDialog"],d=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentDialog","ElButton","CustomComponentTable","CustomComponentRow","CustomComponentCol","CustomComponentCardH5","CustomComponentCollapseH5","CustomComponentTabsH5","CustomComponentTabPaneH5","CustomComponentTableH5","cmi-cell","cmi-button","cmi-link","cmi-dropdown-menu","cmi-divider"],h=["CmiInput","CmiSelect"],g=["CustomComponentTabPane","CustomComponentDialog","CustomComponentCol","CustomComponentTabPaneH5"],x=["CustomComponentTable"],m=["el-select","el-date-picker","el-time-picker","el-time-select","el-cascader","el-input-number","CustomComponentTree","CustomComponentSteps"],b=["el-span"],w="el-",E="t-",A="cmi-",T="H5-",O="1",S="0",C=["ElText"],I=["ElInput","ElDatePicker","ElInputNumber"],P=["ElSelect"],R="/gcweb/External_Mail",_={compInfo:{type:Object,getValue:function(r,t,e){return r}},modelValue:{type:[String,Number,Object,Array,void 0,null],getValue:function(r,t,e){return e.value}},config:{type:Object,getValue:function(r,t,e){return r}},refValue:{type:[Object,Number,String],default:"",getValue:function(r,t,e){return e}},disabled:{type:Boolean,default:!1,getValue:function(r,t,e){return j(r,t.mode)}},clearable:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.clearableFlag}},required:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.requiredFlag}},onlyRequiredFlag:{type:Boolean,default:!1,getValue:function(r,t,e){return r.onlyRequiredFlag}},tableData:{type:Array,default:function(){return[]},getValue:function(r,t,e){return t.tableData}},rowScope:{type:Object,getValue:function(r,t,e){return t.rowScope}},width:{type:[String,Number],default:"",getValue:function(r,t,e){return r.width?(0,c.M6)(r.width):null}},mode:{type:[String],default:"",getValue:function(r,t){return t.mode}},options:{type:Array,default:function(){return[]},getValue:function(r,t,e,n){return(0,c.fN)(r,n)}},placeholder:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return((null==o?void 0:a()(o).call(o,"zh"))>-1?r.defPlacehold:r.defPlaceholdEn)||""}},placeholderEn:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return r.defPlaceholdEn}}};function j(r,t){var e,n;return!(0,c.E1)(["CustomComponentTabs"],r)&&(t===s.LOG?!r.logAlong&&!(0,c.E1)(u()(e=[l]).call(e,p),r)||"0"===r.editFlag:t===s.DETAIL&&!r.detailAlong&&!(0,c.E1)(u()(n=[l]).call(n,p),r)||"0"===r.editFlag)}var M={row:"CustomComponentRow",grid:"CustomComponentRow","grid-col":"CustomComponentCol",table:"CustomComponentTable","checkbox-table":"CustomComponentTable",tab:"CustomComponentTabs","tab-pane":"CustomComponentTabPane",collapse:"CustomComponentCollapse",card:"CustomComponentCollapse",cycle:"CustomComponentCycle",input:"ElInput",textarea:"ElInput",button:"ElButton","static-text":"ElText",number:"ElInputNumber",radio:"ElRadio",checkbox:"ElCheckbox",select:"ElSelect",time:"ElTimePicker","time-range":"ElTimePicker",date:"ElDatePicker","date-range":"ElDatePicker",cascader:"ElCascader","select-employees":"CustomComponentSelectEmployees","rich-editor":"CustomComponentEditor",pagination:"ElPagination",tree:"CustomComponentTree",steps:"CustomComponentSteps","mail-send":"CustomComponentSendMail","cmi-card":"CustomComponentCardH5","cmi-collapse":"CustomComponentCollapseH5","cmi-tab":"CustomComponentTabsH5","cmi-tab-pane":"CustomComponentTabPaneH5","cmi-table":"CustomComponentTableH5","cmi-datetime":"CmiDatetimePicker"},L=n.DE,N=n.Nl,D=n.Op,F=n.Bv,k=n.un,B=n.of,U=n.aX,V=n.fH,Y=n.dF,W=n.s1,G=n.g,H=n.Lu,z=n.qT,$=n.LX,X=n.R_,q=n.yD,K=n.ue,J=n.Xj,Q=n.MD,Z=n.pL,rr=n.V6,tr=n.UP,er=n.jf,nr=n.AP,or=n.yz,ar=n.KD;export{L as ARG_FLAGS,N as CONTEXT_PEDDING_TYPE,D as DISPLAY_HIDDEN,F as DISPLAY_SHOW,k as FORM_META_TYPE,B as FORM_META_TYPE_H5,U as H5_PREFIX_FLAG,V as H5_REPLACE_PREFIX_FLAG,Y as MAIL_SEND_URL,W as META_TYPE_MAP,G as MODE,H as MULTI_PAGE_META_LIST_TYPES,z as NOT_LOG_EFFECT_TYPE,$ as NOT_NEED_COL_ITEM_META_TYPE,X as NOT_NEED_FORM_ITEM_META_TYPE,q as PLAIN_TYPE_ALONG_COLUMNS,K as PLAIN_TYPE_COLUMNS,J as PLAIN_TYPE_OPTIONS_COLUMNS,Q as PREFIX_FLAG,Z as REPLACE_PREFIX_FLAG,rr as SPECIAL_SET_FULL_WIDTH_ITEM_META_TYPE,tr as TABLE_COLUMN_NOT_RENDER_META_TYPE,er as TRANS_CELL_COMPONETS,nr as calcDisable,or as commonPropsType,ar as componentPropsType};
1
+ var r={48618:(r,t,e)=>{e.d(t,{E1:()=>A,M6:()=>x,fN:()=>T}),e(16280),e(76918),e(54743),e(11745),e(38309),e(16573),e(78100),e(77936),e(23288),e(2892),e(79432),e(26099),e(84864),e(57465),e(27495),e(87745),e(90906),e(38781),e(25440),e(50375),e(21489),e(48140),e(81630),e(72170),e(75044),e(69539),e(31694),e(89955),e(21903),e(91134),e(33206),e(44496),e(66651),e(12887),e(19369),e(66812),e(8995),e(31575),e(36072),e(88747),e(28845),e(29423),e(57301),e(373),e(86614),e(41405),e(37467),e(44732),e(33684),e(79577);var n=e(27681),o=e.n(n),a=e(71426),i=e.n(a),u=e(27124),c=e.n(u),s=e(36586),f=e.n(s),p=e(18979),l=e.n(p),v=e(73363),y=e.n(v),d=(e(86226),e(50697),e(11393),e(66615),e(11265),e(48079)),h=e.n(d);function g(r){var t=o()(null);return function(e){return t[e]||(t[e]=r(e))}}function x(r){if(!r)return null;var t=Number(r);if(isNaN(t)){var e=["px","%","vh","vw","rem","em"],n=i()(e).call(e,(function(t){return null==r?void 0:c()(r).call(r,t)}));return n?f()(r)+n:null}return t+"px"}e(12935);var m=/-(\w)/g,b=g((function(r){return r.replace(m,(function(r,t){return t?t.toUpperCase():""}))})),w=g((function(r){return r.charAt(0).toUpperCase()+l()(r).call(r,1)}));function E(r,t){var e=function(r,t){if("string"!=typeof t)return null;var e=r;if(void 0!==e[t]&&null!==e[t])return e[t];var n=b(t);if(void 0!==e[n]&&null!==e[n])return e[n];var o=w(n);return void 0!==e[o]&&null!==e[o]?e[o]:null}(y()(r).call(r,(function(r,t,e){return r[t]=e,r}),{}),t);return null==e?-1:e}function A(r,t){return-1!==E(r,null==t?void 0:t.renderby)||-1!==E(r,null==t?void 0:t.metaType)}function T(r,t){var e,n,o,a=r.referenceOptions,i=r.selectKey,u=[];try{var c;u=h()(c=JSON.parse((null==r?void 0:r.optionItems)||"[]")).call(c,(function(r){return{columnValue:r.value,columnDesc_zh:r.label,columnDesc:r.label_en||r.label,columnStatus:r.columnStatus}}))}catch(r){u=[]}return(null==t?void 0:t.value)&&(null==t||null===(e=t.value)||void 0===e?void 0:e[i])||(null==t?void 0:t.value)&&(null==t||null===(n=t.value)||void 0===n?void 0:n["".concat(r.metaCode,"ListValue")])||(null==t?void 0:t.value)&&(null==t||null===(o=t.value)||void 0===o?void 0:o[a])||u||[]}Object.prototype.hasOwnProperty},12935:(r,t,e)=>{e(66615),e(76918),e(23288),e(26099),e(27495),e(90906),e(38781),Object.prototype.toString},66615:(r,t,e)=>{e(18402)},11393:(r,t,e)=>{r.exports=e(50530)},27124:(r,t,e)=>{r.exports=e(85837)},71426:(r,t,e)=>{r.exports=e(99617)},86226:(r,t,e)=>{e(24525)},64007:(r,t,e)=>{r.exports=e(77852)},48079:(r,t,e)=>{r.exports=e(98894)},73363:(r,t,e)=>{r.exports=e(79528)},18979:(r,t,e)=>{r.exports=e(6686)},11265:(r,t,e)=>{e(12217)},27681:(r,t,e)=>{r.exports=e(93658)},50697:(r,t,e)=>{e(76490)},36586:(r,t,e)=>{r.exports=e(91921)},13531:(r,t,e)=>{e(92425);var n=e(92046);r.exports=n.Array.isArray},96275:(r,t,e)=>{e(58545);var n=e(61747);r.exports=n("Array","concat")},94668:(r,t,e)=>{e(6290);var n=e(61747);r.exports=n("Array","find")},22092:(r,t,e)=>{e(95650);var n=e(61747);r.exports=n("Array","forEach")},83309:(r,t,e)=>{e(66391);var n=e(61747);r.exports=n("Array","indexOf")},28253:(r,t,e)=>{e(6687);var n=e(61747);r.exports=n("Array","map")},16693:(r,t,e)=>{e(46339);var n=e(61747);r.exports=n("Array","reduce")},75265:(r,t,e)=>{e(62099);var n=e(61747);r.exports=n("Array","slice")},45837:(r,t,e)=>{var n=e(88280),o=e(96275),a=Array.prototype;r.exports=function(r){var t=r.concat;return r===a||n(a,r)&&t===a.concat?o:t}},64048:(r,t,e)=>{var n=e(88280),o=e(48270),a=String.prototype;r.exports=function(r){var t=r.endsWith;return"string"==typeof r||r===a||n(a,r)&&t===a.endsWith?o:t}},63246:(r,t,e)=>{var n=e(88280),o=e(94668),a=Array.prototype;r.exports=function(r){var t=r.find;return r===a||n(a,r)&&t===a.find?o:t}},44507:(r,t,e)=>{var n=e(88280),o=e(83309),a=Array.prototype;r.exports=function(r){var t=r.indexOf;return r===a||n(a,r)&&t===a.indexOf?o:t}},39299:(r,t,e)=>{var n=e(88280),o=e(28253),a=Array.prototype;r.exports=function(r){var t=r.map;return r===a||n(a,r)&&t===a.map?o:t}},28823:(r,t,e)=>{var n=e(88280),o=e(16693),a=Array.prototype;r.exports=function(r){var t=r.reduce;return r===a||n(a,r)&&t===a.reduce?o:t}},40303:(r,t,e)=>{var n=e(88280),o=e(75265),a=Array.prototype;r.exports=function(r){var t=r.slice;return r===a||n(a,r)&&t===a.slice?o:t}},8661:(r,t,e)=>{var n=e(88280),o=e(77511),a=String.prototype;r.exports=function(r){var t=r.trim;return"string"==typeof r||r===a||n(a,r)&&t===a.trim?o:t}},80149:(r,t,e)=>{e(25837);var n=e(92046).Object;r.exports=function(r,t){return n.create(r,t)}},19661:(r,t,e)=>{e(83589);var n=e(92046);r.exports=n.Object.keys},84326:(r,t,e)=>{e(42193);var n=e(92046);r.exports=n.parseInt},48270:(r,t,e)=>{e(80430);var n=e(61747);r.exports=n("String","endsWith")},77511:(r,t,e)=>{e(50727);var n=e(61747);r.exports=n("String","trim")},82159:(r,t,e)=>{var n=e(62250),o=e(4640),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},42156:r=>{r.exports=function(){}},36624:(r,t,e)=>{var n=e(46285),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},22914:(r,t,e)=>{var n=e(70726).forEach,o=e(77623)("forEach");r.exports=o?[].forEach:function(r){return n(this,r,arguments.length>1?arguments[1]:void 0)}},74436:(r,t,e)=>{var n=e(27374),o=e(34849),a=e(20575),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},70726:(r,t,e)=>{var n=e(28311),o=e(1907),a=e(16946),i=e(39298),u=e(20575),c=e(56968),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},59552:(r,t,e)=>{var n=e(98828),o=e(76264),a=e(20798),i=o("species");r.exports=function(r){return a>=51||!n((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[r](Boolean).foo}))}},77623:(r,t,e)=>{var n=e(98828);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},35043:(r,t,e)=>{var n=e(82159),o=e(39298),a=e(16946),i=e(20575),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},93427:(r,t,e)=>{var n=e(1907);r.exports=n([].slice)},64010:(r,t,e)=>{var n=e(11793),o=e(25468),a=e(46285),i=e(76264)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},56968:(r,t,e)=>{var n=e(64010);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},45807:(r,t,e)=>{var n=e(1907),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},73948:(r,t,e)=>{var n=e(52623),o=e(62250),a=e(45807),i=e(76264)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},25735:(r,t,e)=>{var n=e(76264)("match");r.exports=function(r){var t=/./;try{"/./"[r](t)}catch(e){try{return t[n]=!1,"/./"[r](t)}catch(r){}}return!1}},61626:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},75817:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},5543:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=function(r,t,e){n?o.f(r,t,a(0,e)):r[t]=e}},2532:(r,t,e)=>{var n=e(45951),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},39447:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},49552:(r,t,e)=>{var n=e(45951),o=e(46285),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88024:r=>{var t=TypeError;r.exports=function(r){if(r>9007199254740991)throw t("Maximum allowed index exceeded");return r}},80376:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},47586:(r,t,e)=>{var n=e(42832);r.exports="NODE"===n},96794:(r,t,e)=>{var n=e(45951).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},20798:(r,t,e)=>{var n,o,a=e(45951),i=e(96794),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},42832:(r,t,e)=>{var n=e(45951),o=e(96794),a=e(45807),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},11091:(r,t,e)=>{var n=e(45951),o=e(76024),a=e(92361),i=e(62250),u=e(13846).f,c=e(7463),s=e(92046),f=e(28311),p=e(61626),l=e(49724);e(36128);var v=function(r){var t=function(e,n,a){if(this instanceof t){switch(arguments.length){case 0:return new r;case 1:return new r(e);case 2:return new r(e,n)}return new r(e,n,a)}return o(r,this,arguments)};return t.prototype=r.prototype,t};r.exports=function(r,t){var e,o,y,d,h,g,x,m,b,w=r.target,E=r.global,A=r.stat,T=r.proto,O=E?n:A?n[w]:n[w]&&n[w].prototype,S=E?s:s[w]||p(s,w,{})[w],C=S.prototype;for(d in t)o=!(e=c(E?d:w+(A?".":"#")+d,r.forced))&&O&&l(O,d),g=S[d],o&&(x=r.dontCallGetSet?(b=u(O,d))&&b.value:O[d]),h=o&&x?x:t[d],(e||T||typeof g!=typeof h)&&(m=r.bind&&o?f(h,n):r.wrap&&o?v(h):T&&i(h)?a(h):h,(r.sham||h&&h.sham||g&&g.sham)&&p(m,"sham",!0),p(S,d,m),T&&(l(s,y=w+"Prototype")||p(s,y,{}),p(s[y],d,h),r.real&&C&&(e||!C[d])&&p(C,d,h)))}},98828:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},76024:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},28311:(r,t,e)=>{var n=e(92361),o=e(82159),a=e(41505),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},41505:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},13930:(r,t,e)=>{var n=e(41505),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},36833:(r,t,e)=>{var n=e(39447),o=e(49724),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},92361:(r,t,e)=>{var n=e(45807),o=e(1907);r.exports=function(r){if("Function"===n(r))return o(r)}},1907:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},61747:(r,t,e)=>{var n=e(45951),o=e(92046);r.exports=function(r,t){var e=o[r+"Prototype"],a=e&&e[t];if(a)return a;var i=n[r],u=i&&i.prototype;return u&&u[t]}},85582:(r,t,e)=>{var n=e(92046),o=e(45951),a=e(62250),i=function(r){return a(r)?r:void 0};r.exports=function(r,t){return arguments.length<2?i(n[r])||i(o[r]):n[r]&&n[r][t]||o[r]&&o[r][t]}},29367:(r,t,e)=>{var n=e(82159),o=e(87136);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},45951:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},49724:(r,t,e)=>{var n=e(1907),o=e(39298),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},38530:r=>{r.exports={}},62416:(r,t,e)=>{var n=e(85582);r.exports=n("document","documentElement")},73648:(r,t,e)=>{var n=e(39447),o=e(98828),a=e(49552);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},16946:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(45807),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},12647:(r,t,e)=>{var n=e(1907),o=e(62250),a=e(36128),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},11793:(r,t,e)=>{var n=e(45807);r.exports=Array.isArray||function(r){return"Array"===n(r)}},62250:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},25468:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(62250),i=e(73948),u=e(85582),c=e(12647),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},7463:(r,t,e)=>{var n=e(98828),o=e(62250),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},87136:r=>{r.exports=function(r){return null==r}},46285:(r,t,e)=>{var n=e(62250);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},7376:r=>{r.exports=!0},72087:(r,t,e)=>{var n=e(46285),o=e(45807),a=e(76264)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},25594:(r,t,e)=>{var n=e(85582),o=e(62250),a=e(88280),i=e(51175),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},20575:(r,t,e)=>{var n=e(3121);r.exports=function(r){return n(r.length)}},41176:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},12074:(r,t,e)=>{var n=e(72087),o=TypeError;r.exports=function(r){if(n(r))throw new o("The method doesn't accept regular expressions");return r}},72778:(r,t,e)=>{var n=e(45951),o=e(98828),a=e(1907),i=e(90160),u=e(65993).trim,c=e(86395),s=n.parseInt,f=n.Symbol,p=f&&f.iterator,l=/^[+-]?0x/i,v=a(l.exec),y=8!==s(c+"08")||22!==s(c+"0x16")||p&&!o((function(){s(Object(p))}));r.exports=y?function(r,t){var e=u(i(r));return s(e,t>>>0||(v(l,e)?16:10))}:s},58075:(r,t,e)=>{var n,o=e(36624),a=e(42220),i=e(80376),u=e(38530),c=e(62416),s=e(49552),f=e(92522),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},42220:(r,t,e)=>{var n=e(39447),o=e(58661),a=e(74284),i=e(36624),u=e(27374),c=e(2875);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},74284:(r,t,e)=>{var n=e(39447),o=e(73648),a=e(58661),i=e(36624),u=e(70470),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},13846:(r,t,e)=>{var n=e(39447),o=e(13930),a=e(22574),i=e(75817),u=e(27374),c=e(70470),s=e(49724),f=e(73648),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},88280:(r,t,e)=>{var n=e(1907);r.exports=n({}.isPrototypeOf)},23045:(r,t,e)=>{var n=e(1907),o=e(49724),a=e(27374),i=e(74436).indexOf,u=e(38530),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},2875:(r,t,e)=>{var n=e(23045),o=e(80376);r.exports=Object.keys||function(r){return n(r,o)}},22574:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},60581:(r,t,e)=>{var n=e(13930),o=e(62250),a=e(46285),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},92046:r=>{r.exports={}},74239:(r,t,e)=>{var n=e(87136),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},92522:(r,t,e)=>{var n=e(85816),o=e(6499),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},36128:(r,t,e)=>{var n=e(7376),o=e(45951),a=e(2532),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},85816:(r,t,e)=>{var n=e(36128);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},95819:(r,t,e)=>{var n=e(36833),o=e(98828),a=e(86395);r.exports=function(r){return o((function(){return!!a[r]()||"​…᠎"!=="​…᠎"[r]()||n&&a[r].name!==r}))}},65993:(r,t,e)=>{var n=e(1907),o=e(74239),a=e(90160),i=e(86395),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},19846:(r,t,e)=>{var n=e(20798),o=e(98828),a=e(45951).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},34849:(r,t,e)=>{var n=e(65482),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},27374:(r,t,e)=>{var n=e(16946),o=e(74239);r.exports=function(r){return n(o(r))}},65482:(r,t,e)=>{var n=e(41176);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},3121:(r,t,e)=>{var n=e(65482),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},39298:(r,t,e)=>{var n=e(74239),o=Object;r.exports=function(r){return o(n(r))}},46028:(r,t,e)=>{var n=e(13930),o=e(46285),a=e(25594),i=e(29367),u=e(60581),c=e(76264),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},70470:(r,t,e)=>{var n=e(46028),o=e(25594);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},52623:(r,t,e)=>{var n={};n[e(76264)("toStringTag")]="z",r.exports="[object z]"===String(n)},90160:(r,t,e)=>{var n=e(73948),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},4640:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},6499:(r,t,e)=>{var n=e(1907),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},51175:(r,t,e)=>{var n=e(19846);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},58661:(r,t,e)=>{var n=e(39447),o=e(98828);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},76264:(r,t,e)=>{var n=e(45951),o=e(85816),a=e(49724),i=e(6499),u=e(19846),c=e(51175),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},86395:r=>{r.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},58545:(r,t,e)=>{var n=e(11091),o=e(98828),a=e(11793),i=e(46285),u=e(39298),c=e(20575),s=e(88024),f=e(5543),p=e(56968),l=e(59552),v=e(76264),y=e(20798),d=v("isConcatSpreadable"),h=y>=51||!o((function(){var r=[];return r[d]=!1,r.concat()[0]!==r})),g=function(r){if(!i(r))return!1;var t=r[d];return void 0!==t?!!t:a(r)};n({target:"Array",proto:!0,arity:1,forced:!h||!l("concat")},{concat:function(r){var t,e,n,o,a,i=u(this),l=p(i,0),v=0;for(t=-1,n=arguments.length;t<n;t++)if(g(a=-1===t?i:arguments[t]))for(o=c(a),s(v+o),e=0;e<o;e++,v++)e in a&&f(l,v,a[e]);else s(v+1),f(l,v++,a);return l.length=v,l}})},6290:(r,t,e)=>{var n=e(11091),o=e(70726).find,a=e(42156),i="find",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),n({target:"Array",proto:!0,forced:u},{find:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}}),a(i)},95650:(r,t,e)=>{var n=e(11091),o=e(22914);n({target:"Array",proto:!0,forced:[].forEach!==o},{forEach:o})},66391:(r,t,e)=>{var n=e(11091),o=e(92361),a=e(74436).indexOf,i=e(77623),u=o([].indexOf),c=!!u&&1/u([1],1,-0)<0;n({target:"Array",proto:!0,forced:c||!i("indexOf")},{indexOf:function(r){var t=arguments.length>1?arguments[1]:void 0;return c?u(this,r,t)||0:a(this,r,t)}})},92425:(r,t,e)=>{e(11091)({target:"Array",stat:!0},{isArray:e(11793)})},6687:(r,t,e)=>{var n=e(11091),o=e(70726).map;n({target:"Array",proto:!0,forced:!e(59552)("map")},{map:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}})},46339:(r,t,e)=>{var n=e(11091),o=e(35043).left,a=e(77623),i=e(20798);n({target:"Array",proto:!0,forced:!e(47586)&&i>79&&i<83||!a("reduce")},{reduce:function(r){var t=arguments.length;return o(this,r,t,t>1?arguments[1]:void 0)}})},62099:(r,t,e)=>{var n=e(11091),o=e(11793),a=e(25468),i=e(46285),u=e(34849),c=e(20575),s=e(27374),f=e(5543),p=e(76264),l=e(59552),v=e(93427),y=l("slice"),d=p("species"),h=Array,g=Math.max;n({target:"Array",proto:!0,forced:!y},{slice:function(r,t){var e,n,p,l=s(this),y=c(l),x=u(r,y),m=u(void 0===t?y:t,y);if(o(l)&&(e=l.constructor,(a(e)&&(e===h||o(e.prototype))||i(e)&&null===(e=e[d]))&&(e=void 0),e===h||void 0===e))return v(l,x,m);for(n=new(void 0===e?h:e)(g(m-x,0)),p=0;x<m;x++,p++)x in l&&f(n,p,l[x]);return n.length=p,n}})},25837:(r,t,e)=>{e(11091)({target:"Object",stat:!0,sham:!e(39447)},{create:e(58075)})},83589:(r,t,e)=>{var n=e(11091),o=e(39298),a=e(2875);n({target:"Object",stat:!0,forced:e(98828)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},42193:(r,t,e)=>{var n=e(11091),o=e(72778);n({global:!0,forced:parseInt!==o},{parseInt:o})},80430:(r,t,e)=>{var n,o=e(11091),a=e(92361),i=e(13846).f,u=e(3121),c=e(90160),s=e(12074),f=e(74239),p=e(25735),l=e(7376),v=a("".slice),y=Math.min,d=p("endsWith");o({target:"String",proto:!0,forced:!(!l&&!d&&(n=i(String.prototype,"endsWith"),n&&!n.writable)||d)},{endsWith:function(r){var t=c(f(this));s(r);var e=arguments.length>1?arguments[1]:void 0,n=t.length,o=void 0===e?n:y(u(e),n),a=c(r);return v(t,o-a.length,o)===a}})},50727:(r,t,e)=>{var n=e(11091),o=e(65993).trim;n({target:"String",proto:!0,forced:e(95819)("trim")},{trim:function(){return o(this)}})},60237:()=>{},18402:(r,t,e)=>{var n=e(13531);r.exports=n},41969:(r,t,e)=>{var n=e(22092);r.exports=n},50530:(r,t,e)=>{var n=e(45837);r.exports=n},85837:(r,t,e)=>{var n=e(64048);r.exports=n},99617:(r,t,e)=>{var n=e(63246);r.exports=n},24525:(r,t,e)=>{var n=e(73948),o=e(49724),a=e(88280),i=e(41969);e(60237);var u=Array.prototype,c={DOMTokenList:!0,NodeList:!0};r.exports=function(r){var t=r.forEach;return r===u||a(u,r)&&t===u.forEach||o(c,n(r))?i:t}},77852:(r,t,e)=>{var n=e(44507);r.exports=n},98894:(r,t,e)=>{var n=e(39299);r.exports=n},79528:(r,t,e)=>{var n=e(28823);r.exports=n},6686:(r,t,e)=>{var n=e(40303);r.exports=n},12217:(r,t,e)=>{var n=e(8661);r.exports=n},93658:(r,t,e)=>{var n=e(80149);r.exports=n},76490:(r,t,e)=>{var n=e(19661);r.exports=n},91921:(r,t,e)=>{var n=e(84326);r.exports=n},79306:(r,t,e)=>{var n=e(94901),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},35548:(r,t,e)=>{var n=e(33517),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a constructor")}},73506:(r,t,e)=>{var n=e(13925),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a("Can't set "+o(r)+" as a prototype")}},6469:(r,t,e)=>{var n=e(78227),o=e(2360),a=e(24913).f,i=n("unscopables"),u=Array.prototype;void 0===u[i]&&a(u,i,{configurable:!0,value:o(null)}),r.exports=function(r){u[i][r]=!0}},57829:(r,t,e)=>{var n=e(68183).charAt;r.exports=function(r,t,e){return t+(e?n(r,t).length:1)}},90679:(r,t,e)=>{var n=e(1625),o=TypeError;r.exports=function(r,t){if(n(t,r))return r;throw new o("Incorrect invocation")}},28551:(r,t,e)=>{var n=e(20034),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},77811:r=>{r.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},67394:(r,t,e)=>{var n=e(44576),o=e(46706),a=e(22195),i=n.ArrayBuffer,u=n.TypeError;r.exports=i&&o(i.prototype,"byteLength","get")||function(r){if("ArrayBuffer"!==a(r))throw new u("ArrayBuffer expected");return r.byteLength}},3238:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(67394),i=n.ArrayBuffer,u=i&&i.prototype,c=u&&o(u.slice);r.exports=function(r){if(0!==a(r))return!1;if(!c)return!1;try{return c(r,0,0),!1}catch(r){return!0}}},55169:(r,t,e)=>{var n=e(3238),o=TypeError;r.exports=function(r){if(n(r))throw new o("ArrayBuffer is detached");return r}},95636:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(46706),i=e(57696),u=e(55169),c=e(67394),s=e(94483),f=e(1548),p=n.structuredClone,l=n.ArrayBuffer,v=n.DataView,y=Math.min,d=l.prototype,h=v.prototype,g=o(d.slice),x=a(d,"resizable","get"),m=a(d,"maxByteLength","get"),b=o(h.getInt8),w=o(h.setInt8);r.exports=(f||s)&&function(r,t,e){var n,o=c(r),a=void 0===t?o:i(t),d=!x||!x(r);if(u(r),f&&(r=p(r,{transfer:[r]}),o===a&&(e||d)))return r;if(o>=a&&(!e||d))n=g(r,0,a);else{var h=e&&!d&&m?{maxByteLength:m(r)}:void 0;n=new l(a,h);for(var E=new v(r),A=new v(n),T=y(a,o),O=0;O<T;O++)w(A,O,b(E,O))}return f||s(r),n}},94644:(r,t,e)=>{var n,o,a,i=e(77811),u=e(43724),c=e(44576),s=e(94901),f=e(20034),p=e(39297),l=e(36955),v=e(16823),y=e(66699),d=e(36840),h=e(62106),g=e(1625),x=e(42787),m=e(52967),b=e(78227),w=e(33392),E=e(91181),A=E.enforce,T=E.get,O=c.Int8Array,S=O&&O.prototype,C=c.Uint8ClampedArray,I=C&&C.prototype,P=O&&x(O),R=S&&x(S),_=Object.prototype,j=c.TypeError,M=b("toStringTag"),L=w("TYPED_ARRAY_TAG"),N="TypedArrayConstructor",D=i&&!!m&&"Opera"!==l(c.opera),F=!1,k={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},B={BigInt64Array:8,BigUint64Array:8},U=function(r){var t=x(r);if(f(t)){var e=T(t);return e&&p(e,N)?e[N]:U(t)}},V=function(r){if(!f(r))return!1;var t=l(r);return p(k,t)||p(B,t)};for(n in k)(a=(o=c[n])&&o.prototype)?A(a)[N]=o:D=!1;for(n in B)(a=(o=c[n])&&o.prototype)&&(A(a)[N]=o);if((!D||!s(P)||P===Function.prototype)&&(P=function(){throw new j("Incorrect invocation")},D))for(n in k)c[n]&&m(c[n],P);if((!D||!R||R===_)&&(R=P.prototype,D))for(n in k)c[n]&&m(c[n].prototype,R);if(D&&x(I)!==R&&m(I,R),u&&!p(R,M))for(n in F=!0,h(R,M,{configurable:!0,get:function(){return f(this)?this[L]:void 0}}),k)c[n]&&y(c[n],L,n);r.exports={NATIVE_ARRAY_BUFFER_VIEWS:D,TYPED_ARRAY_TAG:F&&L,aTypedArray:function(r){if(V(r))return r;throw new j("Target is not a typed array")},aTypedArrayConstructor:function(r){if(s(r)&&(!m||g(P,r)))return r;throw new j(v(r)+" is not a typed array constructor")},exportTypedArrayMethod:function(r,t,e,n){if(u){if(e)for(var o in k){var a=c[o];if(a&&p(a.prototype,r))try{delete a.prototype[r]}catch(e){try{a.prototype[r]=t}catch(r){}}}R[r]&&!e||d(R,r,e?t:D&&S[r]||t,n)}},exportTypedArrayStaticMethod:function(r,t,e){var n,o;if(u){if(m){if(e)for(n in k)if((o=c[n])&&p(o,r))try{delete o[r]}catch(r){}if(P[r]&&!e)return;try{return d(P,r,e?t:D&&P[r]||t)}catch(r){}}for(n in k)!(o=c[n])||o[r]&&!e||d(o,r,t)}},getTypedArrayConstructor:U,isView:function(r){if(!f(r))return!1;var t=l(r);return"DataView"===t||p(k,t)||p(B,t)},isTypedArray:V,TypedArray:P,TypedArrayPrototype:R}},66346:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(43724),i=e(77811),u=e(10350),c=e(66699),s=e(62106),f=e(56279),p=e(79039),l=e(90679),v=e(91291),y=e(18014),d=e(57696),h=e(15617),g=e(88490),x=e(42787),m=e(52967),b=e(84373),w=e(67680),E=e(23167),A=e(77740),T=e(10687),O=e(91181),S=u.PROPER,C=u.CONFIGURABLE,I="ArrayBuffer",P="DataView",R="prototype",_="Wrong index",j=O.getterFor(I),M=O.getterFor(P),L=O.set,N=n[I],D=N,F=D&&D[R],k=n[P],B=k&&k[R],U=Object.prototype,V=n.Array,Y=n.RangeError,W=o(b),G=o([].reverse),H=g.pack,z=g.unpack,$=function(r){return[255&r]},X=function(r){return[255&r,r>>8&255]},q=function(r){return[255&r,r>>8&255,r>>16&255,r>>24&255]},K=function(r){return r[3]<<24|r[2]<<16|r[1]<<8|r[0]},J=function(r){return H(h(r),23,4)},Q=function(r){return H(r,52,8)},Z=function(r,t,e){s(r[R],t,{configurable:!0,get:function(){return e(this)[t]}})},rr=function(r,t,e,n){var o=M(r),a=d(e),i=!!n;if(a+t>o.byteLength)throw new Y(_);var u=o.bytes,c=a+o.byteOffset,s=w(u,c,c+t);return i?s:G(s)},tr=function(r,t,e,n,o,a){var i=M(r),u=d(e),c=n(+o),s=!!a;if(u+t>i.byteLength)throw new Y(_);for(var f=i.bytes,p=u+i.byteOffset,l=0;l<t;l++)f[p+l]=c[s?l:t-l-1]};if(i){var er=S&&N.name!==I;p((function(){N(1)}))&&p((function(){new N(-1)}))&&!p((function(){return new N,new N(1.5),new N(NaN),1!==N.length||er&&!C}))?er&&C&&c(N,"name",I):((D=function(r){return l(this,F),E(new N(d(r)),this,D)})[R]=F,F.constructor=D,A(D,N)),m&&x(B)!==U&&m(B,U);var nr=new k(new D(2)),or=o(B.setInt8);nr.setInt8(0,2147483648),nr.setInt8(1,2147483649),!nr.getInt8(0)&&nr.getInt8(1)||f(B,{setInt8:function(r,t){or(this,r,t<<24>>24)},setUint8:function(r,t){or(this,r,t<<24>>24)}},{unsafe:!0})}else F=(D=function(r){l(this,F);var t=d(r);L(this,{type:I,bytes:W(V(t),0),byteLength:t}),a||(this.byteLength=t,this.detached=!1)})[R],B=(k=function(r,t,e){l(this,B),l(r,F);var n=j(r),o=n.byteLength,i=v(t);if(i<0||i>o)throw new Y("Wrong offset");if(i+(e=void 0===e?o-i:y(e))>o)throw new Y("Wrong length");L(this,{type:P,buffer:r,byteLength:e,byteOffset:i,bytes:n.bytes}),a||(this.buffer=r,this.byteLength=e,this.byteOffset=i)})[R],a&&(Z(D,"byteLength",j),Z(k,"buffer",M),Z(k,"byteLength",M),Z(k,"byteOffset",M)),f(B,{getInt8:function(r){return rr(this,1,r)[0]<<24>>24},getUint8:function(r){return rr(this,1,r)[0]},getInt16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))},getUint32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(r){return z(rr(this,4,r,arguments.length>1&&arguments[1]),23)},getFloat64:function(r){return z(rr(this,8,r,arguments.length>1&&arguments[1]),52)},setInt8:function(r,t){tr(this,1,r,$,t)},setUint8:function(r,t){tr(this,1,r,$,t)},setInt16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setUint16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setInt32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setUint32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setFloat32:function(r,t){tr(this,4,r,J,t,arguments.length>2&&arguments[2])},setFloat64:function(r,t){tr(this,8,r,Q,t,arguments.length>2&&arguments[2])}});T(D,I),T(k,P),r.exports={ArrayBuffer:D,DataView:k}},57029:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198),i=e(84606),u=Math.min;r.exports=[].copyWithin||function(r,t){var e=n(this),c=a(e),s=o(r,c),f=o(t,c),p=arguments.length>2?arguments[2]:void 0,l=u((void 0===p?c:o(p,c))-f,c-s),v=1;for(f<s&&s<f+l&&(v=-1,f+=l-1,s+=l-1);l-- >0;)f in e?e[s]=e[f]:i(e,s),s+=v,f+=v;return e}},84373:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198);r.exports=function(r){for(var t=n(this),e=a(t),i=arguments.length,u=o(i>1?arguments[1]:void 0,e),c=i>2?arguments[2]:void 0,s=void 0===c?e:o(c,e);s>u;)t[u++]=r;return t}},35370:(r,t,e)=>{var n=e(26198);r.exports=function(r,t,e){for(var o=0,a=arguments.length>2?e:n(t),i=new r(a);a>o;)i[o]=t[o++];return i}},19617:(r,t,e)=>{var n=e(25397),o=e(35610),a=e(26198),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},43839:(r,t,e)=>{var n=e(76080),o=e(47055),a=e(48981),i=e(26198),u=function(r){var t=1===r;return function(e,u,c){for(var s,f=a(e),p=o(f),l=i(p),v=n(u,c);l-- >0;)if(v(s=p[l],l,f))switch(r){case 0:return s;case 1:return l}return t?-1:void 0}};r.exports={findLast:u(0),findLastIndex:u(1)}},59213:(r,t,e)=>{var n=e(76080),o=e(79504),a=e(47055),i=e(48981),u=e(26198),c=e(1469),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},8379:(r,t,e)=>{var n=e(18745),o=e(25397),a=e(91291),i=e(26198),u=e(34598),c=Math.min,s=[].lastIndexOf,f=!!s&&1/[1].lastIndexOf(1,-0)<0,p=u("lastIndexOf"),l=f||!p;r.exports=l?function(r){if(f)return n(s,this,arguments)||0;var t=o(this),e=i(t);if(0===e)return-1;var u=e-1;for(arguments.length>1&&(u=c(u,a(arguments[1]))),u<0&&(u=e+u);u>=0;u--)if(u in t&&t[u]===r)return u||0;return-1}:s},34598:(r,t,e)=>{var n=e(79039);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},80926:(r,t,e)=>{var n=e(79306),o=e(48981),a=e(47055),i=e(26198),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},67680:(r,t,e)=>{var n=e(79504);r.exports=n([].slice)},74488:(r,t,e)=>{var n=e(67680),o=Math.floor,a=function(r,t){var e=r.length;if(e<8)for(var i,u,c=1;c<e;){for(u=c,i=r[c];u&&t(r[u-1],i)>0;)r[u]=r[--u];u!==c++&&(r[u]=i)}else for(var s=o(e/2),f=a(n(r,0,s),t),p=a(n(r,s),t),l=f.length,v=p.length,y=0,d=0;y<l||d<v;)r[y+d]=y<l&&d<v?t(f[y],p[d])<=0?f[y++]:p[d++]:y<l?f[y++]:p[d++];return r};r.exports=a},87433:(r,t,e)=>{var n=e(34376),o=e(33517),a=e(20034),i=e(78227)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},1469:(r,t,e)=>{var n=e(87433);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},37628:(r,t,e)=>{var n=e(26198);r.exports=function(r,t){for(var e=n(r),o=new t(e),a=0;a<e;a++)o[a]=r[e-a-1];return o}},39928:(r,t,e)=>{var n=e(26198),o=e(91291),a=RangeError;r.exports=function(r,t,e,i){var u=n(r),c=o(e),s=c<0?u+c:c;if(s>=u||s<0)throw new a("Incorrect index");for(var f=new t(u),p=0;p<u;p++)f[p]=p===s?i:r[p];return f}},84428:(r,t,e)=>{var n=e(78227)("iterator"),o=!1;try{var a=0,i={next:function(){return{done:!!a++}},return:function(){o=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(r){}r.exports=function(r,t){try{if(!t&&!o)return!1}catch(r){return!1}var e=!1;try{var a={};a[n]=function(){return{next:function(){return{done:e=!0}}}},r(a)}catch(r){}return e}},22195:(r,t,e)=>{var n=e(79504),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},36955:(r,t,e)=>{var n=e(92140),o=e(94901),a=e(22195),i=e(78227)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},77740:(r,t,e)=>{var n=e(39297),o=e(35031),a=e(77347),i=e(24913);r.exports=function(r,t,e){for(var u=o(t),c=i.f,s=a.f,f=0;f<u.length;f++){var p=u[f];n(r,p)||e&&n(e,p)||c(r,p,s(t,p))}}},12211:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype}))},62529:r=>{r.exports=function(r,t){return{value:r,done:t}}},66699:(r,t,e)=>{var n=e(43724),o=e(24913),a=e(6980);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},6980:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},62106:(r,t,e)=>{var n=e(50283),o=e(24913);r.exports=function(r,t,e){return e.get&&n(e.get,t,{getter:!0}),e.set&&n(e.set,t,{setter:!0}),o.f(r,t,e)}},36840:(r,t,e)=>{var n=e(94901),o=e(24913),a=e(50283),i=e(39433);r.exports=function(r,t,e,u){u||(u={});var c=u.enumerable,s=void 0!==u.name?u.name:t;if(n(e)&&a(e,s,u),u.global)c?r[t]=e:i(t,e);else{try{u.unsafe?r[t]&&(c=!0):delete r[t]}catch(r){}c?r[t]=e:o.f(r,t,{value:e,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return r}},56279:(r,t,e)=>{var n=e(36840);r.exports=function(r,t,e){for(var o in t)n(r,o,t[o],e);return r}},39433:(r,t,e)=>{var n=e(44576),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},84606:(r,t,e)=>{var n=e(16823),o=TypeError;r.exports=function(r,t){if(!delete r[t])throw new o("Cannot delete property "+n(t)+" of "+n(r))}},43724:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},94483:(r,t,e)=>{var n,o,a,i,u=e(44576),c=e(89429),s=e(1548),f=u.structuredClone,p=u.ArrayBuffer,l=u.MessageChannel,v=!1;if(s)v=function(r){f(r,{transfer:[r]})};else if(p)try{l||(n=c("worker_threads"))&&(l=n.MessageChannel),l&&(o=new l,a=new p(2),i=function(r){o.port1.postMessage(null,[r])},2===a.byteLength&&(i(a),0===a.byteLength&&(v=i)))}catch(r){}r.exports=v},4055:(r,t,e)=>{var n=e(44576),o=e(20034),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88727:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},13709:(r,t,e)=>{var n=e(82839).match(/firefox\/(\d+)/i);r.exports=!!n&&+n[1]},13763:(r,t,e)=>{var n=e(82839);r.exports=/MSIE|Trident/.test(n)},38574:(r,t,e)=>{var n=e(84215);r.exports="NODE"===n},82839:(r,t,e)=>{var n=e(44576).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},39519:(r,t,e)=>{var n,o,a=e(44576),i=e(82839),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},3607:(r,t,e)=>{var n=e(82839).match(/AppleWebKit\/(\d+)\./);r.exports=!!n&&+n[1]},84215:(r,t,e)=>{var n=e(44576),o=e(82839),a=e(22195),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},16193:(r,t,e)=>{var n=e(79504),o=Error,a=n("".replace),i=String(new o("zxcasd").stack),u=/\n\s*at [^:]*:[^\n]*/,c=u.test(i);r.exports=function(r,t){if(c&&"string"==typeof r&&!o.prepareStackTrace)for(;t--;)r=a(r,u,"");return r}},80747:(r,t,e)=>{var n=e(66699),o=e(16193),a=e(24659),i=Error.captureStackTrace;r.exports=function(r,t,e,u){a&&(i?i(r,t):n(r,"stack",o(e,u)))}},24659:(r,t,e)=>{var n=e(79039),o=e(6980);r.exports=!n((function(){var r=new Error("a");return!("stack"in r)||(Object.defineProperty(r,"stack",o(1,7)),7!==r.stack)}))},77536:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(28551),i=e(32603),u=Error.prototype.toString,c=o((function(){if(n){var r=Object.create(Object.defineProperty({},"name",{get:function(){return this===r}}));if("true"!==u.call(r))return!0}return"2: 1"!==u.call({message:1,name:2})||"Error"!==u.call({})}));r.exports=c?function(){var r=a(this),t=i(r.name,"Error"),e=i(r.message);return t?e?t+": "+e:t:e}:u},46518:(r,t,e)=>{var n=e(44576),o=e(77347).f,a=e(66699),i=e(36840),u=e(39433),c=e(77740),s=e(92796);r.exports=function(r,t){var e,f,p,l,v,y=r.target,d=r.global,h=r.stat;if(e=d?n:h?n[y]||u(y,{}):n[y]&&n[y].prototype)for(f in t){if(l=t[f],p=r.dontCallGetSet?(v=o(e,f))&&v.value:e[f],!s(d?f:y+(h?".":"#")+f,r.forced)&&void 0!==p){if(typeof l==typeof p)continue;c(l,p)}(r.sham||p&&p.sham)&&a(l,"sham",!0),i(e,f,l,r)}}},79039:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},89228:(r,t,e)=>{e(27495);var n=e(69565),o=e(36840),a=e(57323),i=e(79039),u=e(78227),c=e(66699),s=u("species"),f=RegExp.prototype;r.exports=function(r,t,e,p){var l=u(r),v=!i((function(){var t={};return t[l]=function(){return 7},7!==""[r](t)})),y=v&&!i((function(){var t=!1,e=/a/;return"split"===r&&((e={}).constructor={},e.constructor[s]=function(){return e},e.flags="",e[l]=/./[l]),e.exec=function(){return t=!0,null},e[l](""),!t}));if(!v||!y||e){var d=/./[l],h=t(l,""[r],(function(r,t,e,o,i){var u=t.exec;return u===a||u===f.exec?v&&!i?{done:!0,value:n(d,t,e,o)}:{done:!0,value:n(r,e,t,o)}:{done:!1}}));o(String.prototype,r,h[0]),o(f,l,h[1])}p&&c(f[l],"sham",!0)}},18745:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},76080:(r,t,e)=>{var n=e(27476),o=e(79306),a=e(40616),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},40616:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},69565:(r,t,e)=>{var n=e(40616),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},10350:(r,t,e)=>{var n=e(43724),o=e(39297),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},46706:(r,t,e)=>{var n=e(79504),o=e(79306);r.exports=function(r,t,e){try{return n(o(Object.getOwnPropertyDescriptor(r,t)[e]))}catch(r){}}},27476:(r,t,e)=>{var n=e(22195),o=e(79504);r.exports=function(r){if("Function"===n(r))return o(r)}},79504:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},89429:(r,t,e)=>{var n=e(44576),o=e(38574);r.exports=function(r){if(o){try{return n.process.getBuiltinModule(r)}catch(r){}try{return Function('return require("'+r+'")')()}catch(r){}}}},97751:(r,t,e)=>{var n=e(44576),o=e(94901);r.exports=function(r,t){return arguments.length<2?(e=n[r],o(e)?e:void 0):n[r]&&n[r][t];var e}},50851:(r,t,e)=>{var n=e(36955),o=e(55966),a=e(64117),i=e(26269),u=e(78227)("iterator");r.exports=function(r){if(!a(r))return o(r,u)||o(r,"@@iterator")||i[n(r)]}},70081:(r,t,e)=>{var n=e(69565),o=e(79306),a=e(28551),i=e(16823),u=e(50851),c=TypeError;r.exports=function(r,t){var e=arguments.length<2?u(r):t;if(o(e))return a(n(e,r));throw new c(i(r)+" is not iterable")}},55966:(r,t,e)=>{var n=e(79306),o=e(64117);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},2478:(r,t,e)=>{var n=e(79504),o=e(48981),a=Math.floor,i=n("".charAt),u=n("".replace),c=n("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;r.exports=function(r,t,e,n,p,l){var v=e+r.length,y=n.length,d=f;return void 0!==p&&(p=o(p),d=s),u(l,d,(function(o,u){var s;switch(i(u,0)){case"$":return"$";case"&":return r;case"`":return c(t,0,e);case"'":return c(t,v);case"<":s=p[c(u,1,-1)];break;default:var f=+u;if(0===f)return o;if(f>y){var l=a(f/10);return 0===l?o:l<=y?void 0===n[l-1]?i(u,1):n[l-1]+i(u,1):o}s=n[f-1]}return void 0===s?"":s}))}},44576:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},39297:(r,t,e)=>{var n=e(79504),o=e(48981),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},30421:r=>{r.exports={}},20397:(r,t,e)=>{var n=e(97751);r.exports=n("document","documentElement")},35917:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(4055);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},88490:r=>{var t=Array,e=Math.abs,n=Math.pow,o=Math.floor,a=Math.log,i=Math.LN2;r.exports={pack:function(r,u,c){var s,f,p,l=t(c),v=8*c-u-1,y=(1<<v)-1,d=y>>1,h=23===u?n(2,-24)-n(2,-77):0,g=r<0||0===r&&1/r<0?1:0,x=0;for((r=e(r))!=r||r===1/0?(f=r!=r?1:0,s=y):(s=o(a(r)/i),r*(p=n(2,-s))<1&&(s--,p*=2),(r+=s+d>=1?h/p:h*n(2,1-d))*p>=2&&(s++,p/=2),s+d>=y?(f=0,s=y):s+d>=1?(f=(r*p-1)*n(2,u),s+=d):(f=r*n(2,d-1)*n(2,u),s=0));u>=8;)l[x++]=255&f,f/=256,u-=8;for(s=s<<u|f,v+=u;v>0;)l[x++]=255&s,s/=256,v-=8;return l[x-1]|=128*g,l},unpack:function(r,t){var e,o=r.length,a=8*o-t-1,i=(1<<a)-1,u=i>>1,c=a-7,s=o-1,f=r[s--],p=127&f;for(f>>=7;c>0;)p=256*p+r[s--],c-=8;for(e=p&(1<<-c)-1,p>>=-c,c+=t;c>0;)e=256*e+r[s--],c-=8;if(0===p)p=1-u;else{if(p===i)return e?NaN:f?-1/0:1/0;e+=n(2,t),p-=u}return(f?-1:1)*e*n(2,p-t)}}},47055:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(22195),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},23167:(r,t,e)=>{var n=e(94901),o=e(20034),a=e(52967);r.exports=function(r,t,e){var i,u;return a&&n(i=t.constructor)&&i!==e&&o(u=i.prototype)&&u!==e.prototype&&a(r,u),r}},33706:(r,t,e)=>{var n=e(79504),o=e(94901),a=e(77629),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},77584:(r,t,e)=>{var n=e(20034),o=e(66699);r.exports=function(r,t){n(t)&&"cause"in t&&o(r,"cause",t.cause)}},91181:(r,t,e)=>{var n,o,a,i=e(58622),u=e(44576),c=e(20034),s=e(66699),f=e(39297),p=e(77629),l=e(66119),v=e(30421),y="Object already initialized",d=u.TypeError,h=u.WeakMap;if(i||p.state){var g=p.state||(p.state=new h);g.get=g.get,g.has=g.has,g.set=g.set,n=function(r,t){if(g.has(r))throw new d(y);return t.facade=r,g.set(r,t),t},o=function(r){return g.get(r)||{}},a=function(r){return g.has(r)}}else{var x=l("state");v[x]=!0,n=function(r,t){if(f(r,x))throw new d(y);return t.facade=r,s(r,x,t),t},o=function(r){return f(r,x)?r[x]:{}},a=function(r){return f(r,x)}}r.exports={set:n,get:o,has:a,enforce:function(r){return a(r)?o(r):n(r,{})},getterFor:function(r){return function(t){var e;if(!c(t)||(e=o(t)).type!==r)throw new d("Incompatible receiver, "+r+" required");return e}}}},44209:(r,t,e)=>{var n=e(78227),o=e(26269),a=n("iterator"),i=Array.prototype;r.exports=function(r){return void 0!==r&&(o.Array===r||i[a]===r)}},34376:(r,t,e)=>{var n=e(22195);r.exports=Array.isArray||function(r){return"Array"===n(r)}},18727:(r,t,e)=>{var n=e(36955);r.exports=function(r){var t=n(r);return"BigInt64Array"===t||"BigUint64Array"===t}},94901:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},33517:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(36955),u=e(97751),c=e(33706),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},92796:(r,t,e)=>{var n=e(79039),o=e(94901),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},2087:(r,t,e)=>{var n=e(20034),o=Math.floor;r.exports=Number.isInteger||function(r){return!n(r)&&isFinite(r)&&o(r)===r}},64117:r=>{r.exports=function(r){return null==r}},20034:(r,t,e)=>{var n=e(94901);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},13925:(r,t,e)=>{var n=e(20034);r.exports=function(r){return n(r)||null===r}},96395:r=>{r.exports=!1},60788:(r,t,e)=>{var n=e(20034),o=e(22195),a=e(78227)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},10757:(r,t,e)=>{var n=e(97751),o=e(94901),a=e(1625),i=e(7040),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},33994:(r,t,e)=>{var n=e(57657).IteratorPrototype,o=e(2360),a=e(6980),i=e(10687),u=e(26269),c=function(){return this};r.exports=function(r,t,e,s){var f=t+" Iterator";return r.prototype=o(n,{next:a(+!s,e)}),i(r,f,!1,!0),u[f]=c,r}},51088:(r,t,e)=>{var n=e(46518),o=e(69565),a=e(96395),i=e(10350),u=e(94901),c=e(33994),s=e(42787),f=e(52967),p=e(10687),l=e(66699),v=e(36840),y=e(78227),d=e(26269),h=e(57657),g=i.PROPER,x=i.CONFIGURABLE,m=h.IteratorPrototype,b=h.BUGGY_SAFARI_ITERATORS,w=y("iterator"),E="keys",A="values",T="entries",O=function(){return this};r.exports=function(r,t,e,i,y,h,S){c(e,t,i);var C,I,P,R=function(r){if(r===y&&N)return N;if(!b&&r&&r in M)return M[r];switch(r){case E:case A:case T:return function(){return new e(this,r)}}return function(){return new e(this)}},_=t+" Iterator",j=!1,M=r.prototype,L=M[w]||M["@@iterator"]||y&&M[y],N=!b&&L||R(y),D="Array"===t&&M.entries||L;if(D&&(C=s(D.call(new r)))!==Object.prototype&&C.next&&(a||s(C)===m||(f?f(C,m):u(C[w])||v(C,w,O)),p(C,_,!0,!0),a&&(d[_]=O)),g&&y===A&&L&&L.name!==A&&(!a&&x?l(M,"name",A):(j=!0,N=function(){return o(L,this)})),y)if(I={values:R(A),keys:h?N:R(E),entries:R(T)},S)for(P in I)(b||j||!(P in M))&&v(M,P,I[P]);else n({target:t,proto:!0,forced:b||j},I);return a&&!S||M[w]===N||v(M,w,N,{name:y}),d[t]=N,I}},57657:(r,t,e)=>{var n,o,a,i=e(79039),u=e(94901),c=e(20034),s=e(2360),f=e(42787),p=e(36840),l=e(78227),v=e(96395),y=l("iterator"),d=!1;[].keys&&("next"in(a=[].keys())?(o=f(f(a)))!==Object.prototype&&(n=o):d=!0),!c(n)||i((function(){var r={};return n[y].call(r)!==r}))?n={}:v&&(n=s(n)),u(n[y])||p(n,y,(function(){return this})),r.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:d}},26269:r=>{r.exports={}},26198:(r,t,e)=>{var n=e(18014);r.exports=function(r){return n(r.length)}},50283:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(39297),u=e(43724),c=e(10350).CONFIGURABLE,s=e(33706),f=e(91181),p=f.enforce,l=f.get,v=String,y=Object.defineProperty,d=n("".slice),h=n("".replace),g=n([].join),x=u&&!o((function(){return 8!==y((function(){}),"length",{value:8}).length})),m=String(String).split("String"),b=r.exports=function(r,t,e){"Symbol("===d(v(t),0,7)&&(t="["+h(v(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),e&&e.getter&&(t="get "+t),e&&e.setter&&(t="set "+t),(!i(r,"name")||c&&r.name!==t)&&(u?y(r,"name",{value:t,configurable:!0}):r.name=t),x&&e&&i(e,"arity")&&r.length!==e.arity&&y(r,"length",{value:e.arity});try{e&&i(e,"constructor")&&e.constructor?u&&y(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch(r){}var n=p(r);return i(n,"source")||(n.source=g(m,"string"==typeof t?t:"")),r};Function.prototype.toString=b((function(){return a(this)&&l(this).source||s(this)}),"toString")},33164:(r,t,e)=>{var n=e(77782),o=Math.abs,a=2220446049250313e-31,i=1/a;r.exports=function(r,t,e,u){var c=+r,s=o(c),f=n(c);if(s<u)return f*function(r){return r+i-i}(s/u/t)*u*t;var p=(1+t/a)*s,l=p-(p-s);return l>e||l!=l?f*(1/0):f*l}},15617:(r,t,e)=>{var n=e(33164);r.exports=Math.fround||function(r){return n(r,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)}},77782:r=>{r.exports=Math.sign||function(r){var t=+r;return 0===t||t!=t?t:t<0?-1:1}},80741:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},32603:(r,t,e)=>{var n=e(655);r.exports=function(r,t){return void 0===r?arguments.length<2?"":t:n(r)}},2360:(r,t,e)=>{var n,o=e(28551),a=e(96801),i=e(88727),u=e(30421),c=e(20397),s=e(4055),f=e(66119),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},96801:(r,t,e)=>{var n=e(43724),o=e(48686),a=e(24913),i=e(28551),u=e(25397),c=e(71072);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},24913:(r,t,e)=>{var n=e(43724),o=e(35917),a=e(48686),i=e(28551),u=e(56969),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},77347:(r,t,e)=>{var n=e(43724),o=e(69565),a=e(48773),i=e(6980),u=e(25397),c=e(56969),s=e(39297),f=e(35917),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},38480:(r,t,e)=>{var n=e(61828),o=e(88727).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(r){return n(r,o)}},33717:(r,t)=>{t.f=Object.getOwnPropertySymbols},42787:(r,t,e)=>{var n=e(39297),o=e(94901),a=e(48981),i=e(66119),u=e(12211),c=i("IE_PROTO"),s=Object,f=s.prototype;r.exports=u?s.getPrototypeOf:function(r){var t=a(r);if(n(t,c))return t[c];var e=t.constructor;return o(e)&&t instanceof e?e.prototype:t instanceof s?f:null}},1625:(r,t,e)=>{var n=e(79504);r.exports=n({}.isPrototypeOf)},61828:(r,t,e)=>{var n=e(79504),o=e(39297),a=e(25397),i=e(19617).indexOf,u=e(30421),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},71072:(r,t,e)=>{var n=e(61828),o=e(88727);r.exports=Object.keys||function(r){return n(r,o)}},48773:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},52967:(r,t,e)=>{var n=e(46706),o=e(20034),a=e(67750),i=e(73506);r.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r,t=!1,e={};try{(r=n(Object.prototype,"__proto__","set"))(e,[]),t=e instanceof Array}catch(r){}return function(e,n){return a(e),i(n),o(e)?(t?r(e,n):e.__proto__=n,e):e}}():void 0)},53179:(r,t,e)=>{var n=e(92140),o=e(36955);r.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},84270:(r,t,e)=>{var n=e(69565),o=e(94901),a=e(20034),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},35031:(r,t,e)=>{var n=e(97751),o=e(79504),a=e(38480),i=e(33717),u=e(28551),c=o([].concat);r.exports=n("Reflect","ownKeys")||function(r){var t=a.f(u(r)),e=i.f;return e?c(t,e(r)):t}},19167:(r,t,e)=>{var n=e(44576);r.exports=n},11056:(r,t,e)=>{var n=e(24913).f;r.exports=function(r,t,e){e in r||n(r,e,{configurable:!0,get:function(){return t[e]},set:function(r){t[e]=r}})}},56682:(r,t,e)=>{var n=e(69565),o=e(28551),a=e(94901),i=e(22195),u=e(57323),c=TypeError;r.exports=function(r,t){var e=r.exec;if(a(e)){var s=n(e,r,t);return null!==s&&o(s),s}if("RegExp"===i(r))return n(u,r,t);throw new c("RegExp#exec called on incompatible receiver")}},57323:(r,t,e)=>{var n,o,a=e(69565),i=e(79504),u=e(655),c=e(67979),s=e(58429),f=e(25745),p=e(2360),l=e(91181).get,v=e(83635),y=e(18814),d=f("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,g=h,x=i("".charAt),m=i("".indexOf),b=i("".replace),w=i("".slice),E=(o=/b*/g,a(h,n=/a/,"a"),a(h,o,"a"),0!==n.lastIndex||0!==o.lastIndex),A=s.BROKEN_CARET,T=void 0!==/()??/.exec("")[1];(E||T||A||v||y)&&(g=function(r){var t,e,n,o,i,s,f,v=this,y=l(v),O=u(r),S=y.raw;if(S)return S.lastIndex=v.lastIndex,t=a(g,S,O),v.lastIndex=S.lastIndex,t;var C=y.groups,I=A&&v.sticky,P=a(c,v),R=v.source,_=0,j=O;if(I&&(P=b(P,"y",""),-1===m(P,"g")&&(P+="g"),j=w(O,v.lastIndex),v.lastIndex>0&&(!v.multiline||v.multiline&&"\n"!==x(O,v.lastIndex-1))&&(R="(?: "+R+")",j=" "+j,_++),e=new RegExp("^(?:"+R+")",P)),T&&(e=new RegExp("^"+R+"$(?!\\s)",P)),E&&(n=v.lastIndex),o=a(h,I?e:v,j),I?o?(o.input=w(o.input,_),o[0]=w(o[0],_),o.index=v.lastIndex,v.lastIndex+=o[0].length):v.lastIndex=0:E&&o&&(v.lastIndex=v.global?o.index+o[0].length:n),T&&o&&o.length>1&&a(d,o[0],e,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(o[i]=void 0)})),o&&C)for(o.groups=s=p(null),i=0;i<C.length;i++)s[(f=C[i])[0]]=o[f[1]];return o}),r.exports=g},67979:(r,t,e)=>{var n=e(28551);r.exports=function(){var r=n(this),t="";return r.hasIndices&&(t+="d"),r.global&&(t+="g"),r.ignoreCase&&(t+="i"),r.multiline&&(t+="m"),r.dotAll&&(t+="s"),r.unicode&&(t+="u"),r.unicodeSets&&(t+="v"),r.sticky&&(t+="y"),t}},61034:(r,t,e)=>{var n=e(69565),o=e(39297),a=e(1625),i=e(67979),u=RegExp.prototype;r.exports=function(r){var t=r.flags;return void 0!==t||"flags"in u||o(r,"flags")||!a(u,r)?t:n(i,r)}},58429:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp,a=n((function(){var r=o("a","y");return r.lastIndex=2,null!==r.exec("abcd")})),i=a||n((function(){return!o("a","y").sticky})),u=a||n((function(){var r=o("^r","gy");return r.lastIndex=2,null!==r.exec("str")}));r.exports={BROKEN_CARET:u,MISSED_STICKY:i,UNSUPPORTED_Y:a}},83635:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o(".","s");return!(r.dotAll&&r.test("\n")&&"s"===r.flags)}))},18814:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o("(?<a>b)","g");return"b"!==r.exec("b").groups.a||"bc"!=="b".replace(r,"$<a>c")}))},67750:(r,t,e)=>{var n=e(64117),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},87633:(r,t,e)=>{var n=e(97751),o=e(62106),a=e(78227),i=e(43724),u=a("species");r.exports=function(r){var t=n(r);i&&t&&!t[u]&&o(t,u,{configurable:!0,get:function(){return this}})}},10687:(r,t,e)=>{var n=e(24913).f,o=e(39297),a=e(78227)("toStringTag");r.exports=function(r,t,e){r&&!e&&(r=r.prototype),r&&!o(r,a)&&n(r,a,{configurable:!0,value:t})}},66119:(r,t,e)=>{var n=e(25745),o=e(33392),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},77629:(r,t,e)=>{var n=e(96395),o=e(44576),a=e(39433),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},25745:(r,t,e)=>{var n=e(77629);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},2293:(r,t,e)=>{var n=e(28551),o=e(35548),a=e(64117),i=e(78227)("species");r.exports=function(r,t){var e,u=n(r).constructor;return void 0===u||a(e=n(u)[i])?t:o(e)}},68183:(r,t,e)=>{var n=e(79504),o=e(91291),a=e(655),i=e(67750),u=n("".charAt),c=n("".charCodeAt),s=n("".slice),f=function(r){return function(t,e){var n,f,p=a(i(t)),l=o(e),v=p.length;return l<0||l>=v?r?"":void 0:(n=c(p,l))<55296||n>56319||l+1===v||(f=c(p,l+1))<56320||f>57343?r?u(p,l):n:r?s(p,l,l+2):f-56320+(n-55296<<10)+65536}};r.exports={codeAt:f(!1),charAt:f(!0)}},43802:(r,t,e)=>{var n=e(79504),o=e(67750),a=e(655),i=e(47452),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},1548:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(39519),i=e(84215),u=n.structuredClone;r.exports=!!u&&!o((function(){if("DENO"===i&&a>92||"NODE"===i&&a>94||"BROWSER"===i&&a>97)return!1;var r=new ArrayBuffer(8),t=u(r,{transfer:[r]});return 0!==r.byteLength||8!==t.byteLength}))},4495:(r,t,e)=>{var n=e(39519),o=e(79039),a=e(44576).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},31240:(r,t,e)=>{var n=e(79504);r.exports=n(1..valueOf)},35610:(r,t,e)=>{var n=e(91291),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},75854:(r,t,e)=>{var n=e(72777),o=TypeError;r.exports=function(r){var t=n(r,"number");if("number"==typeof t)throw new o("Can't convert number to bigint");return BigInt(t)}},57696:(r,t,e)=>{var n=e(91291),o=e(18014),a=RangeError;r.exports=function(r){if(void 0===r)return 0;var t=n(r),e=o(t);if(t!==e)throw new a("Wrong length or index");return e}},25397:(r,t,e)=>{var n=e(47055),o=e(67750);r.exports=function(r){return n(o(r))}},91291:(r,t,e)=>{var n=e(80741);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},18014:(r,t,e)=>{var n=e(91291),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},48981:(r,t,e)=>{var n=e(67750),o=Object;r.exports=function(r){return o(n(r))}},58229:(r,t,e)=>{var n=e(99590),o=RangeError;r.exports=function(r,t){var e=n(r);if(e%t)throw new o("Wrong offset");return e}},99590:(r,t,e)=>{var n=e(91291),o=RangeError;r.exports=function(r){var t=n(r);if(t<0)throw new o("The argument can't be less than 0");return t}},72777:(r,t,e)=>{var n=e(69565),o=e(20034),a=e(10757),i=e(55966),u=e(84270),c=e(78227),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},56969:(r,t,e)=>{var n=e(72777),o=e(10757);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},92140:(r,t,e)=>{var n={};n[e(78227)("toStringTag")]="z",r.exports="[object z]"===String(n)},655:(r,t,e)=>{var n=e(36955),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},58319:r=>{var t=Math.round;r.exports=function(r){var e=t(r);return e<0?0:e>255?255:255&e}},16823:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},15823:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(69565),i=e(43724),u=e(72805),c=e(94644),s=e(66346),f=e(90679),p=e(6980),l=e(66699),v=e(2087),y=e(18014),d=e(57696),h=e(58229),g=e(58319),x=e(56969),m=e(39297),b=e(36955),w=e(20034),E=e(10757),A=e(2360),T=e(1625),O=e(52967),S=e(38480).f,C=e(43251),I=e(59213).forEach,P=e(87633),R=e(62106),_=e(24913),j=e(77347),M=e(35370),L=e(91181),N=e(23167),D=L.get,F=L.set,k=L.enforce,B=_.f,U=j.f,V=o.RangeError,Y=s.ArrayBuffer,W=Y.prototype,G=s.DataView,H=c.NATIVE_ARRAY_BUFFER_VIEWS,z=c.TYPED_ARRAY_TAG,$=c.TypedArray,X=c.TypedArrayPrototype,q=c.isTypedArray,K="BYTES_PER_ELEMENT",J="Wrong length",Q=function(r,t){R(r,t,{configurable:!0,get:function(){return D(this)[t]}})},Z=function(r){var t;return T(W,r)||"ArrayBuffer"===(t=b(r))||"SharedArrayBuffer"===t},rr=function(r,t){return q(r)&&!E(t)&&t in r&&v(+t)&&t>=0},tr=function(r,t){return t=x(t),rr(r,t)?p(2,r[t]):U(r,t)},er=function(r,t,e){return t=x(t),!(rr(r,t)&&w(e)&&m(e,"value"))||m(e,"get")||m(e,"set")||e.configurable||m(e,"writable")&&!e.writable||m(e,"enumerable")&&!e.enumerable?B(r,t,e):(r[t]=e.value,r)};i?(H||(j.f=tr,_.f=er,Q(X,"buffer"),Q(X,"byteOffset"),Q(X,"byteLength"),Q(X,"length")),n({target:"Object",stat:!0,forced:!H},{getOwnPropertyDescriptor:tr,defineProperty:er}),r.exports=function(r,t,e){var i=r.match(/\d+/)[0]/8,c=r+(e?"Clamped":"")+"Array",s="get"+r,p="set"+r,v=o[c],x=v,m=x&&x.prototype,b={},E=function(r,t){B(r,t,{get:function(){return function(r,t){var e=D(r);return e.view[s](t*i+e.byteOffset,!0)}(this,t)},set:function(r){return function(r,t,n){var o=D(r);o.view[p](t*i+o.byteOffset,e?g(n):n,!0)}(this,t,r)},enumerable:!0})};H?u&&(x=t((function(r,t,e,n){return f(r,m),N(w(t)?Z(t)?void 0!==n?new v(t,h(e,i),n):void 0!==e?new v(t,h(e,i)):new v(t):q(t)?M(x,t):a(C,x,t):new v(d(t)),r,x)})),O&&O(x,$),I(S(v),(function(r){r in x||l(x,r,v[r])})),x.prototype=m):(x=t((function(r,t,e,n){f(r,m);var o,u,c,s=0,p=0;if(w(t)){if(!Z(t))return q(t)?M(x,t):a(C,x,t);o=t,p=h(e,i);var l=t.byteLength;if(void 0===n){if(l%i)throw new V(J);if((u=l-p)<0)throw new V(J)}else if((u=y(n)*i)+p>l)throw new V(J);c=u/i}else c=d(t),o=new Y(u=c*i);for(F(r,{buffer:o,byteOffset:p,byteLength:u,length:c,view:new G(o)});s<c;)E(r,s++)})),O&&O(x,$),m=x.prototype=A(X)),m.constructor!==x&&l(m,"constructor",x),k(m).TypedArrayConstructor=x,z&&l(m,z,c);var T=x!==v;b[c]=x,n({global:!0,constructor:!0,forced:T,sham:!H},b),K in x||l(x,K,i),K in m||l(m,K,i),P(c)}):r.exports=function(){}},72805:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(84428),i=e(94644).NATIVE_ARRAY_BUFFER_VIEWS,u=n.ArrayBuffer,c=n.Int8Array;r.exports=!i||!o((function(){c(1)}))||!o((function(){new c(-1)}))||!a((function(r){new c,new c(null),new c(1.5),new c(r)}),!0)||o((function(){return 1!==new c(new u(2),1,void 0).length}))},26357:(r,t,e)=>{var n=e(35370),o=e(61412);r.exports=function(r,t){return n(o(r),t)}},43251:(r,t,e)=>{var n=e(76080),o=e(69565),a=e(35548),i=e(48981),u=e(26198),c=e(70081),s=e(50851),f=e(44209),p=e(18727),l=e(94644).aTypedArrayConstructor,v=e(75854);r.exports=function(r){var t,e,y,d,h,g,x,m,b=a(this),w=i(r),E=arguments.length,A=E>1?arguments[1]:void 0,T=void 0!==A,O=s(w);if(O&&!f(O))for(m=(x=c(w,O)).next,w=[];!(g=o(m,x)).done;)w.push(g.value);for(T&&E>2&&(A=n(A,arguments[2])),e=u(w),y=new(l(b))(e),d=p(y),t=0;e>t;t++)h=T?A(w[t],t):w[t],y[t]=d?v(h):+h;return y}},61412:(r,t,e)=>{var n=e(94644),o=e(2293),a=n.aTypedArrayConstructor,i=n.getTypedArrayConstructor;r.exports=function(r){return a(o(r,i(r)))}},33392:(r,t,e)=>{var n=e(79504),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},7040:(r,t,e)=>{var n=e(4495);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},48686:(r,t,e)=>{var n=e(43724),o=e(79039);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},58622:(r,t,e)=>{var n=e(44576),o=e(94901),a=n.WeakMap;r.exports=o(a)&&/native code/.test(String(a))},78227:(r,t,e)=>{var n=e(44576),o=e(25745),a=e(39297),i=e(33392),u=e(4495),c=e(7040),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},47452:r=>{r.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},14601:(r,t,e)=>{var n=e(97751),o=e(39297),a=e(66699),i=e(1625),u=e(52967),c=e(77740),s=e(11056),f=e(23167),p=e(32603),l=e(77584),v=e(80747),y=e(43724),d=e(96395);r.exports=function(r,t,e,h){var g="stackTraceLimit",x=h?2:1,m=r.split("."),b=m[m.length-1],w=n.apply(null,m);if(w){var E=w.prototype;if(!d&&o(E,"cause")&&delete E.cause,!e)return w;var A=n("Error"),T=t((function(r,t){var e=p(h?t:r,void 0),n=h?new w(r):new w;return void 0!==e&&a(n,"message",e),v(n,T,n.stack,2),this&&i(E,this)&&f(n,this,T),arguments.length>x&&l(n,arguments[x]),n}));if(T.prototype=E,"Error"!==b?u?u(T,A):c(T,A,{name:!0}):y&&g in w&&(s(T,w,g),s(T,w,"prepareStackTrace")),c(T,w),!d)try{E.name!==b&&a(E,"name",b),E.constructor=T}catch(r){}return T}}},54743:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(66346),i=e(87633),u="ArrayBuffer",c=a[u];n({global:!0,constructor:!0,forced:o[u]!==c},{ArrayBuffer:c}),i(u)},16573:(r,t,e)=>{var n=e(43724),o=e(62106),a=e(3238),i=ArrayBuffer.prototype;n&&!("detached"in i)&&o(i,"detached",{configurable:!0,get:function(){return a(this)}})},11745:(r,t,e)=>{var n=e(46518),o=e(27476),a=e(79039),i=e(66346),u=e(28551),c=e(35610),s=e(18014),f=e(2293),p=i.ArrayBuffer,l=i.DataView,v=l.prototype,y=o(p.prototype.slice),d=o(v.getUint8),h=o(v.setUint8);n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:a((function(){return!new p(2).slice(1,void 0).byteLength}))},{slice:function(r,t){if(y&&void 0===t)return y(u(this),r);for(var e=u(this).byteLength,n=c(r,e),o=c(void 0===t?e:t,e),a=new(f(this,p))(s(o-n)),i=new l(this),v=new l(a),g=0;n<o;)h(v,g++,d(i,n++));return a}})},77936:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return o(this,arguments.length?arguments[0]:void 0,!1)}})},78100:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transfer:function(){return o(this,arguments.length?arguments[0]:void 0,!0)}})},23792:(r,t,e)=>{var n=e(25397),o=e(6469),a=e(26269),i=e(91181),u=e(24913).f,c=e(51088),s=e(62529),f=e(96395),p=e(43724),l="Array Iterator",v=i.set,y=i.getterFor(l);r.exports=c(Array,"Array",(function(r,t){v(this,{type:l,target:n(r),index:0,kind:t})}),(function(){var r=y(this),t=r.target,e=r.index++;if(!t||e>=t.length)return r.target=null,s(void 0,!0);switch(r.kind){case"keys":return s(e,!1);case"values":return s(t[e],!1)}return s([e,t[e]],!1)}),"values");var d=a.Arguments=a.Array;if(o("keys"),o("values"),o("entries"),!f&&p&&"values"!==d.name)try{u(d,"name",{value:"values"})}catch(r){}},24359:(r,t,e)=>{var n=e(46518),o=e(66346);n({global:!0,constructor:!0,forced:!e(77811)},{DataView:o.DataView})},38309:(r,t,e)=>{e(24359)},23288:(r,t,e)=>{var n=e(79504),o=e(36840),a=Date.prototype,i="Invalid Date",u="toString",c=n(a[u]),s=n(a.getTime);String(new Date(NaN))!==i&&o(a,u,(function(){var r=s(this);return r==r?c(this):i}))},16280:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(18745),i=e(14601),u="WebAssembly",c=o[u],s=7!==new Error("e",{cause:7}).cause,f=function(r,t){var e={};e[r]=i(r,t,s),n({global:!0,constructor:!0,arity:1,forced:s},e)},p=function(r,t){if(c&&c[r]){var e={};e[r]=i(u+"."+r,t,s),n({target:u,stat:!0,constructor:!0,arity:1,forced:s},e)}};f("Error",(function(r){return function(t){return a(r,this,arguments)}})),f("EvalError",(function(r){return function(t){return a(r,this,arguments)}})),f("RangeError",(function(r){return function(t){return a(r,this,arguments)}})),f("ReferenceError",(function(r){return function(t){return a(r,this,arguments)}})),f("SyntaxError",(function(r){return function(t){return a(r,this,arguments)}})),f("TypeError",(function(r){return function(t){return a(r,this,arguments)}})),f("URIError",(function(r){return function(t){return a(r,this,arguments)}})),p("CompileError",(function(r){return function(t){return a(r,this,arguments)}})),p("LinkError",(function(r){return function(t){return a(r,this,arguments)}})),p("RuntimeError",(function(r){return function(t){return a(r,this,arguments)}}))},76918:(r,t,e)=>{var n=e(36840),o=e(77536),a=Error.prototype;a.toString!==o&&n(a,"toString",o)},2892:(r,t,e)=>{var n=e(46518),o=e(96395),a=e(43724),i=e(44576),u=e(19167),c=e(79504),s=e(92796),f=e(39297),p=e(23167),l=e(1625),v=e(10757),y=e(72777),d=e(79039),h=e(38480).f,g=e(77347).f,x=e(24913).f,m=e(31240),b=e(43802).trim,w="Number",E=i[w],A=u[w],T=E.prototype,O=i.TypeError,S=c("".slice),C=c("".charCodeAt),I=s(w,!E(" 0o1")||!E("0b1")||E("+0x1")),P=function(r){var t,e=arguments.length<1?0:E(function(r){var t=y(r,"number");return"bigint"==typeof t?t:function(r){var t,e,n,o,a,i,u,c,s=y(r,"number");if(v(s))throw new O("Cannot convert a Symbol value to a number");if("string"==typeof s&&s.length>2)if(s=b(s),43===(t=C(s,0))||45===t){if(88===(e=C(s,2))||120===e)return NaN}else if(48===t){switch(C(s,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+s}for(i=(a=S(s,2)).length,u=0;u<i;u++)if((c=C(a,u))<48||c>o)return NaN;return parseInt(a,n)}return+s}(t)}(r));return l(T,t=this)&&d((function(){m(t)}))?p(Object(e),this,P):e};P.prototype=T,I&&!o&&(T.constructor=P),n({global:!0,constructor:!0,wrap:!0,forced:I},{Number:P});var R=function(r,t){for(var e,n=a?h(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)f(t,e=n[o])&&!f(r,e)&&x(r,e,g(t,e))};o&&A&&R(u[w],A),(I||o)&&R(u[w],E)},79432:(r,t,e)=>{var n=e(46518),o=e(48981),a=e(71072);n({target:"Object",stat:!0,forced:e(79039)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},26099:(r,t,e)=>{var n=e(92140),o=e(36840),a=e(53179);n||o(Object.prototype,"toString",a,{unsafe:!0})},84864:(r,t,e)=>{var n=e(43724),o=e(44576),a=e(79504),i=e(92796),u=e(23167),c=e(66699),s=e(2360),f=e(38480).f,p=e(1625),l=e(60788),v=e(655),y=e(61034),d=e(58429),h=e(11056),g=e(36840),x=e(79039),m=e(39297),b=e(91181).enforce,w=e(87633),E=e(78227),A=e(83635),T=e(18814),O=E("match"),S=o.RegExp,C=S.prototype,I=o.SyntaxError,P=a(C.exec),R=a("".charAt),_=a("".replace),j=a("".indexOf),M=a("".slice),L=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,N=/a/g,D=/a/g,F=new S(N)!==N,k=d.MISSED_STICKY,B=d.UNSUPPORTED_Y;if(i("RegExp",n&&(!F||k||A||T||x((function(){return D[O]=!1,S(N)!==N||S(D)===D||"/a/i"!==String(S(N,"i"))}))))){for(var U=function(r,t){var e,n,o,a,i,f,d=p(C,this),h=l(r),g=void 0===t,x=[],w=r;if(!d&&h&&g&&r.constructor===U)return r;if((h||p(C,r))&&(r=r.source,g&&(t=y(w))),r=void 0===r?"":v(r),t=void 0===t?"":v(t),w=r,A&&"dotAll"in N&&(n=!!t&&j(t,"s")>-1)&&(t=_(t,/s/g,"")),e=t,k&&"sticky"in N&&(o=!!t&&j(t,"y")>-1)&&B&&(t=_(t,/y/g,"")),T&&(a=function(r){for(var t,e=r.length,n=0,o="",a=[],i=s(null),u=!1,c=!1,f=0,p="";n<=e;n++){if("\\"===(t=R(r,n)))t+=R(r,++n);else if("]"===t)u=!1;else if(!u)switch(!0){case"["===t:u=!0;break;case"("===t:if(o+=t,"?:"===M(r,n+1,n+3))continue;P(L,M(r,n+1))&&(n+=2,c=!0),f++;continue;case">"===t&&c:if(""===p||m(i,p))throw new I("Invalid capture group name");i[p]=!0,a[a.length]=[p,f],c=!1,p="";continue}c?p+=t:o+=t}return[o,a]}(r),r=a[0],x=a[1]),i=u(S(r,t),d?this:C,U),(n||o||x.length)&&(f=b(i),n&&(f.dotAll=!0,f.raw=U(function(r){for(var t,e=r.length,n=0,o="",a=!1;n<=e;n++)"\\"!==(t=R(r,n))?a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),o+=t):o+="[\\s\\S]":o+=t+R(r,++n);return o}(r),e)),o&&(f.sticky=!0),x.length&&(f.groups=x)),r!==w)try{c(i,"source",""===w?"(?:)":w)}catch(r){}return i},V=f(S),Y=0;V.length>Y;)h(U,S,V[Y++]);C.constructor=U,U.prototype=C,g(o,"RegExp",U,{constructor:!0})}w("RegExp")},57465:(r,t,e)=>{var n=e(43724),o=e(83635),a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"dotAll",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).dotAll;throw new s("Incompatible receiver, RegExp required")}}})},27495:(r,t,e)=>{var n=e(46518),o=e(57323);n({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},87745:(r,t,e)=>{var n=e(43724),o=e(58429).MISSED_STICKY,a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).sticky;throw new s("Incompatible receiver, RegExp required")}}})},90906:(r,t,e)=>{e(27495);var n,o,a=e(46518),i=e(69565),u=e(94901),c=e(28551),s=e(655),f=(n=!1,(o=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&n),p=/./.test;a({target:"RegExp",proto:!0,forced:!f},{test:function(r){var t=c(this),e=s(r),n=t.exec;if(!u(n))return i(p,t,e);var o=i(n,t,e);return null!==o&&(c(o),!0)}})},38781:(r,t,e)=>{var n=e(10350).PROPER,o=e(36840),a=e(28551),i=e(655),u=e(79039),c=e(61034),s="toString",f=RegExp.prototype,p=f[s],l=u((function(){return"/a/b"!==p.call({source:"a",flags:"b"})})),v=n&&p.name!==s;(l||v)&&o(f,s,(function(){var r=a(this);return"/"+i(r.source)+"/"+i(c(r))}),{unsafe:!0})},25440:(r,t,e)=>{var n=e(18745),o=e(69565),a=e(79504),i=e(89228),u=e(79039),c=e(28551),s=e(94901),f=e(64117),p=e(91291),l=e(18014),v=e(655),y=e(67750),d=e(57829),h=e(55966),g=e(2478),x=e(56682),m=e(78227)("replace"),b=Math.max,w=Math.min,E=a([].concat),A=a([].push),T=a("".indexOf),O=a("".slice),S="$0"==="a".replace(/./,"$0"),C=!!/./[m]&&""===/./[m]("a","$0");i("replace",(function(r,t,e){var a=C?"$":"$0";return[function(r,e){var n=y(this),a=f(r)?void 0:h(r,m);return a?o(a,r,n,e):o(t,v(n),r,e)},function(r,o){var i=c(this),u=v(r);if("string"==typeof o&&-1===T(o,a)&&-1===T(o,"$<")){var f=e(t,i,u,o);if(f.done)return f.value}var y=s(o);y||(o=v(o));var h,m=i.global;m&&(h=i.unicode,i.lastIndex=0);for(var S,C=[];null!==(S=x(i,u))&&(A(C,S),m);)""===v(S[0])&&(i.lastIndex=d(u,l(i.lastIndex),h));for(var I,P="",R=0,_=0;_<C.length;_++){for(var j,M=v((S=C[_])[0]),L=b(w(p(S.index),u.length),0),N=[],D=1;D<S.length;D++)A(N,void 0===(I=S[D])?I:String(I));var F=S.groups;if(y){var k=E([M],N,L,u);void 0!==F&&A(k,F),j=v(n(o,void 0,k))}else j=g(M,u,L,N,F,o);L>=R&&(P+=O(u,R,L)+j,R=L+M.length)}return P+O(u,R)}]}),!!u((function(){var r=/./;return r.exec=function(){var r=[];return r.groups={a:"7"},r},"7"!=="".replace(r,"$<a>")}))||!S||C)},50375:(r,t,e)=>{var n=e(46518),o=e(79504),a=e(67750),i=e(91291),u=e(655),c=o("".slice),s=Math.max,f=Math.min;n({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(r,t){var e,n,o=u(a(this)),p=o.length,l=i(r);return l===1/0&&(l=0),l<0&&(l=s(p+l,0)),(e=void 0===t?p:i(t))<=0||e===1/0||l>=(n=f(l+e,p))?"":c(o,l,n)}})},48140:(r,t,e)=>{var n=e(94644),o=e(26198),a=e(91291),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("at",(function(r){var t=i(this),e=o(t),n=a(r),u=n>=0?n:e+n;return u<0||u>=e?void 0:t[u]}))},81630:(r,t,e)=>{var n=e(79504),o=e(94644),a=n(e(57029)),i=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(r,t){return a(i(this),r,t,arguments.length>2?arguments[2]:void 0)}))},72170:(r,t,e)=>{var n=e(94644),o=e(59213).every,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},75044:(r,t,e)=>{var n=e(94644),o=e(84373),a=e(75854),i=e(36955),u=e(69565),c=e(79504),s=e(79039),f=n.aTypedArray,p=n.exportTypedArrayMethod,l=c("".slice);p("fill",(function(r){var t=arguments.length;f(this);var e="Big"===l(i(this),0,3)?a(r):+r;return u(o,this,e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),s((function(){var r=0;return new Int8Array(2).fill({valueOf:function(){return r++}}),1!==r})))},69539:(r,t,e)=>{var n=e(94644),o=e(59213).filter,a=e(26357),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("filter",(function(r){var t=o(i(this),r,arguments.length>1?arguments[1]:void 0);return a(this,t)}))},89955:(r,t,e)=>{var n=e(94644),o=e(59213).findIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},91134:(r,t,e)=>{var n=e(94644),o=e(43839).findLastIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLastIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},21903:(r,t,e)=>{var n=e(94644),o=e(43839).findLast,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLast",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},31694:(r,t,e)=>{var n=e(94644),o=e(59213).find,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},33206:(r,t,e)=>{var n=e(94644),o=e(59213).forEach,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",(function(r){o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},44496:(r,t,e)=>{var n=e(94644),o=e(19617).includes,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},66651:(r,t,e)=>{var n=e(94644),o=e(19617).indexOf,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},12887:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(79504),i=e(94644),u=e(23792),c=e(78227)("iterator"),s=n.Uint8Array,f=a(u.values),p=a(u.keys),l=a(u.entries),v=i.aTypedArray,y=i.exportTypedArrayMethod,d=s&&s.prototype,h=!o((function(){d[c].call([1])})),g=!!d&&d.values&&d[c]===d.values&&"values"===d.values.name,x=function(){return f(v(this))};y("entries",(function(){return l(v(this))}),h),y("keys",(function(){return p(v(this))}),h),y("values",x,h||!g,{name:"values"}),y(c,x,h||!g,{name:"values"})},19369:(r,t,e)=>{var n=e(94644),o=e(79504),a=n.aTypedArray,i=n.exportTypedArrayMethod,u=o([].join);i("join",(function(r){return u(a(this),r)}))},66812:(r,t,e)=>{var n=e(94644),o=e(18745),a=e(8379),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",(function(r){var t=arguments.length;return o(a,i(this),t>1?[r,arguments[1]]:[r])}))},8995:(r,t,e)=>{var n=e(94644),o=e(59213).map,a=e(61412),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("map",(function(r){return o(i(this),r,arguments.length>1?arguments[1]:void 0,(function(r,t){return new(a(r))(t)}))}))},36072:(r,t,e)=>{var n=e(94644),o=e(80926).right,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},31575:(r,t,e)=>{var n=e(94644),o=e(80926).left,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},88747:(r,t,e)=>{var n=e(94644),o=n.aTypedArray,a=n.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var r,t=this,e=o(t).length,n=i(e/2),a=0;a<n;)r=t[a],t[a++]=t[--e],t[e]=r;return t}))},28845:(r,t,e)=>{var n=e(44576),o=e(69565),a=e(94644),i=e(26198),u=e(58229),c=e(48981),s=e(79039),f=n.RangeError,p=n.Int8Array,l=p&&p.prototype,v=l&&l.set,y=a.aTypedArray,d=a.exportTypedArrayMethod,h=!s((function(){var r=new Uint8ClampedArray(2);return o(v,r,{length:1,0:3},1),3!==r[1]})),g=h&&a.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var r=new p(2);return r.set(1),r.set("2",1),0!==r[0]||2!==r[1]}));d("set",(function(r){y(this);var t=u(arguments.length>1?arguments[1]:void 0,1),e=c(r);if(h)return o(v,this,e,t);var n=this.length,a=i(e),s=0;if(a+t>n)throw new f("Wrong length");for(;s<a;)this[t+s]=e[s++]}),!h||g)},29423:(r,t,e)=>{var n=e(94644),o=e(61412),a=e(79039),i=e(67680),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("slice",(function(r,t){for(var e=i(u(this),r,t),n=o(this),a=0,c=e.length,s=new n(c);c>a;)s[a]=e[a++];return s}),a((function(){new Int8Array(1).slice()})))},57301:(r,t,e)=>{var n=e(94644),o=e(59213).some,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},373:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(79039),i=e(79306),u=e(74488),c=e(94644),s=e(13709),f=e(13763),p=e(39519),l=e(3607),v=c.aTypedArray,y=c.exportTypedArrayMethod,d=n.Uint16Array,h=d&&o(d.prototype.sort),g=!(!h||a((function(){h(new d(2),null)}))&&a((function(){h(new d(2),{})}))),x=!!h&&!a((function(){if(p)return p<74;if(s)return s<67;if(f)return!0;if(l)return l<602;var r,t,e=new d(516),n=Array(516);for(r=0;r<516;r++)t=r%4,e[r]=515-r,n[r]=r-2*t+3;for(h(e,(function(r,t){return(r/4|0)-(t/4|0)})),r=0;r<516;r++)if(e[r]!==n[r])return!0}));y("sort",(function(r){return void 0!==r&&i(r),x?h(this,r):u(v(this),function(r){return function(t,e){return void 0!==r?+r(t,e)||0:e!=e?-1:t!=t?1:0===t&&0===e?1/t>0&&1/e<0?1:-1:t>e}}(r))}),!x||g)},86614:(r,t,e)=>{var n=e(94644),o=e(18014),a=e(35610),i=e(61412),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("subarray",(function(r,t){var e=u(this),n=e.length,c=a(r,n);return new(i(e))(e.buffer,e.byteOffset+c*e.BYTES_PER_ELEMENT,o((void 0===t?n:a(t,n))-c))}))},41405:(r,t,e)=>{var n=e(44576),o=e(18745),a=e(94644),i=e(79039),u=e(67680),c=n.Int8Array,s=a.aTypedArray,f=a.exportTypedArrayMethod,p=[].toLocaleString,l=!!c&&i((function(){p.call(new c(1))}));f("toLocaleString",(function(){return o(p,l?u(s(this)):s(this),u(arguments))}),i((function(){return[1,2].toLocaleString()!==new c([1,2]).toLocaleString()}))||!i((function(){c.prototype.toLocaleString.call([1,2])})))},37467:(r,t,e)=>{var n=e(37628),o=e(94644),a=o.aTypedArray,i=o.exportTypedArrayMethod,u=o.getTypedArrayConstructor;i("toReversed",(function(){return n(a(this),u(this))}))},44732:(r,t,e)=>{var n=e(94644),o=e(79504),a=e(79306),i=e(35370),u=n.aTypedArray,c=n.getTypedArrayConstructor,s=n.exportTypedArrayMethod,f=o(n.TypedArrayPrototype.sort);s("toSorted",(function(r){void 0!==r&&a(r);var t=u(this),e=i(c(t),t);return f(e,r)}))},33684:(r,t,e)=>{var n=e(94644).exportTypedArrayMethod,o=e(79039),a=e(44576),i=e(79504),u=a.Uint8Array,c=u&&u.prototype||{},s=[].toString,f=i([].join);o((function(){s.call({})}))&&(s=function(){return f(this)});var p=c.toString!==s;n("toString",s,p)},21489:(r,t,e)=>{e(15823)("Uint8",(function(r){return function(t,e,n){return r(this,t,e,n)}}))},79577:(r,t,e)=>{var n=e(39928),o=e(94644),a=e(18727),i=e(91291),u=e(75854),c=o.aTypedArray,s=o.getTypedArrayConstructor,f=o.exportTypedArrayMethod,p=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(r){return 8===r}}();f("with",{with:function(r,t){var e=c(this),o=i(r),f=a(e)?u(t):+t;return n(e,s(e),o,f)}}.with,!p)}},t={};function e(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return r[n].call(a.exports,a,a.exports,e),a.exports}e.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return e.d(t,{a:t}),t},e.d=(r,t)=>{for(var n in t)e.o(t,n)&&!e.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:t[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),e.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t);var n={};e.d(n,{AP:()=>j,Bv:()=>O,DE:()=>f,KD:()=>_,LX:()=>g,Lu:()=>x,MD:()=>w,Nl:()=>y,Op:()=>S,R_:()=>d,UP:()=>b,V6:()=>m,Xj:()=>P,aX:()=>A,dF:()=>R,fH:()=>T,g:()=>s,jf:()=>h,of:()=>v,pL:()=>E,qT:()=>p,s1:()=>M,ue:()=>I,un:()=>l,yD:()=>C,yz:()=>_});var o=e(64007),a=e.n(o),i=e(11393),u=e.n(i),c=(e(2892),e(48618)),s={OPERATE:"operate",DETAIL:"detail",LOG:"log"},f={CURRENT_DATE:"_currentDate",REF_VAL:"_refVal"},p=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentTabPaneH5"],l="CustomComponentFormLayout",v="CustomComponentFormLayoutH5",y=["CustomComponentDialog"],d=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentDialog","ElButton","CustomComponentTable","CustomComponentRow","CustomComponentCol","CustomComponentCardH5","CustomComponentCollapseH5","CustomComponentTabsH5","CustomComponentTabPaneH5","CustomComponentTableH5","cmi-cell","cmi-button","cmi-link","cmi-dropdown-menu","cmi-divider"],h=["CmiInput","CmiSelect"],g=["CustomComponentTabPane","CustomComponentDialog","CustomComponentCol","CustomComponentTabPaneH5"],x=["CustomComponentTable"],m=["el-select","el-date-picker","el-time-picker","el-time-select","el-cascader","el-input-number","CustomComponentTree","CustomComponentSteps"],b=["el-span"],w="el-",E="t-",A="cmi-",T="H5-",O="1",S="0",C=["ElText"],I=["ElInput","ElDatePicker","ElInputNumber"],P=["ElSelect"],R="/gcweb/External_Mail",_={compInfo:{type:Object,getValue:function(r,t,e){return r}},modelValue:{type:[String,Number,Object,Array,void 0,null],getValue:function(r,t,e){return e.value}},config:{type:Object,getValue:function(r,t,e){return r}},refValue:{type:[Object,Number,String],default:"",getValue:function(r,t,e){return e}},disabled:{type:Boolean,default:!1,getValue:function(r,t,e){return j(r,t.mode)}},clearable:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.clearableFlag}},required:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.requiredFlag}},onlyRequiredFlag:{type:Boolean,default:!1,getValue:function(r,t,e){return r.onlyRequiredFlag}},tableData:{type:Array,default:function(){return[]},getValue:function(r,t,e){return t.tableData}},rowScope:{type:Object,getValue:function(r,t,e){return t.rowScope}},width:{type:[String,Number],default:"",getValue:function(r,t,e){return r.width?(0,c.M6)(r.width):null}},mode:{type:[String],default:"",getValue:function(r,t){return t.mode}},options:{type:Array,default:function(){return[]},getValue:function(r,t,e,n){return(0,c.fN)(r,n)}},placeholder:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return((null==o?void 0:a()(o).call(o,"zh"))>-1?r.defPlacehold:r.defPlaceholdEn)||""}},placeholderEn:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return r.defPlaceholdEn}}};function j(r,t){var e,n;return!(0,c.E1)(["CustomComponentTabs"],r)&&(t===s.LOG?!r.logAlong&&!(0,c.E1)(u()(e=[l]).call(e,p),r)||"0"===r.editFlag:t===s.DETAIL&&!r.detailAlong&&!(0,c.E1)(u()(n=[l]).call(n,p),r)||"0"===r.editFlag)}var M={row:"CustomComponentRow",grid:"CustomComponentRow","grid-col":"CustomComponentCol",table:"CustomComponentTable","checkbox-table":"CustomComponentTable",tab:"CustomComponentTabs","tab-pane":"CustomComponentTabPane",collapse:"CustomComponentCollapse",card:"CustomComponentCollapse",cycle:"CustomComponentCycle",input:"ElInput",textarea:"ElInput",button:"ElButton","static-text":"ElText",number:"ElInputNumber",radio:"ElRadio",checkbox:"ElCheckbox",select:"ElSelect",time:"ElTimePicker","time-range":"ElTimePicker",date:"ElDatePicker","date-range":"ElDatePicker",cascader:"ElCascader","select-employees":"CustomComponentSelectEmployees","rich-editor":"CustomComponentEditor",pagination:"ElPagination",tree:"CustomComponentTree",steps:"CustomComponentSteps","mail-send":"CustomComponentSendMail","cmi-card":"CustomComponentCardH5","cmi-collapse":"CustomComponentCollapseH5","cmi-tab":"CustomComponentTabsH5","cmi-tab-pane":"CustomComponentTabPaneH5","cmi-table":"CustomComponentTableH5","cmi-datetime":"CmiDatetimePicker"},L=n.DE,N=n.Nl,D=n.Op,F=n.Bv,k=n.un,B=n.of,U=n.aX,V=n.fH,Y=n.dF,W=n.s1,G=n.g,H=n.Lu,z=n.qT,$=n.LX,X=n.R_,q=n.yD,K=n.ue,J=n.Xj,Q=n.MD,Z=n.pL,rr=n.V6,tr=n.UP,er=n.jf,nr=n.AP,or=n.yz,ar=n.KD;export{L as ARG_FLAGS,N as CONTEXT_PEDDING_TYPE,D as DISPLAY_HIDDEN,F as DISPLAY_SHOW,k as FORM_META_TYPE,B as FORM_META_TYPE_H5,U as H5_PREFIX_FLAG,V as H5_REPLACE_PREFIX_FLAG,Y as MAIL_SEND_URL,W as META_TYPE_MAP,G as MODE,H as MULTI_PAGE_META_LIST_TYPES,z as NOT_LOG_EFFECT_TYPE,$ as NOT_NEED_COL_ITEM_META_TYPE,X as NOT_NEED_FORM_ITEM_META_TYPE,q as PLAIN_TYPE_ALONG_COLUMNS,K as PLAIN_TYPE_COLUMNS,J as PLAIN_TYPE_OPTIONS_COLUMNS,Q as PREFIX_FLAG,Z as REPLACE_PREFIX_FLAG,rr as SPECIAL_SET_FULL_WIDTH_ITEM_META_TYPE,tr as TABLE_COLUMN_NOT_RENDER_META_TYPE,er as TRANS_CELL_COMPONETS,nr as calcDisable,or as commonPropsType,ar as componentPropsType};
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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U0FBVSwwQkFDVixLQUFRLDBCQUNSQyxNQUFPLHVCQUNQLE1BQVMsVUFDVCxTQUFZLFVBQ1osT0FBVSxXQUNWLGNBQWUsU0FDZixPQUFVLGdCQUNWLE1BQVMsVUFDVCxTQUFZLGFBQ1osT0FBVSxXQUNWLEtBQVEsZUFDUixhQUFjLGVBQ2QsS0FBUSxlQUNSLGFBQWMsZUFDZCxTQUFZLGFBQ1osbUJBQW9CLGlDQUNwQixjQUFlLHdCQUNmLFdBQWMsZUFDZCxLQUFRLHNCQUNSLE1BQVMsdUJBQ1QsWUFBYSwwQkFFYixXQUFZLHdCQUNaLGVBQWdCLDRCQUNoQixVQUFXLHdCQUNYLGVBQWdCLDJCQUNoQixZQUFhLHlCQUNiLGVBQWdCLHFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL3NyYy91dGlscy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL3NyYy91dGlscy9pcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvYXJyYXkvaXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL2luc3RhbmNlL2NvbmNhdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvZW5kcy13aXRoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvaW5kZXgtb2YuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL2luc3RhbmNlL21hcC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvcmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9zbGljZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvdHJpbS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvb2JqZWN0L2tleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL3BhcnNlLWludC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL2NvbmNhdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL2ZpbmQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvYXJyYXkvdmlydHVhbC9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL2luZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvbWFwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvcmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvY29uY2F0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL2VuZHMtd2l0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL2luZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL21hcC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2Uvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvdHJpbS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3QvY3JlYXRlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL3BhcnNlLWludC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9zdHJpbmcvdmlydHVhbC9lbmRzLXdpdGguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvc3RyaW5nL3ZpcnR1YWwvdHJpbS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYS1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LWZvci1lYWNoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktcmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1zbGljZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jbGFzc29mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jb3JyZWN0LWlzLXJlZ2V4cC1sb2dpYy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RvZXMtbm90LWV4Y2VlZC1zYWZlLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LWlzLW5vZGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9leHBvcnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2ZhaWxzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1hcHBseS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtbWV0aG9kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nbG9iYWwtdGhpcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2h0bWwuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWZvcmNlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtcmVnZXhwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9tYXRoLXRydW5jLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9ub3QtYS1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL251bWJlci1wYXJzZS1pbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb3JkaW5hcnktdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9wYXRoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC1rZXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc2hhcmVkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zdHJpbmctdHJpbS1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3N0cmluZy10cmltLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tb2JqZWN0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RyeS10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3VpZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd2hpdGVzcGFjZXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5pbmRleC1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFycmF5LmlzLWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuY3JlYXRlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5wYXJzZS1pbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zdHJpbmcuZW5kcy13aXRoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2FycmF5L2lzLWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9hcnJheS92aXJ0dWFsL2Zvci1lYWNoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9jb25jYXQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2VuZHMtd2l0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZmluZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2luZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9tYXAuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL3JlZHVjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2Uvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL3RyaW0uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9wYXJzZS1pbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hLWNhbGxhYmxlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hbi1pbnN0YW5jZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci1iYXNpYy1kZXRlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1idWZmZXItaXMtZGV0YWNoZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1idWZmZXItbm90LWRldGFjaGVkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXRyYW5zZmVyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWNvcHktd2l0aGluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktZmlsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWZyb20tY29uc3RydWN0b3ItYW5kLWxpc3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi1mcm9tLWxhc3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1sYXN0LWluZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXJlZHVjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNsaWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktc29ydC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXRvLXJldmVyc2VkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktd2l0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1pdGVyLXJlc3VsdC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3Nvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVsZXRlLXByb3BlcnR5LW9yLXRocm93LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZXRhY2gtdHJhbnNmZXJhYmxlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW52aXJvbm1lbnQtZmYtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Vudmlyb25tZW50LWlzLWllLW9yLWVkZ2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnZpcm9ubWVudC1pcy1ub2RlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdXNlci1hZ2VudC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnZpcm9ubWVudC13ZWJraXQtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Vudmlyb25tZW50LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZXJyb3Itc3RhY2stY2xlYXIuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lcnJvci1zdGFjay1pbnN0YWxsLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZXJyb3Itc3RhY2staW5zdGFsbGFibGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lcnJvci10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9leHBvcnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mYWlscy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi1hcHBseS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtYWNjZXNzb3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLW5vZGUtbW9kdWxlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtc3Vic3RpdHV0aW9uLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9odG1sLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pZWVlNzU0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnN0YWxsLWVycm9yLWNhdXNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS1pdGVyYXRvci1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWJpZy1pbnQtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtZm9yY2VkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtaW50ZWdyYWwtbnVtYmVyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1wb3NzaWJsZS1wcm90b3R5cGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1wdXJlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcmVnZXhwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtc3ltYm9sLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3ItY3JlYXRlLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3ItZGVmaW5lLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pdGVyYXRvcnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLWZsb2F0LXJvdW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWF0aC1mcm91bmQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLXNpZ24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLXRydW5jLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbm9ybWFsaXplLXN0cmluZy1hcmd1bWVudC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL293bi1rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcGF0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3Byb3h5LWFjY2Vzc29yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZXhlYy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1mbGFncy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1nZXQtZmxhZ3MuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1uY2cuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zZXQtc3BlY2llcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3RyaW5nLXRyaW0uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJ1Y3R1cmVkLWNsb25lLXByb3Blci10cmFuc2Zlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90aGlzLW51bWJlci12YWx1ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tYmlnLWludC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWluZGV4LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tb2JqZWN0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tb2Zmc2V0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tcG9zaXRpdmUtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXVpbnQ4LWNsYW1wZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90cnktdG8tc3RyaW5nLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcnMtcmVxdWlyZS13cmFwcGVycy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3R5cGVkLWFycmF5LWZyb20tc3BlY2llcy1hbmQtbGlzdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3R5cGVkLWFycmF5LWZyb20uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90eXBlZC1hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdWlkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1Zy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlYWstbWFwLWJhc2ljLWRldGVjdGlvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2hpdGVzcGFjZXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy93cmFwLWVycm9yLWNvbnN0cnVjdG9yLXdpdGgtY2F1c2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXktYnVmZmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LWJ1ZmZlci5kZXRhY2hlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS1idWZmZXIuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXktYnVmZmVyLnRyYW5zZmVyLXRvLWZpeGVkLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS1idWZmZXIudHJhbnNmZXIuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZGF0YS12aWV3LmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmRhdGEtdmlldy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5kYXRlLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5lcnJvci5jYXVzZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5lcnJvci50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5kb3QtYWxsLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5zdGlja3kuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc3Vic3RyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmF0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmNvcHktd2l0aGluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmV2ZXJ5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbGwuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmlsdGVyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbmQtaW5kZXguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmluZC1sYXN0LWluZGV4LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbmQtbGFzdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZvci1lYWNoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmluY2x1ZGVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmluZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5Lml0ZXJhdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmpvaW4uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkubGFzdC1pbmRleC1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5tYXAuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkucmVkdWNlLXJpZ2h0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnJlZHVjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5yZXZlcnNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNldC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5zbGljZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5zb21lLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNvcnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuc3ViYXJyYXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudG8tbG9jYWxlLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS50by1yZXZlcnNlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS50by1zb3J0ZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudG8tc3RyaW5nLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnVpbnQ4LWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LndpdGguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL3NyYy91dGlscy9jb25zdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IGludGVyc2VjdGlvbldpdGgsIGlzRXF1YWwsIG1lcmdlV2l0aCwgdW5pb25XaXRoLCBpc0FycmF5LCBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnXG5pbXBvcnQgeyBpc0RhdGUgfSBmcm9tICcuL2lzJ1xuZXhwb3J0IHtcbiAgY2xvbmVEZWVwLFxuICB1bmlvbldpdGhcbn1cblxuZnVuY3Rpb24gY2FjaGVkKGZuKSB7XG4gIGNvbnN0IGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICByZXR1cm4gZnVuY3Rpb24gY2FjaGVkRm4oc3RyKSB7XG4gICAgY29uc3QgaGl0ID0gY2FjaGVbc3RyXVxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXJldHVybi1hc3NpZ24gKi9cbiAgICByZXR1cm4gaGl0IHx8IChjYWNoZVtzdHJdID0gZm4oc3RyKSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsUGl4ZWwocGl4ZWwpIHtcbiAgaWYgKCFwaXhlbCkgcmV0dXJuIG51bGxcbiAgY29uc3Qgd2lkdGggPSBOdW1iZXIocGl4ZWwpXG4gIGlmICghaXNOYU4od2lkdGgpKSB7XG4gICAgcmV0dXJuIHdpZHRoICsgJ3B4J1xuICB9IGVsc2Uge1xuICAgIGxldCBlbmRGbGFncyA9IFsncHgnLCAnJScsICd2aCcsICd2dycsICdyZW0nLCAnZW0nXVxuICAgIGNvbnN0IGZpbmRGbGFnID0gZW5kRmxhZ3MuZmluZChmbGFnID0+IHBpeGVsPy5lbmRzV2l0aChmbGFnKSlcbiAgICBpZiAoZmluZEZsYWcpIHtcbiAgICAgIHJldHVybiBwYXJzZUludChwaXhlbCkgKyBmaW5kRmxhZ1xuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vblJlZlR5cGUodmFsdWUpIHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJyB8fCB0eXBlID09PSAnbnVtYmVyJyB8fCB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlID09PSAnc3ltYm9sJyB8fCB0eXBlID09PSAnYmlnaW50Jykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDYW1lbGl6ZSBhIGh5cGhlbi1kZWxpbWl0ZWQgc3RyaW5nLlxuICovXG5jb25zdCBjYW1lbGl6ZVJFID0gLy0oXFx3KS9nXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItYXJyb3ctY2FsbGJhY2sgKi9cbmV4cG9ydCBjb25zdCBjYW1lbGl6ZSA9IGNhY2hlZChmdW5jdGlvbiAoc3RyKSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIHByZWZlci1hcnJvdy1jYWxsYmFjayAqL1xuICByZXR1cm4gc3RyLnJlcGxhY2UoY2FtZWxpemVSRSwgZnVuY3Rpb24gKF8sIGMpIHsgcmV0dXJuIGMgPyBjLnRvVXBwZXJDYXNlKCkgOiAnJyB9KVxufSlcblxuLyoqXG4gKiBDYXBpdGFsaXplIGEgc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgY2FwaXRhbGl6ZSA9IGNhY2hlZChmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSlcbn0pXG5cbi8vIOagh+iusOaVsOe7hOS4reeahOaYr+WQpuacieWvueW6lOeahOe7hOS7tlxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb21wb25lbnQoY29tcHMsIGNvbXApIHtcbiAgY29uc3QgY29tcHNUb09iaiA9IGNvbXBzLnJlZHVjZSgocmV0LCBrZXksIGlkeCkgPT4ge3JldFtrZXldID0gaWR4OyByZXR1cm4gcmV0fSwge30pXG4gIGNvbnN0IHJlc29sdmVJZHggPSByZXNvbHZlQXNzZXRDb21wb25lbnRzKGNvbXBzVG9PYmosIGNvbXApXG4gIHJldHVybiAocmVzb2x2ZUlkeCA9PT0gdW5kZWZpbmVkIHx8IHJlc29sdmVJZHggPT09IG51bGwpID8gLTEgOiByZXNvbHZlSWR4XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhdGNoQ29tcG9uZW50KGNvbXBvbmVudHMsIGNvbmZpZykge1xuICByZXR1cm4gKGZpbmRDb21wb25lbnQoY29tcG9uZW50cywgY29uZmlnPy5yZW5kZXJieSkgIT09IC0xIHx8IGZpbmRDb21wb25lbnQoY29tcG9uZW50cywgY29uZmlnPy5tZXRhVHlwZSkgIT09IC0xKVxufVxuXG4vLyBcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXNzZXRDb21wb25lbnRzKFxuICBjb21wb25lbnRzLFxuICBpZFxuKSB7XG4gIGlmICh0eXBlb2YgaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBhc3NldHMgPSBjb21wb25lbnRzXG4gIGlmIChhc3NldHNbaWRdICE9PSB1bmRlZmluZWQgJiYgYXNzZXRzW2lkXSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBhc3NldHNbaWRdXG4gIH1cbiAgY29uc3QgY2FtZWxpemVkSWQgPSBjYW1lbGl6ZShpZClcbiAgaWYgKGFzc2V0c1tjYW1lbGl6ZWRJZF0gIT09IHVuZGVmaW5lZCAmJiBhc3NldHNbY2FtZWxpemVkSWRdICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGFzc2V0c1tjYW1lbGl6ZWRJZF1cbiAgfVxuICBjb25zdCBQYXNjYWxDYXNlSWQgPSBjYXBpdGFsaXplKGNhbWVsaXplZElkKVxuICBpZiAoYXNzZXRzW1Bhc2NhbENhc2VJZF0gIT09IHVuZGVmaW5lZCAmJiBhc3NldHNbUGFzY2FsQ2FzZUlkXSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBhc3NldHNbUGFzY2FsQ2FzZUlkXVxuICB9XG4gIC8vIGZ1bmN0aW9uIGlzVnVlSW5zdGFuY2UoQ290cikge1xuICAvLyAgIHJldHVybiBDb3RyLnByb3RvdHlwZSBpbnN0YW5jZW9mIFZ1ZVxuICAvLyB9XG4gIHJldHVybiBudWxsXG59XG5cbi8vIOaKiuaJgOaciee7hOS7tumDvei9rOaNouS4uuWkp+mpvOWzsOeahOe7hOS7tlxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbENhcGl0YWxpemVDb21wb25lbnQoY29tcG9uZW50KSB7XG4gIGlmICh0eXBlb2YgY29tcG9uZW50ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBjb21wb25lbnRcbiAgfVxuICByZXR1cm4gY2FwaXRhbGl6ZShjYW1lbGl6ZShjb21wb25lbnQpKVxufVxuXG4vLyDlr7nlupTkuKTkuKrnu4Tku7blkI3mmK/lkKbkuLrlkIzkuIDkuKpcbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlQ29tcG9uZXQoY29tcDEsIGNvbXAyKSB7XG4gIGlmICh0eXBlb2YgY29tcDEgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjb21wMiAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCB0cmFuc0NvbXAxID0gY2FwaXRhbGl6ZShjYW1lbGl6ZShjb21wMSkpXG4gIGNvbnN0IHRyYW5zQ29tcDIgPSBjYXBpdGFsaXplKGNhbWVsaXplKGNvbXAyKSlcbiAgcmV0dXJuIHRyYW5zQ29tcDEgPT09IHRyYW5zQ29tcDJcbn1cblxuY29uc3QgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5XG5leHBvcnQgZnVuY3Rpb24gaGFzT3duKG9iaiwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBPYmplY3RdJyAmJiBvYmogIT09IG51bGwgJiYgb2JqICE9PSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZSwgZm10KSB7XG4gIGlmICghaXNEYXRlKGRhdGUpKSB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUpXG4gIH1cbiAgaWYgKC8oeSspLy50ZXN0KGZtdCkpIHtcbiAgICBmbXQgPSBmbXQucmVwbGFjZShSZWdFeHAuJDEsIChgJHtkYXRlLmdldEZ1bGxZZWFyKCl9YCkuc3Vic3RyKDQgLSBSZWdFeHAuJDEubGVuZ3RoKSlcbiAgfVxuICBjb25zdCBvID0ge1xuICAgICdNKyc6IGRhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgJ2QrJzogZGF0ZS5nZXREYXRlKCksXG4gICAgJ2grJzogZGF0ZS5nZXRIb3VycygpLFxuICAgICdtKyc6IGRhdGUuZ2V0TWludXRlcygpLFxuICAgICdzKyc6IGRhdGUuZ2V0U2Vjb25kcygpXG4gIH1cbiAgT2JqZWN0LmtleXMobykuZm9yRWFjaChrID0+IHtcbiAgICBjb25zdCBzdHIgPSBgJHtvW2tdfWBcbiAgICBpZiAobmV3IFJlZ0V4cChgKCR7a30pYCkudGVzdChmbXQpKSB7XG4gICAgICBmbXQgPSBmbXQucmVwbGFjZShSZWdFeHAuJDEsIChSZWdFeHAuJDEubGVuZ3RoID09PSAxKSA/IHN0ciA6IHBhZExlZnRaZXJvKHN0cikpXG4gICAgfVxuICB9KVxuICByZXR1cm4gZm10XG59XG5cbmZ1bmN0aW9uIHBhZExlZnRaZXJvKHN0cikge1xuICByZXR1cm4gKGAwMCR7c3RyfWApLnN1YnN0cihzdHIubGVuZ3RoKVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IG1lcmdlIHR3byBvYmplY3RzLlxuICog6YCS5b2S5ZCI5bm25Lik5Liq5a+56LGh44CCXG4gKlxuICogQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCB0byBtZXJnZSBmcm9tLiDopoHlkIjlubbnmoTmupDlr7nosaHjgIJcbiAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3QgdG8gbWVyZ2UgaW50by4g55uu5qCH5a+56LGh77yM5ZCI5bm25ZCO57uT5p6c5a2Y5pS+5LqO5q2k44CCXG4gKiBAcGFyYW0gbWVyZ2VBcnJheXMgSG93IHRvIG1lcmdlIGFycmF5cy4gRGVmYXVsdCBpcyBcInJlcGxhY2VcIi5cbiAqICAgICAgICDlpoLkvZXlkIjlubbmlbDnu4TjgILpu5jorqTkuLpyZXBsYWNl44CCXG4gKiAgICAgICAgLSBcInVuaW9uXCI6IFVuaW9uIHRoZSBhcnJheXMuIOWvueaVsOe7hOaJp+ihjOW5tumbhuaTjeS9nOOAglxuICogICAgICAgIC0gXCJpbnRlcnNlY3Rpb25cIjogSW50ZXJzZWN0IHRoZSBhcnJheXMuIOWvueaVsOe7hOaJp+ihjOS6pOmbhuaTjeS9nOOAglxuICogICAgICAgIC0gXCJjb25jYXRcIjogQ29uY2F0ZW5hdGUgdGhlIGFycmF5cy4g6L+e5o6l5pWw57uE44CCXG4gKiAgICAgICAgLSBcInJlcGxhY2VcIjogUmVwbGFjZSB0aGUgc291cmNlIGFycmF5IHdpdGggdGhlIHRhcmdldCBhcnJheS4g55So55uu5qCH5pWw57uE5pu/5o2i5rqQ5pWw57uE44CCXG4gKiBAcmV0dXJucyBUaGUgbWVyZ2VkIG9iamVjdC4g5ZCI5bm25ZCO55qE5a+56LGh44CCXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwTWVyZ2UoXG4gIHNvdXJjZSxcbiAgdGFyZ2V0LFxuICBtZXJnZUFycmF5cywgLy8gJ3VuaW9uJyB8ICdpbnRlcnNlY3Rpb24nIHwgJ2NvbmNhdCcgfCAncmVwbGFjZScgPSAncmVwbGFjZSdcbikge1xuICBpZiAoIXRhcmdldCkge1xuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cbiAgaWYgKCFzb3VyY2UpIHtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG4gIGxldCByZXQgPSBtZXJnZVdpdGgoc291cmNlLCB0YXJnZXQsIChzb3VyY2VWYWx1ZSwgdGFyZ2V0VmFsdWUpID0+IHtcbiAgICBpZiAoIXRhcmdldFZhbHVlKSB7XG4gICAgICByZXR1cm4gc291cmNlVmFsdWVcbiAgICB9XG4gICAgaWYgKCFzb3VyY2VWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRhcmdldFZhbHVlXG4gICAgfVxuICAgIGlmIChpc0FycmF5KHRhcmdldFZhbHVlKSAmJiBpc0FycmF5KHNvdXJjZVZhbHVlKSkge1xuICAgICAgc3dpdGNoIChtZXJnZUFycmF5cykge1xuICAgICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgICAgcmV0dXJuIHVuaW9uV2l0aChzb3VyY2VWYWx1ZSwgdGFyZ2V0VmFsdWUsIGlzRXF1YWwpO1xuICAgICAgICBjYXNlICdpbnRlcnNlY3Rpb24nOlxuICAgICAgICAgIHJldHVybiBpbnRlcnNlY3Rpb25XaXRoKHNvdXJjZVZhbHVlLCB0YXJnZXRWYWx1ZSwgaXNFcXVhbCk7XG4gICAgICAgIGNhc2UgJ2NvbmNhdCc6XG4gICAgICAgICAgcmV0dXJuIHNvdXJjZVZhbHVlLmNvbmNhdCh0YXJnZXRWYWx1ZSk7XG4gICAgICAgIGNhc2UgJ3JlcGxhY2UnOlxuICAgICAgICAgIHJldHVybiB0YXJnZXRWYWx1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gbWVyZ2UgYXJyYXkgc3RyYXRlZ3k6ICR7bWVyZ2VBcnJheXN9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc1BsYWluT2JqZWN0KHRhcmdldFZhbHVlKSAmJiBpc1BsYWluT2JqZWN0KHNvdXJjZVZhbHVlKSkge1xuICAgICAgcmV0dXJuIGRlZXBNZXJnZShzb3VyY2VWYWx1ZSwgdGFyZ2V0VmFsdWUsIG1lcmdlQXJyYXlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldFZhbHVlO1xuICB9KTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgIGlmIChyZXQgJiYgIUFycmF5LmlzQXJyYXkocmV0KSkge1xuICAgICAgbGV0IGFyciA9IFtdXG4gICAgICBPYmplY3Qua2V5cyhyZXQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgYXJyW2tleV0gPSByZXRba2V5XVxuICAgICAgfSlcbiAgICAgIHJldCA9IGFyclxuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZuU3RyKHN0cikge1xuICAvLyDljLnphY3lhbflkI3lh73mlbDlkozljL/lkI3lh73mlbDvvIjkvYbkuI3ljIXmi6znrq3lpLTlh73mlbDvvIlcbiAgY29uc3QgZnVuY3Rpb25SZWdleCA9IC9eXFxzKig/OmZ1bmN0aW9uXFxzKig/OlxcdytcXHMqKT9cXChbXigpXSpcXClcXHMqXFx7W1xcc1xcU10qP1xcfSlcXHMqJC9cbiAgLy8g5Yy56YWN566t5aS05Ye95pWwXG4gIGNvbnN0IGFycm93RnVuY3Rpb25SZWdleCA9IC9eXFxzKlxcKCg/OlxccypcXHcrKD86XFxzKj1cXHMqXFx3Kyk/XFxzKig/OixcXHMqKT8pKlxcKVxccyo9PlxccyooPzpcXHtbXFxzXFxTXSo/XFx9fFtcXHNcXFNdKz8pXFxzKiQvO1xuICByZXR1cm4gZnVuY3Rpb25SZWdleC50ZXN0KHN0cikgfHwgYXJyb3dGdW5jdGlvblJlZ2V4LnRlc3Qoc3RyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZ1bmN0aW9uQm9keShmdW5jU3RyKSB7XG4gIC8vIOato+WImeihqOi+vuW8j+eUqOS6juWMuemFjeWHveaVsOS9k1xuICBjb25zdCBib2R5UmVnZXggPSAvKD88PXspKC4qKSg/PX0pL3M7XG4gIGNvbnN0IG1hdGNoID0gYm9keVJlZ2V4LmV4ZWMoZnVuY1N0cik7XG4gIGlmIChtYXRjaCAmJiBtYXRjaC5sZW5ndGggPiAxKSB7XG4gICAgcmV0dXJuIG1hdGNoWzFdLnRyaW0oKTsgLy8g6L+U5Zue5Yy56YWN5Yiw55qE5Ye95pWw5L2TXG4gIH1cbiAgcmV0dXJuIG51bGw7IC8vIOWmguaenOayoeacieWMuemFjeWIsO+8jOi/lOWbnm51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZShmbikge1xuICByZXR1cm4gZm4gJiYgdHlwZW9mIGZuLnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlKC4uLmFyZykge1xuICByZXR1cm4gbmV3IERhdGUoLi4uYXJnKVxufVxuLy8g55Sf5oiQ5ZSv5LiA5YC8XG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVVbmlxdWVJZCgpIHtcbiAgcmV0dXJuIGAke2Zvcm1hdERhdGUobmV3IERhdGUoKSwgJ3l5eXktTU0tZGQgaGg6bW06c3MnKX0tJHtnZXRVdWlkKCl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFV1aWQgKCkge1xuICBpZiAodHlwZW9mIGNyeXB0byA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAodHlwZW9mIGNyeXB0by5yYW5kb21VVUlEID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBVaW50OEFycmF5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IChjKSA9PiB7XG4gICAgICAgIGNvbnN0IG51bSA9IE51bWJlcihjKTtcbiAgICAgICAgcmV0dXJuIChudW0gXiAoY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgxKSlbMF0gJiAoMTUgPj4gKG51bSAvIDQpKSkpLnRvU3RyaW5nKDE2KTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gKFsxZTddKy0xZTMrLTRlMystOGUzKy0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG4gIGxldCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgbGV0IHBlcmZvck5vdyA9ICh0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnICYmIHBlcmZvcm1hbmNlLm5vdyAmJiBwZXJmb3JtYW5jZS5ub3coKSAqIDEwMDApIHx8IDA7XG4gIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjKSA9PiB7XG4gICAgbGV0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkgKiAxNjtcbiAgICBpZiAodGltZXN0YW1wID4gMCkge1xuICAgICAgcmFuZG9tID0gKHRpbWVzdGFtcCArIHJhbmRvbSkgJSAxNiB8IDA7XG4gICAgICB0aW1lc3RhbXAgPSBNYXRoLmZsb29yKHRpbWVzdGFtcCAvIDE2KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmFuZG9tID0gKHBlcmZvck5vdyArIHJhbmRvbSkgJSAxNiB8IDA7XG4gICAgICBwZXJmb3JOb3cgPSBNYXRoLmZsb29yKHBlcmZvck5vdyAvIDE2KTtcbiAgICB9XG4gICAgcmV0dXJuIChjID09PSAneCcgPyByYW5kb20gOiAocmFuZG9tICYgMHgzKSB8IDB4OCkudG9TdHJpbmcoMTYpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZ09wdGlvbnMoY29uZmlnLCBzZWxlY3RzKSB7XG4gIGNvbnN0IHJlZmVyZW5jZU9wdGlvbnMgPSBjb25maWcucmVmZXJlbmNlT3B0aW9uc1xuICBjb25zdCBzZWxlY3RLZXkgPSBjb25maWcuc2VsZWN0S2V5XG4gIGxldCBvcHRpb25JdGVtc0xpc3QgPSBbXVxuICB0cnkge1xuICAgIG9wdGlvbkl0ZW1zTGlzdCA9IEpTT04ucGFyc2UoY29uZmlnPy5vcHRpb25JdGVtcyB8fCAnW10nKS5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2x1bW5WYWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgY29sdW1uRGVzY196aDogaXRlbS5sYWJlbCxcbiAgICAgICAgY29sdW1uRGVzYzogaXRlbS5sYWJlbF9lbiB8fCBpdGVtLmxhYmVsLFxuICAgICAgICBjb2x1bW5TdGF0dXM6IGl0ZW0uY29sdW1uU3RhdHVzXG4gICAgICB9XG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBvcHRpb25JdGVtc0xpc3QgPSBbXVxuICB9XG4gIGNvbnN0IG9wdGlvbnMgPSAoc2VsZWN0cz8udmFsdWUgJiYgc2VsZWN0cz8udmFsdWU/LltzZWxlY3RLZXldKSB8fCAoc2VsZWN0cz8udmFsdWUgJiYgc2VsZWN0cz8udmFsdWU/LltgJHtjb25maWcubWV0YUNvZGV9TGlzdFZhbHVlYF0pIHx8IChzZWxlY3RzPy52YWx1ZSAmJiBzZWxlY3RzPy52YWx1ZT8uW3JlZmVyZW5jZU9wdGlvbnNdKSB8fCBvcHRpb25JdGVtc0xpc3QgfHwgW11cbiAgcmV0dXJuIG9wdGlvbnNcbiAgLy8gY29uc3QgZGlzYWJsZWQgPSBjYWxjRGlzYWJsZShjb25maWcsIHByb3BzLm1vZGUpXG4gIC8vIGlmIChkaXNhYmxlZCkge1xuICAvLyAgIHJldHVybiBvcHRpb25zXG4gIC8vIH0gZWxzZSB7XG4gIC8vICAgcmV0dXJuIG9wdGlvbnMuZmlsdGVyKGl0ZW0gPT4gIShpdGVtLmNvbHVtblN0YXR1cyA9PSAnMCcgfHwgaXRlbS5jb2x1bW5TdGF0dXMgPT0gJzInKSlcbiAgLy8gfVxufVxuIiwiZXhwb3J0IHtcbiAgaXNBcmd1bWVudHMsXG4gIGlzQXJyYXlCdWZmZXIsXG4gIGlzQXJyYXlMaWtlLFxuICBpc0FycmF5TGlrZU9iamVjdCxcbiAgaXNCdWZmZXIsXG4gIGlzQm9vbGVhbixcbiAgaXNEYXRlLFxuICBpc0VsZW1lbnQsXG4gIGlzRW1wdHksXG4gIGlzRXF1YWwsXG4gIGlzRXF1YWxXaXRoLFxuICBpc0Vycm9yLFxuICBpc0Z1bmN0aW9uLFxuICBpc0Zpbml0ZSxcbiAgaXNMZW5ndGgsXG4gIGlzTWFwLFxuICBpc01hdGNoLFxuICBpc01hdGNoV2l0aCxcbiAgaXNOYXRpdmUsXG4gIGlzTmlsLFxuICBpc051bWJlcixcbiAgaXNOdWxsLFxuICBpc09iamVjdExpa2UsXG4gIGlzUmVnRXhwLFxuICBpc1NhZmVJbnRlZ2VyLFxuICBpc1NldCxcbiAgaXNTdHJpbmcsXG4gIGlzU3ltYm9sLFxuICBpc1R5cGVkQXJyYXksXG4gIGlzVW5kZWZpbmVkLFxuICBpc1dlYWtNYXAsXG4gIGlzV2Vha1NldCxcbn0gZnJvbSAnbG9kYXNoLWVzJztcbmNvbnN0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzKHZhbCwgdHlwZSkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWwpID09PSBgW29iamVjdCAke3R5cGV9XWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RlZih2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgIT09ICd1bmRlZmluZWQnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsKXtcbiAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiBpcyh2YWwsICdPYmplY3QnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsKSB7XG4gIHJldHVybiB2YWwgJiYgQXJyYXkuaXNBcnJheSh2YWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNXaW5kb3codmFsKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiBpcyh2YWwsICdXaW5kb3cnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSGFzVmFsKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBjb25zdCBpc1NlcnZlciA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnO1xuXG5leHBvcnQgY29uc3QgaXNDbGllbnQgPSAhaXNTZXJ2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0h0dHBVcmwocGF0aCkge1xuICBjb25zdCByZWcgPSAvXmh0dHAocyk/OlxcL1xcLyhbXFx3LV0rXFwuKStbXFx3LV0rKFxcL1tcXHctIC4vPyUmPV0qKT8vO1xuICByZXR1cm4gcmVnLnRlc3QocGF0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Bhc2NhbENhc2Uoc3RyKSB7XG4gIGNvbnN0IHJlZ2V4ID0gL15bQS1aXVtBLVphLXpdKiQvO1xuICByZXR1cm4gcmVnZXgudGVzdChzdHIpO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9hcnJheS9pcy1hcnJheVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2NvbmNhdFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2VuZHMtd2l0aFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2ZpbmRcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9mb3ItZWFjaFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2luZGV4LW9mXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvbWFwXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvcmVkdWNlXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2Uvc2xpY2VcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS90cmltXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2NyZWF0ZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9rZXlzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvcGFyc2UtaW50XCIpOyIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuaXMtYXJyYXknKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXRoLkFycmF5LmlzQXJyYXk7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdCcpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdBcnJheScsICdjb25jYXQnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuZmluZCcpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdBcnJheScsICdmaW5kJyk7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5LmZvci1lYWNoJyk7XG52YXIgZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QoJ0FycmF5JywgJ2ZvckVhY2gnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuaW5kZXgtb2YnKTtcbnZhciBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCgnQXJyYXknLCAnaW5kZXhPZicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5tYXAnKTtcbnZhciBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCgnQXJyYXknLCAnbWFwJyk7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5LnJlZHVjZScpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdBcnJheScsICdyZWR1Y2UnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UnKTtcbnZhciBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCgnQXJyYXknLCAnc2xpY2UnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBtZXRob2QgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL2NvbmNhdCcpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5jb25jYXQ7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLmNvbmNhdCkgPyBtZXRob2QgOiBvd247XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIG1ldGhvZCA9IHJlcXVpcmUoJy4uL3N0cmluZy92aXJ0dWFsL2VuZHMtd2l0aCcpO1xuXG52YXIgU3RyaW5nUHJvdG90eXBlID0gU3RyaW5nLnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmVuZHNXaXRoO1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzdHJpbmcnIHx8IGl0ID09PSBTdHJpbmdQcm90b3R5cGVcbiAgICB8fCAoaXNQcm90b3R5cGVPZihTdHJpbmdQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IFN0cmluZ1Byb3RvdHlwZS5lbmRzV2l0aCkgPyBtZXRob2QgOiBvd247XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIG1ldGhvZCA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvZmluZCcpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5maW5kO1xuICByZXR1cm4gaXQgPT09IEFycmF5UHJvdG90eXBlIHx8IChpc1Byb3RvdHlwZU9mKEFycmF5UHJvdG90eXBlLCBpdCkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5maW5kKSA/IG1ldGhvZCA6IG93bjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9pbmRleC1vZicpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5pbmRleE9mO1xuICByZXR1cm4gaXQgPT09IEFycmF5UHJvdG90eXBlIHx8IChpc1Byb3RvdHlwZU9mKEFycmF5UHJvdG90eXBlLCBpdCkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5pbmRleE9mKSA/IG1ldGhvZCA6IG93bjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9tYXAnKTtcblxudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQubWFwO1xuICByZXR1cm4gaXQgPT09IEFycmF5UHJvdG90eXBlIHx8IChpc1Byb3RvdHlwZU9mKEFycmF5UHJvdG90eXBlLCBpdCkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5tYXApID8gbWV0aG9kIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBtZXRob2QgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL3JlZHVjZScpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5yZWR1Y2U7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLnJlZHVjZSkgPyBtZXRob2QgOiBvd247XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIG1ldGhvZCA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvc2xpY2UnKTtcblxudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQuc2xpY2U7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLnNsaWNlKSA/IG1ldGhvZCA6IG93bjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vc3RyaW5nL3ZpcnR1YWwvdHJpbScpO1xuXG52YXIgU3RyaW5nUHJvdG90eXBlID0gU3RyaW5nLnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LnRyaW07XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N0cmluZycgfHwgaXQgPT09IFN0cmluZ1Byb3RvdHlwZVxuICAgIHx8IChpc1Byb3RvdHlwZU9mKFN0cmluZ1Byb3RvdHlwZSwgaXQpICYmIG93biA9PT0gU3RyaW5nUHJvdG90eXBlLnRyaW0pID8gbWV0aG9kIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmNyZWF0ZScpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG52YXIgT2JqZWN0ID0gcGF0aC5PYmplY3Q7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlKFAsIEQpIHtcbiAgcmV0dXJuIE9iamVjdC5jcmVhdGUoUCwgRCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5vYmplY3Qua2V5cycpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGguT2JqZWN0LmtleXM7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnBhcnNlLWludCcpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGgucGFyc2VJbnQ7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLnN0cmluZy5lbmRzLXdpdGgnKTtcbnZhciBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCgnU3RyaW5nJywgJ2VuZHNXaXRoJyk7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLnN0cmluZy50cmltJyk7XG52YXIgZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QoJ1N0cmluZycsICd0cmltJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IElzQ2FsbGFibGUoYXJndW1lbnQpIGlzIHRydWVgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IodHJ5VG9TdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgQXNzZXJ0OiBUeXBlKGFyZ3VtZW50KSBpcyBPYmplY3RgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNPYmplY3QoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKCRTdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYW4gb2JqZWN0Jyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZvckVhY2g7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG5cbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnZm9yRWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxubW9kdWxlLmV4cG9ydHMgPSAhU1RSSUNUX01FVEhPRCA/IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRmb3JFYWNoKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1hcnJheS1wcm90b3R5cGUtZm9yZWFjaCAtLSBzYWZlXG59IDogW10uZm9yRWFjaDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgaW5kZXhPZiwgaW5jbHVkZXMgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIHtcbiAgICAgIGlmICgoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykgJiYgT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmNsdWRlc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXG4gIGluY2x1ZGVzOiBjcmVhdGVNZXRob2QodHJ1ZSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuaW5kZXhPZmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluZGV4b2ZcbiAgaW5kZXhPZjogY3JlYXRlTWV0aG9kKGZhbHNlKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIGFycmF5U3BlY2llc0NyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xuXG52YXIgcHVzaCA9IHVuY3VycnlUaGlzKFtdLnB1c2gpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgZm9yRWFjaCwgbWFwLCBmaWx0ZXIsIHNvbWUsIGV2ZXJ5LCBmaW5kLCBmaW5kSW5kZXgsIGZpbHRlclJlamVjdCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgdmFyIElTX01BUCA9IFRZUEUgPT09IDE7XG4gIHZhciBJU19GSUxURVIgPSBUWVBFID09PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT09IDM7XG4gIHZhciBJU19FVkVSWSA9IFRZUEUgPT09IDQ7XG4gIHZhciBJU19GSU5EX0lOREVYID0gVFlQRSA9PT0gNjtcbiAgdmFyIElTX0ZJTFRFUl9SRUpFQ1QgPSBUWVBFID09PSA3O1xuICB2YXIgTk9fSE9MRVMgPSBUWVBFID09PSA1IHx8IElTX0ZJTkRfSU5ERVg7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGNhbGxiYWNrZm4sIHRoYXQsIHNwZWNpZmljQ3JlYXRlKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7XG4gICAgdmFyIHNlbGYgPSBJbmRleGVkT2JqZWN0KE8pO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShzZWxmKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgdGhhdCk7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgY3JlYXRlID0gc3BlY2lmaWNDcmVhdGUgfHwgYXJyYXlTcGVjaWVzQ3JlYXRlO1xuICAgIHZhciB0YXJnZXQgPSBJU19NQVAgPyBjcmVhdGUoJHRoaXMsIGxlbmd0aCkgOiBJU19GSUxURVIgfHwgSVNfRklMVEVSX1JFSkVDVCA/IGNyZWF0ZSgkdGhpcywgMCkgOiB1bmRlZmluZWQ7XG4gICAgdmFyIHZhbHVlLCByZXN1bHQ7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChOT19IT0xFUyB8fCBpbmRleCBpbiBzZWxmKSB7XG4gICAgICB2YWx1ZSA9IHNlbGZbaW5kZXhdO1xuICAgICAgcmVzdWx0ID0gYm91bmRGdW5jdGlvbih2YWx1ZSwgaW5kZXgsIE8pO1xuICAgICAgaWYgKFRZUEUpIHtcbiAgICAgICAgaWYgKElTX01BUCkgdGFyZ2V0W2luZGV4XSA9IHJlc3VsdDsgLy8gbWFwXG4gICAgICAgIGVsc2UgaWYgKHJlc3VsdCkgc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSAzOiByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgIC8vIHNvbWVcbiAgICAgICAgICBjYXNlIDU6IHJldHVybiB2YWx1ZTsgICAgICAgICAgICAgLy8gZmluZFxuICAgICAgICAgIGNhc2UgNjogcmV0dXJuIGluZGV4OyAgICAgICAgICAgICAvLyBmaW5kSW5kZXhcbiAgICAgICAgICBjYXNlIDI6IHB1c2godGFyZ2V0LCB2YWx1ZSk7ICAgICAgLy8gZmlsdGVyXG4gICAgICAgIH0gZWxzZSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDQ6IHJldHVybiBmYWxzZTsgICAgICAgICAgICAgLy8gZXZlcnlcbiAgICAgICAgICBjYXNlIDc6IHB1c2godGFyZ2V0LCB2YWx1ZSk7ICAgICAgLy8gZmlsdGVyUmVqZWN0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIElTX0ZJTkRfSU5ERVggPyAtMSA6IElTX1NPTUUgfHwgSVNfRVZFUlkgPyBJU19FVkVSWSA6IHRhcmdldDtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5mb3JlYWNoXG4gIGZvckVhY2g6IGNyZWF0ZU1ldGhvZCgwKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5tYXBgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5tYXBcbiAgbWFwOiBjcmVhdGVNZXRob2QoMSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsdGVyXG4gIGZpbHRlcjogY3JlYXRlTWV0aG9kKDIpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLnNvbWVgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zb21lXG4gIHNvbWU6IGNyZWF0ZU1ldGhvZCgzKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5ldmVyeWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmV2ZXJ5XG4gIGV2ZXJ5OiBjcmVhdGVNZXRob2QoNCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbiAgZmluZDogY3JlYXRlTWV0aG9kKDUpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRJbmRleFxuICBmaW5kSW5kZXg6IGNyZWF0ZU1ldGhvZCg2KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJSZWplY3RgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1hcnJheS1maWx0ZXJpbmdcbiAgZmlsdGVyUmVqZWN0OiBjcmVhdGVNZXRob2QoNylcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUpIHtcbiAgLy8gV2UgY2FuJ3QgdXNlIHRoaXMgZmVhdHVyZSBkZXRlY3Rpb24gaW4gVjggc2luY2UgaXQgY2F1c2VzXG4gIC8vIGRlb3B0aW1pemF0aW9uIGFuZCBzZXJpb3VzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy82NzdcbiAgcmV0dXJuIFY4X1ZFUlNJT04gPj0gNTEgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICB2YXIgY29uc3RydWN0b3IgPSBhcnJheS5jb25zdHJ1Y3RvciA9IHt9O1xuICAgIGNvbnN0cnVjdG9yW1NQRUNJRVNdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHsgZm9vOiAxIH07XG4gICAgfTtcbiAgICByZXR1cm4gYXJyYXlbTUVUSE9EX05BTUVdKEJvb2xlYW4pLmZvbyAhPT0gMTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FLCBhcmd1bWVudCkge1xuICB2YXIgbWV0aG9kID0gW11bTUVUSE9EX05BTUVdO1xuICByZXR1cm4gISFtZXRob2QgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNhbGwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICBtZXRob2QuY2FsbChudWxsLCBhcmd1bWVudCB8fCBmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9LCAxKTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG52YXIgUkVEVUNFX0VNUFRZID0gJ1JlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUnO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgcmVkdWNlLCByZWR1Y2VSaWdodCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX1JJR0hUKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhhdCwgY2FsbGJhY2tmbiwgYXJndW1lbnRzTGVuZ3RoLCBtZW1vKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGF0KTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKE8pO1xuICAgIGFDYWxsYWJsZShjYWxsYmFja2ZuKTtcbiAgICBpZiAobGVuZ3RoID09PSAwICYmIGFyZ3VtZW50c0xlbmd0aCA8IDIpIHRocm93IG5ldyAkVHlwZUVycm9yKFJFRFVDRV9FTVBUWSk7XG4gICAgdmFyIGluZGV4ID0gSVNfUklHSFQgPyBsZW5ndGggLSAxIDogMDtcbiAgICB2YXIgaSA9IElTX1JJR0hUID8gLTEgOiAxO1xuICAgIGlmIChhcmd1bWVudHNMZW5ndGggPCAyKSB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGluZGV4IGluIHNlbGYpIHtcbiAgICAgICAgbWVtbyA9IHNlbGZbaW5kZXhdO1xuICAgICAgICBpbmRleCArPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGluZGV4ICs9IGk7XG4gICAgICBpZiAoSVNfUklHSFQgPyBpbmRleCA8IDAgOiBsZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoUkVEVUNFX0VNUFRZKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICg7SVNfUklHSFQgPyBpbmRleCA+PSAwIDogbGVuZ3RoID4gaW5kZXg7IGluZGV4ICs9IGkpIGlmIChpbmRleCBpbiBzZWxmKSB7XG4gICAgICBtZW1vID0gY2FsbGJhY2tmbihtZW1vLCBzZWxmW2luZGV4XSwgaW5kZXgsIE8pO1xuICAgIH1cbiAgICByZXR1cm4gbWVtbztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnJlZHVjZVxuICBsZWZ0OiBjcmVhdGVNZXRob2QoZmFsc2UpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmVkdWNlcmlnaHRcbiAgcmlnaHQ6IGNyZWF0ZU1ldGhvZCh0cnVlKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1bmN1cnJ5VGhpcyhbXS5zbGljZSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIGlzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3InKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbnZhciAkQXJyYXkgPSBBcnJheTtcblxuLy8gYSBwYXJ0IG9mIGBBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXkpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsQXJyYXkpKSB7XG4gICAgQyA9IG9yaWdpbmFsQXJyYXkuY29uc3RydWN0b3I7XG4gICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICBpZiAoaXNDb25zdHJ1Y3RvcihDKSAmJiAoQyA9PT0gJEFycmF5IHx8IGlzQXJyYXkoQy5wcm90b3R5cGUpKSkgQyA9IHVuZGVmaW5lZDtcbiAgICBlbHNlIGlmIChpc09iamVjdChDKSkge1xuICAgICAgQyA9IENbU1BFQ0lFU107XG4gICAgICBpZiAoQyA9PT0gbnVsbCkgQyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0gcmV0dXJuIEMgPT09IHVuZGVmaW5lZCA/ICRBcnJheSA6IEM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFycmF5U3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY29uc3RydWN0b3InKTtcblxuLy8gYEFycmF5U3BlY2llc0NyZWF0ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5c3BlY2llc2NyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWxBcnJheSwgbGVuZ3RoKSB7XG4gIHJldHVybiBuZXcgKGFycmF5U3BlY2llc0NvbnN0cnVjdG9yKG9yaWdpbmFsQXJyYXkpKShsZW5ndGggPT09IDAgPyAwIDogbGVuZ3RoKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKHt9LnRvU3RyaW5nKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHN0cmluZ1NsaWNlKHRvU3RyaW5nKGl0KSwgOCwgLTEpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG4vLyBnZXR0aW5nIHRhZyBmcm9tIEVTNisgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IGNsYXNzb2ZSYXcgOiBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIHRhZywgcmVzdWx0O1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAodGFnID0gdHJ5R2V0KE8gPSAkT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT09ICdPYmplY3QnICYmIGlzQ2FsbGFibGUoTy5jYWxsZWUpID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgTUFUQ0ggPSB3ZWxsS25vd25TeW1ib2woJ21hdGNoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FKSB7XG4gIHZhciByZWdleHAgPSAvLi87XG4gIHRyeSB7XG4gICAgJy8uLydbTUVUSE9EX05BTUVdKHJlZ2V4cCk7XG4gIH0gY2F0Y2ggKGVycm9yMSkge1xuICAgIHRyeSB7XG4gICAgICByZWdleHBbTUFUQ0hdID0gZmFsc2U7XG4gICAgICByZXR1cm4gJy8uLydbTUVUSE9EX05BTUVdKHJlZ2V4cCk7XG4gICAgfSBjYXRjaCAoZXJyb3IyKSB7IC8qIGVtcHR5ICovIH1cbiAgfSByZXR1cm4gZmFsc2U7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3QsIGtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcbiAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtrZXldID0gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgdHJ5IHtcbiAgICBkZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGdsb2JhbFRoaXNba2V5XSA9IHZhbHVlO1xuICB9IHJldHVybiB2YWx1ZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gRGV0ZWN0IElFOCdzIGluY29tcGxldGUgZGVmaW5lUHJvcGVydHkgaW1wbGVtZW50YXRpb25cbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAxLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KVsxXSAhPT0gNztcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsVGhpcy5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIEVYSVNUUyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEVYSVNUUyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDB4MUZGRkZGRkZGRkZGRkY7IC8vIDIgKiogNTMgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID4gTUFYX1NBRkVfSU5URUdFUikgdGhyb3cgJFR5cGVFcnJvcignTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkJyk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBJRTgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gW1xuICAnY29uc3RydWN0b3InLFxuICAnaGFzT3duUHJvcGVydHknLFxuICAnaXNQcm90b3R5cGVPZicsXG4gICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsXG4gICd0b0xvY2FsZVN0cmluZycsXG4gICd0b1N0cmluZycsXG4gICd2YWx1ZU9mJ1xuXTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBFTlZJUk9OTUVOVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEVOVklST05NRU5UID09PSAnTk9ERSc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG52YXIgbmF2aWdhdG9yID0gZ2xvYmFsVGhpcy5uYXZpZ2F0b3I7XG52YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yICYmIG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cbm1vZHVsZS5leHBvcnRzID0gdXNlckFnZW50ID8gU3RyaW5nKHVzZXJBZ2VudCkgOiAnJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxudmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG52YXIgRGVubyA9IGdsb2JhbFRoaXMuRGVubztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucyB8fCBEZW5vICYmIERlbm8udmVyc2lvbjtcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICAvLyBpbiBvbGQgQ2hyb21lLCB2ZXJzaW9ucyBvZiBWOCBpc24ndCBWOCA9IENocm9tZSAvIDEwXG4gIC8vIGJ1dCB0aGVpciBjb3JyZWN0IHZlcnNpb25zIGFyZSBub3QgaW50ZXJlc3RpbmcgZm9yIHVzXG4gIHZlcnNpb24gPSBtYXRjaFswXSA+IDAgJiYgbWF0Y2hbMF0gPCA0ID8gMSA6ICsobWF0Y2hbMF0gKyBtYXRjaFsxXSk7XG59XG5cbi8vIEJyb3dzZXJGUyBOb2RlSlMgYHByb2Nlc3NgIHBvbHlmaWxsIGluY29ycmVjdGx5IHNldCBgLnY4YCB0byBgMC4wYFxuLy8gc28gY2hlY2sgYHVzZXJBZ2VudGAgZXZlbiBpZiBgLnY4YCBleGlzdHMsIGJ1dCAwXG5pZiAoIXZlcnNpb24gJiYgdXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gK21hdGNoWzFdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyc2lvbjtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGdsb2JhbCBCdW4sIERlbm8gLS0gZGV0ZWN0aW9uICovXG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC11c2VyLWFnZW50Jyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgdXNlckFnZW50U3RhcnRzV2l0aCA9IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgcmV0dXJuIHVzZXJBZ2VudC5zbGljZSgwLCBzdHJpbmcubGVuZ3RoKSA9PT0gc3RyaW5nO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSAoZnVuY3Rpb24gKCkge1xuICBpZiAodXNlckFnZW50U3RhcnRzV2l0aCgnQnVuLycpKSByZXR1cm4gJ0JVTic7XG4gIGlmICh1c2VyQWdlbnRTdGFydHNXaXRoKCdDbG91ZGZsYXJlLVdvcmtlcnMnKSkgcmV0dXJuICdDTE9VREZMQVJFJztcbiAgaWYgKHVzZXJBZ2VudFN0YXJ0c1dpdGgoJ0Rlbm8vJykpIHJldHVybiAnREVOTyc7XG4gIGlmICh1c2VyQWdlbnRTdGFydHNXaXRoKCdOb2RlLmpzLycpKSByZXR1cm4gJ05PREUnO1xuICBpZiAoZ2xvYmFsVGhpcy5CdW4gJiYgdHlwZW9mIEJ1bi52ZXJzaW9uID09ICdzdHJpbmcnKSByZXR1cm4gJ0JVTic7XG4gIGlmIChnbG9iYWxUaGlzLkRlbm8gJiYgdHlwZW9mIERlbm8udmVyc2lvbiA9PSAnb2JqZWN0JykgcmV0dXJuICdERU5PJztcbiAgaWYgKGNsYXNzb2YoZ2xvYmFsVGhpcy5wcm9jZXNzKSA9PT0gJ3Byb2Nlc3MnKSByZXR1cm4gJ05PREUnO1xuICBpZiAoZ2xvYmFsVGhpcy53aW5kb3cgJiYgZ2xvYmFsVGhpcy5kb2N1bWVudCkgcmV0dXJuICdCUk9XU0VSJztcbiAgcmV0dXJuICdSRVNUJztcbn0pKCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbi8vIGFkZCBkZWJ1Z2dpbmcgaW5mb1xucmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgd3JhcENvbnN0cnVjdG9yID0gZnVuY3Rpb24gKE5hdGl2ZUNvbnN0cnVjdG9yKSB7XG4gIHZhciBXcmFwcGVyID0gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICBpZiAodGhpcyBpbnN0YW5jZW9mIFdyYXBwZXIpIHtcbiAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDA6IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoKTtcbiAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IE5hdGl2ZUNvbnN0cnVjdG9yKGEpO1xuICAgICAgICBjYXNlIDI6IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoYSwgYik7XG4gICAgICB9IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoYSwgYiwgYyk7XG4gICAgfSByZXR1cm4gYXBwbHkoTmF0aXZlQ29uc3RydWN0b3IsIHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG4gIFdyYXBwZXIucHJvdG90eXBlID0gTmF0aXZlQ29uc3RydWN0b3IucHJvdG90eXBlO1xuICByZXR1cm4gV3JhcHBlcjtcbn07XG5cbi8qXG4gIG9wdGlvbnMudGFyZ2V0ICAgICAgICAgLSBuYW1lIG9mIHRoZSB0YXJnZXQgb2JqZWN0XG4gIG9wdGlvbnMuZ2xvYmFsICAgICAgICAgLSB0YXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3RcbiAgb3B0aW9ucy5zdGF0ICAgICAgICAgICAtIGV4cG9ydCBhcyBzdGF0aWMgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5wcm90byAgICAgICAgICAtIGV4cG9ydCBhcyBwcm90b3R5cGUgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5yZWFsICAgICAgICAgICAtIHJlYWwgcHJvdG90eXBlIG1ldGhvZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMuZm9yY2VkICAgICAgICAgLSBleHBvcnQgZXZlbiBpZiB0aGUgbmF0aXZlIGZlYXR1cmUgaXMgYXZhaWxhYmxlXG4gIG9wdGlvbnMuYmluZCAgICAgICAgICAgLSBiaW5kIG1ldGhvZHMgdG8gdGhlIHRhcmdldCwgcmVxdWlyZWQgZm9yIHRoZSBgcHVyZWAgdmVyc2lvblxuICBvcHRpb25zLndyYXAgICAgICAgICAgIC0gd3JhcCBjb25zdHJ1Y3RvcnMgdG8gcHJldmVudGluZyBnbG9iYWwgcG9sbHV0aW9uLCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMudW5zYWZlICAgICAgICAgLSB1c2UgdGhlIHNpbXBsZSBhc3NpZ25tZW50IG9mIHByb3BlcnR5IGluc3RlYWQgb2YgZGVsZXRlICsgZGVmaW5lUHJvcGVydHlcbiAgb3B0aW9ucy5zaGFtICAgICAgICAgICAtIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgb3B0aW9ucy5lbnVtZXJhYmxlICAgICAtIGV4cG9ydCBhcyBlbnVtZXJhYmxlIHByb3BlcnR5XG4gIG9wdGlvbnMuZG9udENhbGxHZXRTZXQgLSBwcmV2ZW50IGNhbGxpbmcgYSBnZXR0ZXIgb24gdGFyZ2V0XG4gIG9wdGlvbnMubmFtZSAgICAgICAgICAgLSB0aGUgLm5hbWUgb2YgdGhlIGZ1bmN0aW9uIGlmIGl0IGRvZXMgbm90IG1hdGNoIHRoZSBrZXlcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcHRpb25zLCBzb3VyY2UpIHtcbiAgdmFyIFRBUkdFVCA9IG9wdGlvbnMudGFyZ2V0O1xuICB2YXIgR0xPQkFMID0gb3B0aW9ucy5nbG9iYWw7XG4gIHZhciBTVEFUSUMgPSBvcHRpb25zLnN0YXQ7XG4gIHZhciBQUk9UTyA9IG9wdGlvbnMucHJvdG87XG5cbiAgdmFyIG5hdGl2ZVNvdXJjZSA9IEdMT0JBTCA/IGdsb2JhbFRoaXMgOiBTVEFUSUMgPyBnbG9iYWxUaGlzW1RBUkdFVF0gOiBnbG9iYWxUaGlzW1RBUkdFVF0gJiYgZ2xvYmFsVGhpc1tUQVJHRVRdLnByb3RvdHlwZTtcblxuICB2YXIgdGFyZ2V0ID0gR0xPQkFMID8gcGF0aCA6IHBhdGhbVEFSR0VUXSB8fCBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocGF0aCwgVEFSR0VULCB7fSlbVEFSR0VUXTtcbiAgdmFyIHRhcmdldFByb3RvdHlwZSA9IHRhcmdldC5wcm90b3R5cGU7XG5cbiAgdmFyIEZPUkNFRCwgVVNFX05BVElWRSwgVklSVFVBTF9QUk9UT1RZUEU7XG4gIHZhciBrZXksIHNvdXJjZVByb3BlcnR5LCB0YXJnZXRQcm9wZXJ0eSwgbmF0aXZlUHJvcGVydHksIHJlc3VsdFByb3BlcnR5LCBkZXNjcmlwdG9yO1xuXG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgVVNFX05BVElWRSA9ICFGT1JDRUQgJiYgbmF0aXZlU291cmNlICYmIGhhc093bihuYXRpdmVTb3VyY2UsIGtleSk7XG5cbiAgICB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuXG4gICAgaWYgKFVTRV9OQVRJVkUpIGlmIChvcHRpb25zLmRvbnRDYWxsR2V0U2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5hdGl2ZVNvdXJjZSwga2V5KTtcbiAgICAgIG5hdGl2ZVByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSBuYXRpdmVQcm9wZXJ0eSA9IG5hdGl2ZVNvdXJjZVtrZXldO1xuXG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBpbXBsZW1lbnRhdGlvblxuICAgIHNvdXJjZVByb3BlcnR5ID0gKFVTRV9OQVRJVkUgJiYgbmF0aXZlUHJvcGVydHkpID8gbmF0aXZlUHJvcGVydHkgOiBzb3VyY2Vba2V5XTtcblxuICAgIGlmICghRk9SQ0VEICYmICFQUk9UTyAmJiB0eXBlb2YgdGFyZ2V0UHJvcGVydHkgPT0gdHlwZW9mIHNvdXJjZVByb3BlcnR5KSBjb250aW51ZTtcblxuICAgIC8vIGJpbmQgbWV0aG9kcyB0byBnbG9iYWwgZm9yIGNhbGxpbmcgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIGlmIChvcHRpb25zLmJpbmQgJiYgVVNFX05BVElWRSkgcmVzdWx0UHJvcGVydHkgPSBiaW5kKHNvdXJjZVByb3BlcnR5LCBnbG9iYWxUaGlzKTtcbiAgICAvLyB3cmFwIGdsb2JhbCBjb25zdHJ1Y3RvcnMgZm9yIHByZXZlbnQgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb25cbiAgICBlbHNlIGlmIChvcHRpb25zLndyYXAgJiYgVVNFX05BVElWRSkgcmVzdWx0UHJvcGVydHkgPSB3cmFwQ29uc3RydWN0b3Ioc291cmNlUHJvcGVydHkpO1xuICAgIC8vIG1ha2Ugc3RhdGljIHZlcnNpb25zIGZvciBwcm90b3R5cGUgbWV0aG9kc1xuICAgIGVsc2UgaWYgKFBST1RPICYmIGlzQ2FsbGFibGUoc291cmNlUHJvcGVydHkpKSByZXN1bHRQcm9wZXJ0eSA9IHVuY3VycnlUaGlzKHNvdXJjZVByb3BlcnR5KTtcbiAgICAvLyBkZWZhdWx0IGNhc2VcbiAgICBlbHNlIHJlc3VsdFByb3BlcnR5ID0gc291cmNlUHJvcGVydHk7XG5cbiAgICAvLyBhZGQgYSBmbGFnIHRvIG5vdCBjb21wbGV0ZWx5IGZ1bGwgcG9seWZpbGxzXG4gICAgaWYgKG9wdGlvbnMuc2hhbSB8fCAoc291cmNlUHJvcGVydHkgJiYgc291cmNlUHJvcGVydHkuc2hhbSkgfHwgKHRhcmdldFByb3BlcnR5ICYmIHRhcmdldFByb3BlcnR5LnNoYW0pKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocmVzdWx0UHJvcGVydHksICdzaGFtJywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHRhcmdldCwga2V5LCByZXN1bHRQcm9wZXJ0eSk7XG5cbiAgICBpZiAoUFJPVE8pIHtcbiAgICAgIFZJUlRVQUxfUFJPVE9UWVBFID0gVEFSR0VUICsgJ1Byb3RvdHlwZSc7XG4gICAgICBpZiAoIWhhc093bihwYXRoLCBWSVJUVUFMX1BST1RPVFlQRSkpIHtcbiAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHBhdGgsIFZJUlRVQUxfUFJPVE9UWVBFLCB7fSk7XG4gICAgICB9XG4gICAgICAvLyBleHBvcnQgdmlydHVhbCBwcm90b3R5cGUgbWV0aG9kc1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHBhdGhbVklSVFVBTF9QUk9UT1RZUEVdLCBrZXksIHNvdXJjZVByb3BlcnR5KTtcbiAgICAgIC8vIGV4cG9ydCByZWFsIHByb3RvdHlwZSBtZXRob2RzXG4gICAgICBpZiAob3B0aW9ucy5yZWFsICYmIHRhcmdldFByb3RvdHlwZSAmJiAoRk9SQ0VEIHx8ICF0YXJnZXRQcm90b3R5cGVba2V5XSkpIHtcbiAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHRhcmdldFByb3RvdHlwZSwga2V5LCBzb3VyY2VQcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgYXBwbHkgPSBGdW5jdGlvblByb3RvdHlwZS5hcHBseTtcbnZhciBjYWxsID0gRnVuY3Rpb25Qcm90b3R5cGUuY2FsbDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLXJlZmxlY3QgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgUmVmbGVjdCA9PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmFwcGx5IHx8IChOQVRJVkVfQklORCA/IGNhbGwuYmluZChhcHBseSkgOiBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYWxsLmFwcGx5KGFwcGx5LCBhcmd1bWVudHMpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZScpO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIGJpbmQgPSB1bmN1cnJ5VGhpcyh1bmN1cnJ5VGhpcy5iaW5kKTtcblxuLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCkge1xuICBhQ2FsbGFibGUoZm4pO1xuICByZXR1cm4gdGhhdCA9PT0gdW5kZWZpbmVkID8gZm4gOiBOQVRJVkVfQklORCA/IGJpbmQoZm4sIHRoYXQpIDogZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZnVuY3Rpb24tcHJvdG90eXBlLWJpbmQgLS0gc2FmZVxuICB2YXIgdGVzdCA9IChmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pLmJpbmQoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucyAtLSBzYWZlXG4gIHJldHVybiB0eXBlb2YgdGVzdCAhPSAnZnVuY3Rpb24nIHx8IHRlc3QuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIGNhbGwgPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfQklORCA/IGNhbGwuYmluZChjYWxsKSA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbGwuYXBwbHkoY2FsbCwgYXJndW1lbnRzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0RGVzY3JpcHRvciA9IERFU0NSSVBUT1JTICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbnZhciBFWElTVFMgPSBoYXNPd24oRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJyk7XG4vLyBhZGRpdGlvbmFsIHByb3RlY3Rpb24gZnJvbSBtaW5pZmllZCAvIG1hbmdsZWQgLyBkcm9wcGVkIGZ1bmN0aW9uIG5hbWVzXG52YXIgUFJPUEVSID0gRVhJU1RTICYmIChmdW5jdGlvbiBzb21ldGhpbmcoKSB7IC8qIGVtcHR5ICovIH0pLm5hbWUgPT09ICdzb21ldGhpbmcnO1xudmFyIENPTkZJR1VSQUJMRSA9IEVYSVNUUyAmJiAoIURFU0NSSVBUT1JTIHx8IChERVNDUklQVE9SUyAmJiBnZXREZXNjcmlwdG9yKEZ1bmN0aW9uUHJvdG90eXBlLCAnbmFtZScpLmNvbmZpZ3VyYWJsZSkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRVhJU1RTOiBFWElTVFMsXG4gIFBST1BFUjogUFJPUEVSLFxuICBDT05GSUdVUkFCTEU6IENPTkZJR1VSQUJMRVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjbGFzc29mUmF3ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuKSB7XG4gIC8vIE5hc2hvcm4gYnVnOlxuICAvLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8xMTI4XG4gIC8vICAgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzExMzBcbiAgaWYgKGNsYXNzb2ZSYXcoZm4pID09PSAnRnVuY3Rpb24nKSByZXR1cm4gdW5jdXJyeVRoaXMoZm4pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgY2FsbCA9IEZ1bmN0aW9uUHJvdG90eXBlLmNhbGw7XG52YXIgdW5jdXJyeVRoaXNXaXRoQmluZCA9IE5BVElWRV9CSU5EICYmIEZ1bmN0aW9uUHJvdG90eXBlLmJpbmQuYmluZChjYWxsLCBjYWxsKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfQklORCA/IHVuY3VycnlUaGlzV2l0aEJpbmQgOiBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY2FsbC5hcHBseShmbiwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDT05TVFJVQ1RPUiwgTUVUSE9EKSB7XG4gIHZhciBOYW1lc3BhY2UgPSBwYXRoW0NPTlNUUlVDVE9SICsgJ1Byb3RvdHlwZSddO1xuICB2YXIgcHVyZU1ldGhvZCA9IE5hbWVzcGFjZSAmJiBOYW1lc3BhY2VbTUVUSE9EXTtcbiAgaWYgKHB1cmVNZXRob2QpIHJldHVybiBwdXJlTWV0aG9kO1xuICB2YXIgTmF0aXZlQ29uc3RydWN0b3IgPSBnbG9iYWxUaGlzW0NPTlNUUlVDVE9SXTtcbiAgdmFyIE5hdGl2ZVByb3RvdHlwZSA9IE5hdGl2ZUNvbnN0cnVjdG9yICYmIE5hdGl2ZUNvbnN0cnVjdG9yLnByb3RvdHlwZTtcbiAgcmV0dXJuIE5hdGl2ZVByb3RvdHlwZSAmJiBOYXRpdmVQcm90b3R5cGVbTUVUSE9EXTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIGFGdW5jdGlvbiA9IGZ1bmN0aW9uICh2YXJpYWJsZSkge1xuICByZXR1cm4gaXNDYWxsYWJsZSh2YXJpYWJsZSkgPyB2YXJpYWJsZSA6IHVuZGVmaW5lZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWVzcGFjZSwgbWV0aG9kKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGFGdW5jdGlvbihwYXRoW25hbWVzcGFjZV0pIHx8IGFGdW5jdGlvbihnbG9iYWxUaGlzW25hbWVzcGFjZV0pXG4gICAgOiBwYXRoW25hbWVzcGFjZV0gJiYgcGF0aFtuYW1lc3BhY2VdW21ldGhvZF0gfHwgZ2xvYmFsVGhpc1tuYW1lc3BhY2VdICYmIGdsb2JhbFRoaXNbbmFtZXNwYWNlXVttZXRob2RdO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGlzTnVsbE9yVW5kZWZpbmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW51bGwtb3ItdW5kZWZpbmVkJyk7XG5cbi8vIGBHZXRNZXRob2RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRtZXRob2Rcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFYsIFApIHtcbiAgdmFyIGZ1bmMgPSBWW1BdO1xuICByZXR1cm4gaXNOdWxsT3JVbmRlZmluZWQoZnVuYykgPyB1bmRlZmluZWQgOiBhQ2FsbGFibGUoZnVuYyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNoZWNrID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCAmJiBpdC5NYXRoID09PSBNYXRoICYmIGl0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbm1vZHVsZS5leHBvcnRzID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWdsb2JhbC10aGlzIC0tIHNhZmVcbiAgY2hlY2sodHlwZW9mIGdsb2JhbFRoaXMgPT0gJ29iamVjdCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCkgfHxcbiAgY2hlY2sodHlwZW9mIHRoaXMgPT0gJ29iamVjdCcgJiYgdGhpcykgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jIC0tIGZhbGxiYWNrXG4gIChmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSgpIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHVuY3VycnlUaGlzKHt9Lmhhc093blByb3BlcnR5KTtcblxuLy8gYEhhc093blByb3BlcnR5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaGFzb3ducHJvcGVydHlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtaGFzb3duIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0Lmhhc093biB8fCBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkodG9PYmplY3QoaXQpLCBrZXkpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0ge307XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdkb2N1bWVudCcsICdkb2N1bWVudEVsZW1lbnQnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xuXG4vLyBUaGFua3MgdG8gSUU4IGZvciBpdHMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIURFU0NSSVBUT1JTICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVFbGVtZW50KCdkaXYnKSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9XG4gIH0pLmEgIT09IDc7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgc3BsaXQgPSB1bmN1cnJ5VGhpcygnJy5zcGxpdCk7XG5cbi8vIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgYW5kIG5vbi1lbnVtZXJhYmxlIG9sZCBWOCBzdHJpbmdzXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gdGhyb3dzIGFuIGVycm9yIGluIHJoaW5vLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvcmhpbm8vaXNzdWVzLzM0NlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zIC0tIHNhZmVcbiAgcmV0dXJuICEkT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCk7XG59KSA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY2xhc3NvZihpdCkgPT09ICdTdHJpbmcnID8gc3BsaXQoaXQsICcnKSA6ICRPYmplY3QoaXQpO1xufSA6ICRPYmplY3Q7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IHVuY3VycnlUaGlzKEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuLy8gdGhpcyBoZWxwZXIgYnJva2VuIGluIGBjb3JlLWpzQDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKCFpc0NhbGxhYmxlKHN0b3JlLmluc3BlY3RTb3VyY2UpKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZyhpdCk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmUuaW5zcGVjdFNvdXJjZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbi8vIGBJc0FycmF5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNhcnJheVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LWlzYXJyYXkgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGNsYXNzb2YoYXJndW1lbnQpID09PSAnQXJyYXknO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtSXNIVE1MRERBLWludGVybmFsLXNsb3RcbnZhciBkb2N1bWVudEFsbCA9IHR5cGVvZiBkb2N1bWVudCA9PSAnb2JqZWN0JyAmJiBkb2N1bWVudC5hbGw7XG5cbi8vIGBJc0NhbGxhYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjYWxsYWJsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdHlwZW9mLXVuZGVmaW5lZCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgZG9jdW1lbnRBbGwgPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnRBbGwgIT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbicgfHwgYXJndW1lbnQgPT09IGRvY3VtZW50QWxsO1xufSA6IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbic7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgaW5zcGVjdFNvdXJjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZScpO1xuXG52YXIgbm9vcCA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBjb25zdHJ1Y3QgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ2NvbnN0cnVjdCcpO1xudmFyIGNvbnN0cnVjdG9yUmVnRXhwID0gL15cXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXFxiLztcbnZhciBleGVjID0gdW5jdXJyeVRoaXMoY29uc3RydWN0b3JSZWdFeHAuZXhlYyk7XG52YXIgSU5DT1JSRUNUX1RPX1NUUklORyA9ICFjb25zdHJ1Y3RvclJlZ0V4cC50ZXN0KG5vb3ApO1xuXG52YXIgaXNDb25zdHJ1Y3Rvck1vZGVybiA9IGZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoYXJndW1lbnQpIHtcbiAgaWYgKCFpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0cnVjdChub29wLCBbXSwgYXJndW1lbnQpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxudmFyIGlzQ29uc3RydWN0b3JMZWdhY3kgPSBmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSB7XG4gIGlmICghaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBmYWxzZTtcbiAgc3dpdGNoIChjbGFzc29mKGFyZ3VtZW50KSkge1xuICAgIGNhc2UgJ0FzeW5jRnVuY3Rpb24nOlxuICAgIGNhc2UgJ0dlbmVyYXRvckZ1bmN0aW9uJzpcbiAgICBjYXNlICdBc3luY0dlbmVyYXRvckZ1bmN0aW9uJzogcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gd2UgY2FuJ3QgY2hlY2sgLnByb3RvdHlwZSBzaW5jZSBjb25zdHJ1Y3RvcnMgcHJvZHVjZWQgYnkgLmJpbmQgaGF2ZW4ndCBpdFxuICAgIC8vIGBGdW5jdGlvbiN0b1N0cmluZ2AgdGhyb3dzIG9uIHNvbWUgYnVpbHQtaXQgZnVuY3Rpb24gaW4gc29tZSBsZWdhY3kgZW5naW5lc1xuICAgIC8vIChmb3IgZXhhbXBsZSwgYERPTVF1YWRgIGFuZCBzaW1pbGFyIGluIEZGNDEtKVxuICAgIHJldHVybiBJTkNPUlJFQ1RfVE9fU1RSSU5HIHx8ICEhZXhlYyhjb25zdHJ1Y3RvclJlZ0V4cCwgaW5zcGVjdFNvdXJjZShhcmd1bWVudCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG5pc0NvbnN0cnVjdG9yTGVnYWN5LnNoYW0gPSB0cnVlO1xuXG4vLyBgSXNDb25zdHJ1Y3RvcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzY29uc3RydWN0b3Jcbm1vZHVsZS5leHBvcnRzID0gIWNvbnN0cnVjdCB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBjYWxsZWQ7XG4gIHJldHVybiBpc0NvbnN0cnVjdG9yTW9kZXJuKGlzQ29uc3RydWN0b3JNb2Rlcm4uY2FsbClcbiAgICB8fCAhaXNDb25zdHJ1Y3Rvck1vZGVybihPYmplY3QpXG4gICAgfHwgIWlzQ29uc3RydWN0b3JNb2Rlcm4oZnVuY3Rpb24gKCkgeyBjYWxsZWQgPSB0cnVlOyB9KVxuICAgIHx8IGNhbGxlZDtcbn0pID8gaXNDb25zdHJ1Y3RvckxlZ2FjeSA6IGlzQ29uc3RydWN0b3JNb2Rlcm47XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciByZXBsYWNlbWVudCA9IC8jfFxcLnByb3RvdHlwZVxcLi87XG5cbnZhciBpc0ZvcmNlZCA9IGZ1bmN0aW9uIChmZWF0dXJlLCBkZXRlY3Rpb24pIHtcbiAgdmFyIHZhbHVlID0gZGF0YVtub3JtYWxpemUoZmVhdHVyZSldO1xuICByZXR1cm4gdmFsdWUgPT09IFBPTFlGSUxMID8gdHJ1ZVxuICAgIDogdmFsdWUgPT09IE5BVElWRSA/IGZhbHNlXG4gICAgOiBpc0NhbGxhYmxlKGRldGVjdGlvbikgPyBmYWlscyhkZXRlY3Rpb24pXG4gICAgOiAhIWRldGVjdGlvbjtcbn07XG5cbnZhciBub3JtYWxpemUgPSBpc0ZvcmNlZC5ub3JtYWxpemUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlcGxhY2VtZW50LCAnLicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgZGF0YSA9IGlzRm9yY2VkLmRhdGEgPSB7fTtcbnZhciBOQVRJVkUgPSBpc0ZvcmNlZC5OQVRJVkUgPSAnTic7XG52YXIgUE9MWUZJTEwgPSBpc0ZvcmNlZC5QT0xZRklMTCA9ICdQJztcblxubW9kdWxlLmV4cG9ydHMgPSBpc0ZvcmNlZDtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIHdlIGNhbid0IHVzZSBqdXN0IGBpdCA9PSBudWxsYCBzaW5jZSBvZiBgZG9jdW1lbnQuYWxsYCBzcGVjaWFsIGNhc2Vcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtSXNIVE1MRERBLWludGVybmFsLXNsb3QtYWVjXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPT09IG51bGwgfHwgaXQgPT09IHVuZGVmaW5lZDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiBpc0NhbGxhYmxlKGl0KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IHRydWU7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgTUFUQ0ggPSB3ZWxsS25vd25TeW1ib2woJ21hdGNoJyk7XG5cbi8vIGBJc1JlZ0V4cGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzcmVnZXhwXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgaXNSZWdFeHA7XG4gIHJldHVybiBpc09iamVjdChpdCkgJiYgKChpc1JlZ0V4cCA9IGl0W01BVENIXSkgIT09IHVuZGVmaW5lZCA/ICEhaXNSZWdFeHAgOiBjbGFzc29mKGl0KSA9PT0gJ1JlZ0V4cCcpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxubW9kdWxlLmV4cG9ydHMgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgJFN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpO1xuICByZXR1cm4gaXNDYWxsYWJsZSgkU3ltYm9sKSAmJiBpc1Byb3RvdHlwZU9mKCRTeW1ib2wucHJvdG90eXBlLCAkT2JqZWN0KGl0KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xuXG4vLyBgTGVuZ3RoT2ZBcnJheUxpa2VgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1sZW5ndGhvZmFycmF5bGlrZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiB0b0xlbmd0aChvYmoubGVuZ3RoKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbi8vIGBNYXRoLnRydW5jYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbWF0aC50cnVuY1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW1hdGgtdHJ1bmMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBNYXRoLnRydW5jIHx8IGZ1bmN0aW9uIHRydW5jKHgpIHtcbiAgdmFyIG4gPSAreDtcbiAgcmV0dXJuIChuID4gMCA/IGZsb29yIDogY2VpbCkobik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXJlZ2V4cCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGlzUmVnRXhwKGl0KSkge1xuICAgIHRocm93IG5ldyAkVHlwZUVycm9yKFwiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zXCIpO1xuICB9IHJldHVybiBpdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgdHJpbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctdHJpbScpLnRyaW07XG52YXIgd2hpdGVzcGFjZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2hpdGVzcGFjZXMnKTtcblxudmFyICRwYXJzZUludCA9IGdsb2JhbFRoaXMucGFyc2VJbnQ7XG52YXIgU3ltYm9sID0gZ2xvYmFsVGhpcy5TeW1ib2w7XG52YXIgSVRFUkFUT1IgPSBTeW1ib2wgJiYgU3ltYm9sLml0ZXJhdG9yO1xudmFyIGhleCA9IC9eWystXT8weC9pO1xudmFyIGV4ZWMgPSB1bmN1cnJ5VGhpcyhoZXguZXhlYyk7XG52YXIgRk9SQ0VEID0gJHBhcnNlSW50KHdoaXRlc3BhY2VzICsgJzA4JykgIT09IDggfHwgJHBhcnNlSW50KHdoaXRlc3BhY2VzICsgJzB4MTYnKSAhPT0gMjJcbiAgLy8gTVMgRWRnZSAxOC0gYnJva2VuIHdpdGggYm94ZWQgc3ltYm9sc1xuICB8fCAoSVRFUkFUT1IgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHsgJHBhcnNlSW50KE9iamVjdChJVEVSQVRPUikpOyB9KSk7XG5cbi8vIGBwYXJzZUludGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXBhcnNlaW50LXN0cmluZy1yYWRpeFxubW9kdWxlLmV4cG9ydHMgPSBGT1JDRUQgPyBmdW5jdGlvbiBwYXJzZUludChzdHJpbmcsIHJhZGl4KSB7XG4gIHZhciBTID0gdHJpbSh0b1N0cmluZyhzdHJpbmcpKTtcbiAgcmV0dXJuICRwYXJzZUludChTLCAocmFkaXggPj4+IDApIHx8IChleGVjKGhleCwgUykgPyAxNiA6IDEwKSk7XG59IDogJHBhcnNlSW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZ2xvYmFsIEFjdGl2ZVhPYmplY3QgLS0gb2xkIElFLCBXU0ggKi9cbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9odG1sJyk7XG52YXIgZG9jdW1lbnRDcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcblxudmFyIEdUID0gJz4nO1xudmFyIExUID0gJzwnO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIFNDUklQVCA9ICdzY3JpcHQnO1xudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xuXG52YXIgRW1wdHlDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcblxudmFyIHNjcmlwdFRhZyA9IGZ1bmN0aW9uIChjb250ZW50KSB7XG4gIHJldHVybiBMVCArIFNDUklQVCArIEdUICsgY29udGVudCArIExUICsgJy8nICsgU0NSSVBUICsgR1Q7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgQWN0aXZlWCBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIE51bGxQcm90b09iamVjdFZpYUFjdGl2ZVggPSBmdW5jdGlvbiAoYWN0aXZlWERvY3VtZW50KSB7XG4gIGFjdGl2ZVhEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJycpKTtcbiAgYWN0aXZlWERvY3VtZW50LmNsb3NlKCk7XG4gIHZhciB0ZW1wID0gYWN0aXZlWERvY3VtZW50LnBhcmVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWFzc2lnbm1lbnQgLS0gYXZvaWQgbWVtb3J5IGxlYWtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdodG1sZmlsZScpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBpZ25vcmUgKi8gfVxuICBOdWxsUHJvdG9PYmplY3QgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCdcbiAgICA/IGRvY3VtZW50LmRvbWFpbiAmJiBhY3RpdmVYRG9jdW1lbnRcbiAgICAgID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIC8vIG9sZCBJRVxuICAgICAgOiBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUoKVxuICAgIDogTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpOyAvLyBXU0hcbiAgdmFyIGxlbmd0aCA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSBkZWxldGUgTnVsbFByb3RvT2JqZWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbbGVuZ3RoXV07XG4gIHJldHVybiBOdWxsUHJvdG9PYmplY3QoKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcblxuLy8gYE9iamVjdC5jcmVhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWNyZWF0ZSAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHlDb25zdHJ1Y3RvcigpO1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gTnVsbFByb3RvT2JqZWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlLmYocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0aWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnRpZXMgLS0gc2FmZVxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgJiYgIVY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBwcm9wcyA9IHRvSW5kZXhlZE9iamVjdChQcm9wZXJ0aWVzKTtcbiAgdmFyIGtleXMgPSBvYmplY3RLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsZW5ndGggPiBpbmRleCkgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLCBrZXkgPSBrZXlzW2luZGV4KytdLCBwcm9wc1trZXldKTtcbiAgcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIEVOVU1FUkFCTEUgPSAnZW51bWVyYWJsZSc7XG52YXIgQ09ORklHVVJBQkxFID0gJ2NvbmZpZ3VyYWJsZSc7XG52YXIgV1JJVEFCTEUgPSAnd3JpdGFibGUnO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAodHlwZW9mIE8gPT09ICdmdW5jdGlvbicgJiYgUCA9PT0gJ3Byb3RvdHlwZScgJiYgJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzICYmIFdSSVRBQkxFIGluIEF0dHJpYnV0ZXMgJiYgIUF0dHJpYnV0ZXNbV1JJVEFCTEVdKSB7XG4gICAgdmFyIGN1cnJlbnQgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnRbV1JJVEFCTEVdKSB7XG4gICAgICBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgICAgIEF0dHJpYnV0ZXMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogQ09ORklHVVJBQkxFIGluIEF0dHJpYnV0ZXMgPyBBdHRyaWJ1dGVzW0NPTkZJR1VSQUJMRV0gOiBjdXJyZW50W0NPTkZJR1VSQUJMRV0sXG4gICAgICAgIGVudW1lcmFibGU6IEVOVU1FUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbRU5VTUVSQUJMRV0gOiBjdXJyZW50W0VOVU1FUkFCTEVdLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICB9IHJldHVybiAkZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG59IDogJGRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBuZXcgJFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXknKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXNPd24oTywgUCkpIHJldHVybiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoIWNhbGwocHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZiwgTywgUCksIE9bUF0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1bmN1cnJ5VGhpcyh7fS5pc1Byb3RvdHlwZU9mKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxudmFyIHB1c2ggPSB1bmN1cnJ5VGhpcyhbXS5wdXNoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhc093bihoaWRkZW5LZXlzLCBrZXkpICYmIGhhc093bihPLCBrZXkpICYmIHB1c2gocmVzdWx0LCBrZXkpO1xuICAvLyBEb24ndCBlbnVtIGJ1ZyAmIGhpZGRlbiBrZXlzXG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzT3duKE8sIGtleSA9IG5hbWVzW2krK10pKSB7XG4gICAgfmluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHB1c2gocmVzdWx0LCBrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3Qta2V5cyAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykge1xuICByZXR1cm4gaW50ZXJuYWxPYmplY3RLZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJHByb3BlcnR5SXNFbnVtZXJhYmxlID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gTmFzaG9ybiB+IEpESzggYnVnXG52YXIgTkFTSE9STl9CVUcgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgJiYgISRwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHsgMTogMiB9LCAxKTtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGVgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QucHJvdG90eXBlLnByb3BlcnR5aXNlbnVtZXJhYmxlXG5leHBvcnRzLmYgPSBOQVNIT1JOX0JVRyA/IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKFYpIHtcbiAgdmFyIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgVik7XG4gIHJldHVybiAhIWRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlO1xufSA6ICRwcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgT3JkaW5hcnlUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAocHJlZiA9PT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKGlzQ2FsbGFibGUoZm4gPSBpbnB1dC52YWx1ZU9mKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHByZWYgIT09ICdzdHJpbmcnICYmIGlzQ2FsbGFibGUoZm4gPSBpbnB1dC50b1N0cmluZykgJiYgIWlzT2JqZWN0KHZhbCA9IGNhbGwoZm4sIGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0ge307XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVxdWlyZW9iamVjdGNvZXJjaWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGl0KSkgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xuXG52YXIga2V5cyA9IHNoYXJlZCgna2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIGtleXNba2V5XSB8fCAoa2V5c1trZXldID0gdWlkKGtleSkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xuXG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFRoaXNbU0hBUkVEXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShTSEFSRUQsIHt9KTtcblxuKHN0b3JlLnZlcnNpb25zIHx8IChzdG9yZS52ZXJzaW9ucyA9IFtdKSkucHVzaCh7XG4gIHZlcnNpb246ICczLjM4LjEnLFxuICBtb2RlOiBJU19QVVJFID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG4gIGNvcHlyaWdodDogJ8KpIDIwMTQtMjAyNCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KScsXG4gIGxpY2Vuc2U6ICdodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM4LjEvTElDRU5TRScsXG4gIHNvdXJjZTogJ2h0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSB8fCB7fSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIFBST1BFUl9GVU5DVElPTl9OQU1FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKS5QUk9QRVI7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3aGl0ZXNwYWNlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93aGl0ZXNwYWNlcycpO1xuXG52YXIgbm9uID0gJ1xcdTIwMEJcXHUwMDg1XFx1MTgwRSc7XG5cbi8vIGNoZWNrIHRoYXQgYSBtZXRob2Qgd29ya3Mgd2l0aCB0aGUgY29ycmVjdCBsaXN0XG4vLyBvZiB3aGl0ZXNwYWNlcyBhbmQgaGFzIGEgY29ycmVjdCBuYW1lXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICByZXR1cm4gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIXdoaXRlc3BhY2VzW01FVEhPRF9OQU1FXSgpXG4gICAgICB8fCBub25bTUVUSE9EX05BTUVdKCkgIT09IG5vblxuICAgICAgfHwgKFBST1BFUl9GVU5DVElPTl9OQU1FICYmIHdoaXRlc3BhY2VzW01FVEhPRF9OQU1FXS5uYW1lICE9PSBNRVRIT0RfTkFNRSk7XG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHdoaXRlc3BhY2VzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3doaXRlc3BhY2VzJyk7XG5cbnZhciByZXBsYWNlID0gdW5jdXJyeVRoaXMoJycucmVwbGFjZSk7XG52YXIgbHRyaW0gPSBSZWdFeHAoJ15bJyArIHdoaXRlc3BhY2VzICsgJ10rJyk7XG52YXIgcnRyaW0gPSBSZWdFeHAoJyhefFteJyArIHdoaXRlc3BhY2VzICsgJ10pWycgKyB3aGl0ZXNwYWNlcyArICddKyQnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUueyB0cmltLCB0cmltU3RhcnQsIHRyaW1FbmQsIHRyaW1MZWZ0LCB0cmltUmlnaHQgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMpIHtcbiAgICB2YXIgc3RyaW5nID0gdG9TdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZSgkdGhpcykpO1xuICAgIGlmIChUWVBFICYgMSkgc3RyaW5nID0gcmVwbGFjZShzdHJpbmcsIGx0cmltLCAnJyk7XG4gICAgaWYgKFRZUEUgJiAyKSBzdHJpbmcgPSByZXBsYWNlKHN0cmluZywgcnRyaW0sICckMScpO1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUueyB0cmltTGVmdCwgdHJpbVN0YXJ0IH1gIG1ldGhvZHNcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1zdGFydFxuICBzdGFydDogY3JlYXRlTWV0aG9kKDEpLFxuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1SaWdodCwgdHJpbUVuZCB9YCBtZXRob2RzXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS50cmltZW5kXG4gIGVuZDogY3JlYXRlTWV0aG9kKDIpLFxuICAvLyBgU3RyaW5nLnByb3RvdHlwZS50cmltYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1cbiAgdHJpbTogY3JlYXRlTWV0aG9kKDMpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tc3ltYm9sIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC12OC12ZXJzaW9uJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbnZhciAkU3RyaW5nID0gZ2xvYmFsVGhpcy5TdHJpbmc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlzeW1ib2xzIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG5tb2R1bGUuZXhwb3J0cyA9ICEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgc3ltYm9sID0gU3ltYm9sKCdzeW1ib2wgZGV0ZWN0aW9uJyk7XG4gIC8vIENocm9tZSAzOCBTeW1ib2wgaGFzIGluY29ycmVjdCB0b1N0cmluZyBjb252ZXJzaW9uXG4gIC8vIGBnZXQtb3duLXByb3BlcnR5LXN5bWJvbHNgIHBvbHlmaWxsIHN5bWJvbHMgY29udmVydGVkIHRvIG9iamVjdCBhcmUgbm90IFN5bWJvbCBpbnN0YW5jZXNcbiAgLy8gbmI6IERvIG5vdCBjYWxsIGBTdHJpbmdgIGRpcmVjdGx5IHRvIGF2b2lkIHRoaXMgYmVpbmcgb3B0aW1pemVkIG91dCB0byBgc3ltYm9sKycnYCB3aGljaCB3aWxsLFxuICAvLyBvZiBjb3Vyc2UsIGZhaWwuXG4gIHJldHVybiAhJFN0cmluZyhzeW1ib2wpIHx8ICEoT2JqZWN0KHN5bWJvbCkgaW5zdGFuY2VvZiBTeW1ib2wpIHx8XG4gICAgLy8gQ2hyb21lIDM4LTQwIHN5bWJvbHMgYXJlIG5vdCBpbmhlcml0ZWQgZnJvbSBET00gY29sbGVjdGlvbnMgcHJvdG90eXBlcyB0byBpbnN0YW5jZXNcbiAgICAhU3ltYm9sLnNoYW0gJiYgVjhfVkVSU0lPTiAmJiBWOF9WRVJTSU9OIDwgNDE7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcblxudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBIZWxwZXIgZm9yIGEgcG9wdWxhciByZXBlYXRpbmcgY2FzZSBvZiB0aGUgc3BlYzpcbi8vIExldCBpbnRlZ2VyIGJlID8gVG9JbnRlZ2VyKGluZGV4KS5cbi8vIElmIGludGVnZXIgPCAwLCBsZXQgcmVzdWx0IGJlIG1heCgobGVuZ3RoICsgaW50ZWdlciksIDApOyBlbHNlIGxldCByZXN1bHQgYmUgbWluKGludGVnZXIsIGxlbmd0aCkuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIHZhciBpbnRlZ2VyID0gdG9JbnRlZ2VyT3JJbmZpbml0eShpbmRleCk7XG4gIHJldHVybiBpbnRlZ2VyIDwgMCA/IG1heChpbnRlZ2VyICsgbGVuZ3RoLCAwKSA6IG1pbihpbnRlZ2VyLCBsZW5ndGgpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdHJ1bmMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC10cnVuYycpO1xuXG4vLyBgVG9JbnRlZ2VyT3JJbmZpbml0eWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW50ZWdlcm9yaW5maW5pdHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBudW1iZXIgPSArYXJndW1lbnQ7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gIHJldHVybiBudW1iZXIgIT09IG51bWJlciB8fCBudW1iZXIgPT09IDAgPyAwIDogdHJ1bmMobnVtYmVyKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG5cbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gYFRvTGVuZ3RoYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9sZW5ndGhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBsZW4gPSB0b0ludGVnZXJPckluZmluaXR5KGFyZ3VtZW50KTtcbiAgcmV0dXJuIGxlbiA+IDAgPyBtaW4obGVuLCAweDFGRkZGRkZGRkZGRkZGKSA6IDA7IC8vIDIgKiogNTMgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvb2JqZWN0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gJE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgb3JkaW5hcnlUb1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vcmRpbmFyeS10by1wcmltaXRpdmUnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG52YXIgVE9fUFJJTUlUSVZFID0gd2VsbEtub3duU3ltYm9sKCd0b1ByaW1pdGl2ZScpO1xuXG4vLyBgVG9QcmltaXRpdmVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b3ByaW1pdGl2ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQsIHByZWYpIHtcbiAgaWYgKCFpc09iamVjdChpbnB1dCkgfHwgaXNTeW1ib2woaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG4gIHZhciBleG90aWNUb1ByaW0gPSBnZXRNZXRob2QoaW5wdXQsIFRPX1BSSU1JVElWRSk7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChleG90aWNUb1ByaW0pIHtcbiAgICBpZiAocHJlZiA9PT0gdW5kZWZpbmVkKSBwcmVmID0gJ2RlZmF1bHQnO1xuICAgIHJlc3VsdCA9IGNhbGwoZXhvdGljVG9QcmltLCBpbnB1dCwgcHJlZik7XG4gICAgaWYgKCFpc09iamVjdChyZXN1bHQpIHx8IGlzU3ltYm9sKHJlc3VsdCkpIHJldHVybiByZXN1bHQ7XG4gICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG4gIH1cbiAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdudW1iZXInO1xuICByZXR1cm4gb3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgcHJlZik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xuXG4vLyBgVG9Qcm9wZXJ0eUtleWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJvcGVydHlrZXlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBrZXkgPSB0b1ByaW1pdGl2ZShhcmd1bWVudCwgJ3N0cmluZycpO1xuICByZXR1cm4gaXNTeW1ib2woa2V5KSA/IGtleSA6IGtleSArICcnO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGNsYXNzb2YoYXJndW1lbnQpID09PSAnU3ltYm9sJykgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmcnKTtcbiAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkU3RyaW5nID0gU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB0cnkge1xuICAgIHJldHVybiAkU3RyaW5nKGFyZ3VtZW50KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gJ09iamVjdCc7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbnZhciBpZCA9IDA7XG52YXIgcG9zdGZpeCA9IE1hdGgucmFuZG9tKCk7XG52YXIgdG9TdHJpbmcgPSB1bmN1cnJ5VGhpcygxLjAudG9TdHJpbmcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJyArIChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5KSArICcpXycgKyB0b1N0cmluZygrK2lkICsgcG9zdGZpeCwgMzYpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9TWU1CT0xcbiAgJiYgIVN5bWJvbC5zaGFtXG4gICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBWOCB+IENocm9tZSAzNi1cbi8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMzMzRcbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAncHJvdG90eXBlJywge1xuICAgIHZhbHVlOiA0MixcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSkucHJvdG90eXBlICE9PSA0Mjtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uJyk7XG52YXIgVVNFX1NZTUJPTF9BU19VSUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQnKTtcblxudmFyIFN5bWJvbCA9IGdsb2JhbFRoaXMuU3ltYm9sO1xudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG52YXIgY3JlYXRlV2VsbEtub3duU3ltYm9sID0gVVNFX1NZTUJPTF9BU19VSUQgPyBTeW1ib2xbJ2ZvciddIHx8IFN5bWJvbCA6IFN5bWJvbCAmJiBTeW1ib2wud2l0aG91dFNldHRlciB8fCB1aWQ7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKCFoYXNPd24oV2VsbEtub3duU3ltYm9sc1N0b3JlLCBuYW1lKSkge1xuICAgIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IE5BVElWRV9TWU1CT0wgJiYgaGFzT3duKFN5bWJvbCwgbmFtZSlcbiAgICAgID8gU3ltYm9sW25hbWVdXG4gICAgICA6IGNyZWF0ZVdlbGxLbm93blN5bWJvbCgnU3ltYm9sLicgKyBuYW1lKTtcbiAgfSByZXR1cm4gV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGEgc3RyaW5nIG9mIGFsbCB2YWxpZCB1bmljb2RlIHdoaXRlc3BhY2VzXG5tb2R1bGUuZXhwb3J0cyA9ICdcXHUwMDA5XFx1MDAwQVxcdTAwMEJcXHUwMDBDXFx1MDAwRFxcdTAwMjBcXHUwMEEwXFx1MTY4MFxcdTIwMDBcXHUyMDAxXFx1MjAwMicgK1xuICAnXFx1MjAwM1xcdTIwMDRcXHUyMDA1XFx1MjAwNlxcdTIwMDdcXHUyMDA4XFx1MjAwOVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBcXHUyMDI4XFx1MjAyOVxcdUZFRkYnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBkb2VzTm90RXhjZWVkU2FmZUludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9lcy1ub3QtZXhjZWVkLXNhZmUtaW50ZWdlcicpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIGFycmF5U3BlY2llc0NyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcblxudmFyIElTX0NPTkNBVF9TUFJFQURBQkxFID0gd2VsbEtub3duU3ltYm9sKCdpc0NvbmNhdFNwcmVhZGFibGUnKTtcblxuLy8gV2UgY2FuJ3QgdXNlIHRoaXMgZmVhdHVyZSBkZXRlY3Rpb24gaW4gVjggc2luY2UgaXQgY2F1c2VzXG4vLyBkZW9wdGltaXphdGlvbiBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3OVxudmFyIElTX0NPTkNBVF9TUFJFQURBQkxFX1NVUFBPUlQgPSBWOF9WRVJTSU9OID49IDUxIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBhcnJheSA9IFtdO1xuICBhcnJheVtJU19DT05DQVRfU1BSRUFEQUJMRV0gPSBmYWxzZTtcbiAgcmV0dXJuIGFycmF5LmNvbmNhdCgpWzBdICE9PSBhcnJheTtcbn0pO1xuXG52YXIgaXNDb25jYXRTcHJlYWRhYmxlID0gZnVuY3Rpb24gKE8pIHtcbiAgaWYgKCFpc09iamVjdChPKSkgcmV0dXJuIGZhbHNlO1xuICB2YXIgc3ByZWFkYWJsZSA9IE9bSVNfQ09OQ0FUX1NQUkVBREFCTEVdO1xuICByZXR1cm4gc3ByZWFkYWJsZSAhPT0gdW5kZWZpbmVkID8gISFzcHJlYWRhYmxlIDogaXNBcnJheShPKTtcbn07XG5cbnZhciBGT1JDRUQgPSAhSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCB8fCAhYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnY29uY2F0Jyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuY29uY2F0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmNvbmNhdFxuLy8gd2l0aCBhZGRpbmcgc3VwcG9ydCBvZiBAQGlzQ29uY2F0U3ByZWFkYWJsZSBhbmQgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgYXJpdHk6IDEsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgY29uY2F0OiBmdW5jdGlvbiBjb25jYXQoYXJnKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGlzKTtcbiAgICB2YXIgQSA9IGFycmF5U3BlY2llc0NyZWF0ZShPLCAwKTtcbiAgICB2YXIgbiA9IDA7XG4gICAgdmFyIGksIGssIGxlbmd0aCwgbGVuLCBFO1xuICAgIGZvciAoaSA9IC0xLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIEUgPSBpID09PSAtMSA/IE8gOiBhcmd1bWVudHNbaV07XG4gICAgICBpZiAoaXNDb25jYXRTcHJlYWRhYmxlKEUpKSB7XG4gICAgICAgIGxlbiA9IGxlbmd0aE9mQXJyYXlMaWtlKEUpO1xuICAgICAgICBkb2VzTm90RXhjZWVkU2FmZUludGVnZXIobiArIGxlbik7XG4gICAgICAgIGZvciAoayA9IDA7IGsgPCBsZW47IGsrKywgbisrKSBpZiAoayBpbiBFKSBjcmVhdGVQcm9wZXJ0eShBLCBuLCBFW2tdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvZXNOb3RFeGNlZWRTYWZlSW50ZWdlcihuICsgMSk7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KEEsIG4rKywgRSk7XG4gICAgICB9XG4gICAgfVxuICAgIEEubGVuZ3RoID0gbjtcbiAgICByZXR1cm4gQTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkZmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5maW5kO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG5cbnZhciBGSU5EID0gJ2ZpbmQnO1xudmFyIFNLSVBTX0hPTEVTID0gdHJ1ZTtcblxuLy8gU2hvdWxkbid0IHNraXAgaG9sZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1hcnJheS1wcm90b3R5cGUtZmluZCAtLSB0ZXN0aW5nXG5pZiAoRklORCBpbiBbXSkgQXJyYXkoMSlbRklORF0oZnVuY3Rpb24gKCkgeyBTS0lQU19IT0xFUyA9IGZhbHNlOyB9KTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFNLSVBTX0hPTEVTIH0sIHtcbiAgZmluZDogZnVuY3Rpb24gZmluZChjYWxsYmFja2ZuIC8qICwgdGhhdCA9IHVuZGVmaW5lZCAqLykge1xuICAgIHJldHVybiAkZmluZCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKEZJTkQpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mb3ItZWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LXByb3RvdHlwZS1mb3JlYWNoIC0tIHNhZmVcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFtdLmZvckVhY2ggIT09IGZvckVhY2ggfSwge1xuICBmb3JFYWNoOiBmb3JFYWNoXG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLWFycmF5LXByb3RvdHlwZS1pbmRleG9mIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgJGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgbmF0aXZlSW5kZXhPZiA9IHVuY3VycnlUaGlzKFtdLmluZGV4T2YpO1xuXG52YXIgTkVHQVRJVkVfWkVSTyA9ICEhbmF0aXZlSW5kZXhPZiAmJiAxIC8gbmF0aXZlSW5kZXhPZihbMV0sIDEsIC0wKSA8IDA7XG52YXIgRk9SQ0VEID0gTkVHQVRJVkVfWkVSTyB8fCAhYXJyYXlNZXRob2RJc1N0cmljdCgnaW5kZXhPZicpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmluZGV4T2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgaW5kZXhPZjogZnVuY3Rpb24gaW5kZXhPZihzZWFyY2hFbGVtZW50IC8qICwgZnJvbUluZGV4ID0gMCAqLykge1xuICAgIHZhciBmcm9tSW5kZXggPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gTkVHQVRJVkVfWkVST1xuICAgICAgLy8gY29udmVydCAtMCB0byArMFxuICAgICAgPyBuYXRpdmVJbmRleE9mKHRoaXMsIHNlYXJjaEVsZW1lbnQsIGZyb21JbmRleCkgfHwgMFxuICAgICAgOiAkaW5kZXhPZih0aGlzLCBzZWFyY2hFbGVtZW50LCBmcm9tSW5kZXgpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcblxuLy8gYEFycmF5LmlzQXJyYXlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5pc2FycmF5XG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBzdGF0OiB0cnVlIH0sIHtcbiAgaXNBcnJheTogaXNBcnJheVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkbWFwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLm1hcDtcbnZhciBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0Jyk7XG5cbnZhciBIQVNfU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnbWFwJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuLy8gd2l0aCBhZGRpbmcgc3VwcG9ydCBvZiBAQHNwZWNpZXNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFIQVNfU1BFQ0lFU19TVVBQT1JUIH0sIHtcbiAgbWFwOiBmdW5jdGlvbiBtYXAoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICByZXR1cm4gJG1hcCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHJlZHVjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1yZWR1Y2UnKS5sZWZ0O1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xudmFyIENIUk9NRV9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcbnZhciBJU19OT0RFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LWlzLW5vZGUnKTtcblxuLy8gQ2hyb21lIDgwLTgyIGhhcyBhIGNyaXRpY2FsIGJ1Z1xuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTA0OTk4MlxudmFyIENIUk9NRV9CVUcgPSAhSVNfTk9ERSAmJiBDSFJPTUVfVkVSU0lPTiA+IDc5ICYmIENIUk9NRV9WRVJTSU9OIDwgODM7XG52YXIgRk9SQ0VEID0gQ0hST01FX0JVRyB8fCAhYXJyYXlNZXRob2RJc1N0cmljdCgncmVkdWNlJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnJlZHVjZVxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgcmVkdWNlOiBmdW5jdGlvbiByZWR1Y2UoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykge1xuICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHJldHVybiAkcmVkdWNlKHRoaXMsIGNhbGxiYWNrZm4sIGxlbmd0aCwgbGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIGlzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3InKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciBuYXRpdmVTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZScpO1xuXG52YXIgSEFTX1NQRUNJRVNfU1VQUE9SVCA9IGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQoJ3NsaWNlJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG52YXIgJEFycmF5ID0gQXJyYXk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuc2xpY2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc2xpY2Vcbi8vIGZhbGxiYWNrIGZvciBub3QgYXJyYXktbGlrZSBFUzMgc3RyaW5ncyBhbmQgRE9NIG9iamVjdHNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFIQVNfU1BFQ0lFU19TVVBQT1JUIH0sIHtcbiAgc2xpY2U6IGZ1bmN0aW9uIHNsaWNlKHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCh0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gICAgdmFyIGsgPSB0b0Fic29sdXRlSW5kZXgoc3RhcnQsIGxlbmd0aCk7XG4gICAgdmFyIGZpbiA9IHRvQWJzb2x1dGVJbmRleChlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IGVuZCwgbGVuZ3RoKTtcbiAgICAvLyBpbmxpbmUgYEFycmF5U3BlY2llc0NyZWF0ZWAgZm9yIHVzYWdlIG5hdGl2ZSBgQXJyYXkjc2xpY2VgIHdoZXJlIGl0J3MgcG9zc2libGVcbiAgICB2YXIgQ29uc3RydWN0b3IsIHJlc3VsdCwgbjtcbiAgICBpZiAoaXNBcnJheShPKSkge1xuICAgICAgQ29uc3RydWN0b3IgPSBPLmNvbnN0cnVjdG9yO1xuICAgICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICAgIGlmIChpc0NvbnN0cnVjdG9yKENvbnN0cnVjdG9yKSAmJiAoQ29uc3RydWN0b3IgPT09ICRBcnJheSB8fCBpc0FycmF5KENvbnN0cnVjdG9yLnByb3RvdHlwZSkpKSB7XG4gICAgICAgIENvbnN0cnVjdG9yID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIGlmIChpc09iamVjdChDb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgQ29uc3RydWN0b3IgPSBDb25zdHJ1Y3RvcltTUEVDSUVTXTtcbiAgICAgICAgaWYgKENvbnN0cnVjdG9yID09PSBudWxsKSBDb25zdHJ1Y3RvciA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChDb25zdHJ1Y3RvciA9PT0gJEFycmF5IHx8IENvbnN0cnVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZVNsaWNlKE8sIGssIGZpbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc3VsdCA9IG5ldyAoQ29uc3RydWN0b3IgPT09IHVuZGVmaW5lZCA/ICRBcnJheSA6IENvbnN0cnVjdG9yKShtYXgoZmluIC0gaywgMCkpO1xuICAgIGZvciAobiA9IDA7IGsgPCBmaW47IGsrKywgbisrKSBpZiAoayBpbiBPKSBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIG4sIE9ba10pO1xuICAgIHJlc3VsdC5sZW5ndGggPSBuO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcblxuLy8gYE9iamVjdC5jcmVhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgc2hhbTogIURFU0NSSVBUT1JTIH0sIHtcbiAgY3JlYXRlOiBjcmVhdGVcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbmF0aXZlS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVLZXlzKDEpOyB9KTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBrZXlzOiBmdW5jdGlvbiBrZXlzKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXModG9PYmplY3QoaXQpKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkcGFyc2VJbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbnVtYmVyLXBhcnNlLWludCcpO1xuXG4vLyBgcGFyc2VJbnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wYXJzZWludC1zdHJpbmctcmFkaXhcbiQoeyBnbG9iYWw6IHRydWUsIGZvcmNlZDogcGFyc2VJbnQgIT09ICRwYXJzZUludCB9LCB7XG4gIHBhcnNlSW50OiAkcGFyc2VJbnRcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZScpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciBub3RBUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25vdC1hLXJlZ2V4cCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgY29ycmVjdElzUmVnRXhwTG9naWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29ycmVjdC1pcy1yZWdleHAtbG9naWMnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxudmFyIHNsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG52YXIgQ09SUkVDVF9JU19SRUdFWFBfTE9HSUMgPSBjb3JyZWN0SXNSZWdFeHBMb2dpYygnZW5kc1dpdGgnKTtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL3B1bGwvNzAyXG52YXIgTUROX1BPTFlGSUxMX0JVRyA9ICFJU19QVVJFICYmICFDT1JSRUNUX0lTX1JFR0VYUF9MT0dJQyAmJiAhIWZ1bmN0aW9uICgpIHtcbiAgdmFyIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgJ2VuZHNXaXRoJyk7XG4gIHJldHVybiBkZXNjcmlwdG9yICYmICFkZXNjcmlwdG9yLndyaXRhYmxlO1xufSgpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuZW5kc3dpdGhcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhTUROX1BPTFlGSUxMX0JVRyAmJiAhQ09SUkVDVF9JU19SRUdFWFBfTE9HSUMgfSwge1xuICBlbmRzV2l0aDogZnVuY3Rpb24gZW5kc1dpdGgoc2VhcmNoU3RyaW5nIC8qICwgZW5kUG9zaXRpb24gPSBAbGVuZ3RoICovKSB7XG4gICAgdmFyIHRoYXQgPSB0b1N0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpKTtcbiAgICBub3RBUmVnRXhwKHNlYXJjaFN0cmluZyk7XG4gICAgdmFyIGVuZFBvc2l0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gICAgdmFyIGxlbiA9IHRoYXQubGVuZ3RoO1xuICAgIHZhciBlbmQgPSBlbmRQb3NpdGlvbiA9PT0gdW5kZWZpbmVkID8gbGVuIDogbWluKHRvTGVuZ3RoKGVuZFBvc2l0aW9uKSwgbGVuKTtcbiAgICB2YXIgc2VhcmNoID0gdG9TdHJpbmcoc2VhcmNoU3RyaW5nKTtcbiAgICByZXR1cm4gc2xpY2UodGhhdCwgZW5kIC0gc2VhcmNoLmxlbmd0aCwgZW5kKSA9PT0gc2VhcmNoO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICR0cmltID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy10cmltJykudHJpbTtcbnZhciBmb3JjZWRTdHJpbmdUcmltTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy10cmltLWZvcmNlZCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS50cmltYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS50cmltXG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUsIGZvcmNlZDogZm9yY2VkU3RyaW5nVHJpbU1ldGhvZCgndHJpbScpIH0sIHtcbiAgdHJpbTogZnVuY3Rpb24gdHJpbSgpIHtcbiAgICByZXR1cm4gJHRyaW0odGhpcyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2FycmF5L2lzLWFycmF5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uLy4uL2VzL2FycmF5L3ZpcnR1YWwvZm9yLWVhY2gnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2UvY29uY2F0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL2VuZHMtd2l0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9maW5kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9mb3ItZWFjaCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxudmFyIERPTUl0ZXJhYmxlcyA9IHtcbiAgRE9NVG9rZW5MaXN0OiB0cnVlLFxuICBOb2RlTGlzdDogdHJ1ZVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmZvckVhY2g7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLmZvckVhY2gpXG4gICAgfHwgaGFzT3duKERPTUl0ZXJhYmxlcywgY2xhc3NvZihpdCkpID8gbWV0aG9kIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9pbmRleC1vZicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9tYXAnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2UvcmVkdWNlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL3NsaWNlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL3RyaW0nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvb2JqZWN0L2NyZWF0ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9vYmplY3Qva2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi9lcy9wYXJzZS1pbnQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IElzQ2FsbGFibGUoYXJndW1lbnQpIGlzIHRydWVgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IodHJ5VG9TdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yJyk7XG52YXIgdHJ5VG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZycpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYEFzc2VydDogSXNDb25zdHJ1Y3Rvcihhcmd1bWVudCkgaXMgdHJ1ZWBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChpc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSkgcmV0dXJuIGFyZ3VtZW50O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhIGNvbnN0cnVjdG9yJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUG9zc2libGVQcm90b3R5cGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcG9zc2libGUtcHJvdG90eXBlJyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChpc1Bvc3NpYmxlUHJvdG90eXBlKGFyZ3VtZW50KSkgcmV0dXJuIGFyZ3VtZW50O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IHNldCBcIiArICRTdHJpbmcoYXJndW1lbnQpICsgJyBhcyBhIHByb3RvdHlwZScpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG52YXIgVU5TQ09QQUJMRVMgPSB3ZWxsS25vd25TeW1ib2woJ3Vuc2NvcGFibGVzJyk7XG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbi8vIEFycmF5LnByb3RvdHlwZVtAQHVuc2NvcGFibGVzXVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuaWYgKEFycmF5UHJvdG90eXBlW1VOU0NPUEFCTEVTXSA9PT0gdW5kZWZpbmVkKSB7XG4gIGRlZmluZVByb3BlcnR5KEFycmF5UHJvdG90eXBlLCBVTlNDT1BBQkxFUywge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB2YWx1ZTogY3JlYXRlKG51bGwpXG4gIH0pO1xufVxuXG4vLyBhZGQgYSBrZXkgdG8gQXJyYXkucHJvdG90eXBlW0BAdW5zY29wYWJsZXNdXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgQXJyYXlQcm90b3R5cGVbVU5TQ09QQUJMRVNdW2tleV0gPSB0cnVlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjaGFyQXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZScpLmNoYXJBdDtcblxuLy8gYEFkdmFuY2VTdHJpbmdJbmRleGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFkdmFuY2VzdHJpbmdpbmRleFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoUywgaW5kZXgsIHVuaWNvZGUpIHtcbiAgcmV0dXJuIGluZGV4ICsgKHVuaWNvZGUgPyBjaGFyQXQoUywgaW5kZXgpLmxlbmd0aCA6IDEpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBQcm90b3R5cGUpIHtcbiAgaWYgKGlzUHJvdG90eXBlT2YoUHJvdG90eXBlLCBpdCkpIHJldHVybiBpdDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJ0luY29ycmVjdCBpbnZvY2F0aW9uJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgQXNzZXJ0OiBUeXBlKGFyZ3VtZW50KSBpcyBPYmplY3RgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNPYmplY3QoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKCRTdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYW4gb2JqZWN0Jyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLXR5cGVkLWFycmF5cyAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBBcnJheUJ1ZmZlciAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgRGF0YVZpZXcgIT0gJ3VuZGVmaW5lZCc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVuY3VycnlUaGlzQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWFjY2Vzc29yJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgQXJyYXlCdWZmZXIgPSBnbG9iYWxUaGlzLkFycmF5QnVmZmVyO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbFRoaXMuVHlwZUVycm9yO1xuXG4vLyBJbmNsdWRlc1xuLy8gLSBQZXJmb3JtID8gUmVxdWlyZUludGVybmFsU2xvdChPLCBbW0FycmF5QnVmZmVyRGF0YV1dKS5cbi8vIC0gSWYgSXNTaGFyZWRBcnJheUJ1ZmZlcihPKSBpcyB0cnVlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uXG5tb2R1bGUuZXhwb3J0cyA9IEFycmF5QnVmZmVyICYmIHVuY3VycnlUaGlzQWNjZXNzb3IoQXJyYXlCdWZmZXIucHJvdG90eXBlLCAnYnl0ZUxlbmd0aCcsICdnZXQnKSB8fCBmdW5jdGlvbiAoTykge1xuICBpZiAoY2xhc3NvZihPKSAhPT0gJ0FycmF5QnVmZmVyJykgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJyYXlCdWZmZXIgZXhwZWN0ZWQnKTtcbiAgcmV0dXJuIE8uYnl0ZUxlbmd0aDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1jbGF1c2UnKTtcbnZhciBhcnJheUJ1ZmZlckJ5dGVMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLWJ5dGUtbGVuZ3RoJyk7XG5cbnZhciBBcnJheUJ1ZmZlciA9IGdsb2JhbFRoaXMuQXJyYXlCdWZmZXI7XG52YXIgQXJyYXlCdWZmZXJQcm90b3R5cGUgPSBBcnJheUJ1ZmZlciAmJiBBcnJheUJ1ZmZlci5wcm90b3R5cGU7XG52YXIgc2xpY2UgPSBBcnJheUJ1ZmZlclByb3RvdHlwZSAmJiB1bmN1cnJ5VGhpcyhBcnJheUJ1ZmZlclByb3RvdHlwZS5zbGljZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8pIHtcbiAgaWYgKGFycmF5QnVmZmVyQnl0ZUxlbmd0aChPKSAhPT0gMCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoIXNsaWNlKSByZXR1cm4gZmFsc2U7XG4gIHRyeSB7XG4gICAgc2xpY2UoTywgMCwgMCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzRGV0YWNoZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLWlzLWRldGFjaGVkJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNEZXRhY2hlZChpdCkpIHRocm93IG5ldyAkVHlwZUVycm9yKCdBcnJheUJ1ZmZlciBpcyBkZXRhY2hlZCcpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB1bmN1cnJ5VGhpc0FjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1hY2Nlc3NvcicpO1xudmFyIHRvSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXgnKTtcbnZhciBub3REZXRhY2hlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItbm90LWRldGFjaGVkJyk7XG52YXIgYXJyYXlCdWZmZXJCeXRlTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci1ieXRlLWxlbmd0aCcpO1xudmFyIGRldGFjaFRyYW5zZmVyYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXRhY2gtdHJhbnNmZXJhYmxlJyk7XG52YXIgUFJPUEVSX1NUUlVDVFVSRURfQ0xPTkVfVFJBTlNGRVIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RydWN0dXJlZC1jbG9uZS1wcm9wZXItdHJhbnNmZXInKTtcblxudmFyIHN0cnVjdHVyZWRDbG9uZSA9IGdsb2JhbFRoaXMuc3RydWN0dXJlZENsb25lO1xudmFyIEFycmF5QnVmZmVyID0gZ2xvYmFsVGhpcy5BcnJheUJ1ZmZlcjtcbnZhciBEYXRhVmlldyA9IGdsb2JhbFRoaXMuRGF0YVZpZXc7XG52YXIgbWluID0gTWF0aC5taW47XG52YXIgQXJyYXlCdWZmZXJQcm90b3R5cGUgPSBBcnJheUJ1ZmZlci5wcm90b3R5cGU7XG52YXIgRGF0YVZpZXdQcm90b3R5cGUgPSBEYXRhVmlldy5wcm90b3R5cGU7XG52YXIgc2xpY2UgPSB1bmN1cnJ5VGhpcyhBcnJheUJ1ZmZlclByb3RvdHlwZS5zbGljZSk7XG52YXIgaXNSZXNpemFibGUgPSB1bmN1cnJ5VGhpc0FjY2Vzc29yKEFycmF5QnVmZmVyUHJvdG90eXBlLCAncmVzaXphYmxlJywgJ2dldCcpO1xudmFyIG1heEJ5dGVMZW5ndGggPSB1bmN1cnJ5VGhpc0FjY2Vzc29yKEFycmF5QnVmZmVyUHJvdG90eXBlLCAnbWF4Qnl0ZUxlbmd0aCcsICdnZXQnKTtcbnZhciBnZXRJbnQ4ID0gdW5jdXJyeVRoaXMoRGF0YVZpZXdQcm90b3R5cGUuZ2V0SW50OCk7XG52YXIgc2V0SW50OCA9IHVuY3VycnlUaGlzKERhdGFWaWV3UHJvdG90eXBlLnNldEludDgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChQUk9QRVJfU1RSVUNUVVJFRF9DTE9ORV9UUkFOU0ZFUiB8fCBkZXRhY2hUcmFuc2ZlcmFibGUpICYmIGZ1bmN0aW9uIChhcnJheUJ1ZmZlciwgbmV3TGVuZ3RoLCBwcmVzZXJ2ZVJlc2l6YWJpbGl0eSkge1xuICB2YXIgYnl0ZUxlbmd0aCA9IGFycmF5QnVmZmVyQnl0ZUxlbmd0aChhcnJheUJ1ZmZlcik7XG4gIHZhciBuZXdCeXRlTGVuZ3RoID0gbmV3TGVuZ3RoID09PSB1bmRlZmluZWQgPyBieXRlTGVuZ3RoIDogdG9JbmRleChuZXdMZW5ndGgpO1xuICB2YXIgZml4ZWRMZW5ndGggPSAhaXNSZXNpemFibGUgfHwgIWlzUmVzaXphYmxlKGFycmF5QnVmZmVyKTtcbiAgdmFyIG5ld0J1ZmZlcjtcbiAgbm90RGV0YWNoZWQoYXJyYXlCdWZmZXIpO1xuICBpZiAoUFJPUEVSX1NUUlVDVFVSRURfQ0xPTkVfVFJBTlNGRVIpIHtcbiAgICBhcnJheUJ1ZmZlciA9IHN0cnVjdHVyZWRDbG9uZShhcnJheUJ1ZmZlciwgeyB0cmFuc2ZlcjogW2FycmF5QnVmZmVyXSB9KTtcbiAgICBpZiAoYnl0ZUxlbmd0aCA9PT0gbmV3Qnl0ZUxlbmd0aCAmJiAocHJlc2VydmVSZXNpemFiaWxpdHkgfHwgZml4ZWRMZW5ndGgpKSByZXR1cm4gYXJyYXlCdWZmZXI7XG4gIH1cbiAgaWYgKGJ5dGVMZW5ndGggPj0gbmV3Qnl0ZUxlbmd0aCAmJiAoIXByZXNlcnZlUmVzaXphYmlsaXR5IHx8IGZpeGVkTGVuZ3RoKSkge1xuICAgIG5ld0J1ZmZlciA9IHNsaWNlKGFycmF5QnVmZmVyLCAwLCBuZXdCeXRlTGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgb3B0aW9ucyA9IHByZXNlcnZlUmVzaXphYmlsaXR5ICYmICFmaXhlZExlbmd0aCAmJiBtYXhCeXRlTGVuZ3RoID8geyBtYXhCeXRlTGVuZ3RoOiBtYXhCeXRlTGVuZ3RoKGFycmF5QnVmZmVyKSB9IDogdW5kZWZpbmVkO1xuICAgIG5ld0J1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihuZXdCeXRlTGVuZ3RoLCBvcHRpb25zKTtcbiAgICB2YXIgYSA9IG5ldyBEYXRhVmlldyhhcnJheUJ1ZmZlcik7XG4gICAgdmFyIGIgPSBuZXcgRGF0YVZpZXcobmV3QnVmZmVyKTtcbiAgICB2YXIgY29weUxlbmd0aCA9IG1pbihuZXdCeXRlTGVuZ3RoLCBieXRlTGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcHlMZW5ndGg7IGkrKykgc2V0SW50OChiLCBpLCBnZXRJbnQ4KGEsIGkpKTtcbiAgfVxuICBpZiAoIVBST1BFUl9TVFJVQ1RVUkVEX0NMT05FX1RSQU5TRkVSKSBkZXRhY2hUcmFuc2ZlcmFibGUoYXJyYXlCdWZmZXIpO1xuICByZXR1cm4gbmV3QnVmZmVyO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfQVJSQVlfQlVGRkVSID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci1iYXNpYy1kZXRlY3Rpb24nKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3NvcicpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgZW5mb3JjZUludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmVuZm9yY2U7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0O1xudmFyIEludDhBcnJheSA9IGdsb2JhbFRoaXMuSW50OEFycmF5O1xudmFyIEludDhBcnJheVByb3RvdHlwZSA9IEludDhBcnJheSAmJiBJbnQ4QXJyYXkucHJvdG90eXBlO1xudmFyIFVpbnQ4Q2xhbXBlZEFycmF5ID0gZ2xvYmFsVGhpcy5VaW50OENsYW1wZWRBcnJheTtcbnZhciBVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSA9IFVpbnQ4Q2xhbXBlZEFycmF5ICYmIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZTtcbnZhciBUeXBlZEFycmF5ID0gSW50OEFycmF5ICYmIGdldFByb3RvdHlwZU9mKEludDhBcnJheSk7XG52YXIgVHlwZWRBcnJheVByb3RvdHlwZSA9IEludDhBcnJheVByb3RvdHlwZSAmJiBnZXRQcm90b3R5cGVPZihJbnQ4QXJyYXlQcm90b3R5cGUpO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsVGhpcy5UeXBlRXJyb3I7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xudmFyIFRZUEVEX0FSUkFZX1RBRyA9IHVpZCgnVFlQRURfQVJSQVlfVEFHJyk7XG52YXIgVFlQRURfQVJSQVlfQ09OU1RSVUNUT1IgPSAnVHlwZWRBcnJheUNvbnN0cnVjdG9yJztcbi8vIEZpeGluZyBuYXRpdmUgdHlwZWQgYXJyYXlzIGluIE9wZXJhIFByZXN0byBjcmFzaGVzIHRoZSBicm93c2VyLCBzZWUgIzU5NVxudmFyIE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgPSBOQVRJVkVfQVJSQVlfQlVGRkVSICYmICEhc2V0UHJvdG90eXBlT2YgJiYgY2xhc3NvZihnbG9iYWxUaGlzLm9wZXJhKSAhPT0gJ09wZXJhJztcbnZhciBUWVBFRF9BUlJBWV9UQUdfUkVRVUlSRUQgPSBmYWxzZTtcbnZhciBOQU1FLCBDb25zdHJ1Y3RvciwgUHJvdG90eXBlO1xuXG52YXIgVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QgPSB7XG4gIEludDhBcnJheTogMSxcbiAgVWludDhBcnJheTogMSxcbiAgVWludDhDbGFtcGVkQXJyYXk6IDEsXG4gIEludDE2QXJyYXk6IDIsXG4gIFVpbnQxNkFycmF5OiAyLFxuICBJbnQzMkFycmF5OiA0LFxuICBVaW50MzJBcnJheTogNCxcbiAgRmxvYXQzMkFycmF5OiA0LFxuICBGbG9hdDY0QXJyYXk6IDhcbn07XG5cbnZhciBCaWdJbnRBcnJheUNvbnN0cnVjdG9yc0xpc3QgPSB7XG4gIEJpZ0ludDY0QXJyYXk6IDgsXG4gIEJpZ1VpbnQ2NEFycmF5OiA4XG59O1xuXG52YXIgaXNWaWV3ID0gZnVuY3Rpb24gaXNWaWV3KGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gZmFsc2U7XG4gIHZhciBrbGFzcyA9IGNsYXNzb2YoaXQpO1xuICByZXR1cm4ga2xhc3MgPT09ICdEYXRhVmlldydcbiAgICB8fCBoYXNPd24oVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QsIGtsYXNzKVxuICAgIHx8IGhhc093bihCaWdJbnRBcnJheUNvbnN0cnVjdG9yc0xpc3QsIGtsYXNzKTtcbn07XG5cbnZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHByb3RvID0gZ2V0UHJvdG90eXBlT2YoaXQpO1xuICBpZiAoIWlzT2JqZWN0KHByb3RvKSkgcmV0dXJuO1xuICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHByb3RvKTtcbiAgcmV0dXJuIChzdGF0ZSAmJiBoYXNPd24oc3RhdGUsIFRZUEVEX0FSUkFZX0NPTlNUUlVDVE9SKSkgPyBzdGF0ZVtUWVBFRF9BUlJBWV9DT05TVFJVQ1RPUl0gOiBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IocHJvdG8pO1xufTtcblxudmFyIGlzVHlwZWRBcnJheSA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIGZhbHNlO1xuICB2YXIga2xhc3MgPSBjbGFzc29mKGl0KTtcbiAgcmV0dXJuIGhhc093bihUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCwga2xhc3MpXG4gICAgfHwgaGFzT3duKEJpZ0ludEFycmF5Q29uc3RydWN0b3JzTGlzdCwga2xhc3MpO1xufTtcblxudmFyIGFUeXBlZEFycmF5ID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpc1R5cGVkQXJyYXkoaXQpKSByZXR1cm4gaXQ7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheScpO1xufTtcblxudmFyIGFUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBmdW5jdGlvbiAoQykge1xuICBpZiAoaXNDYWxsYWJsZShDKSAmJiAoIXNldFByb3RvdHlwZU9mIHx8IGlzUHJvdG90eXBlT2YoVHlwZWRBcnJheSwgQykpKSByZXR1cm4gQztcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcih0cnlUb1N0cmluZyhDKSArICcgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3InKTtcbn07XG5cbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gZnVuY3Rpb24gKEtFWSwgcHJvcGVydHksIGZvcmNlZCwgb3B0aW9ucykge1xuICBpZiAoIURFU0NSSVBUT1JTKSByZXR1cm47XG4gIGlmIChmb3JjZWQpIGZvciAodmFyIEFSUkFZIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gICAgdmFyIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IGdsb2JhbFRoaXNbQVJSQVldO1xuICAgIGlmIChUeXBlZEFycmF5Q29uc3RydWN0b3IgJiYgaGFzT3duKFR5cGVkQXJyYXlDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIEtFWSkpIHRyeSB7XG4gICAgICBkZWxldGUgVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZVtLRVldO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBvbGQgV2ViS2l0IGJ1ZyAtIHNvbWUgbWV0aG9kcyBhcmUgbm9uLWNvbmZpZ3VyYWJsZVxuICAgICAgdHJ5IHtcbiAgICAgICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZVtLRVldID0gcHJvcGVydHk7XG4gICAgICB9IGNhdGNoIChlcnJvcjIpIHsgLyogZW1wdHkgKi8gfVxuICAgIH1cbiAgfVxuICBpZiAoIVR5cGVkQXJyYXlQcm90b3R5cGVbS0VZXSB8fCBmb3JjZWQpIHtcbiAgICBkZWZpbmVCdWlsdEluKFR5cGVkQXJyYXlQcm90b3R5cGUsIEtFWSwgZm9yY2VkID8gcHJvcGVydHlcbiAgICAgIDogTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyAmJiBJbnQ4QXJyYXlQcm90b3R5cGVbS0VZXSB8fCBwcm9wZXJ0eSwgb3B0aW9ucyk7XG4gIH1cbn07XG5cbnZhciBleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kID0gZnVuY3Rpb24gKEtFWSwgcHJvcGVydHksIGZvcmNlZCkge1xuICB2YXIgQVJSQVksIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcbiAgaWYgKCFERVNDUklQVE9SUykgcmV0dXJuO1xuICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICBpZiAoZm9yY2VkKSBmb3IgKEFSUkFZIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gICAgICBUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBnbG9iYWxUaGlzW0FSUkFZXTtcbiAgICAgIGlmIChUeXBlZEFycmF5Q29uc3RydWN0b3IgJiYgaGFzT3duKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgS0VZKSkgdHJ5IHtcbiAgICAgICAgZGVsZXRlIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcltLRVldO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICAgIH1cbiAgICBpZiAoIVR5cGVkQXJyYXlbS0VZXSB8fCBmb3JjZWQpIHtcbiAgICAgIC8vIFY4IH4gQ2hyb21lIDQ5LTUwIGAlVHlwZWRBcnJheSVgIG1ldGhvZHMgYXJlIG5vbi13cml0YWJsZSBub24tY29uZmlndXJhYmxlXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZGVmaW5lQnVpbHRJbihUeXBlZEFycmF5LCBLRVksIGZvcmNlZCA/IHByb3BlcnR5IDogTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyAmJiBUeXBlZEFycmF5W0tFWV0gfHwgcHJvcGVydHkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICAgIH0gZWxzZSByZXR1cm47XG4gIH1cbiAgZm9yIChBUlJBWSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkge1xuICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IGdsb2JhbFRoaXNbQVJSQVldO1xuICAgIGlmIChUeXBlZEFycmF5Q29uc3RydWN0b3IgJiYgKCFUeXBlZEFycmF5Q29uc3RydWN0b3JbS0VZXSB8fCBmb3JjZWQpKSB7XG4gICAgICBkZWZpbmVCdWlsdEluKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgS0VZLCBwcm9wZXJ0eSk7XG4gICAgfVxuICB9XG59O1xuXG5mb3IgKE5BTUUgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QpIHtcbiAgQ29uc3RydWN0b3IgPSBnbG9iYWxUaGlzW05BTUVdO1xuICBQcm90b3R5cGUgPSBDb25zdHJ1Y3RvciAmJiBDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIGlmIChQcm90b3R5cGUpIGVuZm9yY2VJbnRlcm5hbFN0YXRlKFByb3RvdHlwZSlbVFlQRURfQVJSQVlfQ09OU1RSVUNUT1JdID0gQ29uc3RydWN0b3I7XG4gIGVsc2UgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyA9IGZhbHNlO1xufVxuXG5mb3IgKE5BTUUgaW4gQmlnSW50QXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gIENvbnN0cnVjdG9yID0gZ2xvYmFsVGhpc1tOQU1FXTtcbiAgUHJvdG90eXBlID0gQ29uc3RydWN0b3IgJiYgQ29uc3RydWN0b3IucHJvdG90eXBlO1xuICBpZiAoUHJvdG90eXBlKSBlbmZvcmNlSW50ZXJuYWxTdGF0ZShQcm90b3R5cGUpW1RZUEVEX0FSUkFZX0NPTlNUUlVDVE9SXSA9IENvbnN0cnVjdG9yO1xufVxuXG4vLyBXZWJLaXQgYnVnIC0gdHlwZWQgYXJyYXlzIGNvbnN0cnVjdG9ycyBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZVxuaWYgKCFOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTIHx8ICFpc0NhbGxhYmxlKFR5cGVkQXJyYXkpIHx8IFR5cGVkQXJyYXkgPT09IEZ1bmN0aW9uLnByb3RvdHlwZSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93IC0tIHNhZmVcbiAgVHlwZWRBcnJheSA9IGZ1bmN0aW9uIFR5cGVkQXJyYXkoKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW5jb3JyZWN0IGludm9jYXRpb24nKTtcbiAgfTtcbiAgaWYgKE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MpIGZvciAoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkge1xuICAgIGlmIChnbG9iYWxUaGlzW05BTUVdKSBzZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzW05BTUVdLCBUeXBlZEFycmF5KTtcbiAgfVxufVxuXG5pZiAoIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgfHwgIVR5cGVkQXJyYXlQcm90b3R5cGUgfHwgVHlwZWRBcnJheVByb3RvdHlwZSA9PT0gT2JqZWN0UHJvdG90eXBlKSB7XG4gIFR5cGVkQXJyYXlQcm90b3R5cGUgPSBUeXBlZEFycmF5LnByb3RvdHlwZTtcbiAgaWYgKE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MpIGZvciAoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkge1xuICAgIGlmIChnbG9iYWxUaGlzW05BTUVdKSBzZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzW05BTUVdLnByb3RvdHlwZSwgVHlwZWRBcnJheVByb3RvdHlwZSk7XG4gIH1cbn1cblxuLy8gV2ViS2l0IGJ1ZyAtIG9uZSBtb3JlIG9iamVjdCBpbiBVaW50OENsYW1wZWRBcnJheSBwcm90b3R5cGUgY2hhaW5cbmlmIChOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTICYmIGdldFByb3RvdHlwZU9mKFVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlKSAhPT0gVHlwZWRBcnJheVByb3RvdHlwZSkge1xuICBzZXRQcm90b3R5cGVPZihVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSwgVHlwZWRBcnJheVByb3RvdHlwZSk7XG59XG5cbmlmIChERVNDUklQVE9SUyAmJiAhaGFzT3duKFR5cGVkQXJyYXlQcm90b3R5cGUsIFRPX1NUUklOR19UQUcpKSB7XG4gIFRZUEVEX0FSUkFZX1RBR19SRVFVSVJFRCA9IHRydWU7XG4gIGRlZmluZUJ1aWx0SW5BY2Nlc3NvcihUeXBlZEFycmF5UHJvdG90eXBlLCBUT19TVFJJTkdfVEFHLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0KHRoaXMpID8gdGhpc1tUWVBFRF9BUlJBWV9UQUddIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfSk7XG4gIGZvciAoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkgaWYgKGdsb2JhbFRoaXNbTkFNRV0pIHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoZ2xvYmFsVGhpc1tOQU1FXSwgVFlQRURfQVJSQVlfVEFHLCBOQU1FKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzogTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxcbiAgVFlQRURfQVJSQVlfVEFHOiBUWVBFRF9BUlJBWV9UQUdfUkVRVUlSRUQgJiYgVFlQRURfQVJSQVlfVEFHLFxuICBhVHlwZWRBcnJheTogYVR5cGVkQXJyYXksXG4gIGFUeXBlZEFycmF5Q29uc3RydWN0b3I6IGFUeXBlZEFycmF5Q29uc3RydWN0b3IsXG4gIGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q6IGV4cG9ydFR5cGVkQXJyYXlNZXRob2QsXG4gIGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6IGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QsXG4gIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjogZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLFxuICBpc1ZpZXc6IGlzVmlldyxcbiAgaXNUeXBlZEFycmF5OiBpc1R5cGVkQXJyYXksXG4gIFR5cGVkQXJyYXk6IFR5cGVkQXJyYXksXG4gIFR5cGVkQXJyYXlQcm90b3R5cGU6IFR5cGVkQXJyYXlQcm90b3R5cGVcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItYmFzaWMtZGV0ZWN0aW9uJyk7XG52YXIgRnVuY3Rpb25OYW1lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3NvcicpO1xudmFyIGRlZmluZUJ1aWx0SW5zID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGFuSW5zdGFuY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4taW5zdGFuY2UnKTtcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4Jyk7XG52YXIgZnJvdW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtZnJvdW5kJyk7XG52YXIgSUVFRTc1NCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZWVlNzU0Jyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGFycmF5RmlsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1maWxsJyk7XG52YXIgYXJyYXlTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZScpO1xudmFyIGluaGVyaXRJZlJlcXVpcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luaGVyaXQtaWYtcmVxdWlyZWQnKTtcbnZhciBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgUFJPUEVSX0ZVTkNUSU9OX05BTUUgPSBGdW5jdGlvbk5hbWUuUFJPUEVSO1xudmFyIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FID0gRnVuY3Rpb25OYW1lLkNPTkZJR1VSQUJMRTtcbnZhciBBUlJBWV9CVUZGRVIgPSAnQXJyYXlCdWZmZXInO1xudmFyIERBVEFfVklFVyA9ICdEYXRhVmlldyc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgV1JPTkdfTEVOR1RIID0gJ1dyb25nIGxlbmd0aCc7XG52YXIgV1JPTkdfSU5ERVggPSAnV3JvbmcgaW5kZXgnO1xudmFyIGdldEludGVybmFsQXJyYXlCdWZmZXJTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKEFSUkFZX0JVRkZFUik7XG52YXIgZ2V0SW50ZXJuYWxEYXRhVmlld1N0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoREFUQV9WSUVXKTtcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgTmF0aXZlQXJyYXlCdWZmZXIgPSBnbG9iYWxUaGlzW0FSUkFZX0JVRkZFUl07XG52YXIgJEFycmF5QnVmZmVyID0gTmF0aXZlQXJyYXlCdWZmZXI7XG52YXIgQXJyYXlCdWZmZXJQcm90b3R5cGUgPSAkQXJyYXlCdWZmZXIgJiYgJEFycmF5QnVmZmVyW1BST1RPVFlQRV07XG52YXIgJERhdGFWaWV3ID0gZ2xvYmFsVGhpc1tEQVRBX1ZJRVddO1xudmFyIERhdGFWaWV3UHJvdG90eXBlID0gJERhdGFWaWV3ICYmICREYXRhVmlld1tQUk9UT1RZUEVdO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG52YXIgQXJyYXkgPSBnbG9iYWxUaGlzLkFycmF5O1xudmFyIFJhbmdlRXJyb3IgPSBnbG9iYWxUaGlzLlJhbmdlRXJyb3I7XG52YXIgZmlsbCA9IHVuY3VycnlUaGlzKGFycmF5RmlsbCk7XG52YXIgcmV2ZXJzZSA9IHVuY3VycnlUaGlzKFtdLnJldmVyc2UpO1xuXG52YXIgcGFja0lFRUU3NTQgPSBJRUVFNzU0LnBhY2s7XG52YXIgdW5wYWNrSUVFRTc1NCA9IElFRUU3NTQudW5wYWNrO1xuXG52YXIgcGFja0ludDggPSBmdW5jdGlvbiAobnVtYmVyKSB7XG4gIHJldHVybiBbbnVtYmVyICYgMHhGRl07XG59O1xuXG52YXIgcGFja0ludDE2ID0gZnVuY3Rpb24gKG51bWJlcikge1xuICByZXR1cm4gW251bWJlciAmIDB4RkYsIG51bWJlciA+PiA4ICYgMHhGRl07XG59O1xuXG52YXIgcGFja0ludDMyID0gZnVuY3Rpb24gKG51bWJlcikge1xuICByZXR1cm4gW251bWJlciAmIDB4RkYsIG51bWJlciA+PiA4ICYgMHhGRiwgbnVtYmVyID4+IDE2ICYgMHhGRiwgbnVtYmVyID4+IDI0ICYgMHhGRl07XG59O1xuXG52YXIgdW5wYWNrSW50MzIgPSBmdW5jdGlvbiAoYnVmZmVyKSB7XG4gIHJldHVybiBidWZmZXJbM10gPDwgMjQgfCBidWZmZXJbMl0gPDwgMTYgfCBidWZmZXJbMV0gPDwgOCB8IGJ1ZmZlclswXTtcbn07XG5cbnZhciBwYWNrRmxvYXQzMiA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgcmV0dXJuIHBhY2tJRUVFNzU0KGZyb3VuZChudW1iZXIpLCAyMywgNCk7XG59O1xuXG52YXIgcGFja0Zsb2F0NjQgPSBmdW5jdGlvbiAobnVtYmVyKSB7XG4gIHJldHVybiBwYWNrSUVFRTc1NChudW1iZXIsIDUyLCA4KTtcbn07XG5cbnZhciBhZGRHZXR0ZXIgPSBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIGtleSwgZ2V0SW50ZXJuYWxTdGF0ZSkge1xuICBkZWZpbmVCdWlsdEluQWNjZXNzb3IoQ29uc3RydWN0b3JbUFJPVE9UWVBFXSwga2V5LCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGdldEludGVybmFsU3RhdGUodGhpcylba2V5XTtcbiAgICB9XG4gIH0pO1xufTtcblxudmFyIGdldCA9IGZ1bmN0aW9uICh2aWV3LCBjb3VudCwgaW5kZXgsIGlzTGl0dGxlRW5kaWFuKSB7XG4gIHZhciBzdG9yZSA9IGdldEludGVybmFsRGF0YVZpZXdTdGF0ZSh2aWV3KTtcbiAgdmFyIGludEluZGV4ID0gdG9JbmRleChpbmRleCk7XG4gIHZhciBib29sSXNMaXR0bGVFbmRpYW4gPSAhIWlzTGl0dGxlRW5kaWFuO1xuICBpZiAoaW50SW5kZXggKyBjb3VudCA+IHN0b3JlLmJ5dGVMZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKFdST05HX0lOREVYKTtcbiAgdmFyIGJ5dGVzID0gc3RvcmUuYnl0ZXM7XG4gIHZhciBzdGFydCA9IGludEluZGV4ICsgc3RvcmUuYnl0ZU9mZnNldDtcbiAgdmFyIHBhY2sgPSBhcnJheVNsaWNlKGJ5dGVzLCBzdGFydCwgc3RhcnQgKyBjb3VudCk7XG4gIHJldHVybiBib29sSXNMaXR0bGVFbmRpYW4gPyBwYWNrIDogcmV2ZXJzZShwYWNrKTtcbn07XG5cbnZhciBzZXQgPSBmdW5jdGlvbiAodmlldywgY291bnQsIGluZGV4LCBjb252ZXJzaW9uLCB2YWx1ZSwgaXNMaXR0bGVFbmRpYW4pIHtcbiAgdmFyIHN0b3JlID0gZ2V0SW50ZXJuYWxEYXRhVmlld1N0YXRlKHZpZXcpO1xuICB2YXIgaW50SW5kZXggPSB0b0luZGV4KGluZGV4KTtcbiAgdmFyIHBhY2sgPSBjb252ZXJzaW9uKCt2YWx1ZSk7XG4gIHZhciBib29sSXNMaXR0bGVFbmRpYW4gPSAhIWlzTGl0dGxlRW5kaWFuO1xuICBpZiAoaW50SW5kZXggKyBjb3VudCA+IHN0b3JlLmJ5dGVMZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKFdST05HX0lOREVYKTtcbiAgdmFyIGJ5dGVzID0gc3RvcmUuYnl0ZXM7XG4gIHZhciBzdGFydCA9IGludEluZGV4ICsgc3RvcmUuYnl0ZU9mZnNldDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSBieXRlc1tzdGFydCArIGldID0gcGFja1tib29sSXNMaXR0bGVFbmRpYW4gPyBpIDogY291bnQgLSBpIC0gMV07XG59O1xuXG5pZiAoIU5BVElWRV9BUlJBWV9CVUZGRVIpIHtcbiAgJEFycmF5QnVmZmVyID0gZnVuY3Rpb24gQXJyYXlCdWZmZXIobGVuZ3RoKSB7XG4gICAgYW5JbnN0YW5jZSh0aGlzLCBBcnJheUJ1ZmZlclByb3RvdHlwZSk7XG4gICAgdmFyIGJ5dGVMZW5ndGggPSB0b0luZGV4KGxlbmd0aCk7XG4gICAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgICB0eXBlOiBBUlJBWV9CVUZGRVIsXG4gICAgICBieXRlczogZmlsbChBcnJheShieXRlTGVuZ3RoKSwgMCksXG4gICAgICBieXRlTGVuZ3RoOiBieXRlTGVuZ3RoXG4gICAgfSk7XG4gICAgaWYgKCFERVNDUklQVE9SUykge1xuICAgICAgdGhpcy5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aDtcbiAgICAgIHRoaXMuZGV0YWNoZWQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgQXJyYXlCdWZmZXJQcm90b3R5cGUgPSAkQXJyYXlCdWZmZXJbUFJPVE9UWVBFXTtcblxuICAkRGF0YVZpZXcgPSBmdW5jdGlvbiBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpIHtcbiAgICBhbkluc3RhbmNlKHRoaXMsIERhdGFWaWV3UHJvdG90eXBlKTtcbiAgICBhbkluc3RhbmNlKGJ1ZmZlciwgQXJyYXlCdWZmZXJQcm90b3R5cGUpO1xuICAgIHZhciBidWZmZXJTdGF0ZSA9IGdldEludGVybmFsQXJyYXlCdWZmZXJTdGF0ZShidWZmZXIpO1xuICAgIHZhciBidWZmZXJMZW5ndGggPSBidWZmZXJTdGF0ZS5ieXRlTGVuZ3RoO1xuICAgIHZhciBvZmZzZXQgPSB0b0ludGVnZXJPckluZmluaXR5KGJ5dGVPZmZzZXQpO1xuICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+IGJ1ZmZlckxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1dyb25nIG9mZnNldCcpO1xuICAgIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoID09PSB1bmRlZmluZWQgPyBidWZmZXJMZW5ndGggLSBvZmZzZXQgOiB0b0xlbmd0aChieXRlTGVuZ3RoKTtcbiAgICBpZiAob2Zmc2V0ICsgYnl0ZUxlbmd0aCA+IGJ1ZmZlckxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoV1JPTkdfTEVOR1RIKTtcbiAgICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICAgIHR5cGU6IERBVEFfVklFVyxcbiAgICAgIGJ1ZmZlcjogYnVmZmVyLFxuICAgICAgYnl0ZUxlbmd0aDogYnl0ZUxlbmd0aCxcbiAgICAgIGJ5dGVPZmZzZXQ6IG9mZnNldCxcbiAgICAgIGJ5dGVzOiBidWZmZXJTdGF0ZS5ieXRlc1xuICAgIH0pO1xuICAgIGlmICghREVTQ1JJUFRPUlMpIHtcbiAgICAgIHRoaXMuYnVmZmVyID0gYnVmZmVyO1xuICAgICAgdGhpcy5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aDtcbiAgICAgIHRoaXMuYnl0ZU9mZnNldCA9IG9mZnNldDtcbiAgICB9XG4gIH07XG5cbiAgRGF0YVZpZXdQcm90b3R5cGUgPSAkRGF0YVZpZXdbUFJPVE9UWVBFXTtcblxuICBpZiAoREVTQ1JJUFRPUlMpIHtcbiAgICBhZGRHZXR0ZXIoJEFycmF5QnVmZmVyLCAnYnl0ZUxlbmd0aCcsIGdldEludGVybmFsQXJyYXlCdWZmZXJTdGF0ZSk7XG4gICAgYWRkR2V0dGVyKCREYXRhVmlldywgJ2J1ZmZlcicsIGdldEludGVybmFsRGF0YVZpZXdTdGF0ZSk7XG4gICAgYWRkR2V0dGVyKCREYXRhVmlldywgJ2J5dGVMZW5ndGgnLCBnZXRJbnRlcm5hbERhdGFWaWV3U3RhdGUpO1xuICAgIGFkZEdldHRlcigkRGF0YVZpZXcsICdieXRlT2Zmc2V0JywgZ2V0SW50ZXJuYWxEYXRhVmlld1N0YXRlKTtcbiAgfVxuXG4gIGRlZmluZUJ1aWx0SW5zKERhdGFWaWV3UHJvdG90eXBlLCB7XG4gICAgZ2V0SW50ODogZnVuY3Rpb24gZ2V0SW50OChieXRlT2Zmc2V0KSB7XG4gICAgICByZXR1cm4gZ2V0KHRoaXMsIDEsIGJ5dGVPZmZzZXQpWzBdIDw8IDI0ID4+IDI0O1xuICAgIH0sXG4gICAgZ2V0VWludDg6IGZ1bmN0aW9uIGdldFVpbnQ4KGJ5dGVPZmZzZXQpIHtcbiAgICAgIHJldHVybiBnZXQodGhpcywgMSwgYnl0ZU9mZnNldClbMF07XG4gICAgfSxcbiAgICBnZXRJbnQxNjogZnVuY3Rpb24gZ2V0SW50MTYoYnl0ZU9mZnNldCAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgdmFyIGJ5dGVzID0gZ2V0KHRoaXMsIDIsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogZmFsc2UpO1xuICAgICAgcmV0dXJuIChieXRlc1sxXSA8PCA4IHwgYnl0ZXNbMF0pIDw8IDE2ID4+IDE2O1xuICAgIH0sXG4gICAgZ2V0VWludDE2OiBmdW5jdGlvbiBnZXRVaW50MTYoYnl0ZU9mZnNldCAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgdmFyIGJ5dGVzID0gZ2V0KHRoaXMsIDIsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogZmFsc2UpO1xuICAgICAgcmV0dXJuIGJ5dGVzWzFdIDw8IDggfCBieXRlc1swXTtcbiAgICB9LFxuICAgIGdldEludDMyOiBmdW5jdGlvbiBnZXRJbnQzMihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSW50MzIoZ2V0KHRoaXMsIDQsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogZmFsc2UpKTtcbiAgICB9LFxuICAgIGdldFVpbnQzMjogZnVuY3Rpb24gZ2V0VWludDMyKGJ5dGVPZmZzZXQgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHJldHVybiB1bnBhY2tJbnQzMihnZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiBmYWxzZSkpID4+PiAwO1xuICAgIH0sXG4gICAgZ2V0RmxvYXQzMjogZnVuY3Rpb24gZ2V0RmxvYXQzMihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSUVFRTc1NChnZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiBmYWxzZSksIDIzKTtcbiAgICB9LFxuICAgIGdldEZsb2F0NjQ6IGZ1bmN0aW9uIGdldEZsb2F0NjQoYnl0ZU9mZnNldCAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgcmV0dXJuIHVucGFja0lFRUU3NTQoZ2V0KHRoaXMsIDgsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogZmFsc2UpLCA1Mik7XG4gICAgfSxcbiAgICBzZXRJbnQ4OiBmdW5jdGlvbiBzZXRJbnQ4KGJ5dGVPZmZzZXQsIHZhbHVlKSB7XG4gICAgICBzZXQodGhpcywgMSwgYnl0ZU9mZnNldCwgcGFja0ludDgsIHZhbHVlKTtcbiAgICB9LFxuICAgIHNldFVpbnQ4OiBmdW5jdGlvbiBzZXRVaW50OChieXRlT2Zmc2V0LCB2YWx1ZSkge1xuICAgICAgc2V0KHRoaXMsIDEsIGJ5dGVPZmZzZXQsIHBhY2tJbnQ4LCB2YWx1ZSk7XG4gICAgfSxcbiAgICBzZXRJbnQxNjogZnVuY3Rpb24gc2V0SW50MTYoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCAyLCBieXRlT2Zmc2V0LCBwYWNrSW50MTYsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IGZhbHNlKTtcbiAgICB9LFxuICAgIHNldFVpbnQxNjogZnVuY3Rpb24gc2V0VWludDE2KGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgMiwgYnl0ZU9mZnNldCwgcGFja0ludDE2LCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiBmYWxzZSk7XG4gICAgfSxcbiAgICBzZXRJbnQzMjogZnVuY3Rpb24gc2V0SW50MzIoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBwYWNrSW50MzIsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IGZhbHNlKTtcbiAgICB9LFxuICAgIHNldFVpbnQzMjogZnVuY3Rpb24gc2V0VWludDMyKGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgcGFja0ludDMyLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiBmYWxzZSk7XG4gICAgfSxcbiAgICBzZXRGbG9hdDMyOiBmdW5jdGlvbiBzZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgcGFja0Zsb2F0MzIsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IGZhbHNlKTtcbiAgICB9LFxuICAgIHNldEZsb2F0NjQ6IGZ1bmN0aW9uIHNldEZsb2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA4LCBieXRlT2Zmc2V0LCBwYWNrRmxvYXQ2NCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogZmFsc2UpO1xuICAgIH1cbiAgfSk7XG59IGVsc2Uge1xuICB2YXIgSU5DT1JSRUNUX0FSUkFZX0JVRkZFUl9OQU1FID0gUFJPUEVSX0ZVTkNUSU9OX05BTUUgJiYgTmF0aXZlQXJyYXlCdWZmZXIubmFtZSAhPT0gQVJSQVlfQlVGRkVSO1xuICAvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcsIHNvbmFyL2luY29uc2lzdGVudC1mdW5jdGlvbi1jYWxsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG4gIGlmICghZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIE5hdGl2ZUFycmF5QnVmZmVyKDEpO1xuICB9KSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIG5ldyBOYXRpdmVBcnJheUJ1ZmZlcigtMSk7XG4gIH0pIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICBuZXcgTmF0aXZlQXJyYXlCdWZmZXIoKTtcbiAgICBuZXcgTmF0aXZlQXJyYXlCdWZmZXIoMS41KTtcbiAgICBuZXcgTmF0aXZlQXJyYXlCdWZmZXIoTmFOKTtcbiAgICByZXR1cm4gTmF0aXZlQXJyYXlCdWZmZXIubGVuZ3RoICE9PSAxIHx8IElOQ09SUkVDVF9BUlJBWV9CVUZGRVJfTkFNRSAmJiAhQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUU7XG4gIH0pKSB7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcsIHNvbmFyL2luY29uc2lzdGVudC1mdW5jdGlvbi1jYWxsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG4gICAgJEFycmF5QnVmZmVyID0gZnVuY3Rpb24gQXJyYXlCdWZmZXIobGVuZ3RoKSB7XG4gICAgICBhbkluc3RhbmNlKHRoaXMsIEFycmF5QnVmZmVyUHJvdG90eXBlKTtcbiAgICAgIHJldHVybiBpbmhlcml0SWZSZXF1aXJlZChuZXcgTmF0aXZlQXJyYXlCdWZmZXIodG9JbmRleChsZW5ndGgpKSwgdGhpcywgJEFycmF5QnVmZmVyKTtcbiAgICB9O1xuXG4gICAgJEFycmF5QnVmZmVyW1BST1RPVFlQRV0gPSBBcnJheUJ1ZmZlclByb3RvdHlwZTtcblxuICAgIEFycmF5QnVmZmVyUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gJEFycmF5QnVmZmVyO1xuXG4gICAgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcygkQXJyYXlCdWZmZXIsIE5hdGl2ZUFycmF5QnVmZmVyKTtcbiAgfSBlbHNlIGlmIChJTkNPUlJFQ1RfQVJSQVlfQlVGRkVSX05BTUUgJiYgQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUpIHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoTmF0aXZlQXJyYXlCdWZmZXIsICduYW1lJywgQVJSQVlfQlVGRkVSKTtcbiAgfVxuXG4gIC8vIFdlYktpdCBidWcgLSB0aGUgc2FtZSBwYXJlbnQgcHJvdG90eXBlIGZvciB0eXBlZCBhcnJheXMgYW5kIGRhdGEgdmlld1xuICBpZiAoc2V0UHJvdG90eXBlT2YgJiYgZ2V0UHJvdG90eXBlT2YoRGF0YVZpZXdQcm90b3R5cGUpICE9PSBPYmplY3RQcm90b3R5cGUpIHtcbiAgICBzZXRQcm90b3R5cGVPZihEYXRhVmlld1Byb3RvdHlwZSwgT2JqZWN0UHJvdG90eXBlKTtcbiAgfVxuXG4gIC8vIGlPUyBTYWZhcmkgNy54IGJ1Z1xuICB2YXIgdGVzdFZpZXcgPSBuZXcgJERhdGFWaWV3KG5ldyAkQXJyYXlCdWZmZXIoMikpO1xuICB2YXIgJHNldEludDggPSB1bmN1cnJ5VGhpcyhEYXRhVmlld1Byb3RvdHlwZS5zZXRJbnQ4KTtcbiAgdGVzdFZpZXcuc2V0SW50OCgwLCAyMTQ3NDgzNjQ4KTtcbiAgdGVzdFZpZXcuc2V0SW50OCgxLCAyMTQ3NDgzNjQ5KTtcbiAgaWYgKHRlc3RWaWV3LmdldEludDgoMCkgfHwgIXRlc3RWaWV3LmdldEludDgoMSkpIGRlZmluZUJ1aWx0SW5zKERhdGFWaWV3UHJvdG90eXBlLCB7XG4gICAgc2V0SW50ODogZnVuY3Rpb24gc2V0SW50OChieXRlT2Zmc2V0LCB2YWx1ZSkge1xuICAgICAgJHNldEludDgodGhpcywgYnl0ZU9mZnNldCwgdmFsdWUgPDwgMjQgPj4gMjQpO1xuICAgIH0sXG4gICAgc2V0VWludDg6IGZ1bmN0aW9uIHNldFVpbnQ4KGJ5dGVPZmZzZXQsIHZhbHVlKSB7XG4gICAgICAkc2V0SW50OCh0aGlzLCBieXRlT2Zmc2V0LCB2YWx1ZSA8PCAyNCA+PiAyNCk7XG4gICAgfVxuICB9LCB7IHVuc2FmZTogdHJ1ZSB9KTtcbn1cblxuc2V0VG9TdHJpbmdUYWcoJEFycmF5QnVmZmVyLCBBUlJBWV9CVUZGRVIpO1xuc2V0VG9TdHJpbmdUYWcoJERhdGFWaWV3LCBEQVRBX1ZJRVcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgQXJyYXlCdWZmZXI6ICRBcnJheUJ1ZmZlcixcbiAgRGF0YVZpZXc6ICREYXRhVmlld1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIGRlbGV0ZVByb3BlcnR5T3JUaHJvdyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWxldGUtcHJvcGVydHktb3ItdGhyb3cnKTtcblxudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW5gIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuY29weXdpdGhpblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LXByb3RvdHlwZS1jb3B5d2l0aGluIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gW10uY29weVdpdGhpbiB8fCBmdW5jdGlvbiBjb3B5V2l0aGluKHRhcmdldCAvKiA9IDAgKi8sIHN0YXJ0IC8qID0gMCwgZW5kID0gQGxlbmd0aCAqLykge1xuICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICB2YXIgbGVuID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gIHZhciB0byA9IHRvQWJzb2x1dGVJbmRleCh0YXJnZXQsIGxlbik7XG4gIHZhciBmcm9tID0gdG9BYnNvbHV0ZUluZGV4KHN0YXJ0LCBsZW4pO1xuICB2YXIgZW5kID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQ7XG4gIHZhciBjb3VudCA9IG1pbigoZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB0b0Fic29sdXRlSW5kZXgoZW5kLCBsZW4pKSAtIGZyb20sIGxlbiAtIHRvKTtcbiAgdmFyIGluYyA9IDE7XG4gIGlmIChmcm9tIDwgdG8gJiYgdG8gPCBmcm9tICsgY291bnQpIHtcbiAgICBpbmMgPSAtMTtcbiAgICBmcm9tICs9IGNvdW50IC0gMTtcbiAgICB0byArPSBjb3VudCAtIDE7XG4gIH1cbiAgd2hpbGUgKGNvdW50LS0gPiAwKSB7XG4gICAgaWYgKGZyb20gaW4gTykgT1t0b10gPSBPW2Zyb21dO1xuICAgIGVsc2UgZGVsZXRlUHJvcGVydHlPclRocm93KE8sIHRvKTtcbiAgICB0byArPSBpbmM7XG4gICAgZnJvbSArPSBpbmM7XG4gIH0gcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZmlsbGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWxsXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZpbGwodmFsdWUgLyogLCBzdGFydCA9IDAsIGVuZCA9IEBsZW5ndGggKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdCh0aGlzKTtcbiAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKE8pO1xuICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGFyZ3VtZW50c0xlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIGxlbmd0aCk7XG4gIHZhciBlbmQgPSBhcmd1bWVudHNMZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkO1xuICB2YXIgZW5kUG9zID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiB0b0Fic29sdXRlSW5kZXgoZW5kLCBsZW5ndGgpO1xuICB3aGlsZSAoZW5kUG9zID4gaW5kZXgpIE9baW5kZXgrK10gPSB2YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBsaXN0LCAkbGVuZ3RoKSB7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoID4gMiA/ICRsZW5ndGggOiBsZW5ndGhPZkFycmF5TGlrZShsaXN0KTtcbiAgdmFyIHJlc3VsdCA9IG5ldyBDb25zdHJ1Y3RvcihsZW5ndGgpO1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHJlc3VsdFtpbmRleF0gPSBsaXN0W2luZGV4KytdO1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgaW5kZXhPZiwgaW5jbHVkZXMgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIHtcbiAgICAgIGlmICgoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykgJiYgT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmNsdWRlc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXG4gIGluY2x1ZGVzOiBjcmVhdGVNZXRob2QodHJ1ZSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuaW5kZXhPZmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluZGV4b2ZcbiAgaW5kZXhPZjogY3JlYXRlTWV0aG9kKGZhbHNlKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgZmluZExhc3QsIGZpbmRMYXN0SW5kZXggfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHZhciBJU19GSU5EX0xBU1RfSU5ERVggPSBUWVBFID09PSAxO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0KSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7XG4gICAgdmFyIHNlbGYgPSBJbmRleGVkT2JqZWN0KE8pO1xuICAgIHZhciBpbmRleCA9IGxlbmd0aE9mQXJyYXlMaWtlKHNlbGYpO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCB0aGF0KTtcbiAgICB2YXIgdmFsdWUsIHJlc3VsdDtcbiAgICB3aGlsZSAoaW5kZXgtLSA+IDApIHtcbiAgICAgIHZhbHVlID0gc2VsZltpbmRleF07XG4gICAgICByZXN1bHQgPSBib3VuZEZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgTyk7XG4gICAgICBpZiAocmVzdWx0KSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgY2FzZSAwOiByZXR1cm4gdmFsdWU7IC8vIGZpbmRMYXN0XG4gICAgICAgIGNhc2UgMTogcmV0dXJuIGluZGV4OyAvLyBmaW5kTGFzdEluZGV4XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBJU19GSU5EX0xBU1RfSU5ERVggPyAtMSA6IHVuZGVmaW5lZDtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXJyYXktZmluZC1mcm9tLWxhc3RcbiAgZmluZExhc3Q6IGNyZWF0ZU1ldGhvZCgwKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXJyYXktZmluZC1mcm9tLWxhc3RcbiAgZmluZExhc3RJbmRleDogY3JlYXRlTWV0aG9kKDEpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5cbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmb3JFYWNoLCBtYXAsIGZpbHRlciwgc29tZSwgZXZlcnksIGZpbmQsIGZpbmRJbmRleCwgZmlsdGVyUmVqZWN0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PT0gMTtcbiAgdmFyIElTX0ZJTFRFUiA9IFRZUEUgPT09IDI7XG4gIHZhciBJU19TT01FID0gVFlQRSA9PT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PT0gNDtcbiAgdmFyIElTX0ZJTkRfSU5ERVggPSBUWVBFID09PSA2O1xuICB2YXIgSVNfRklMVEVSX1JFSkVDVCA9IFRZUEUgPT09IDc7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT09IDUgfHwgSVNfRklORF9JTkRFWDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgY2FsbGJhY2tmbiwgdGhhdCwgc3BlY2lmaWNDcmVhdGUpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKHNlbGYpO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCB0aGF0KTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBjcmVhdGUgPSBzcGVjaWZpY0NyZWF0ZSB8fCBhcnJheVNwZWNpZXNDcmVhdGU7XG4gICAgdmFyIHRhcmdldCA9IElTX01BUCA/IGNyZWF0ZSgkdGhpcywgbGVuZ3RoKSA6IElTX0ZJTFRFUiB8fCBJU19GSUxURVJfUkVKRUNUID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsdWUsIHJlc3VsdDtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHtcbiAgICAgIHZhbHVlID0gc2VsZltpbmRleF07XG4gICAgICByZXN1bHQgPSBib3VuZEZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSB0YXJnZXRbaW5kZXhdID0gcmVzdWx0OyAvLyBtYXBcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0KSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiB0cnVlOyAgICAgICAgICAgICAgLy8gc29tZVxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIHZhbHVlOyAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgIC8vIGZpbmRJbmRleFxuICAgICAgICAgIGNhc2UgMjogcHVzaCh0YXJnZXQsIHZhbHVlKTsgICAgICAvLyBmaWx0ZXJcbiAgICAgICAgfSBlbHNlIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgNDogcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAvLyBldmVyeVxuICAgICAgICAgIGNhc2UgNzogcHVzaCh0YXJnZXQsIHZhbHVlKTsgICAgICAvLyBmaWx0ZXJSZWplY3RcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSVNfRklORF9JTkRFWCA/IC0xIDogSVNfU09NRSB8fCBJU19FVkVSWSA/IElTX0VWRVJZIDogdGFyZ2V0O1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbiAgZm9yRWFjaDogY3JlYXRlTWV0aG9kKDApLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuICBtYXA6IGNyZWF0ZU1ldGhvZCgxKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWx0ZXJcbiAgZmlsdGVyOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuc29tZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNvbWVcbiAgc29tZTogY3JlYXRlTWV0aG9kKDMpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmV2ZXJ5YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZXZlcnlcbiAgZXZlcnk6IGNyZWF0ZU1ldGhvZCg0KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZFxuICBmaW5kOiBjcmVhdGVNZXRob2QoNSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZEluZGV4YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZEluZGV4XG4gIGZpbmRJbmRleDogY3JlYXRlTWV0aG9kKDYpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlclJlamVjdGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWFycmF5LWZpbHRlcmluZ1xuICBmaWx0ZXJSZWplY3Q6IGNyZWF0ZU1ldGhvZCg3KVxufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLWFycmF5LXByb3RvdHlwZS1sYXN0aW5kZXhvZiAtLSBzYWZlICovXG52YXIgYXBwbHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHknKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG52YXIgJGxhc3RJbmRleE9mID0gW10ubGFzdEluZGV4T2Y7XG52YXIgTkVHQVRJVkVfWkVSTyA9ICEhJGxhc3RJbmRleE9mICYmIDEgLyBbMV0ubGFzdEluZGV4T2YoMSwgLTApIDwgMDtcbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnbGFzdEluZGV4T2YnKTtcbnZhciBGT1JDRUQgPSBORUdBVElWRV9aRVJPIHx8ICFTVFJJQ1RfTUVUSE9EO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmxhc3RpbmRleG9mXG5tb2R1bGUuZXhwb3J0cyA9IEZPUkNFRCA/IGZ1bmN0aW9uIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggPSBAWyotMV0gKi8pIHtcbiAgLy8gY29udmVydCAtMCB0byArMFxuICBpZiAoTkVHQVRJVkVfWkVSTykgcmV0dXJuIGFwcGx5KCRsYXN0SW5kZXhPZiwgdGhpcywgYXJndW1lbnRzKSB8fCAwO1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCh0aGlzKTtcbiAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKE8pO1xuICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gLTE7XG4gIHZhciBpbmRleCA9IGxlbmd0aCAtIDE7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgaW5kZXggPSBtaW4oaW5kZXgsIHRvSW50ZWdlck9ySW5maW5pdHkoYXJndW1lbnRzWzFdKSk7XG4gIGlmIChpbmRleCA8IDApIGluZGV4ID0gbGVuZ3RoICsgaW5kZXg7XG4gIGZvciAoO2luZGV4ID49IDA7IGluZGV4LS0pIGlmIChpbmRleCBpbiBPICYmIE9baW5kZXhdID09PSBzZWFyY2hFbGVtZW50KSByZXR1cm4gaW5kZXggfHwgMDtcbiAgcmV0dXJuIC0xO1xufSA6ICRsYXN0SW5kZXhPZjtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgYXJndW1lbnQpIHtcbiAgdmFyIG1ldGhvZCA9IFtdW01FVEhPRF9OQU1FXTtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gICAgbWV0aG9kLmNhbGwobnVsbCwgYXJndW1lbnQgfHwgZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSwgMSk7XG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxudmFyIFJFRFVDRV9FTVBUWSA9ICdSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlJztcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IHJlZHVjZSwgcmVkdWNlUmlnaHQgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChJU19SSUdIVCkge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIGNhbGxiYWNrZm4sIGFyZ3VtZW50c0xlbmd0aCwgbWVtbykge1xuICAgIHZhciBPID0gdG9PYmplY3QodGhhdCk7XG4gICAgdmFyIHNlbGYgPSBJbmRleGVkT2JqZWN0KE8pO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICBhQ2FsbGFibGUoY2FsbGJhY2tmbik7XG4gICAgaWYgKGxlbmd0aCA9PT0gMCAmJiBhcmd1bWVudHNMZW5ndGggPCAyKSB0aHJvdyBuZXcgJFR5cGVFcnJvcihSRURVQ0VfRU1QVFkpO1xuICAgIHZhciBpbmRleCA9IElTX1JJR0hUID8gbGVuZ3RoIC0gMSA6IDA7XG4gICAgdmFyIGkgPSBJU19SSUdIVCA/IC0xIDogMTtcbiAgICBpZiAoYXJndW1lbnRzTGVuZ3RoIDwgMikgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChpbmRleCBpbiBzZWxmKSB7XG4gICAgICAgIG1lbW8gPSBzZWxmW2luZGV4XTtcbiAgICAgICAgaW5kZXggKz0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpbmRleCArPSBpO1xuICAgICAgaWYgKElTX1JJR0hUID8gaW5kZXggPCAwIDogbGVuZ3RoIDw9IGluZGV4KSB7XG4gICAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKFJFRFVDRV9FTVBUWSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoO0lTX1JJR0hUID8gaW5kZXggPj0gMCA6IGxlbmd0aCA+IGluZGV4OyBpbmRleCArPSBpKSBpZiAoaW5kZXggaW4gc2VsZikge1xuICAgICAgbWVtbyA9IGNhbGxiYWNrZm4obWVtbywgc2VsZltpbmRleF0sIGluZGV4LCBPKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lbW87XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5yZWR1Y2VgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5yZWR1Y2VcbiAgbGVmdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnJlZHVjZXJpZ2h0XG4gIHJpZ2h0OiBjcmVhdGVNZXRob2QodHJ1ZSlcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoW10uc2xpY2UpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2UnKTtcblxudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxudmFyIHNvcnQgPSBmdW5jdGlvbiAoYXJyYXksIGNvbXBhcmVmbikge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGlmIChsZW5ndGggPCA4KSB7XG4gICAgLy8gaW5zZXJ0aW9uIHNvcnRcbiAgICB2YXIgaSA9IDE7XG4gICAgdmFyIGVsZW1lbnQsIGo7XG5cbiAgICB3aGlsZSAoaSA8IGxlbmd0aCkge1xuICAgICAgaiA9IGk7XG4gICAgICBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICB3aGlsZSAoaiAmJiBjb21wYXJlZm4oYXJyYXlbaiAtIDFdLCBlbGVtZW50KSA+IDApIHtcbiAgICAgICAgYXJyYXlbal0gPSBhcnJheVstLWpdO1xuICAgICAgfVxuICAgICAgaWYgKGogIT09IGkrKykgYXJyYXlbal0gPSBlbGVtZW50O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBtZXJnZSBzb3J0XG4gICAgdmFyIG1pZGRsZSA9IGZsb29yKGxlbmd0aCAvIDIpO1xuICAgIHZhciBsZWZ0ID0gc29ydChhcnJheVNsaWNlKGFycmF5LCAwLCBtaWRkbGUpLCBjb21wYXJlZm4pO1xuICAgIHZhciByaWdodCA9IHNvcnQoYXJyYXlTbGljZShhcnJheSwgbWlkZGxlKSwgY29tcGFyZWZuKTtcbiAgICB2YXIgbGxlbmd0aCA9IGxlZnQubGVuZ3RoO1xuICAgIHZhciBybGVuZ3RoID0gcmlnaHQubGVuZ3RoO1xuICAgIHZhciBsaW5kZXggPSAwO1xuICAgIHZhciByaW5kZXggPSAwO1xuXG4gICAgd2hpbGUgKGxpbmRleCA8IGxsZW5ndGggfHwgcmluZGV4IDwgcmxlbmd0aCkge1xuICAgICAgYXJyYXlbbGluZGV4ICsgcmluZGV4XSA9IChsaW5kZXggPCBsbGVuZ3RoICYmIHJpbmRleCA8IHJsZW5ndGgpXG4gICAgICAgID8gY29tcGFyZWZuKGxlZnRbbGluZGV4XSwgcmlnaHRbcmluZGV4XSkgPD0gMCA/IGxlZnRbbGluZGV4KytdIDogcmlnaHRbcmluZGV4KytdXG4gICAgICAgIDogbGluZGV4IDwgbGxlbmd0aCA/IGxlZnRbbGluZGV4KytdIDogcmlnaHRbcmluZGV4KytdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcnJheTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gc29ydDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jb25zdHJ1Y3RvcicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xudmFyICRBcnJheSA9IEFycmF5O1xuXG4vLyBhIHBhcnQgb2YgYEFycmF5U3BlY2llc0NyZWF0ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5c3BlY2llc2NyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWxBcnJheSkge1xuICB2YXIgQztcbiAgaWYgKGlzQXJyYXkob3JpZ2luYWxBcnJheSkpIHtcbiAgICBDID0gb3JpZ2luYWxBcnJheS5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmIChpc0NvbnN0cnVjdG9yKEMpICYmIChDID09PSAkQXJyYXkgfHwgaXNBcnJheShDLnByb3RvdHlwZSkpKSBDID0gdW5kZWZpbmVkO1xuICAgIGVsc2UgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gQyA9PT0gdW5kZWZpbmVkID8gJEFycmF5IDogQztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYXJyYXlTcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG4vLyBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5LCBsZW5ndGgpIHtcbiAgcmV0dXJuIG5ldyAoYXJyYXlTcGVjaWVzQ29uc3RydWN0b3Iob3JpZ2luYWxBcnJheSkpKGxlbmd0aCA9PT0gMCA/IDAgOiBsZW5ndGgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xuXG4vLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtY2hhbmdlLWFycmF5LWJ5LWNvcHkvI3NlYy1hcnJheS5wcm90b3R5cGUudG9SZXZlcnNlZFxuLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWNoYW5nZS1hcnJheS1ieS1jb3B5LyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS50b1JldmVyc2VkXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBDKSB7XG4gIHZhciBsZW4gPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgdmFyIEEgPSBuZXcgQyhsZW4pO1xuICB2YXIgayA9IDA7XG4gIGZvciAoOyBrIDwgbGVuOyBrKyspIEFba10gPSBPW2xlbiAtIGsgLSAxXTtcbiAgcmV0dXJuIEE7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG5cbi8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1jaGFuZ2UtYXJyYXktYnktY29weS8jc2VjLWFycmF5LnByb3RvdHlwZS53aXRoXG4vLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtY2hhbmdlLWFycmF5LWJ5LWNvcHkvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLndpdGhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIEMsIGluZGV4LCB2YWx1ZSkge1xuICB2YXIgbGVuID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gIHZhciByZWxhdGl2ZUluZGV4ID0gdG9JbnRlZ2VyT3JJbmZpbml0eShpbmRleCk7XG4gIHZhciBhY3R1YWxJbmRleCA9IHJlbGF0aXZlSW5kZXggPCAwID8gbGVuICsgcmVsYXRpdmVJbmRleCA6IHJlbGF0aXZlSW5kZXg7XG4gIGlmIChhY3R1YWxJbmRleCA+PSBsZW4gfHwgYWN0dWFsSW5kZXggPCAwKSB0aHJvdyBuZXcgJFJhbmdlRXJyb3IoJ0luY29ycmVjdCBpbmRleCcpO1xuICB2YXIgQSA9IG5ldyBDKGxlbik7XG4gIHZhciBrID0gMDtcbiAgZm9yICg7IGsgPCBsZW47IGsrKykgQVtrXSA9IGsgPT09IGFjdHVhbEluZGV4ID8gdmFsdWUgOiBPW2tdO1xuICByZXR1cm4gQTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBTQUZFX0NMT1NJTkcgPSBmYWxzZTtcblxudHJ5IHtcbiAgdmFyIGNhbGxlZCA9IDA7XG4gIHZhciBpdGVyYXRvcldpdGhSZXR1cm4gPSB7XG4gICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHsgZG9uZTogISFjYWxsZWQrKyB9O1xuICAgIH0sXG4gICAgJ3JldHVybic6IGZ1bmN0aW9uICgpIHtcbiAgICAgIFNBRkVfQ0xPU0lORyA9IHRydWU7XG4gICAgfVxuICB9O1xuICBpdGVyYXRvcldpdGhSZXR1cm5bSVRFUkFUT1JdID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktZnJvbSwgbm8tdGhyb3ctbGl0ZXJhbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICBBcnJheS5mcm9tKGl0ZXJhdG9yV2l0aFJldHVybiwgZnVuY3Rpb24gKCkgeyB0aHJvdyAyOyB9KTtcbn0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYywgU0tJUF9DTE9TSU5HKSB7XG4gIHRyeSB7XG4gICAgaWYgKCFTS0lQX0NMT1NJTkcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB9IGNhdGNoIChlcnJvcikgeyByZXR1cm4gZmFsc2U7IH0gLy8gd29ya2Fyb3VuZCBvZiBvbGQgV2ViS2l0ICsgYGV2YWxgIGJ1Z1xuICB2YXIgSVRFUkFUSU9OX1NVUFBPUlQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICB2YXIgb2JqZWN0ID0ge307XG4gICAgb2JqZWN0W0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4geyBkb25lOiBJVEVSQVRJT05fU1VQUE9SVCA9IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuICAgIGV4ZWMob2JqZWN0KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gSVRFUkFUSU9OX1NVUFBPUlQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG52YXIgdG9TdHJpbmcgPSB1bmN1cnJ5VGhpcyh7fS50b1N0cmluZyk7XG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBzdHJpbmdTbGljZSh0b1N0cmluZyhpdCksIDgsIC0xKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBjbGFzc29mUmF3ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xudmFyICRPYmplY3QgPSBPYmplY3Q7XG5cbi8vIEVTMyB3cm9uZyBoZXJlXG52YXIgQ09SUkVDVF9BUkdVTUVOVFMgPSBjbGFzc29mUmF3KGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA9PT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxufTtcblxuLy8gZ2V0dGluZyB0YWcgZnJvbSBFUzYrIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYFxubW9kdWxlLmV4cG9ydHMgPSBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPyBjbGFzc29mUmF3IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCB0YWcsIHJlc3VsdDtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKHRhZyA9IHRyeUdldChPID0gJE9iamVjdChpdCksIFRPX1NUUklOR19UQUcpKSA9PSAnc3RyaW5nJyA/IHRhZ1xuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQ09SUkVDVF9BUkdVTUVOVFMgPyBjbGFzc29mUmF3KE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKHJlc3VsdCA9IGNsYXNzb2ZSYXcoTykpID09PSAnT2JqZWN0JyAmJiBpc0NhbGxhYmxlKE8uY2FsbGVlKSA/ICdBcmd1bWVudHMnIDogcmVzdWx0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIG93bktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb3duLWtleXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UsIGV4Y2VwdGlvbnMpIHtcbiAgdmFyIGtleXMgPSBvd25LZXlzKHNvdXJjZSk7XG4gIHZhciBkZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5TW9kdWxlLmY7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgaWYgKCFoYXNPd24odGFyZ2V0LCBrZXkpICYmICEoZXhjZXB0aW9ucyAmJiBoYXNPd24oZXhjZXB0aW9ucywga2V5KSkpIHtcbiAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTtcbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBGKCkgeyAvKiBlbXB0eSAqLyB9XG4gIEYucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gbnVsbDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRwcm90b3R5cGVvZiAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBGKCkpICE9PSBGLnByb3RvdHlwZTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gYENyZWF0ZUl0ZXJSZXN1bHRPYmplY3RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVpdGVycmVzdWx0b2JqZWN0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh2YWx1ZSwgZG9uZSkge1xuICByZXR1cm4geyB2YWx1ZTogdmFsdWUsIGRvbmU6IGRvbmUgfTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwga2V5LCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBtYWtlQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYWtlLWJ1aWx0LWluJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUsIGRlc2NyaXB0b3IpIHtcbiAgaWYgKGRlc2NyaXB0b3IuZ2V0KSBtYWtlQnVpbHRJbihkZXNjcmlwdG9yLmdldCwgbmFtZSwgeyBnZXR0ZXI6IHRydWUgfSk7XG4gIGlmIChkZXNjcmlwdG9yLnNldCkgbWFrZUJ1aWx0SW4oZGVzY3JpcHRvci5zZXQsIG5hbWUsIHsgc2V0dGVyOiB0cnVlIH0pO1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHkuZih0YXJnZXQsIG5hbWUsIGRlc2NyaXB0b3IpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIG1ha2VCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGtleSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gIHZhciBzaW1wbGUgPSBvcHRpb25zLmVudW1lcmFibGU7XG4gIHZhciBuYW1lID0gb3B0aW9ucy5uYW1lICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLm5hbWUgOiBrZXk7XG4gIGlmIChpc0NhbGxhYmxlKHZhbHVlKSkgbWFrZUJ1aWx0SW4odmFsdWUsIG5hbWUsIG9wdGlvbnMpO1xuICBpZiAob3B0aW9ucy5nbG9iYWwpIHtcbiAgICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGRlZmluZUdsb2JhbFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIW9wdGlvbnMudW5zYWZlKSBkZWxldGUgT1trZXldO1xuICAgICAgZWxzZSBpZiAoT1trZXldKSBzaW1wbGUgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgICBlbHNlIGRlZmluZVByb3BlcnR5TW9kdWxlLmYoTywga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogIW9wdGlvbnMubm9uQ29uZmlndXJhYmxlLFxuICAgICAgd3JpdGFibGU6ICFvcHRpb25zLm5vbldyaXRhYmxlXG4gICAgfSk7XG4gIH0gcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRhcmdldCwgc3JjLCBvcHRpb25zKSB7XG4gIGZvciAodmFyIGtleSBpbiBzcmMpIGRlZmluZUJ1aWx0SW4odGFyZ2V0LCBrZXksIHNyY1trZXldLCBvcHRpb25zKTtcbiAgcmV0dXJuIHRhcmdldDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICB0cnkge1xuICAgIGRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsIGtleSwgeyB2YWx1ZTogdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsVGhpc1trZXldID0gdmFsdWU7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBQKSB7XG4gIGlmICghZGVsZXRlIE9bUF0pIHRocm93IG5ldyAkVHlwZUVycm9yKCdDYW5ub3QgZGVsZXRlIHByb3BlcnR5ICcgKyB0cnlUb1N0cmluZyhQKSArICcgb2YgJyArIHRyeVRvU3RyaW5nKE8pKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gRGV0ZWN0IElFOCdzIGluY29tcGxldGUgZGVmaW5lUHJvcGVydHkgaW1wbGVtZW50YXRpb25cbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAxLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KVsxXSAhPT0gNztcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBnZXRCdWlsdEluTm9kZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4tbm9kZS1tb2R1bGUnKTtcbnZhciBQUk9QRVJfU1RSVUNUVVJFRF9DTE9ORV9UUkFOU0ZFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJ1Y3R1cmVkLWNsb25lLXByb3Blci10cmFuc2ZlcicpO1xuXG52YXIgc3RydWN0dXJlZENsb25lID0gZ2xvYmFsVGhpcy5zdHJ1Y3R1cmVkQ2xvbmU7XG52YXIgJEFycmF5QnVmZmVyID0gZ2xvYmFsVGhpcy5BcnJheUJ1ZmZlcjtcbnZhciAkTWVzc2FnZUNoYW5uZWwgPSBnbG9iYWxUaGlzLk1lc3NhZ2VDaGFubmVsO1xudmFyIGRldGFjaCA9IGZhbHNlO1xudmFyIFdvcmtlclRocmVhZHMsIGNoYW5uZWwsIGJ1ZmZlciwgJGRldGFjaDtcblxuaWYgKFBST1BFUl9TVFJVQ1RVUkVEX0NMT05FX1RSQU5TRkVSKSB7XG4gIGRldGFjaCA9IGZ1bmN0aW9uICh0cmFuc2ZlcmFibGUpIHtcbiAgICBzdHJ1Y3R1cmVkQ2xvbmUodHJhbnNmZXJhYmxlLCB7IHRyYW5zZmVyOiBbdHJhbnNmZXJhYmxlXSB9KTtcbiAgfTtcbn0gZWxzZSBpZiAoJEFycmF5QnVmZmVyKSB0cnkge1xuICBpZiAoISRNZXNzYWdlQ2hhbm5lbCkge1xuICAgIFdvcmtlclRocmVhZHMgPSBnZXRCdWlsdEluTm9kZU1vZHVsZSgnd29ya2VyX3RocmVhZHMnKTtcbiAgICBpZiAoV29ya2VyVGhyZWFkcykgJE1lc3NhZ2VDaGFubmVsID0gV29ya2VyVGhyZWFkcy5NZXNzYWdlQ2hhbm5lbDtcbiAgfVxuXG4gIGlmICgkTWVzc2FnZUNoYW5uZWwpIHtcbiAgICBjaGFubmVsID0gbmV3ICRNZXNzYWdlQ2hhbm5lbCgpO1xuICAgIGJ1ZmZlciA9IG5ldyAkQXJyYXlCdWZmZXIoMik7XG5cbiAgICAkZGV0YWNoID0gZnVuY3Rpb24gKHRyYW5zZmVyYWJsZSkge1xuICAgICAgY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZShudWxsLCBbdHJhbnNmZXJhYmxlXSk7XG4gICAgfTtcblxuICAgIGlmIChidWZmZXIuYnl0ZUxlbmd0aCA9PT0gMikge1xuICAgICAgJGRldGFjaChidWZmZXIpO1xuICAgICAgaWYgKGJ1ZmZlci5ieXRlTGVuZ3RoID09PSAwKSBkZXRhY2ggPSAkZGV0YWNoO1xuICAgIH1cbiAgfVxufSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRldGFjaDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciBkb2N1bWVudCA9IGdsb2JhbFRoaXMuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBFWElTVFMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBFWElTVFMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIElFOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSBbXG4gICdjb25zdHJ1Y3RvcicsXG4gICdoYXNPd25Qcm9wZXJ0eScsXG4gICdpc1Byb3RvdHlwZU9mJyxcbiAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgJ3RvTG9jYWxlU3RyaW5nJyxcbiAgJ3RvU3RyaW5nJyxcbiAgJ3ZhbHVlT2YnXG5dO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC11c2VyLWFnZW50Jyk7XG5cbnZhciBmaXJlZm94ID0gdXNlckFnZW50Lm1hdGNoKC9maXJlZm94XFwvKFxcZCspL2kpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICEhZmlyZWZveCAmJiArZmlyZWZveFsxXTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBVQSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC11c2VyLWFnZW50Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gL01TSUV8VHJpZGVudC8udGVzdChVQSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgRU5WSVJPTk1FTlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBFTlZJUk9OTUVOVCA9PT0gJ05PREUnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxudmFyIG5hdmlnYXRvciA9IGdsb2JhbFRoaXMubmF2aWdhdG9yO1xudmFyIHVzZXJBZ2VudCA9IG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IudXNlckFnZW50O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVzZXJBZ2VudCA/IFN0cmluZyh1c2VyQWdlbnQpIDogJyc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC11c2VyLWFnZW50Jyk7XG5cbnZhciBwcm9jZXNzID0gZ2xvYmFsVGhpcy5wcm9jZXNzO1xudmFyIERlbm8gPSBnbG9iYWxUaGlzLkRlbm87XG52YXIgdmVyc2lvbnMgPSBwcm9jZXNzICYmIHByb2Nlc3MudmVyc2lvbnMgfHwgRGVubyAmJiBEZW5vLnZlcnNpb247XG52YXIgdjggPSB2ZXJzaW9ucyAmJiB2ZXJzaW9ucy52ODtcbnZhciBtYXRjaCwgdmVyc2lvbjtcblxuaWYgKHY4KSB7XG4gIG1hdGNoID0gdjguc3BsaXQoJy4nKTtcbiAgLy8gaW4gb2xkIENocm9tZSwgdmVyc2lvbnMgb2YgVjggaXNuJ3QgVjggPSBDaHJvbWUgLyAxMFxuICAvLyBidXQgdGhlaXIgY29ycmVjdCB2ZXJzaW9ucyBhcmUgbm90IGludGVyZXN0aW5nIGZvciB1c1xuICB2ZXJzaW9uID0gbWF0Y2hbMF0gPiAwICYmIG1hdGNoWzBdIDwgNCA/IDEgOiArKG1hdGNoWzBdICsgbWF0Y2hbMV0pO1xufVxuXG4vLyBCcm93c2VyRlMgTm9kZUpTIGBwcm9jZXNzYCBwb2x5ZmlsbCBpbmNvcnJlY3RseSBzZXQgYC52OGAgdG8gYDAuMGBcbi8vIHNvIGNoZWNrIGB1c2VyQWdlbnRgIGV2ZW4gaWYgYC52OGAgZXhpc3RzLCBidXQgMFxuaWYgKCF2ZXJzaW9uICYmIHVzZXJBZ2VudCkge1xuICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvRWRnZVxcLyhcXGQrKS8pO1xuICBpZiAoIW1hdGNoIHx8IG1hdGNoWzFdID49IDc0KSB7XG4gICAgbWF0Y2ggPSB1c2VyQWdlbnQubWF0Y2goL0Nocm9tZVxcLyhcXGQrKS8pO1xuICAgIGlmIChtYXRjaCkgdmVyc2lvbiA9ICttYXRjaFsxXTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZlcnNpb247XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxudmFyIHdlYmtpdCA9IHVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcXC8oXFxkKylcXC4vKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhIXdlYmtpdCAmJiArd2Via2l0WzFdO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZ2xvYmFsIEJ1biwgRGVubyAtLSBkZXRlY3Rpb24gKi9cbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbnZhciB1c2VyQWdlbnRTdGFydHNXaXRoID0gZnVuY3Rpb24gKHN0cmluZykge1xuICByZXR1cm4gdXNlckFnZW50LnNsaWNlKDAsIHN0cmluZy5sZW5ndGgpID09PSBzdHJpbmc7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IChmdW5jdGlvbiAoKSB7XG4gIGlmICh1c2VyQWdlbnRTdGFydHNXaXRoKCdCdW4vJykpIHJldHVybiAnQlVOJztcbiAgaWYgKHVzZXJBZ2VudFN0YXJ0c1dpdGgoJ0Nsb3VkZmxhcmUtV29ya2VycycpKSByZXR1cm4gJ0NMT1VERkxBUkUnO1xuICBpZiAodXNlckFnZW50U3RhcnRzV2l0aCgnRGVuby8nKSkgcmV0dXJuICdERU5PJztcbiAgaWYgKHVzZXJBZ2VudFN0YXJ0c1dpdGgoJ05vZGUuanMvJykpIHJldHVybiAnTk9ERSc7XG4gIGlmIChnbG9iYWxUaGlzLkJ1biAmJiB0eXBlb2YgQnVuLnZlcnNpb24gPT0gJ3N0cmluZycpIHJldHVybiAnQlVOJztcbiAgaWYgKGdsb2JhbFRoaXMuRGVubyAmJiB0eXBlb2YgRGVuby52ZXJzaW9uID09ICdvYmplY3QnKSByZXR1cm4gJ0RFTk8nO1xuICBpZiAoY2xhc3NvZihnbG9iYWxUaGlzLnByb2Nlc3MpID09PSAncHJvY2VzcycpIHJldHVybiAnTk9ERSc7XG4gIGlmIChnbG9iYWxUaGlzLndpbmRvdyAmJiBnbG9iYWxUaGlzLmRvY3VtZW50KSByZXR1cm4gJ0JST1dTRVInO1xuICByZXR1cm4gJ1JFU1QnO1xufSkoKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyICRFcnJvciA9IEVycm9yO1xudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcblxudmFyIFRFU1QgPSAoZnVuY3Rpb24gKGFyZykgeyByZXR1cm4gU3RyaW5nKG5ldyAkRXJyb3IoYXJnKS5zdGFjayk7IH0pKCd6eGNhc2QnKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWRvcy9uby12dWxuZXJhYmxlIC0tIHNhZmVcbnZhciBWOF9PUl9DSEFLUkFfU1RBQ0tfRU5UUlkgPSAvXFxuXFxzKmF0IFteOl0qOlteXFxuXSovO1xudmFyIElTX1Y4X09SX0NIQUtSQV9TVEFDSyA9IFY4X09SX0NIQUtSQV9TVEFDS19FTlRSWS50ZXN0KFRFU1QpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChzdGFjaywgZHJvcEVudHJpZXMpIHtcbiAgaWYgKElTX1Y4X09SX0NIQUtSQV9TVEFDSyAmJiB0eXBlb2Ygc3RhY2sgPT0gJ3N0cmluZycgJiYgISRFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSkge1xuICAgIHdoaWxlIChkcm9wRW50cmllcy0tKSBzdGFjayA9IHJlcGxhY2Uoc3RhY2ssIFY4X09SX0NIQUtSQV9TVEFDS19FTlRSWSwgJycpO1xuICB9IHJldHVybiBzdGFjaztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGNsZWFyRXJyb3JTdGFjayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lcnJvci1zdGFjay1jbGVhcicpO1xudmFyIEVSUk9SX1NUQUNLX0lOU1RBTExBQkxFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vycm9yLXN0YWNrLWluc3RhbGxhYmxlJyk7XG5cbi8vIG5vbi1zdGFuZGFyZCBWOFxudmFyIGNhcHR1cmVTdGFja1RyYWNlID0gRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGVycm9yLCBDLCBzdGFjaywgZHJvcEVudHJpZXMpIHtcbiAgaWYgKEVSUk9SX1NUQUNLX0lOU1RBTExBQkxFKSB7XG4gICAgaWYgKGNhcHR1cmVTdGFja1RyYWNlKSBjYXB0dXJlU3RhY2tUcmFjZShlcnJvciwgQyk7XG4gICAgZWxzZSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoZXJyb3IsICdzdGFjaycsIGNsZWFyRXJyb3JTdGFjayhzdGFjaywgZHJvcEVudHJpZXMpKTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBlcnJvciA9IG5ldyBFcnJvcignYScpO1xuICBpZiAoISgnc3RhY2snIGluIGVycm9yKSkgcmV0dXJuIHRydWU7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyb3IsICdzdGFjaycsIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCA3KSk7XG4gIHJldHVybiBlcnJvci5zdGFjayAhPT0gNztcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBub3JtYWxpemVTdHJpbmdBcmd1bWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9ub3JtYWxpemUtc3RyaW5nLWFyZ3VtZW50Jyk7XG5cbnZhciBuYXRpdmVFcnJvclRvU3RyaW5nID0gRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nO1xuXG52YXIgSU5DT1JSRUNUX1RPX1NUUklORyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgaWYgKERFU0NSSVBUT1JTKSB7XG4gICAgLy8gQ2hyb21lIDMyLSBpbmNvcnJlY3RseSBjYWxsIGFjY2Vzc29yXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1jcmVhdGUsIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG4gICAgdmFyIG9iamVjdCA9IE9iamVjdC5jcmVhdGUoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnbmFtZScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGhpcyA9PT0gb2JqZWN0O1xuICAgIH0gfSkpO1xuICAgIGlmIChuYXRpdmVFcnJvclRvU3RyaW5nLmNhbGwob2JqZWN0KSAhPT0gJ3RydWUnKSByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBGRjEwLSBkb2VzIG5vdCBwcm9wZXJseSBoYW5kbGUgbm9uLXN0cmluZ3NcbiAgcmV0dXJuIG5hdGl2ZUVycm9yVG9TdHJpbmcuY2FsbCh7IG1lc3NhZ2U6IDEsIG5hbWU6IDIgfSkgIT09ICcyOiAxJ1xuICAgIC8vIElFOCBkb2VzIG5vdCBwcm9wZXJseSBoYW5kbGUgZGVmYXVsdHNcbiAgICB8fCBuYXRpdmVFcnJvclRvU3RyaW5nLmNhbGwoe30pICE9PSAnRXJyb3InO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gSU5DT1JSRUNUX1RPX1NUUklORyA/IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICB2YXIgTyA9IGFuT2JqZWN0KHRoaXMpO1xuICB2YXIgbmFtZSA9IG5vcm1hbGl6ZVN0cmluZ0FyZ3VtZW50KE8ubmFtZSwgJ0Vycm9yJyk7XG4gIHZhciBtZXNzYWdlID0gbm9ybWFsaXplU3RyaW5nQXJndW1lbnQoTy5tZXNzYWdlKTtcbiAgcmV0dXJuICFuYW1lID8gbWVzc2FnZSA6ICFtZXNzYWdlID8gbmFtZSA6IG5hbWUgKyAnOiAnICsgbWVzc2FnZTtcbn0gOiBuYXRpdmVFcnJvclRvU3RyaW5nO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xudmFyIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzJyk7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG5cbi8qXG4gIG9wdGlvbnMudGFyZ2V0ICAgICAgICAgLSBuYW1lIG9mIHRoZSB0YXJnZXQgb2JqZWN0XG4gIG9wdGlvbnMuZ2xvYmFsICAgICAgICAgLSB0YXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3RcbiAgb3B0aW9ucy5zdGF0ICAgICAgICAgICAtIGV4cG9ydCBhcyBzdGF0aWMgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5wcm90byAgICAgICAgICAtIGV4cG9ydCBhcyBwcm90b3R5cGUgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5yZWFsICAgICAgICAgICAtIHJlYWwgcHJvdG90eXBlIG1ldGhvZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMuZm9yY2VkICAgICAgICAgLSBleHBvcnQgZXZlbiBpZiB0aGUgbmF0aXZlIGZlYXR1cmUgaXMgYXZhaWxhYmxlXG4gIG9wdGlvbnMuYmluZCAgICAgICAgICAgLSBiaW5kIG1ldGhvZHMgdG8gdGhlIHRhcmdldCwgcmVxdWlyZWQgZm9yIHRoZSBgcHVyZWAgdmVyc2lvblxuICBvcHRpb25zLndyYXAgICAgICAgICAgIC0gd3JhcCBjb25zdHJ1Y3RvcnMgdG8gcHJldmVudGluZyBnbG9iYWwgcG9sbHV0aW9uLCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMudW5zYWZlICAgICAgICAgLSB1c2UgdGhlIHNpbXBsZSBhc3NpZ25tZW50IG9mIHByb3BlcnR5IGluc3RlYWQgb2YgZGVsZXRlICsgZGVmaW5lUHJvcGVydHlcbiAgb3B0aW9ucy5zaGFtICAgICAgICAgICAtIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgb3B0aW9ucy5lbnVtZXJhYmxlICAgICAtIGV4cG9ydCBhcyBlbnVtZXJhYmxlIHByb3BlcnR5XG4gIG9wdGlvbnMuZG9udENhbGxHZXRTZXQgLSBwcmV2ZW50IGNhbGxpbmcgYSBnZXR0ZXIgb24gdGFyZ2V0XG4gIG9wdGlvbnMubmFtZSAgICAgICAgICAgLSB0aGUgLm5hbWUgb2YgdGhlIGZ1bmN0aW9uIGlmIGl0IGRvZXMgbm90IG1hdGNoIHRoZSBrZXlcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcHRpb25zLCBzb3VyY2UpIHtcbiAgdmFyIFRBUkdFVCA9IG9wdGlvbnMudGFyZ2V0O1xuICB2YXIgR0xPQkFMID0gb3B0aW9ucy5nbG9iYWw7XG4gIHZhciBTVEFUSUMgPSBvcHRpb25zLnN0YXQ7XG4gIHZhciBGT1JDRUQsIHRhcmdldCwga2V5LCB0YXJnZXRQcm9wZXJ0eSwgc291cmNlUHJvcGVydHksIGRlc2NyaXB0b3I7XG4gIGlmIChHTE9CQUwpIHtcbiAgICB0YXJnZXQgPSBnbG9iYWxUaGlzO1xuICB9IGVsc2UgaWYgKFNUQVRJQykge1xuICAgIHRhcmdldCA9IGdsb2JhbFRoaXNbVEFSR0VUXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShUQVJHRVQsIHt9KTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQgPSBnbG9iYWxUaGlzW1RBUkdFVF0gJiYgZ2xvYmFsVGhpc1tUQVJHRVRdLnByb3RvdHlwZTtcbiAgfVxuICBpZiAodGFyZ2V0KSBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICBzb3VyY2VQcm9wZXJ0eSA9IHNvdXJjZVtrZXldO1xuICAgIGlmIChvcHRpb25zLmRvbnRDYWxsR2V0U2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTtcbiAgICAgIHRhcmdldFByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbmVkIGluIHRhcmdldFxuICAgIGlmICghRk9SQ0VEICYmIHRhcmdldFByb3BlcnR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlUHJvcGVydHkgPT0gdHlwZW9mIHRhcmdldFByb3BlcnR5KSBjb250aW51ZTtcbiAgICAgIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMoc291cmNlUHJvcGVydHksIHRhcmdldFByb3BlcnR5KTtcbiAgICB9XG4gICAgLy8gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICAgIGlmIChvcHRpb25zLnNoYW0gfHwgKHRhcmdldFByb3BlcnR5ICYmIHRhcmdldFByb3BlcnR5LnNoYW0pKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoc291cmNlUHJvcGVydHksICdzaGFtJywgdHJ1ZSk7XG4gICAgfVxuICAgIGRlZmluZUJ1aWx0SW4odGFyZ2V0LCBrZXksIHNvdXJjZVByb3BlcnR5LCBvcHRpb25zKTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIG1vdmVkIHRvIGVudHJ5IHBvaW50c1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWdleHAuZXhlYycpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgcmVnZXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSwgZXhlYywgRk9SQ0VELCBTSEFNKSB7XG4gIHZhciBTWU1CT0wgPSB3ZWxsS25vd25TeW1ib2woS0VZKTtcblxuICB2YXIgREVMRUdBVEVTX1RPX1NZTUJPTCA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3RyaW5nIG1ldGhvZHMgY2FsbCBzeW1ib2wtbmFtZWQgUmVnRXhwIG1ldGhvZHNcbiAgICB2YXIgTyA9IHt9O1xuICAgIE9bU1lNQk9MXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH07XG4gICAgcmV0dXJuICcnW0tFWV0oTykgIT09IDc7XG4gIH0pO1xuXG4gIHZhciBERUxFR0FURVNfVE9fRVhFQyA9IERFTEVHQVRFU19UT19TWU1CT0wgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBTeW1ib2wtbmFtZWQgUmVnRXhwIG1ldGhvZHMgY2FsbCAuZXhlY1xuICAgIHZhciBleGVjQ2FsbGVkID0gZmFsc2U7XG4gICAgdmFyIHJlID0gL2EvO1xuXG4gICAgaWYgKEtFWSA9PT0gJ3NwbGl0Jykge1xuICAgICAgLy8gV2UgY2FuJ3QgdXNlIHJlYWwgcmVnZXggaGVyZSBzaW5jZSBpdCBjYXVzZXMgZGVvcHRpbWl6YXRpb25cbiAgICAgIC8vIGFuZCBzZXJpb3VzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIGluIFY4XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMzA2XG4gICAgICByZSA9IHt9O1xuICAgICAgLy8gUmVnRXhwW0BAc3BsaXRdIGRvZXNuJ3QgY2FsbCB0aGUgcmVnZXgncyBleGVjIG1ldGhvZCwgYnV0IGZpcnN0IGNyZWF0ZXNcbiAgICAgIC8vIGEgbmV3IG9uZS4gV2UgbmVlZCB0byByZXR1cm4gdGhlIHBhdGNoZWQgcmVnZXggd2hlbiBjcmVhdGluZyB0aGUgbmV3IG9uZS5cbiAgICAgIHJlLmNvbnN0cnVjdG9yID0ge307XG4gICAgICByZS5jb25zdHJ1Y3RvcltTUEVDSUVTXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlOyB9O1xuICAgICAgcmUuZmxhZ3MgPSAnJztcbiAgICAgIHJlW1NZTUJPTF0gPSAvLi9bU1lNQk9MXTtcbiAgICB9XG5cbiAgICByZS5leGVjID0gZnVuY3Rpb24gKCkge1xuICAgICAgZXhlY0NhbGxlZCA9IHRydWU7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgcmVbU1lNQk9MXSgnJyk7XG4gICAgcmV0dXJuICFleGVjQ2FsbGVkO1xuICB9KTtcblxuICBpZiAoXG4gICAgIURFTEVHQVRFU19UT19TWU1CT0wgfHxcbiAgICAhREVMRUdBVEVTX1RPX0VYRUMgfHxcbiAgICBGT1JDRURcbiAgKSB7XG4gICAgdmFyIG5hdGl2ZVJlZ0V4cE1ldGhvZCA9IC8uL1tTWU1CT0xdO1xuICAgIHZhciBtZXRob2RzID0gZXhlYyhTWU1CT0wsICcnW0tFWV0sIGZ1bmN0aW9uIChuYXRpdmVNZXRob2QsIHJlZ2V4cCwgc3RyLCBhcmcyLCBmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgdmFyICRleGVjID0gcmVnZXhwLmV4ZWM7XG4gICAgICBpZiAoJGV4ZWMgPT09IHJlZ2V4cEV4ZWMgfHwgJGV4ZWMgPT09IFJlZ0V4cFByb3RvdHlwZS5leGVjKSB7XG4gICAgICAgIGlmIChERUxFR0FURVNfVE9fU1lNQk9MICYmICFmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgICAgIC8vIFRoZSBuYXRpdmUgU3RyaW5nIG1ldGhvZCBhbHJlYWR5IGRlbGVnYXRlcyB0byBAQG1ldGhvZCAodGhpc1xuICAgICAgICAgIC8vIHBvbHlmaWxsZWQgZnVuY3Rpb24pLCBsZWFzaW5nIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cbiAgICAgICAgICAvLyBXZSBhdm9pZCBpdCBieSBkaXJlY3RseSBjYWxsaW5nIHRoZSBuYXRpdmUgQEBtZXRob2QgbWV0aG9kLlxuICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBjYWxsKG5hdGl2ZVJlZ0V4cE1ldGhvZCwgcmVnZXhwLCBzdHIsIGFyZzIpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IGNhbGwobmF0aXZlTWV0aG9kLCBzdHIsIHJlZ2V4cCwgYXJnMikgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlIH07XG4gICAgfSk7XG5cbiAgICBkZWZpbmVCdWlsdEluKFN0cmluZy5wcm90b3R5cGUsIEtFWSwgbWV0aG9kc1swXSk7XG4gICAgZGVmaW5lQnVpbHRJbihSZWdFeHBQcm90b3R5cGUsIFNZTUJPTCwgbWV0aG9kc1sxXSk7XG4gIH1cblxuICBpZiAoU0hBTSkgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFJlZ0V4cFByb3RvdHlwZVtTWU1CT0xdLCAnc2hhbScsIHRydWUpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgYXBwbHkgPSBGdW5jdGlvblByb3RvdHlwZS5hcHBseTtcbnZhciBjYWxsID0gRnVuY3Rpb25Qcm90b3R5cGUuY2FsbDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLXJlZmxlY3QgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgUmVmbGVjdCA9PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmFwcGx5IHx8IChOQVRJVkVfQklORCA/IGNhbGwuYmluZChhcHBseSkgOiBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYWxsLmFwcGx5KGFwcGx5LCBhcmd1bWVudHMpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZScpO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIGJpbmQgPSB1bmN1cnJ5VGhpcyh1bmN1cnJ5VGhpcy5iaW5kKTtcblxuLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCkge1xuICBhQ2FsbGFibGUoZm4pO1xuICByZXR1cm4gdGhhdCA9PT0gdW5kZWZpbmVkID8gZm4gOiBOQVRJVkVfQklORCA/IGJpbmQoZm4sIHRoYXQpIDogZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZnVuY3Rpb24tcHJvdG90eXBlLWJpbmQgLS0gc2FmZVxuICB2YXIgdGVzdCA9IChmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pLmJpbmQoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucyAtLSBzYWZlXG4gIHJldHVybiB0eXBlb2YgdGVzdCAhPSAnZnVuY3Rpb24nIHx8IHRlc3QuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIGNhbGwgPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfQklORCA/IGNhbGwuYmluZChjYWxsKSA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbGwuYXBwbHkoY2FsbCwgYXJndW1lbnRzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0RGVzY3JpcHRvciA9IERFU0NSSVBUT1JTICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbnZhciBFWElTVFMgPSBoYXNPd24oRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJyk7XG4vLyBhZGRpdGlvbmFsIHByb3RlY3Rpb24gZnJvbSBtaW5pZmllZCAvIG1hbmdsZWQgLyBkcm9wcGVkIGZ1bmN0aW9uIG5hbWVzXG52YXIgUFJPUEVSID0gRVhJU1RTICYmIChmdW5jdGlvbiBzb21ldGhpbmcoKSB7IC8qIGVtcHR5ICovIH0pLm5hbWUgPT09ICdzb21ldGhpbmcnO1xudmFyIENPTkZJR1VSQUJMRSA9IEVYSVNUUyAmJiAoIURFU0NSSVBUT1JTIHx8IChERVNDUklQVE9SUyAmJiBnZXREZXNjcmlwdG9yKEZ1bmN0aW9uUHJvdG90eXBlLCAnbmFtZScpLmNvbmZpZ3VyYWJsZSkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRVhJU1RTOiBFWElTVFMsXG4gIFBST1BFUjogUFJPUEVSLFxuICBDT05GSUdVUkFCTEU6IENPTkZJR1VSQUJMRVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgbWV0aG9kKSB7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxuICAgIHJldHVybiB1bmN1cnJ5VGhpcyhhQ2FsbGFibGUoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIGtleSlbbWV0aG9kXSkpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4pIHtcbiAgLy8gTmFzaG9ybiBidWc6XG4gIC8vICAgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzExMjhcbiAgLy8gICBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTEzMFxuICBpZiAoY2xhc3NvZlJhdyhmbikgPT09ICdGdW5jdGlvbicpIHJldHVybiB1bmN1cnJ5VGhpcyhmbik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBjYWxsID0gRnVuY3Rpb25Qcm90b3R5cGUuY2FsbDtcbnZhciB1bmN1cnJ5VGhpc1dpdGhCaW5kID0gTkFUSVZFX0JJTkQgJiYgRnVuY3Rpb25Qcm90b3R5cGUuYmluZC5iaW5kKGNhbGwsIGNhbGwpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9CSU5EID8gdW5jdXJyeVRoaXNXaXRoQmluZCA6IGZ1bmN0aW9uIChmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjYWxsLmFwcGx5KGZuLCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgSVNfTk9ERSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC1pcy1ub2RlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKElTX05PREUpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcy5nZXRCdWlsdGluTW9kdWxlKG5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgICB0cnkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jIC0tIHNhZmVcbiAgICAgIHJldHVybiBGdW5jdGlvbigncmV0dXJuIHJlcXVpcmUoXCInICsgbmFtZSArICdcIiknKSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG52YXIgYUZ1bmN0aW9uID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiBpc0NhbGxhYmxlKGFyZ3VtZW50KSA/IGFyZ3VtZW50IDogdW5kZWZpbmVkO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZXNwYWNlLCBtZXRob2QpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPCAyID8gYUZ1bmN0aW9uKGdsb2JhbFRoaXNbbmFtZXNwYWNlXSkgOiBnbG9iYWxUaGlzW25hbWVzcGFjZV0gJiYgZ2xvYmFsVGhpc1tuYW1lc3BhY2VdW21ldGhvZF07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc051bGxPclVuZGVmaW5lZChpdCkpIHJldHVybiBnZXRNZXRob2QoaXQsIElURVJBVE9SKVxuICAgIHx8IGdldE1ldGhvZChpdCwgJ0BAaXRlcmF0b3InKVxuICAgIHx8IEl0ZXJhdG9yc1tjbGFzc29mKGl0KV07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdHJ5VG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZycpO1xudmFyIGdldEl0ZXJhdG9yTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvci1tZXRob2QnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50LCB1c2luZ0l0ZXJhdG9yKSB7XG4gIHZhciBpdGVyYXRvck1ldGhvZCA9IGFyZ3VtZW50cy5sZW5ndGggPCAyID8gZ2V0SXRlcmF0b3JNZXRob2QoYXJndW1lbnQpIDogdXNpbmdJdGVyYXRvcjtcbiAgaWYgKGFDYWxsYWJsZShpdGVyYXRvck1ldGhvZCkpIHJldHVybiBhbk9iamVjdChjYWxsKGl0ZXJhdG9yTWV0aG9kLCBhcmd1bWVudCkpO1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBpdGVyYWJsZScpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGlzTnVsbE9yVW5kZWZpbmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW51bGwtb3ItdW5kZWZpbmVkJyk7XG5cbi8vIGBHZXRNZXRob2RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRtZXRob2Rcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFYsIFApIHtcbiAgdmFyIGZ1bmMgPSBWW1BdO1xuICByZXR1cm4gaXNOdWxsT3JVbmRlZmluZWQoZnVuYykgPyB1bmRlZmluZWQgOiBhQ2FsbGFibGUoZnVuYyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xuXG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xudmFyIGNoYXJBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJBdCk7XG52YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZG9zL25vLXZ1bG5lcmFibGUgLS0gc2FmZVxudmFyIFNVQlNUSVRVVElPTl9TWU1CT0xTID0gL1xcJChbJCYnYF18XFxkezEsMn18PFtePl0qPikvZztcbnZhciBTVUJTVElUVVRJT05fU1lNQk9MU19OT19OQU1FRCA9IC9cXCQoWyQmJ2BdfFxcZHsxLDJ9KS9nO1xuXG4vLyBgR2V0U3Vic3RpdHV0aW9uYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0c3Vic3RpdHV0aW9uXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChtYXRjaGVkLCBzdHIsIHBvc2l0aW9uLCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZW1lbnQpIHtcbiAgdmFyIHRhaWxQb3MgPSBwb3NpdGlvbiArIG1hdGNoZWQubGVuZ3RoO1xuICB2YXIgbSA9IGNhcHR1cmVzLmxlbmd0aDtcbiAgdmFyIHN5bWJvbHMgPSBTVUJTVElUVVRJT05fU1lNQk9MU19OT19OQU1FRDtcbiAgaWYgKG5hbWVkQ2FwdHVyZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIG5hbWVkQ2FwdHVyZXMgPSB0b09iamVjdChuYW1lZENhcHR1cmVzKTtcbiAgICBzeW1ib2xzID0gU1VCU1RJVFVUSU9OX1NZTUJPTFM7XG4gIH1cbiAgcmV0dXJuIHJlcGxhY2UocmVwbGFjZW1lbnQsIHN5bWJvbHMsIGZ1bmN0aW9uIChtYXRjaCwgY2gpIHtcbiAgICB2YXIgY2FwdHVyZTtcbiAgICBzd2l0Y2ggKGNoYXJBdChjaCwgMCkpIHtcbiAgICAgIGNhc2UgJyQnOiByZXR1cm4gJyQnO1xuICAgICAgY2FzZSAnJic6IHJldHVybiBtYXRjaGVkO1xuICAgICAgY2FzZSAnYCc6IHJldHVybiBzdHJpbmdTbGljZShzdHIsIDAsIHBvc2l0aW9uKTtcbiAgICAgIGNhc2UgXCInXCI6IHJldHVybiBzdHJpbmdTbGljZShzdHIsIHRhaWxQb3MpO1xuICAgICAgY2FzZSAnPCc6XG4gICAgICAgIGNhcHR1cmUgPSBuYW1lZENhcHR1cmVzW3N0cmluZ1NsaWNlKGNoLCAxLCAtMSldO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IC8vIFxcZFxcZD9cbiAgICAgICAgdmFyIG4gPSArY2g7XG4gICAgICAgIGlmIChuID09PSAwKSByZXR1cm4gbWF0Y2g7XG4gICAgICAgIGlmIChuID4gbSkge1xuICAgICAgICAgIHZhciBmID0gZmxvb3IobiAvIDEwKTtcbiAgICAgICAgICBpZiAoZiA9PT0gMCkgcmV0dXJuIG1hdGNoO1xuICAgICAgICAgIGlmIChmIDw9IG0pIHJldHVybiBjYXB0dXJlc1tmIC0gMV0gPT09IHVuZGVmaW5lZCA/IGNoYXJBdChjaCwgMSkgOiBjYXB0dXJlc1tmIC0gMV0gKyBjaGFyQXQoY2gsIDEpO1xuICAgICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgICAgfVxuICAgICAgICBjYXB0dXJlID0gY2FwdHVyZXNbbiAtIDFdO1xuICAgIH1cbiAgICByZXR1cm4gY2FwdHVyZSA9PT0gdW5kZWZpbmVkID8gJycgOiBjYXB0dXJlO1xuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT09IE1hdGggJiYgaXQ7XG59O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxubW9kdWxlLmV4cG9ydHMgPVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZ2xvYmFsLXRoaXMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2YgZ2xvYmFsVGhpcyA9PSAnb2JqZWN0JyAmJiBnbG9iYWxUaGlzKSB8fFxuICBjaGVjayh0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdykgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBzYWZlXG4gIGNoZWNrKHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYpIHx8XG4gIGNoZWNrKHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsKSB8fFxuICBjaGVjayh0eXBlb2YgdGhpcyA9PSAnb2JqZWN0JyAmJiB0aGlzKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmMgLS0gZmFsbGJhY2tcbiAgKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pKCkgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxudmFyIGhhc093blByb3BlcnR5ID0gdW5jdXJyeVRoaXMoe30uaGFzT3duUHJvcGVydHkpO1xuXG4vLyBgSGFzT3duUHJvcGVydHlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1oYXNvd25wcm9wZXJ0eVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1oYXNvd24gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaGFzT3duIHx8IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksIGtleSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ2RvY3VtZW50JywgJ2RvY3VtZW50RWxlbWVudCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rcyB0byBJRTggZm9yIGl0cyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGNyZWF0ZUVsZW1lbnQoJ2RpdicpLCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH1cbiAgfSkuYSAhPT0gNztcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gSUVFRTc1NCBjb252ZXJzaW9ucyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2llZWU3NTRcbnZhciAkQXJyYXkgPSBBcnJheTtcbnZhciBhYnMgPSBNYXRoLmFicztcbnZhciBwb3cgPSBNYXRoLnBvdztcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgbG9nID0gTWF0aC5sb2c7XG52YXIgTE4yID0gTWF0aC5MTjI7XG5cbnZhciBwYWNrID0gZnVuY3Rpb24gKG51bWJlciwgbWFudGlzc2FMZW5ndGgsIGJ5dGVzKSB7XG4gIHZhciBidWZmZXIgPSAkQXJyYXkoYnl0ZXMpO1xuICB2YXIgZXhwb25lbnRMZW5ndGggPSBieXRlcyAqIDggLSBtYW50aXNzYUxlbmd0aCAtIDE7XG4gIHZhciBlTWF4ID0gKDEgPDwgZXhwb25lbnRMZW5ndGgpIC0gMTtcbiAgdmFyIGVCaWFzID0gZU1heCA+PiAxO1xuICB2YXIgcnQgPSBtYW50aXNzYUxlbmd0aCA9PT0gMjMgPyBwb3coMiwgLTI0KSAtIHBvdygyLCAtNzcpIDogMDtcbiAgdmFyIHNpZ24gPSBudW1iZXIgPCAwIHx8IG51bWJlciA9PT0gMCAmJiAxIC8gbnVtYmVyIDwgMCA/IDEgOiAwO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgZXhwb25lbnQsIG1hbnRpc3NhLCBjO1xuICBudW1iZXIgPSBhYnMobnVtYmVyKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgaWYgKG51bWJlciAhPT0gbnVtYmVyIHx8IG51bWJlciA9PT0gSW5maW5pdHkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgIG1hbnRpc3NhID0gbnVtYmVyICE9PSBudW1iZXIgPyAxIDogMDtcbiAgICBleHBvbmVudCA9IGVNYXg7XG4gIH0gZWxzZSB7XG4gICAgZXhwb25lbnQgPSBmbG9vcihsb2cobnVtYmVyKSAvIExOMik7XG4gICAgYyA9IHBvdygyLCAtZXhwb25lbnQpO1xuICAgIGlmIChudW1iZXIgKiBjIDwgMSkge1xuICAgICAgZXhwb25lbnQtLTtcbiAgICAgIGMgKj0gMjtcbiAgICB9XG4gICAgaWYgKGV4cG9uZW50ICsgZUJpYXMgPj0gMSkge1xuICAgICAgbnVtYmVyICs9IHJ0IC8gYztcbiAgICB9IGVsc2Uge1xuICAgICAgbnVtYmVyICs9IHJ0ICogcG93KDIsIDEgLSBlQmlhcyk7XG4gICAgfVxuICAgIGlmIChudW1iZXIgKiBjID49IDIpIHtcbiAgICAgIGV4cG9uZW50Kys7XG4gICAgICBjIC89IDI7XG4gICAgfVxuICAgIGlmIChleHBvbmVudCArIGVCaWFzID49IGVNYXgpIHtcbiAgICAgIG1hbnRpc3NhID0gMDtcbiAgICAgIGV4cG9uZW50ID0gZU1heDtcbiAgICB9IGVsc2UgaWYgKGV4cG9uZW50ICsgZUJpYXMgPj0gMSkge1xuICAgICAgbWFudGlzc2EgPSAobnVtYmVyICogYyAtIDEpICogcG93KDIsIG1hbnRpc3NhTGVuZ3RoKTtcbiAgICAgIGV4cG9uZW50ICs9IGVCaWFzO1xuICAgIH0gZWxzZSB7XG4gICAgICBtYW50aXNzYSA9IG51bWJlciAqIHBvdygyLCBlQmlhcyAtIDEpICogcG93KDIsIG1hbnRpc3NhTGVuZ3RoKTtcbiAgICAgIGV4cG9uZW50ID0gMDtcbiAgICB9XG4gIH1cbiAgd2hpbGUgKG1hbnRpc3NhTGVuZ3RoID49IDgpIHtcbiAgICBidWZmZXJbaW5kZXgrK10gPSBtYW50aXNzYSAmIDI1NTtcbiAgICBtYW50aXNzYSAvPSAyNTY7XG4gICAgbWFudGlzc2FMZW5ndGggLT0gODtcbiAgfVxuICBleHBvbmVudCA9IGV4cG9uZW50IDw8IG1hbnRpc3NhTGVuZ3RoIHwgbWFudGlzc2E7XG4gIGV4cG9uZW50TGVuZ3RoICs9IG1hbnRpc3NhTGVuZ3RoO1xuICB3aGlsZSAoZXhwb25lbnRMZW5ndGggPiAwKSB7XG4gICAgYnVmZmVyW2luZGV4KytdID0gZXhwb25lbnQgJiAyNTU7XG4gICAgZXhwb25lbnQgLz0gMjU2O1xuICAgIGV4cG9uZW50TGVuZ3RoIC09IDg7XG4gIH1cbiAgYnVmZmVyW2luZGV4IC0gMV0gfD0gc2lnbiAqIDEyODtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn07XG5cbnZhciB1bnBhY2sgPSBmdW5jdGlvbiAoYnVmZmVyLCBtYW50aXNzYUxlbmd0aCkge1xuICB2YXIgYnl0ZXMgPSBidWZmZXIubGVuZ3RoO1xuICB2YXIgZXhwb25lbnRMZW5ndGggPSBieXRlcyAqIDggLSBtYW50aXNzYUxlbmd0aCAtIDE7XG4gIHZhciBlTWF4ID0gKDEgPDwgZXhwb25lbnRMZW5ndGgpIC0gMTtcbiAgdmFyIGVCaWFzID0gZU1heCA+PiAxO1xuICB2YXIgbkJpdHMgPSBleHBvbmVudExlbmd0aCAtIDc7XG4gIHZhciBpbmRleCA9IGJ5dGVzIC0gMTtcbiAgdmFyIHNpZ24gPSBidWZmZXJbaW5kZXgtLV07XG4gIHZhciBleHBvbmVudCA9IHNpZ24gJiAxMjc7XG4gIHZhciBtYW50aXNzYTtcbiAgc2lnbiA+Pj0gNztcbiAgd2hpbGUgKG5CaXRzID4gMCkge1xuICAgIGV4cG9uZW50ID0gZXhwb25lbnQgKiAyNTYgKyBidWZmZXJbaW5kZXgtLV07XG4gICAgbkJpdHMgLT0gODtcbiAgfVxuICBtYW50aXNzYSA9IGV4cG9uZW50ICYgKDEgPDwgLW5CaXRzKSAtIDE7XG4gIGV4cG9uZW50ID4+PSAtbkJpdHM7XG4gIG5CaXRzICs9IG1hbnRpc3NhTGVuZ3RoO1xuICB3aGlsZSAobkJpdHMgPiAwKSB7XG4gICAgbWFudGlzc2EgPSBtYW50aXNzYSAqIDI1NiArIGJ1ZmZlcltpbmRleC0tXTtcbiAgICBuQml0cyAtPSA4O1xuICB9XG4gIGlmIChleHBvbmVudCA9PT0gMCkge1xuICAgIGV4cG9uZW50ID0gMSAtIGVCaWFzO1xuICB9IGVsc2UgaWYgKGV4cG9uZW50ID09PSBlTWF4KSB7XG4gICAgcmV0dXJuIG1hbnRpc3NhID8gTmFOIDogc2lnbiA/IC1JbmZpbml0eSA6IEluZmluaXR5O1xuICB9IGVsc2Uge1xuICAgIG1hbnRpc3NhICs9IHBvdygyLCBtYW50aXNzYUxlbmd0aCk7XG4gICAgZXhwb25lbnQgLT0gZUJpYXM7XG4gIH0gcmV0dXJuIChzaWduID8gLTEgOiAxKSAqIG1hbnRpc3NhICogcG93KDIsIGV4cG9uZW50IC0gbWFudGlzc2FMZW5ndGgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHBhY2s6IHBhY2ssXG4gIHVucGFjazogdW5wYWNrXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcbnZhciBzcGxpdCA9IHVuY3VycnlUaGlzKCcnLnNwbGl0KTtcblxuLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3Ncbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyB0aHJvd3MgYW4gZXJyb3IgaW4gcmhpbm8sIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9yaGluby9pc3N1ZXMvMzQ2XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgLS0gc2FmZVxuICByZXR1cm4gISRPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKTtcbn0pID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBjbGFzc29mKGl0KSA9PT0gJ1N0cmluZycgPyBzcGxpdChpdCwgJycpIDogJE9iamVjdChpdCk7XG59IDogJE9iamVjdDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcblxuLy8gbWFrZXMgc3ViY2xhc3Npbmcgd29yayBjb3JyZWN0IGZvciB3cmFwcGVkIGJ1aWx0LWluc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoJHRoaXMsIGR1bW15LCBXcmFwcGVyKSB7XG4gIHZhciBOZXdUYXJnZXQsIE5ld1RhcmdldFByb3RvdHlwZTtcbiAgaWYgKFxuICAgIC8vIGl0IGNhbiB3b3JrIG9ubHkgd2l0aCBuYXRpdmUgYHNldFByb3RvdHlwZU9mYFxuICAgIHNldFByb3RvdHlwZU9mICYmXG4gICAgLy8gd2UgaGF2ZW4ndCBjb21wbGV0ZWx5IGNvcnJlY3QgcHJlLUVTNiB3YXkgZm9yIGdldHRpbmcgYG5ldy50YXJnZXRgLCBzbyB1c2UgdGhpc1xuICAgIGlzQ2FsbGFibGUoTmV3VGFyZ2V0ID0gZHVtbXkuY29uc3RydWN0b3IpICYmXG4gICAgTmV3VGFyZ2V0ICE9PSBXcmFwcGVyICYmXG4gICAgaXNPYmplY3QoTmV3VGFyZ2V0UHJvdG90eXBlID0gTmV3VGFyZ2V0LnByb3RvdHlwZSkgJiZcbiAgICBOZXdUYXJnZXRQcm90b3R5cGUgIT09IFdyYXBwZXIucHJvdG90eXBlXG4gICkgc2V0UHJvdG90eXBlT2YoJHRoaXMsIE5ld1RhcmdldFByb3RvdHlwZSk7XG4gIHJldHVybiAkdGhpcztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IHVuY3VycnlUaGlzKEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuLy8gdGhpcyBoZWxwZXIgYnJva2VuIGluIGBjb3JlLWpzQDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKCFpc0NhbGxhYmxlKHN0b3JlLmluc3BlY3RTb3VyY2UpKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZyhpdCk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmUuaW5zcGVjdFNvdXJjZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG5cbi8vIGBJbnN0YWxsRXJyb3JDYXVzZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtZXJyb3ItY2F1c2UvI3NlYy1lcnJvcm9iamVjdHMtaW5zdGFsbC1lcnJvci1jYXVzZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywgb3B0aW9ucykge1xuICBpZiAoaXNPYmplY3Qob3B0aW9ucykgJiYgJ2NhdXNlJyBpbiBvcHRpb25zKSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KE8sICdjYXVzZScsIG9wdGlvbnMuY2F1c2UpO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWFrLW1hcC1iYXNpYy1kZXRlY3Rpb24nKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQgPSAnT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQnO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbFRoaXMuVHlwZUVycm9yO1xudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG52YXIgc2V0LCBnZXQsIGhhcztcblxudmFyIGVuZm9yY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGhhcyhpdCkgPyBnZXQoaXQpIDogc2V0KGl0LCB7fSk7XG59O1xuXG52YXIgZ2V0dGVyRm9yID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdCkge1xuICAgIHZhciBzdGF0ZTtcbiAgICBpZiAoIWlzT2JqZWN0KGl0KSB8fCAoc3RhdGUgPSBnZXQoaXQpKS50eXBlICE9PSBUWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCB8fCBzaGFyZWQuc3RhdGUpIHtcbiAgdmFyIHN0b3JlID0gc2hhcmVkLnN0YXRlIHx8IChzaGFyZWQuc3RhdGUgPSBuZXcgV2Vha01hcCgpKTtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tc2VsZi1hc3NpZ24gLS0gcHJvdG90eXBlIG1ldGhvZHMgcHJvdGVjdGlvbiAqL1xuICBzdG9yZS5nZXQgPSBzdG9yZS5nZXQ7XG4gIHN0b3JlLmhhcyA9IHN0b3JlLmhhcztcbiAgc3RvcmUuc2V0ID0gc3RvcmUuc2V0O1xuICAvKiBlc2xpbnQtZW5hYmxlIG5vLXNlbGYtYXNzaWduIC0tIHByb3RvdHlwZSBtZXRob2RzIHByb3RlY3Rpb24gKi9cbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGlmIChzdG9yZS5oYXMoaXQpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBzdG9yZS5zZXQoaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBzdG9yZS5nZXQoaXQpIHx8IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gc3RvcmUuaGFzKGl0KTtcbiAgfTtcbn0gZWxzZSB7XG4gIHZhciBTVEFURSA9IHNoYXJlZEtleSgnc3RhdGUnKTtcbiAgaGlkZGVuS2V5c1tTVEFURV0gPSB0cnVlO1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKGhhc093bihpdCwgU1RBVEUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoaXQsIFNUQVRFLCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gaGFzT3duKGl0LCBTVEFURSkgPyBpdFtTVEFURV0gOiB7fTtcbiAgfTtcbiAgaGFzID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIGhhc093bihpdCwgU1RBVEUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBzZXQsXG4gIGdldDogZ2V0LFxuICBoYXM6IGhhcyxcbiAgZW5mb3JjZTogZW5mb3JjZSxcbiAgZ2V0dGVyRm9yOiBnZXR0ZXJGb3Jcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbi8vIGNoZWNrIG9uIGRlZmF1bHQgQXJyYXkgaXRlcmF0b3Jcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCAhPT0gdW5kZWZpbmVkICYmIChJdGVyYXRvcnMuQXJyYXkgPT09IGl0IHx8IEFycmF5UHJvdG90eXBlW0lURVJBVE9SXSA9PT0gaXQpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbi8vIGBJc0FycmF5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNhcnJheVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LWlzYXJyYXkgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGNsYXNzb2YoYXJndW1lbnQpID09PSAnQXJyYXknO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGtsYXNzID0gY2xhc3NvZihpdCk7XG4gIHJldHVybiBrbGFzcyA9PT0gJ0JpZ0ludDY0QXJyYXknIHx8IGtsYXNzID09PSAnQmlnVWludDY0QXJyYXknO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtSXNIVE1MRERBLWludGVybmFsLXNsb3RcbnZhciBkb2N1bWVudEFsbCA9IHR5cGVvZiBkb2N1bWVudCA9PSAnb2JqZWN0JyAmJiBkb2N1bWVudC5hbGw7XG5cbi8vIGBJc0NhbGxhYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjYWxsYWJsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdHlwZW9mLXVuZGVmaW5lZCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgZG9jdW1lbnRBbGwgPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnRBbGwgIT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbicgfHwgYXJndW1lbnQgPT09IGRvY3VtZW50QWxsO1xufSA6IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09ICdmdW5jdGlvbic7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgaW5zcGVjdFNvdXJjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZScpO1xuXG52YXIgbm9vcCA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBjb25zdHJ1Y3QgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ2NvbnN0cnVjdCcpO1xudmFyIGNvbnN0cnVjdG9yUmVnRXhwID0gL15cXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXFxiLztcbnZhciBleGVjID0gdW5jdXJyeVRoaXMoY29uc3RydWN0b3JSZWdFeHAuZXhlYyk7XG52YXIgSU5DT1JSRUNUX1RPX1NUUklORyA9ICFjb25zdHJ1Y3RvclJlZ0V4cC50ZXN0KG5vb3ApO1xuXG52YXIgaXNDb25zdHJ1Y3Rvck1vZGVybiA9IGZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoYXJndW1lbnQpIHtcbiAgaWYgKCFpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0cnVjdChub29wLCBbXSwgYXJndW1lbnQpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxudmFyIGlzQ29uc3RydWN0b3JMZWdhY3kgPSBmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSB7XG4gIGlmICghaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBmYWxzZTtcbiAgc3dpdGNoIChjbGFzc29mKGFyZ3VtZW50KSkge1xuICAgIGNhc2UgJ0FzeW5jRnVuY3Rpb24nOlxuICAgIGNhc2UgJ0dlbmVyYXRvckZ1bmN0aW9uJzpcbiAgICBjYXNlICdBc3luY0dlbmVyYXRvckZ1bmN0aW9uJzogcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gd2UgY2FuJ3QgY2hlY2sgLnByb3RvdHlwZSBzaW5jZSBjb25zdHJ1Y3RvcnMgcHJvZHVjZWQgYnkgLmJpbmQgaGF2ZW4ndCBpdFxuICAgIC8vIGBGdW5jdGlvbiN0b1N0cmluZ2AgdGhyb3dzIG9uIHNvbWUgYnVpbHQtaXQgZnVuY3Rpb24gaW4gc29tZSBsZWdhY3kgZW5naW5lc1xuICAgIC8vIChmb3IgZXhhbXBsZSwgYERPTVF1YWRgIGFuZCBzaW1pbGFyIGluIEZGNDEtKVxuICAgIHJldHVybiBJTkNPUlJFQ1RfVE9fU1RSSU5HIHx8ICEhZXhlYyhjb25zdHJ1Y3RvclJlZ0V4cCwgaW5zcGVjdFNvdXJjZShhcmd1bWVudCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG5pc0NvbnN0cnVjdG9yTGVnYWN5LnNoYW0gPSB0cnVlO1xuXG4vLyBgSXNDb25zdHJ1Y3RvcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzY29uc3RydWN0b3Jcbm1vZHVsZS5leHBvcnRzID0gIWNvbnN0cnVjdCB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBjYWxsZWQ7XG4gIHJldHVybiBpc0NvbnN0cnVjdG9yTW9kZXJuKGlzQ29uc3RydWN0b3JNb2Rlcm4uY2FsbClcbiAgICB8fCAhaXNDb25zdHJ1Y3Rvck1vZGVybihPYmplY3QpXG4gICAgfHwgIWlzQ29uc3RydWN0b3JNb2Rlcm4oZnVuY3Rpb24gKCkgeyBjYWxsZWQgPSB0cnVlOyB9KVxuICAgIHx8IGNhbGxlZDtcbn0pID8gaXNDb25zdHJ1Y3RvckxlZ2FjeSA6IGlzQ29uc3RydWN0b3JNb2Rlcm47XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciByZXBsYWNlbWVudCA9IC8jfFxcLnByb3RvdHlwZVxcLi87XG5cbnZhciBpc0ZvcmNlZCA9IGZ1bmN0aW9uIChmZWF0dXJlLCBkZXRlY3Rpb24pIHtcbiAgdmFyIHZhbHVlID0gZGF0YVtub3JtYWxpemUoZmVhdHVyZSldO1xuICByZXR1cm4gdmFsdWUgPT09IFBPTFlGSUxMID8gdHJ1ZVxuICAgIDogdmFsdWUgPT09IE5BVElWRSA/IGZhbHNlXG4gICAgOiBpc0NhbGxhYmxlKGRldGVjdGlvbikgPyBmYWlscyhkZXRlY3Rpb24pXG4gICAgOiAhIWRldGVjdGlvbjtcbn07XG5cbnZhciBub3JtYWxpemUgPSBpc0ZvcmNlZC5ub3JtYWxpemUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlcGxhY2VtZW50LCAnLicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgZGF0YSA9IGlzRm9yY2VkLmRhdGEgPSB7fTtcbnZhciBOQVRJVkUgPSBpc0ZvcmNlZC5OQVRJVkUgPSAnTic7XG52YXIgUE9MWUZJTEwgPSBpc0ZvcmNlZC5QT0xZRklMTCA9ICdQJztcblxubW9kdWxlLmV4cG9ydHMgPSBpc0ZvcmNlZDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYElzSW50ZWdyYWxOdW1iZXJgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2ludGVncmFsbnVtYmVyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tbnVtYmVyLWlzaW50ZWdlciAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE51bWJlci5pc0ludGVnZXIgfHwgZnVuY3Rpb24gaXNJbnRlZ2VyKGl0KSB7XG4gIHJldHVybiAhaXNPYmplY3QoaXQpICYmIGlzRmluaXRlKGl0KSAmJiBmbG9vcihpdCkgPT09IGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIHdlIGNhbid0IHVzZSBqdXN0IGBpdCA9PSBudWxsYCBzaW5jZSBvZiBgZG9jdW1lbnQuYWxsYCBzcGVjaWFsIGNhc2Vcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtSXNIVE1MRERBLWludGVybmFsLXNsb3QtYWVjXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPT09IG51bGwgfHwgaXQgPT09IHVuZGVmaW5lZDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiBpc0NhbGxhYmxlKGl0KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiBpc09iamVjdChhcmd1bWVudCkgfHwgYXJndW1lbnQgPT09IG51bGw7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmYWxzZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBNQVRDSCA9IHdlbGxLbm93blN5bWJvbCgnbWF0Y2gnKTtcblxuLy8gYElzUmVnRXhwYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNyZWdleHBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBpc1JlZ0V4cDtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiAoKGlzUmVnRXhwID0gaXRbTUFUQ0hdKSAhPT0gdW5kZWZpbmVkID8gISFpc1JlZ0V4cCA6IGNsYXNzb2YoaXQpID09PSAnUmVnRXhwJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFVTRV9TWU1CT0xfQVNfVUlEID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N5bWJvbCc7XG59IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciAkU3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJyk7XG4gIHJldHVybiBpc0NhbGxhYmxlKCRTeW1ib2wpICYmIGlzUHJvdG90eXBlT2YoJFN5bWJvbC5wcm90b3R5cGUsICRPYmplY3QoaXQpKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUnKS5JdGVyYXRvclByb3RvdHlwZTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEl0ZXJhdG9yQ29uc3RydWN0b3IsIE5BTUUsIG5leHQsIEVOVU1FUkFCTEVfTkVYVCkge1xuICB2YXIgVE9fU1RSSU5HX1RBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgSXRlcmF0b3JDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKCshRU5VTUVSQUJMRV9ORVhULCBuZXh0KSB9KTtcbiAgc2V0VG9TdHJpbmdUYWcoSXRlcmF0b3JDb25zdHJ1Y3RvciwgVE9fU1RSSU5HX1RBRywgZmFsc2UsIHRydWUpO1xuICBJdGVyYXRvcnNbVE9fU1RSSU5HX1RBR10gPSByZXR1cm5UaGlzO1xuICByZXR1cm4gSXRlcmF0b3JDb25zdHJ1Y3Rvcjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBGdW5jdGlvbk5hbWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9yLWNyZWF0ZS1jb25zdHJ1Y3RvcicpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciBJdGVyYXRvcnNDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlJyk7XG5cbnZhciBQUk9QRVJfRlVOQ1RJT05fTkFNRSA9IEZ1bmN0aW9uTmFtZS5QUk9QRVI7XG52YXIgQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUgPSBGdW5jdGlvbk5hbWUuQ09ORklHVVJBQkxFO1xudmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gSXRlcmF0b3JzQ29yZS5JdGVyYXRvclByb3RvdHlwZTtcbnZhciBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gSXRlcmF0b3JzQ29yZS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTO1xudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG52YXIgRU5UUklFUyA9ICdlbnRyaWVzJztcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJdGVyYWJsZSwgTkFNRSwgSXRlcmF0b3JDb25zdHJ1Y3RvciwgbmV4dCwgREVGQVVMVCwgSVNfU0VULCBGT1JDRUQpIHtcbiAgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvcihJdGVyYXRvckNvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcblxuICB2YXIgZ2V0SXRlcmF0aW9uTWV0aG9kID0gZnVuY3Rpb24gKEtJTkQpIHtcbiAgICBpZiAoS0lORCA9PT0gREVGQVVMVCAmJiBkZWZhdWx0SXRlcmF0b3IpIHJldHVybiBkZWZhdWx0SXRlcmF0b3I7XG4gICAgaWYgKCFCVUdHWV9TQUZBUklfSVRFUkFUT1JTICYmIEtJTkQgJiYgS0lORCBpbiBJdGVyYWJsZVByb3RvdHlwZSkgcmV0dXJuIEl0ZXJhYmxlUHJvdG90eXBlW0tJTkRdO1xuXG4gICAgc3dpdGNoIChLSU5EKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBFTlRSSUVTOiByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgIH1cblxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzKTsgfTtcbiAgfTtcblxuICB2YXIgVE9fU1RSSU5HX1RBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIElOQ09SUkVDVF9WQUxVRVNfTkFNRSA9IGZhbHNlO1xuICB2YXIgSXRlcmFibGVQcm90b3R5cGUgPSBJdGVyYWJsZS5wcm90b3R5cGU7XG4gIHZhciBuYXRpdmVJdGVyYXRvciA9IEl0ZXJhYmxlUHJvdG90eXBlW0lURVJBVE9SXVxuICAgIHx8IEl0ZXJhYmxlUHJvdG90eXBlWydAQGl0ZXJhdG9yJ11cbiAgICB8fCBERUZBVUxUICYmIEl0ZXJhYmxlUHJvdG90eXBlW0RFRkFVTFRdO1xuICB2YXIgZGVmYXVsdEl0ZXJhdG9yID0gIUJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgJiYgbmF0aXZlSXRlcmF0b3IgfHwgZ2V0SXRlcmF0aW9uTWV0aG9kKERFRkFVTFQpO1xuICB2YXIgYW55TmF0aXZlSXRlcmF0b3IgPSBOQU1FID09PSAnQXJyYXknID8gSXRlcmFibGVQcm90b3R5cGUuZW50cmllcyB8fCBuYXRpdmVJdGVyYXRvciA6IG5hdGl2ZUl0ZXJhdG9yO1xuICB2YXIgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBtZXRob2RzLCBLRVk7XG5cbiAgLy8gZml4IG5hdGl2ZVxuICBpZiAoYW55TmF0aXZlSXRlcmF0b3IpIHtcbiAgICBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZihhbnlOYXRpdmVJdGVyYXRvci5jYWxsKG5ldyBJdGVyYWJsZSgpKSk7XG4gICAgaWYgKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSAmJiBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgaWYgKCFJU19QVVJFICYmIGdldFByb3RvdHlwZU9mKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSkgIT09IEl0ZXJhdG9yUHJvdG90eXBlKSB7XG4gICAgICAgIGlmIChzZXRQcm90b3R5cGVPZikge1xuICAgICAgICAgIHNldFByb3RvdHlwZU9mKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSXRlcmF0b3JQcm90b3R5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKCFpc0NhbGxhYmxlKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0pKSB7XG4gICAgICAgICAgZGVmaW5lQnVpbHRJbihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBUT19TVFJJTkdfVEFHLCB0cnVlLCB0cnVlKTtcbiAgICAgIGlmIChJU19QVVJFKSBJdGVyYXRvcnNbVE9fU1RSSU5HX1RBR10gPSByZXR1cm5UaGlzO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZpeCBBcnJheS5wcm90b3R5cGUueyB2YWx1ZXMsIEBAaXRlcmF0b3IgfS5uYW1lIGluIFY4IC8gRkZcbiAgaWYgKFBST1BFUl9GVU5DVElPTl9OQU1FICYmIERFRkFVTFQgPT09IFZBTFVFUyAmJiBuYXRpdmVJdGVyYXRvciAmJiBuYXRpdmVJdGVyYXRvci5uYW1lICE9PSBWQUxVRVMpIHtcbiAgICBpZiAoIUlTX1BVUkUgJiYgQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYWJsZVByb3RvdHlwZSwgJ25hbWUnLCBWQUxVRVMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgPSB0cnVlO1xuICAgICAgZGVmYXVsdEl0ZXJhdG9yID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gY2FsbChuYXRpdmVJdGVyYXRvciwgdGhpcyk7IH07XG4gICAgfVxuICB9XG5cbiAgLy8gZXhwb3J0IGFkZGl0aW9uYWwgbWV0aG9kc1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IGdldEl0ZXJhdGlvbk1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gZGVmYXVsdEl0ZXJhdG9yIDogZ2V0SXRlcmF0aW9uTWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogZ2V0SXRlcmF0aW9uTWV0aG9kKEVOVFJJRVMpXG4gICAgfTtcbiAgICBpZiAoRk9SQ0VEKSBmb3IgKEtFWSBpbiBtZXRob2RzKSB7XG4gICAgICBpZiAoQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfHwgIShLRVkgaW4gSXRlcmFibGVQcm90b3R5cGUpKSB7XG4gICAgICAgIGRlZmluZUJ1aWx0SW4oSXRlcmFibGVQcm90b3R5cGUsIEtFWSwgbWV0aG9kc1tLRVldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgJCh7IHRhcmdldDogTkFNRSwgcHJvdG86IHRydWUsIGZvcmNlZDogQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfSwgbWV0aG9kcyk7XG4gIH1cblxuICAvLyBkZWZpbmUgaXRlcmF0b3JcbiAgaWYgKCghSVNfUFVSRSB8fCBGT1JDRUQpICYmIEl0ZXJhYmxlUHJvdG90eXBlW0lURVJBVE9SXSAhPT0gZGVmYXVsdEl0ZXJhdG9yKSB7XG4gICAgZGVmaW5lQnVpbHRJbihJdGVyYWJsZVByb3RvdHlwZSwgSVRFUkFUT1IsIGRlZmF1bHRJdGVyYXRvciwgeyBuYW1lOiBERUZBVUxUIH0pO1xuICB9XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IGRlZmF1bHRJdGVyYXRvcjtcblxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gZmFsc2U7XG5cbi8vIGAlSXRlcmF0b3JQcm90b3R5cGUlYCBvYmplY3Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJWl0ZXJhdG9ycHJvdG90eXBlJS1vYmplY3RcbnZhciBJdGVyYXRvclByb3RvdHlwZSwgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBlcy9uby1hcnJheS1wcm90b3R5cGUta2V5cyAtLSBzYWZlICovXG5pZiAoW10ua2V5cykge1xuICBhcnJheUl0ZXJhdG9yID0gW10ua2V5cygpO1xuICAvLyBTYWZhcmkgOCBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbiAgaWYgKCEoJ25leHQnIGluIGFycmF5SXRlcmF0b3IpKSBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gdHJ1ZTtcbiAgZWxzZSB7XG4gICAgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoZ2V0UHJvdG90eXBlT2YoYXJyYXlJdGVyYXRvcikpO1xuICAgIGlmIChQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIEl0ZXJhdG9yUHJvdG90eXBlID0gUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG59XG5cbnZhciBORVdfSVRFUkFUT1JfUFJPVE9UWVBFID0gIWlzT2JqZWN0KEl0ZXJhdG9yUHJvdG90eXBlKSB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciB0ZXN0ID0ge307XG4gIC8vIEZGNDQtIGxlZ2FjeSBpdGVyYXRvcnMgY2FzZVxuICByZXR1cm4gSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdLmNhbGwodGVzdCkgIT09IHRlc3Q7XG59KTtcblxuaWYgKE5FV19JVEVSQVRPUl9QUk9UT1RZUEUpIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG5lbHNlIGlmIChJU19QVVJFKSBJdGVyYXRvclByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7XG5cbi8vIGAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0laXRlcmF0b3Jwcm90b3R5cGUlLUBAaXRlcmF0b3JcbmlmICghaXNDYWxsYWJsZShJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0pKSB7XG4gIGRlZmluZUJ1aWx0SW4oSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgSXRlcmF0b3JQcm90b3R5cGU6IEl0ZXJhdG9yUHJvdG90eXBlLFxuICBCVUdHWV9TQUZBUklfSVRFUkFUT1JTOiBCVUdHWV9TQUZBUklfSVRFUkFUT1JTXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcblxuLy8gYExlbmd0aE9mQXJyYXlMaWtlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbGVuZ3Rob2ZhcnJheWxpa2Vcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gdG9MZW5ndGgob2JqLmxlbmd0aCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1uYW1lJykuQ09ORklHVVJBQkxFO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgJFN0cmluZyA9IFN0cmluZztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBqb2luID0gdW5jdXJyeVRoaXMoW10uam9pbik7XG5cbnZhciBDT05GSUdVUkFCTEVfTEVOR1RIID0gREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSwgJ2xlbmd0aCcsIHsgdmFsdWU6IDggfSkubGVuZ3RoICE9PSA4O1xufSk7XG5cbnZhciBURU1QTEFURSA9IFN0cmluZyhTdHJpbmcpLnNwbGl0KCdTdHJpbmcnKTtcblxudmFyIG1ha2VCdWlsdEluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsdWUsIG5hbWUsIG9wdGlvbnMpIHtcbiAgaWYgKHN0cmluZ1NsaWNlKCRTdHJpbmcobmFtZSksIDAsIDcpID09PSAnU3ltYm9sKCcpIHtcbiAgICBuYW1lID0gJ1snICsgcmVwbGFjZSgkU3RyaW5nKG5hbWUpLCAvXlN5bWJvbFxcKChbXildKilcXCkuKiQvLCAnJDEnKSArICddJztcbiAgfVxuICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmdldHRlcikgbmFtZSA9ICdnZXQgJyArIG5hbWU7XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2V0dGVyKSBuYW1lID0gJ3NldCAnICsgbmFtZTtcbiAgaWYgKCFoYXNPd24odmFsdWUsICduYW1lJykgfHwgKENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FICYmIHZhbHVlLm5hbWUgIT09IG5hbWUpKSB7XG4gICAgaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ25hbWUnLCB7IHZhbHVlOiBuYW1lLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgZWxzZSB2YWx1ZS5uYW1lID0gbmFtZTtcbiAgfVxuICBpZiAoQ09ORklHVVJBQkxFX0xFTkdUSCAmJiBvcHRpb25zICYmIGhhc093bihvcHRpb25zLCAnYXJpdHknKSAmJiB2YWx1ZS5sZW5ndGggIT09IG9wdGlvbnMuYXJpdHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ2xlbmd0aCcsIHsgdmFsdWU6IG9wdGlvbnMuYXJpdHkgfSk7XG4gIH1cbiAgdHJ5IHtcbiAgICBpZiAob3B0aW9ucyAmJiBoYXNPd24ob3B0aW9ucywgJ2NvbnN0cnVjdG9yJykgJiYgb3B0aW9ucy5jb25zdHJ1Y3Rvcikge1xuICAgICAgaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgJ3Byb3RvdHlwZScsIHsgd3JpdGFibGU6IGZhbHNlIH0pO1xuICAgIC8vIGluIFY4IH4gQ2hyb21lIDUzLCBwcm90b3R5cGVzIG9mIHNvbWUgbWV0aG9kcywgbGlrZSBgQXJyYXkucHJvdG90eXBlLnZhbHVlc2AsIGFyZSBub24td3JpdGFibGVcbiAgICB9IGVsc2UgaWYgKHZhbHVlLnByb3RvdHlwZSkgdmFsdWUucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHZhciBzdGF0ZSA9IGVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKTtcbiAgaWYgKCFoYXNPd24oc3RhdGUsICdzb3VyY2UnKSkge1xuICAgIHN0YXRlLnNvdXJjZSA9IGpvaW4oVEVNUExBVEUsIHR5cGVvZiBuYW1lID09ICdzdHJpbmcnID8gbmFtZSA6ICcnKTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuXG4vLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRlbmQtbmF0aXZlIC0tIHJlcXVpcmVkXG5GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgPSBtYWtlQnVpbHRJbihmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuIGlzQ2FsbGFibGUodGhpcykgJiYgZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5zb3VyY2UgfHwgaW5zcGVjdFNvdXJjZSh0aGlzKTtcbn0sICd0b1N0cmluZycpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHNpZ24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC1zaWduJyk7XG5cbnZhciBhYnMgPSBNYXRoLmFicztcblxudmFyIEVQU0lMT04gPSAyLjIyMDQ0NjA0OTI1MDMxM2UtMTY7IC8vIE51bWJlci5FUFNJTE9OXG52YXIgSU5WRVJTRV9FUFNJTE9OID0gMSAvIEVQU0lMT047XG5cbnZhciByb3VuZFRpZXNUb0V2ZW4gPSBmdW5jdGlvbiAobikge1xuICByZXR1cm4gbiArIElOVkVSU0VfRVBTSUxPTiAtIElOVkVSU0VfRVBTSUxPTjtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHgsIEZMT0FUX0VQU0lMT04sIEZMT0FUX01BWF9WQUxVRSwgRkxPQVRfTUlOX1ZBTFVFKSB7XG4gIHZhciBuID0gK3g7XG4gIHZhciBhYnNvbHV0ZSA9IGFicyhuKTtcbiAgdmFyIHMgPSBzaWduKG4pO1xuICBpZiAoYWJzb2x1dGUgPCBGTE9BVF9NSU5fVkFMVUUpIHJldHVybiBzICogcm91bmRUaWVzVG9FdmVuKGFic29sdXRlIC8gRkxPQVRfTUlOX1ZBTFVFIC8gRkxPQVRfRVBTSUxPTikgKiBGTE9BVF9NSU5fVkFMVUUgKiBGTE9BVF9FUFNJTE9OO1xuICB2YXIgYSA9ICgxICsgRkxPQVRfRVBTSUxPTiAvIEVQU0lMT04pICogYWJzb2x1dGU7XG4gIHZhciByZXN1bHQgPSBhIC0gKGEgLSBhYnNvbHV0ZSk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gIGlmIChyZXN1bHQgPiBGTE9BVF9NQVhfVkFMVUUgfHwgcmVzdWx0ICE9PSByZXN1bHQpIHJldHVybiBzICogSW5maW5pdHk7XG4gIHJldHVybiBzICogcmVzdWx0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmbG9hdFJvdW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtZmxvYXQtcm91bmQnKTtcblxudmFyIEZMT0FUMzJfRVBTSUxPTiA9IDEuMTkyMDkyODk1NTA3ODEyNWUtNzsgLy8gMiAqKiAtMjM7XG52YXIgRkxPQVQzMl9NQVhfVkFMVUUgPSAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4OyAvLyAyICoqIDEyOCAtIDIgKiogMTA0XG52YXIgRkxPQVQzMl9NSU5fVkFMVUUgPSAxLjE3NTQ5NDM1MDgyMjI4NzVlLTM4OyAvLyAyICoqIC0xMjY7XG5cbi8vIGBNYXRoLmZyb3VuZGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW1hdGguZnJvdW5kXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tbWF0aC1mcm91bmQgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBNYXRoLmZyb3VuZCB8fCBmdW5jdGlvbiBmcm91bmQoeCkge1xuICByZXR1cm4gZmxvYXRSb3VuZCh4LCBGTE9BVDMyX0VQU0lMT04sIEZMT0FUMzJfTUFYX1ZBTFVFLCBGTE9BVDMyX01JTl9WQUxVRSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gYE1hdGguc2lnbmAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW1hdGguc2lnblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW1hdGgtc2lnbiAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGguc2lnbiB8fCBmdW5jdGlvbiBzaWduKHgpIHtcbiAgdmFyIG4gPSAreDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgcmV0dXJuIG4gPT09IDAgfHwgbiAhPT0gbiA/IG4gOiBuIDwgMCA/IC0xIDogMTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbi8vIGBNYXRoLnRydW5jYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbWF0aC50cnVuY1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW1hdGgtdHJ1bmMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBNYXRoLnRydW5jIHx8IGZ1bmN0aW9uIHRydW5jKHgpIHtcbiAgdmFyIG4gPSAreDtcbiAgcmV0dXJuIChuID4gMCA/IGZsb29yIDogY2VpbCkobik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCwgJGRlZmF1bHQpIHtcbiAgcmV0dXJuIGFyZ3VtZW50ID09PSB1bmRlZmluZWQgPyBhcmd1bWVudHMubGVuZ3RoIDwgMiA/ICcnIDogJGRlZmF1bHQgOiB0b1N0cmluZyhhcmd1bWVudCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZ2xvYmFsIEFjdGl2ZVhPYmplY3QgLS0gb2xkIElFLCBXU0ggKi9cbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9odG1sJyk7XG52YXIgZG9jdW1lbnRDcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcblxudmFyIEdUID0gJz4nO1xudmFyIExUID0gJzwnO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIFNDUklQVCA9ICdzY3JpcHQnO1xudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xuXG52YXIgRW1wdHlDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcblxudmFyIHNjcmlwdFRhZyA9IGZ1bmN0aW9uIChjb250ZW50KSB7XG4gIHJldHVybiBMVCArIFNDUklQVCArIEdUICsgY29udGVudCArIExUICsgJy8nICsgU0NSSVBUICsgR1Q7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgQWN0aXZlWCBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIE51bGxQcm90b09iamVjdFZpYUFjdGl2ZVggPSBmdW5jdGlvbiAoYWN0aXZlWERvY3VtZW50KSB7XG4gIGFjdGl2ZVhEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJycpKTtcbiAgYWN0aXZlWERvY3VtZW50LmNsb3NlKCk7XG4gIHZhciB0ZW1wID0gYWN0aXZlWERvY3VtZW50LnBhcmVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWFzc2lnbm1lbnQgLS0gYXZvaWQgbWVtb3J5IGxlYWtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdodG1sZmlsZScpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBpZ25vcmUgKi8gfVxuICBOdWxsUHJvdG9PYmplY3QgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCdcbiAgICA/IGRvY3VtZW50LmRvbWFpbiAmJiBhY3RpdmVYRG9jdW1lbnRcbiAgICAgID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIC8vIG9sZCBJRVxuICAgICAgOiBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUoKVxuICAgIDogTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpOyAvLyBXU0hcbiAgdmFyIGxlbmd0aCA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSBkZWxldGUgTnVsbFByb3RvT2JqZWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbbGVuZ3RoXV07XG4gIHJldHVybiBOdWxsUHJvdG9PYmplY3QoKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcblxuLy8gYE9iamVjdC5jcmVhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWNyZWF0ZSAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHlDb25zdHJ1Y3RvcigpO1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gTnVsbFByb3RvT2JqZWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlLmYocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0aWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnRpZXMgLS0gc2FmZVxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgJiYgIVY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBwcm9wcyA9IHRvSW5kZXhlZE9iamVjdChQcm9wZXJ0aWVzKTtcbiAgdmFyIGtleXMgPSBvYmplY3RLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsZW5ndGggPiBpbmRleCkgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLCBrZXkgPSBrZXlzW2luZGV4KytdLCBwcm9wc1trZXldKTtcbiAgcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIEVOVU1FUkFCTEUgPSAnZW51bWVyYWJsZSc7XG52YXIgQ09ORklHVVJBQkxFID0gJ2NvbmZpZ3VyYWJsZSc7XG52YXIgV1JJVEFCTEUgPSAnd3JpdGFibGUnO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAodHlwZW9mIE8gPT09ICdmdW5jdGlvbicgJiYgUCA9PT0gJ3Byb3RvdHlwZScgJiYgJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzICYmIFdSSVRBQkxFIGluIEF0dHJpYnV0ZXMgJiYgIUF0dHJpYnV0ZXNbV1JJVEFCTEVdKSB7XG4gICAgdmFyIGN1cnJlbnQgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnRbV1JJVEFCTEVdKSB7XG4gICAgICBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgICAgIEF0dHJpYnV0ZXMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogQ09ORklHVVJBQkxFIGluIEF0dHJpYnV0ZXMgPyBBdHRyaWJ1dGVzW0NPTkZJR1VSQUJMRV0gOiBjdXJyZW50W0NPTkZJR1VSQUJMRV0sXG4gICAgICAgIGVudW1lcmFibGU6IEVOVU1FUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbRU5VTUVSQUJMRV0gOiBjdXJyZW50W0VOVU1FUkFCTEVdLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICB9IHJldHVybiAkZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG59IDogJGRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBuZXcgJFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXknKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXNPd24oTywgUCkpIHJldHVybiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoIWNhbGwocHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZiwgTywgUCksIE9bUF0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbnZhciBoaWRkZW5LZXlzID0gZW51bUJ1Z0tleXMuY29uY2F0KCdsZW5ndGgnLCAncHJvdG90eXBlJyk7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eW5hbWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5bmFtZXMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgaGlkZGVuS2V5cyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgT2JqZWN0UHJvdG90eXBlID0gJE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIGBPYmplY3QuZ2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0cHJvdG90eXBlb2Zcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0cHJvdG90eXBlb2YgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBDT1JSRUNUX1BST1RPVFlQRV9HRVRURVIgPyAkT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gKE8pIHtcbiAgdmFyIG9iamVjdCA9IHRvT2JqZWN0KE8pO1xuICBpZiAoaGFzT3duKG9iamVjdCwgSUVfUFJPVE8pKSByZXR1cm4gb2JqZWN0W0lFX1BST1RPXTtcbiAgdmFyIGNvbnN0cnVjdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICBpZiAoaXNDYWxsYWJsZShjb25zdHJ1Y3RvcikgJiYgb2JqZWN0IGluc3RhbmNlb2YgY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBvYmplY3QgaW5zdGFuY2VvZiAkT2JqZWN0ID8gT2JqZWN0UHJvdG90eXBlIDogbnVsbDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoe30uaXNQcm90b3R5cGVPZik7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBpbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5kZXhPZjtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgbmFtZXMpIHtcbiAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3Qob2JqZWN0KTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBrZXk7XG4gIGZvciAoa2V5IGluIE8pICFoYXNPd24oaGlkZGVuS2V5cywga2V5KSAmJiBoYXNPd24oTywga2V5KSAmJiBwdXNoKHJlc3VsdCwga2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhc093bihPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5pbmRleE9mKHJlc3VsdCwga2V5KSB8fCBwdXNoKHJlc3VsdCwga2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIGBPYmplY3Qua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5rZXlzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWtleXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICEkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAtLSBzYWZlICovXG52YXIgdW5jdXJyeVRoaXNBY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtYWNjZXNzb3InKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGFQb3NzaWJsZVByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLXBvc3NpYmxlLXByb3RvdHlwZScpO1xuXG4vLyBgT2JqZWN0LnNldFByb3RvdHlwZU9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnNldHByb3RvdHlwZW9mXG4vLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3Qtc2V0cHJvdG90eXBlb2YgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgKCdfX3Byb3RvX18nIGluIHt9ID8gZnVuY3Rpb24gKCkge1xuICB2YXIgQ09SUkVDVF9TRVRURVIgPSBmYWxzZTtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgdmFyIHNldHRlcjtcbiAgdHJ5IHtcbiAgICBzZXR0ZXIgPSB1bmN1cnJ5VGhpc0FjY2Vzc29yKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nLCAnc2V0Jyk7XG4gICAgc2V0dGVyKHRlc3QsIFtdKTtcbiAgICBDT1JSRUNUX1NFVFRFUiA9IHRlc3QgaW5zdGFuY2VvZiBBcnJheTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHtcbiAgICByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKE8pO1xuICAgIGFQb3NzaWJsZVByb3RvdHlwZShwcm90byk7XG4gICAgaWYgKCFpc09iamVjdChPKSkgcmV0dXJuIE87XG4gICAgaWYgKENPUlJFQ1RfU0VUVEVSKSBzZXR0ZXIoTywgcHJvdG8pO1xuICAgIGVsc2UgTy5fX3Byb3RvX18gPSBwcm90bztcbiAgICByZXR1cm4gTztcbiAgfTtcbn0oKSA6IHVuZGVmaW5lZCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8ge30udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgT3JkaW5hcnlUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAocHJlZiA9PT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKGlzQ2FsbGFibGUoZm4gPSBpbnB1dC52YWx1ZU9mKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHByZWYgIT09ICdzdHJpbmcnICYmIGlzQ2FsbGFibGUoZm4gPSBpbnB1dC50b1N0cmluZykgJiYgIWlzT2JqZWN0KHZhbCA9IGNhbGwoZm4sIGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG52YXIgY29uY2F0ID0gdW5jdXJyeVRoaXMoW10uY29uY2F0KTtcblxuLy8gYWxsIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBub24tZW51bWVyYWJsZSBhbmQgc3ltYm9sc1xubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ293bktleXMnKSB8fCBmdW5jdGlvbiBvd25LZXlzKGl0KSB7XG4gIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZS5mKGFuT2JqZWN0KGl0KSk7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZjtcbiAgcmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9scyA/IGNvbmNhdChrZXlzLCBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpKSA6IGtleXM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnbG9iYWxUaGlzO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUYXJnZXQsIFNvdXJjZSwga2V5KSB7XG4gIGtleSBpbiBUYXJnZXQgfHwgZGVmaW5lUHJvcGVydHkoVGFyZ2V0LCBrZXksIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBTb3VyY2Vba2V5XTsgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uIChpdCkgeyBTb3VyY2Vba2V5XSA9IGl0OyB9XG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZWdFeHBFeGVjYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwZXhlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoUiwgUykge1xuICB2YXIgZXhlYyA9IFIuZXhlYztcbiAgaWYgKGlzQ2FsbGFibGUoZXhlYykpIHtcbiAgICB2YXIgcmVzdWx0ID0gY2FsbChleGVjLCBSLCBTKTtcbiAgICBpZiAocmVzdWx0ICE9PSBudWxsKSBhbk9iamVjdChyZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKGNsYXNzb2YoUikgPT09ICdSZWdFeHAnKSByZXR1cm4gY2FsbChyZWdleHBFeGVjLCBSLCBTKTtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJ1JlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXInKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSByZWdleHAvbm8tZW1wdHktY2FwdHVyaW5nLWdyb3VwLCByZWdleHAvbm8tZW1wdHktZ3JvdXAsIHJlZ2V4cC9uby1sYXp5LWVuZHMgLS0gdGVzdGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVnZXhwL25vLXVzZWxlc3MtcXVhbnRpZmllciAtLSB0ZXN0aW5nICovXG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgcmVnZXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWZsYWdzJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJykuZ2V0O1xudmFyIFVOU1VQUE9SVEVEX0RPVF9BTEwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLWRvdC1hbGwnKTtcbnZhciBVTlNVUFBPUlRFRF9OQ0cgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLW5jZycpO1xuXG52YXIgbmF0aXZlUmVwbGFjZSA9IHNoYXJlZCgnbmF0aXZlLXN0cmluZy1yZXBsYWNlJywgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTtcbnZhciBuYXRpdmVFeGVjID0gUmVnRXhwLnByb3RvdHlwZS5leGVjO1xudmFyIHBhdGNoZWRFeGVjID0gbmF0aXZlRXhlYztcbnZhciBjaGFyQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQXQpO1xudmFyIGluZGV4T2YgPSB1bmN1cnJ5VGhpcygnJy5pbmRleE9mKTtcbnZhciByZXBsYWNlID0gdW5jdXJyeVRoaXMoJycucmVwbGFjZSk7XG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG5cbnZhciBVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgPSAoZnVuY3Rpb24gKCkge1xuICB2YXIgcmUxID0gL2EvO1xuICB2YXIgcmUyID0gL2IqL2c7XG4gIGNhbGwobmF0aXZlRXhlYywgcmUxLCAnYScpO1xuICBjYWxsKG5hdGl2ZUV4ZWMsIHJlMiwgJ2EnKTtcbiAgcmV0dXJuIHJlMS5sYXN0SW5kZXggIT09IDAgfHwgcmUyLmxhc3RJbmRleCAhPT0gMDtcbn0pKCk7XG5cbnZhciBVTlNVUFBPUlRFRF9ZID0gc3RpY2t5SGVscGVycy5CUk9LRU5fQ0FSRVQ7XG5cbi8vIG5vbnBhcnRpY2lwYXRpbmcgY2FwdHVyaW5nIGdyb3VwLCBjb3BpZWQgZnJvbSBlczUtc2hpbSdzIFN0cmluZyNzcGxpdCBwYXRjaC5cbnZhciBOUENHX0lOQ0xVREVEID0gLygpPz8vLmV4ZWMoJycpWzFdICE9PSB1bmRlZmluZWQ7XG5cbnZhciBQQVRDSCA9IFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyB8fCBOUENHX0lOQ0xVREVEIHx8IFVOU1VQUE9SVEVEX1kgfHwgVU5TVVBQT1JURURfRE9UX0FMTCB8fCBVTlNVUFBPUlRFRF9OQ0c7XG5cbmlmIChQQVRDSCkge1xuICBwYXRjaGVkRXhlYyA9IGZ1bmN0aW9uIGV4ZWMoc3RyaW5nKSB7XG4gICAgdmFyIHJlID0gdGhpcztcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHJlKTtcbiAgICB2YXIgc3RyID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICB2YXIgcmF3ID0gc3RhdGUucmF3O1xuICAgIHZhciByZXN1bHQsIHJlQ29weSwgbGFzdEluZGV4LCBtYXRjaCwgaSwgb2JqZWN0LCBncm91cDtcblxuICAgIGlmIChyYXcpIHtcbiAgICAgIHJhdy5sYXN0SW5kZXggPSByZS5sYXN0SW5kZXg7XG4gICAgICByZXN1bHQgPSBjYWxsKHBhdGNoZWRFeGVjLCByYXcsIHN0cik7XG4gICAgICByZS5sYXN0SW5kZXggPSByYXcubGFzdEluZGV4O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICB2YXIgZ3JvdXBzID0gc3RhdGUuZ3JvdXBzO1xuICAgIHZhciBzdGlja3kgPSBVTlNVUFBPUlRFRF9ZICYmIHJlLnN0aWNreTtcbiAgICB2YXIgZmxhZ3MgPSBjYWxsKHJlZ2V4cEZsYWdzLCByZSk7XG4gICAgdmFyIHNvdXJjZSA9IHJlLnNvdXJjZTtcbiAgICB2YXIgY2hhcnNBZGRlZCA9IDA7XG4gICAgdmFyIHN0ckNvcHkgPSBzdHI7XG5cbiAgICBpZiAoc3RpY2t5KSB7XG4gICAgICBmbGFncyA9IHJlcGxhY2UoZmxhZ3MsICd5JywgJycpO1xuICAgICAgaWYgKGluZGV4T2YoZmxhZ3MsICdnJykgPT09IC0xKSB7XG4gICAgICAgIGZsYWdzICs9ICdnJztcbiAgICAgIH1cblxuICAgICAgc3RyQ29weSA9IHN0cmluZ1NsaWNlKHN0ciwgcmUubGFzdEluZGV4KTtcbiAgICAgIC8vIFN1cHBvcnQgYW5jaG9yZWQgc3RpY2t5IGJlaGF2aW9yLlxuICAgICAgaWYgKHJlLmxhc3RJbmRleCA+IDAgJiYgKCFyZS5tdWx0aWxpbmUgfHwgcmUubXVsdGlsaW5lICYmIGNoYXJBdChzdHIsIHJlLmxhc3RJbmRleCAtIDEpICE9PSAnXFxuJykpIHtcbiAgICAgICAgc291cmNlID0gJyg/OiAnICsgc291cmNlICsgJyknO1xuICAgICAgICBzdHJDb3B5ID0gJyAnICsgc3RyQ29weTtcbiAgICAgICAgY2hhcnNBZGRlZCsrO1xuICAgICAgfVxuICAgICAgLy8gXig/ICsgcnggKyApIGlzIG5lZWRlZCwgaW4gY29tYmluYXRpb24gd2l0aCBzb21lIHN0ciBzbGljaW5nLCB0b1xuICAgICAgLy8gc2ltdWxhdGUgdGhlICd5JyBmbGFnLlxuICAgICAgcmVDb3B5ID0gbmV3IFJlZ0V4cCgnXig/OicgKyBzb3VyY2UgKyAnKScsIGZsYWdzKTtcbiAgICB9XG5cbiAgICBpZiAoTlBDR19JTkNMVURFRCkge1xuICAgICAgcmVDb3B5ID0gbmV3IFJlZ0V4cCgnXicgKyBzb3VyY2UgKyAnJCg/IVxcXFxzKScsIGZsYWdzKTtcbiAgICB9XG4gICAgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORykgbGFzdEluZGV4ID0gcmUubGFzdEluZGV4O1xuXG4gICAgbWF0Y2ggPSBjYWxsKG5hdGl2ZUV4ZWMsIHN0aWNreSA/IHJlQ29weSA6IHJlLCBzdHJDb3B5KTtcblxuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBtYXRjaC5pbnB1dCA9IHN0cmluZ1NsaWNlKG1hdGNoLmlucHV0LCBjaGFyc0FkZGVkKTtcbiAgICAgICAgbWF0Y2hbMF0gPSBzdHJpbmdTbGljZShtYXRjaFswXSwgY2hhcnNBZGRlZCk7XG4gICAgICAgIG1hdGNoLmluZGV4ID0gcmUubGFzdEluZGV4O1xuICAgICAgICByZS5sYXN0SW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgfSBlbHNlIHJlLmxhc3RJbmRleCA9IDA7XG4gICAgfSBlbHNlIGlmIChVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgJiYgbWF0Y2gpIHtcbiAgICAgIHJlLmxhc3RJbmRleCA9IHJlLmdsb2JhbCA/IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoIDogbGFzdEluZGV4O1xuICAgIH1cbiAgICBpZiAoTlBDR19JTkNMVURFRCAmJiBtYXRjaCAmJiBtYXRjaC5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBGaXggYnJvd3NlcnMgd2hvc2UgYGV4ZWNgIG1ldGhvZHMgZG9uJ3QgY29uc2lzdGVudGx5IHJldHVybiBgdW5kZWZpbmVkYFxuICAgICAgLy8gZm9yIE5QQ0csIGxpa2UgSUU4LiBOT1RFOiBUaGlzIGRvZXNuJ3Qgd29yayBmb3IgLyguPyk/L1xuICAgICAgY2FsbChuYXRpdmVSZXBsYWNlLCBtYXRjaFswXSwgcmVDb3B5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSA9PT0gdW5kZWZpbmVkKSBtYXRjaFtpXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG1hdGNoICYmIGdyb3Vwcykge1xuICAgICAgbWF0Y2guZ3JvdXBzID0gb2JqZWN0ID0gY3JlYXRlKG51bGwpO1xuICAgICAgZm9yIChpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBncm91cCA9IGdyb3Vwc1tpXTtcbiAgICAgICAgb2JqZWN0W2dyb3VwWzBdXSA9IG1hdGNoW2dyb3VwWzFdXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0Y2hlZEV4ZWM7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbi8vIGBSZWdFeHAucHJvdG90eXBlLmZsYWdzYCBnZXR0ZXIgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0LXJlZ2V4cC5wcm90b3R5cGUuZmxhZ3Ncbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IGFuT2JqZWN0KHRoaXMpO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIGlmICh0aGF0Lmhhc0luZGljZXMpIHJlc3VsdCArPSAnZCc7XG4gIGlmICh0aGF0Lmdsb2JhbCkgcmVzdWx0ICs9ICdnJztcbiAgaWYgKHRoYXQuaWdub3JlQ2FzZSkgcmVzdWx0ICs9ICdpJztcbiAgaWYgKHRoYXQubXVsdGlsaW5lKSByZXN1bHQgKz0gJ20nO1xuICBpZiAodGhhdC5kb3RBbGwpIHJlc3VsdCArPSAncyc7XG4gIGlmICh0aGF0LnVuaWNvZGUpIHJlc3VsdCArPSAndSc7XG4gIGlmICh0aGF0LnVuaWNvZGVTZXRzKSByZXN1bHQgKz0gJ3YnO1xuICBpZiAodGhhdC5zdGlja3kpIHJlc3VsdCArPSAneSc7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgcmVnRXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWZsYWdzJyk7XG5cbnZhciBSZWdFeHBQcm90b3R5cGUgPSBSZWdFeHAucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChSKSB7XG4gIHZhciBmbGFncyA9IFIuZmxhZ3M7XG4gIHJldHVybiBmbGFncyA9PT0gdW5kZWZpbmVkICYmICEoJ2ZsYWdzJyBpbiBSZWdFeHBQcm90b3R5cGUpICYmICFoYXNPd24oUiwgJ2ZsYWdzJykgJiYgaXNQcm90b3R5cGVPZihSZWdFeHBQcm90b3R5cGUsIFIpXG4gICAgPyBjYWxsKHJlZ0V4cEZsYWdzLCBSKSA6IGZsYWdzO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxuLy8gYmFiZWwtbWluaWZ5IGFuZCBDbG9zdXJlIENvbXBpbGVyIHRyYW5zcGlsZXMgUmVnRXhwKCdhJywgJ3knKSAtPiAvYS95IGFuZCBpdCBjYXVzZXMgU3ludGF4RXJyb3JcbnZhciAkUmVnRXhwID0gZ2xvYmFsVGhpcy5SZWdFeHA7XG5cbnZhciBVTlNVUFBPUlRFRF9ZID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgcmUgPSAkUmVnRXhwKCdhJywgJ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ2FiY2QnKSAhPT0gbnVsbDtcbn0pO1xuXG4vLyBVQyBCcm93c2VyIGJ1Z1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzEwMDhcbnZhciBNSVNTRURfU1RJQ0tZID0gVU5TVVBQT1JURURfWSB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAhJFJlZ0V4cCgnYScsICd5Jykuc3RpY2t5O1xufSk7XG5cbnZhciBCUk9LRU5fQ0FSRVQgPSBVTlNVUFBPUlRFRF9ZIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNjg3XG4gIHZhciByZSA9ICRSZWdFeHAoJ15yJywgJ2d5Jyk7XG4gIHJlLmxhc3RJbmRleCA9IDI7XG4gIHJldHVybiByZS5leGVjKCdzdHInKSAhPT0gbnVsbDtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgQlJPS0VOX0NBUkVUOiBCUk9LRU5fQ0FSRVQsXG4gIE1JU1NFRF9TVElDS1k6IE1JU1NFRF9TVElDS1ksXG4gIFVOU1VQUE9SVEVEX1k6IFVOU1VQUE9SVEVEX1lcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbi8vIGJhYmVsLW1pbmlmeSBhbmQgQ2xvc3VyZSBDb21waWxlciB0cmFuc3BpbGVzIFJlZ0V4cCgnLicsICdzJykgLT4gLy4vcyBhbmQgaXQgY2F1c2VzIFN5bnRheEVycm9yXG52YXIgJFJlZ0V4cCA9IGdsb2JhbFRoaXMuUmVnRXhwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gJFJlZ0V4cCgnLicsICdzJyk7XG4gIHJldHVybiAhKHJlLmRvdEFsbCAmJiByZS50ZXN0KCdcXG4nKSAmJiByZS5mbGFncyA9PT0gJ3MnKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG4vLyBiYWJlbC1taW5pZnkgYW5kIENsb3N1cmUgQ29tcGlsZXIgdHJhbnNwaWxlcyBSZWdFeHAoJyg/PGE+YiknLCAnZycpIC0+IC8oPzxhPmIpL2cgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyICRSZWdFeHAgPSBnbG9iYWxUaGlzLlJlZ0V4cDtcblxubW9kdWxlLmV4cG9ydHMgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciByZSA9ICRSZWdFeHAoJyg/PGE+YiknLCAnZycpO1xuICByZXR1cm4gcmUuZXhlYygnYicpLmdyb3Vwcy5hICE9PSAnYicgfHxcbiAgICAnYicucmVwbGFjZShyZSwgJyQ8YT5jJykgIT09ICdiYyc7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc051bGxPclVuZGVmaW5lZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1udWxsLW9yLXVuZGVmaW5lZCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYFJlcXVpcmVPYmplY3RDb2VyY2libGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZXF1aXJlb2JqZWN0Y29lcmNpYmxlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoaXQpKSB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3NvcicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENPTlNUUlVDVE9SX05BTUUpIHtcbiAgdmFyIENvbnN0cnVjdG9yID0gZ2V0QnVpbHRJbihDT05TVFJVQ1RPUl9OQU1FKTtcblxuICBpZiAoREVTQ1JJUFRPUlMgJiYgQ29uc3RydWN0b3IgJiYgIUNvbnN0cnVjdG9yW1NQRUNJRVNdKSB7XG4gICAgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKENvbnN0cnVjdG9yLCBTUEVDSUVTLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH1cbiAgICB9KTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBUQUcsIFNUQVRJQykge1xuICBpZiAodGFyZ2V0ICYmICFTVEFUSUMpIHRhcmdldCA9IHRhcmdldC5wcm90b3R5cGU7XG4gIGlmICh0YXJnZXQgJiYgIWhhc093bih0YXJnZXQsIFRPX1NUUklOR19UQUcpKSB7XG4gICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBUT19TVFJJTkdfVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IFRBRyB9KTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xuXG52YXIga2V5cyA9IHNoYXJlZCgna2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIGtleXNba2V5XSB8fCAoa2V5c1trZXldID0gdWlkKGtleSkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xuXG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFRoaXNbU0hBUkVEXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShTSEFSRUQsIHt9KTtcblxuKHN0b3JlLnZlcnNpb25zIHx8IChzdG9yZS52ZXJzaW9ucyA9IFtdKSkucHVzaCh7XG4gIHZlcnNpb246ICczLjM4LjEnLFxuICBtb2RlOiBJU19QVVJFID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG4gIGNvcHlyaWdodDogJ8KpIDIwMTQtMjAyNCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KScsXG4gIGxpY2Vuc2U6ICdodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM4LjEvTElDRU5TRScsXG4gIHNvdXJjZTogJ2h0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSB8fCB7fSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGFDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNvbnN0cnVjdG9yJyk7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcblxuLy8gYFNwZWNpZXNDb25zdHJ1Y3RvcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXNwZWNpZXNjb25zdHJ1Y3RvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywgZGVmYXVsdENvbnN0cnVjdG9yKSB7XG4gIHZhciBDID0gYW5PYmplY3QoTykuY29uc3RydWN0b3I7XG4gIHZhciBTO1xuICByZXR1cm4gQyA9PT0gdW5kZWZpbmVkIHx8IGlzTnVsbE9yVW5kZWZpbmVkKFMgPSBhbk9iamVjdChDKVtTUEVDSUVTXSkgPyBkZWZhdWx0Q29uc3RydWN0b3IgOiBhQ29uc3RydWN0b3IoUyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciBjaGFyQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQXQpO1xudmFyIGNoYXJDb2RlQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQ29kZUF0KTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChDT05WRVJUX1RPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBwb3MpIHtcbiAgICB2YXIgUyA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXJPckluZmluaXR5KHBvcyk7XG4gICAgdmFyIHNpemUgPSBTLmxlbmd0aDtcbiAgICB2YXIgZmlyc3QsIHNlY29uZDtcbiAgICBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IHNpemUpIHJldHVybiBDT05WRVJUX1RPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGZpcnN0ID0gY2hhckNvZGVBdChTLCBwb3NpdGlvbik7XG4gICAgcmV0dXJuIGZpcnN0IDwgMHhEODAwIHx8IGZpcnN0ID4gMHhEQkZGIHx8IHBvc2l0aW9uICsgMSA9PT0gc2l6ZVxuICAgICAgfHwgKHNlY29uZCA9IGNoYXJDb2RlQXQoUywgcG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICAgID8gQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IGNoYXJBdChTLCBwb3NpdGlvbilcbiAgICAgICAgICA6IGZpcnN0XG4gICAgICAgIDogQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IHN0cmluZ1NsaWNlKFMsIHBvc2l0aW9uLCBwb3NpdGlvbiArIDIpXG4gICAgICAgICAgOiAoZmlyc3QgLSAweEQ4MDAgPDwgMTApICsgKHNlY29uZCAtIDB4REMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmNvZGVwb2ludGF0XG4gIGNvZGVBdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuYXRgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc2J5bmVucy9TdHJpbmcucHJvdG90eXBlLmF0XG4gIGNoYXJBdDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgd2hpdGVzcGFjZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2hpdGVzcGFjZXMnKTtcblxudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBsdHJpbSA9IFJlZ0V4cCgnXlsnICsgd2hpdGVzcGFjZXMgKyAnXSsnKTtcbnZhciBydHJpbSA9IFJlZ0V4cCgnKF58W14nICsgd2hpdGVzcGFjZXMgKyAnXSlbJyArIHdoaXRlc3BhY2VzICsgJ10rJCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW0sIHRyaW1TdGFydCwgdHJpbUVuZCwgdHJpbUxlZnQsIHRyaW1SaWdodCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcykge1xuICAgIHZhciBzdHJpbmcgPSB0b1N0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCR0aGlzKSk7XG4gICAgaWYgKFRZUEUgJiAxKSBzdHJpbmcgPSByZXBsYWNlKHN0cmluZywgbHRyaW0sICcnKTtcbiAgICBpZiAoVFlQRSAmIDIpIHN0cmluZyA9IHJlcGxhY2Uoc3RyaW5nLCBydHJpbSwgJyQxJyk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1MZWZ0LCB0cmltU3RhcnQgfWAgbWV0aG9kc1xuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbXN0YXJ0XG4gIHN0YXJ0OiBjcmVhdGVNZXRob2QoMSksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbVJpZ2h0LCB0cmltRW5kIH1gIG1ldGhvZHNcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1lbmRcbiAgZW5kOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnRyaW1gIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbVxuICB0cmltOiBjcmVhdGVNZXRob2QoMylcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgVjggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbicpO1xudmFyIEVOVklST05NRU5UID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50Jyk7XG5cbnZhciBzdHJ1Y3R1cmVkQ2xvbmUgPSBnbG9iYWxUaGlzLnN0cnVjdHVyZWRDbG9uZTtcblxubW9kdWxlLmV4cG9ydHMgPSAhIXN0cnVjdHVyZWRDbG9uZSAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBwcmV2ZW50IFY4IEFycmF5QnVmZmVyRGV0YWNoaW5nIHByb3RlY3RvciBjZWxsIGludmFsaWRhdGlvbiBhbmQgcGVyZm9ybWFuY2UgZGVncmFkYXRpb25cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3OVxuICBpZiAoKEVOVklST05NRU5UID09PSAnREVOTycgJiYgVjggPiA5MikgfHwgKEVOVklST05NRU5UID09PSAnTk9ERScgJiYgVjggPiA5NCkgfHwgKEVOVklST05NRU5UID09PSAnQlJPV1NFUicgJiYgVjggPiA5NykpIHJldHVybiBmYWxzZTtcbiAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig4KTtcbiAgdmFyIGNsb25lID0gc3RydWN0dXJlZENsb25lKGJ1ZmZlciwgeyB0cmFuc2ZlcjogW2J1ZmZlcl0gfSk7XG4gIHJldHVybiBidWZmZXIuYnl0ZUxlbmd0aCAhPT0gMCB8fCBjbG9uZS5ieXRlTGVuZ3RoICE9PSA4O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBlcy9uby1zeW1ib2wgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxudmFyICRTdHJpbmcgPSBnbG9iYWxUaGlzLlN0cmluZztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gcmVxdWlyZWQgZm9yIHRlc3Rpbmdcbm1vZHVsZS5leHBvcnRzID0gISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBzeW1ib2wgPSBTeW1ib2woJ3N5bWJvbCBkZXRlY3Rpb24nKTtcbiAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgLy8gYGdldC1vd24tcHJvcGVydHktc3ltYm9sc2AgcG9seWZpbGwgc3ltYm9scyBjb252ZXJ0ZWQgdG8gb2JqZWN0IGFyZSBub3QgU3ltYm9sIGluc3RhbmNlc1xuICAvLyBuYjogRG8gbm90IGNhbGwgYFN0cmluZ2AgZGlyZWN0bHkgdG8gYXZvaWQgdGhpcyBiZWluZyBvcHRpbWl6ZWQgb3V0IHRvIGBzeW1ib2wrJydgIHdoaWNoIHdpbGwsXG4gIC8vIG9mIGNvdXJzZSwgZmFpbC5cbiAgcmV0dXJuICEkU3RyaW5nKHN5bWJvbCkgfHwgIShPYmplY3Qoc3ltYm9sKSBpbnN0YW5jZW9mIFN5bWJvbCkgfHxcbiAgICAvLyBDaHJvbWUgMzgtNDAgc3ltYm9scyBhcmUgbm90IGluaGVyaXRlZCBmcm9tIERPTSBjb2xsZWN0aW9ucyBwcm90b3R5cGVzIHRvIGluc3RhbmNlc1xuICAgICFTeW1ib2wuc2hhbSAmJiBWOF9WRVJTSU9OICYmIFY4X1ZFUlNJT04gPCA0MTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG4vLyBgdGhpc051bWJlclZhbHVlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdGhpc251bWJlcnZhbHVlXG5tb2R1bGUuZXhwb3J0cyA9IHVuY3VycnlUaGlzKDEuMC52YWx1ZU9mKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcblxudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBIZWxwZXIgZm9yIGEgcG9wdWxhciByZXBlYXRpbmcgY2FzZSBvZiB0aGUgc3BlYzpcbi8vIExldCBpbnRlZ2VyIGJlID8gVG9JbnRlZ2VyKGluZGV4KS5cbi8vIElmIGludGVnZXIgPCAwLCBsZXQgcmVzdWx0IGJlIG1heCgobGVuZ3RoICsgaW50ZWdlciksIDApOyBlbHNlIGxldCByZXN1bHQgYmUgbWluKGludGVnZXIsIGxlbmd0aCkuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIHZhciBpbnRlZ2VyID0gdG9JbnRlZ2VyT3JJbmZpbml0eShpbmRleCk7XG4gIHJldHVybiBpbnRlZ2VyIDwgMCA/IG1heChpbnRlZ2VyICsgbGVuZ3RoLCAwKSA6IG1pbihpbnRlZ2VyLCBsZW5ndGgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBUb0JpZ0ludGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvYmlnaW50XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB2YXIgcHJpbSA9IHRvUHJpbWl0aXZlKGFyZ3VtZW50LCAnbnVtYmVyJyk7XG4gIGlmICh0eXBlb2YgcHJpbSA9PSAnbnVtYmVyJykgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG51bWJlciB0byBiaWdpbnRcIik7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1iaWdpbnQgLS0gc2FmZVxuICByZXR1cm4gQmlnSW50KHByaW0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcblxudmFyICRSYW5nZUVycm9yID0gUmFuZ2VFcnJvcjtcblxuLy8gYFRvSW5kZXhgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2luZGV4XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDA7XG4gIHZhciBudW1iZXIgPSB0b0ludGVnZXJPckluZmluaXR5KGl0KTtcbiAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKG51bWJlcik7XG4gIGlmIChudW1iZXIgIT09IGxlbmd0aCkgdGhyb3cgbmV3ICRSYW5nZUVycm9yKCdXcm9uZyBsZW5ndGggb3IgaW5kZXgnKTtcbiAgcmV0dXJuIGxlbmd0aDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSW5kZXhlZE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGl0KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRydW5jID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtdHJ1bmMnKTtcblxuLy8gYFRvSW50ZWdlck9ySW5maW5pdHlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2ludGVnZXJvcmluZmluaXR5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB2YXIgbnVtYmVyID0gK2FyZ3VtZW50O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICByZXR1cm4gbnVtYmVyICE9PSBudW1iZXIgfHwgbnVtYmVyID09PSAwID8gMCA6IHRydW5jKG51bWJlcik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGBUb0xlbmd0aGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvbGVuZ3RoXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB2YXIgbGVuID0gdG9JbnRlZ2VyT3JJbmZpbml0eShhcmd1bWVudCk7XG4gIHJldHVybiBsZW4gPiAwID8gbWluKGxlbiwgMHgxRkZGRkZGRkZGRkZGRikgOiAwOyAvLyAyICoqIDUzIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG4vLyBgVG9PYmplY3RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuICRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudCkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b1Bvc2l0aXZlSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wb3NpdGl2ZS1pbnRlZ2VyJyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBCWVRFUykge1xuICB2YXIgb2Zmc2V0ID0gdG9Qb3NpdGl2ZUludGVnZXIoaXQpO1xuICBpZiAob2Zmc2V0ICUgQllURVMpIHRocm93IG5ldyAkUmFuZ2VFcnJvcignV3Jvbmcgb2Zmc2V0Jyk7XG4gIHJldHVybiBvZmZzZXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgJFJhbmdlRXJyb3IgPSBSYW5nZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgcmVzdWx0ID0gdG9JbnRlZ2VyT3JJbmZpbml0eShpdCk7XG4gIGlmIChyZXN1bHQgPCAwKSB0aHJvdyBuZXcgJFJhbmdlRXJyb3IoXCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDBcIik7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgb3JkaW5hcnlUb1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vcmRpbmFyeS10by1wcmltaXRpdmUnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG52YXIgVE9fUFJJTUlUSVZFID0gd2VsbEtub3duU3ltYm9sKCd0b1ByaW1pdGl2ZScpO1xuXG4vLyBgVG9QcmltaXRpdmVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b3ByaW1pdGl2ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQsIHByZWYpIHtcbiAgaWYgKCFpc09iamVjdChpbnB1dCkgfHwgaXNTeW1ib2woaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG4gIHZhciBleG90aWNUb1ByaW0gPSBnZXRNZXRob2QoaW5wdXQsIFRPX1BSSU1JVElWRSk7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChleG90aWNUb1ByaW0pIHtcbiAgICBpZiAocHJlZiA9PT0gdW5kZWZpbmVkKSBwcmVmID0gJ2RlZmF1bHQnO1xuICAgIHJlc3VsdCA9IGNhbGwoZXhvdGljVG9QcmltLCBpbnB1dCwgcHJlZik7XG4gICAgaWYgKCFpc09iamVjdChyZXN1bHQpIHx8IGlzU3ltYm9sKHJlc3VsdCkpIHJldHVybiByZXN1bHQ7XG4gICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG4gIH1cbiAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdudW1iZXInO1xuICByZXR1cm4gb3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgcHJlZik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xuXG4vLyBgVG9Qcm9wZXJ0eUtleWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJvcGVydHlrZXlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBrZXkgPSB0b1ByaW1pdGl2ZShhcmd1bWVudCwgJ3N0cmluZycpO1xuICByZXR1cm4gaXNTeW1ib2woa2V5KSA/IGtleSA6IGtleSArICcnO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGNsYXNzb2YoYXJndW1lbnQpID09PSAnU3ltYm9sJykgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmcnKTtcbiAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciByb3VuZCA9IE1hdGgucm91bmQ7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciB2YWx1ZSA9IHJvdW5kKGl0KTtcbiAgcmV0dXJuIHZhbHVlIDwgMCA/IDAgOiB2YWx1ZSA+IDB4RkYgPyAweEZGIDogdmFsdWUgJiAweEZGO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkU3RyaW5nID0gU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB0cnkge1xuICAgIHJldHVybiAkU3RyaW5nKGFyZ3VtZW50KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gJ09iamVjdCc7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBUWVBFRF9BUlJBWVNfQ09OU1RSVUNUT1JTX1JFUVVJUkVTX1dSQVBQRVJTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWNvbnN0cnVjdG9ycy1yZXF1aXJlLXdyYXBwZXJzJyk7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgQXJyYXlCdWZmZXJNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyJyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1pbnN0YW5jZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBpc0ludGVncmFsTnVtYmVyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWludGVncmFsLW51bWJlcicpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXgnKTtcbnZhciB0b09mZnNldCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vZmZzZXQnKTtcbnZhciB0b1VpbnQ4Q2xhbXBlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by11aW50OC1jbGFtcGVkJyk7XG52YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXknKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciB0eXBlZEFycmF5RnJvbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1mcm9tJyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5mb3JFYWNoO1xudmFyIHNldFNwZWNpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXNwZWNpZXMnKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgYXJyYXlGcm9tQ29uc3RydWN0b3JBbmRMaXN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZyb20tY29uc3RydWN0b3ItYW5kLWxpc3QnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgaW5oZXJpdElmUmVxdWlyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZCcpO1xuXG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0O1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5TW9kdWxlLmY7XG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmY7XG52YXIgUmFuZ2VFcnJvciA9IGdsb2JhbFRoaXMuUmFuZ2VFcnJvcjtcbnZhciBBcnJheUJ1ZmZlciA9IEFycmF5QnVmZmVyTW9kdWxlLkFycmF5QnVmZmVyO1xudmFyIEFycmF5QnVmZmVyUHJvdG90eXBlID0gQXJyYXlCdWZmZXIucHJvdG90eXBlO1xudmFyIERhdGFWaWV3ID0gQXJyYXlCdWZmZXJNb2R1bGUuRGF0YVZpZXc7XG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyA9IEFycmF5QnVmZmVyVmlld0NvcmUuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUztcbnZhciBUWVBFRF9BUlJBWV9UQUcgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLlRZUEVEX0FSUkFZX1RBRztcbnZhciBUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5UeXBlZEFycmF5O1xudmFyIFR5cGVkQXJyYXlQcm90b3R5cGUgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLlR5cGVkQXJyYXlQcm90b3R5cGU7XG52YXIgaXNUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5pc1R5cGVkQXJyYXk7XG52YXIgQllURVNfUEVSX0VMRU1FTlQgPSAnQllURVNfUEVSX0VMRU1FTlQnO1xudmFyIFdST05HX0xFTkdUSCA9ICdXcm9uZyBsZW5ndGgnO1xuXG52YXIgYWRkR2V0dGVyID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKGl0LCBrZXksIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKVtrZXldO1xuICAgIH1cbiAgfSk7XG59O1xuXG52YXIgaXNBcnJheUJ1ZmZlciA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIga2xhc3M7XG4gIHJldHVybiBpc1Byb3RvdHlwZU9mKEFycmF5QnVmZmVyUHJvdG90eXBlLCBpdCkgfHwgKGtsYXNzID0gY2xhc3NvZihpdCkpID09PSAnQXJyYXlCdWZmZXInIHx8IGtsYXNzID09PSAnU2hhcmVkQXJyYXlCdWZmZXInO1xufTtcblxudmFyIGlzVHlwZWRBcnJheUluZGV4ID0gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7XG4gIHJldHVybiBpc1R5cGVkQXJyYXkodGFyZ2V0KVxuICAgICYmICFpc1N5bWJvbChrZXkpXG4gICAgJiYga2V5IGluIHRhcmdldFxuICAgICYmIGlzSW50ZWdyYWxOdW1iZXIoK2tleSlcbiAgICAmJiBrZXkgPj0gMDtcbn07XG5cbnZhciB3cmFwcGVkR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSB7XG4gIGtleSA9IHRvUHJvcGVydHlLZXkoa2V5KTtcbiAgcmV0dXJuIGlzVHlwZWRBcnJheUluZGV4KHRhcmdldCwga2V5KVxuICAgID8gY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDIsIHRhcmdldFtrZXldKVxuICAgIDogbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTtcbn07XG5cbnZhciB3cmFwcGVkRGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgZGVzY3JpcHRvcikge1xuICBrZXkgPSB0b1Byb3BlcnR5S2V5KGtleSk7XG4gIGlmIChpc1R5cGVkQXJyYXlJbmRleCh0YXJnZXQsIGtleSlcbiAgICAmJiBpc09iamVjdChkZXNjcmlwdG9yKVxuICAgICYmIGhhc093bihkZXNjcmlwdG9yLCAndmFsdWUnKVxuICAgICYmICFoYXNPd24oZGVzY3JpcHRvciwgJ2dldCcpXG4gICAgJiYgIWhhc093bihkZXNjcmlwdG9yLCAnc2V0JylcbiAgICAvLyBUT0RPOiBhZGQgdmFsaWRhdGlvbiBkZXNjcmlwdG9yIHcvbyBjYWxsaW5nIGFjY2Vzc29yc1xuICAgICYmICFkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZVxuICAgICYmICghaGFzT3duKGRlc2NyaXB0b3IsICd3cml0YWJsZScpIHx8IGRlc2NyaXB0b3Iud3JpdGFibGUpXG4gICAgJiYgKCFoYXNPd24oZGVzY3JpcHRvciwgJ2VudW1lcmFibGUnKSB8fCBkZXNjcmlwdG9yLmVudW1lcmFibGUpXG4gICkge1xuICAgIHRhcmdldFtrZXldID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9IHJldHVybiBuYXRpdmVEZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgZGVzY3JpcHRvcik7XG59O1xuXG5pZiAoREVTQ1JJUFRPUlMpIHtcbiAgaWYgKCFOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTKSB7XG4gICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmYgPSB3cmFwcGVkR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGRlZmluZVByb3BlcnR5TW9kdWxlLmYgPSB3cmFwcGVkRGVmaW5lUHJvcGVydHk7XG4gICAgYWRkR2V0dGVyKFR5cGVkQXJyYXlQcm90b3R5cGUsICdidWZmZXInKTtcbiAgICBhZGRHZXR0ZXIoVHlwZWRBcnJheVByb3RvdHlwZSwgJ2J5dGVPZmZzZXQnKTtcbiAgICBhZGRHZXR0ZXIoVHlwZWRBcnJheVByb3RvdHlwZSwgJ2J5dGVMZW5ndGgnKTtcbiAgICBhZGRHZXR0ZXIoVHlwZWRBcnJheVByb3RvdHlwZSwgJ2xlbmd0aCcpO1xuICB9XG5cbiAgJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgfSwge1xuICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogd3JhcHBlZEdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgICBkZWZpbmVQcm9wZXJ0eTogd3JhcHBlZERlZmluZVByb3BlcnR5XG4gIH0pO1xuXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRZUEUsIHdyYXBwZXIsIENMQU1QRUQpIHtcbiAgICB2YXIgQllURVMgPSBUWVBFLm1hdGNoKC9cXGQrLylbMF0gLyA4O1xuICAgIHZhciBDT05TVFJVQ1RPUl9OQU1FID0gVFlQRSArIChDTEFNUEVEID8gJ0NsYW1wZWQnIDogJycpICsgJ0FycmF5JztcbiAgICB2YXIgR0VUVEVSID0gJ2dldCcgKyBUWVBFO1xuICAgIHZhciBTRVRURVIgPSAnc2V0JyArIFRZUEU7XG4gICAgdmFyIE5hdGl2ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IGdsb2JhbFRoaXNbQ09OU1RSVUNUT1JfTkFNRV07XG4gICAgdmFyIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IE5hdGl2ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcbiAgICB2YXIgVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlID0gVHlwZWRBcnJheUNvbnN0cnVjdG9yICYmIFR5cGVkQXJyYXlDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gICAgdmFyIGV4cG9ydGVkID0ge307XG5cbiAgICB2YXIgZ2V0dGVyID0gZnVuY3Rpb24gKHRoYXQsIGluZGV4KSB7XG4gICAgICB2YXIgZGF0YSA9IGdldEludGVybmFsU3RhdGUodGhhdCk7XG4gICAgICByZXR1cm4gZGF0YS52aWV3W0dFVFRFUl0oaW5kZXggKiBCWVRFUyArIGRhdGEuYnl0ZU9mZnNldCwgdHJ1ZSk7XG4gICAgfTtcblxuICAgIHZhciBzZXR0ZXIgPSBmdW5jdGlvbiAodGhhdCwgaW5kZXgsIHZhbHVlKSB7XG4gICAgICB2YXIgZGF0YSA9IGdldEludGVybmFsU3RhdGUodGhhdCk7XG4gICAgICBkYXRhLnZpZXdbU0VUVEVSXShpbmRleCAqIEJZVEVTICsgZGF0YS5ieXRlT2Zmc2V0LCBDTEFNUEVEID8gdG9VaW50OENsYW1wZWQodmFsdWUpIDogdmFsdWUsIHRydWUpO1xuICAgIH07XG5cbiAgICB2YXIgYWRkRWxlbWVudCA9IGZ1bmN0aW9uICh0aGF0LCBpbmRleCkge1xuICAgICAgbmF0aXZlRGVmaW5lUHJvcGVydHkodGhhdCwgaW5kZXgsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGdldHRlcih0aGlzLCBpbmRleCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHNldHRlcih0aGlzLCBpbmRleCwgdmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaWYgKCFOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTKSB7XG4gICAgICBUeXBlZEFycmF5Q29uc3RydWN0b3IgPSB3cmFwcGVyKGZ1bmN0aW9uICh0aGF0LCBkYXRhLCBvZmZzZXQsICRsZW5ndGgpIHtcbiAgICAgICAgYW5JbnN0YW5jZSh0aGF0LCBUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUpO1xuICAgICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgICB2YXIgYnl0ZU9mZnNldCA9IDA7XG4gICAgICAgIHZhciBidWZmZXIsIGJ5dGVMZW5ndGgsIGxlbmd0aDtcbiAgICAgICAgaWYgKCFpc09iamVjdChkYXRhKSkge1xuICAgICAgICAgIGxlbmd0aCA9IHRvSW5kZXgoZGF0YSk7XG4gICAgICAgICAgYnl0ZUxlbmd0aCA9IGxlbmd0aCAqIEJZVEVTO1xuICAgICAgICAgIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihieXRlTGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5QnVmZmVyKGRhdGEpKSB7XG4gICAgICAgICAgYnVmZmVyID0gZGF0YTtcbiAgICAgICAgICBieXRlT2Zmc2V0ID0gdG9PZmZzZXQob2Zmc2V0LCBCWVRFUyk7XG4gICAgICAgICAgdmFyICRsZW4gPSBkYXRhLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgaWYgKCRsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKCRsZW4gJSBCWVRFUykgdGhyb3cgbmV3IFJhbmdlRXJyb3IoV1JPTkdfTEVOR1RIKTtcbiAgICAgICAgICAgIGJ5dGVMZW5ndGggPSAkbGVuIC0gYnl0ZU9mZnNldDtcbiAgICAgICAgICAgIGlmIChieXRlTGVuZ3RoIDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoV1JPTkdfTEVOR1RIKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYnl0ZUxlbmd0aCA9IHRvTGVuZ3RoKCRsZW5ndGgpICogQllURVM7XG4gICAgICAgICAgICBpZiAoYnl0ZUxlbmd0aCArIGJ5dGVPZmZzZXQgPiAkbGVuKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZW5ndGggPSBieXRlTGVuZ3RoIC8gQllURVM7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNUeXBlZEFycmF5KGRhdGEpKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdChUeXBlZEFycmF5Q29uc3RydWN0b3IsIGRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBjYWxsKHR5cGVkQXJyYXlGcm9tLCBUeXBlZEFycmF5Q29uc3RydWN0b3IsIGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHNldEludGVybmFsU3RhdGUodGhhdCwge1xuICAgICAgICAgIGJ1ZmZlcjogYnVmZmVyLFxuICAgICAgICAgIGJ5dGVPZmZzZXQ6IGJ5dGVPZmZzZXQsXG4gICAgICAgICAgYnl0ZUxlbmd0aDogYnl0ZUxlbmd0aCxcbiAgICAgICAgICBsZW5ndGg6IGxlbmd0aCxcbiAgICAgICAgICB2aWV3OiBuZXcgRGF0YVZpZXcoYnVmZmVyKVxuICAgICAgICB9KTtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSBhZGRFbGVtZW50KHRoYXQsIGluZGV4KyspO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChzZXRQcm90b3R5cGVPZikgc2V0UHJvdG90eXBlT2YoVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBUeXBlZEFycmF5KTtcbiAgICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSA9IFR5cGVkQXJyYXlDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoVHlwZWRBcnJheVByb3RvdHlwZSk7XG4gICAgfSBlbHNlIGlmIChUWVBFRF9BUlJBWVNfQ09OU1RSVUNUT1JTX1JFUVVJUkVTX1dSQVBQRVJTKSB7XG4gICAgICBUeXBlZEFycmF5Q29uc3RydWN0b3IgPSB3cmFwcGVyKGZ1bmN0aW9uIChkdW1teSwgZGF0YSwgdHlwZWRBcnJheU9mZnNldCwgJGxlbmd0aCkge1xuICAgICAgICBhbkluc3RhbmNlKGR1bW15LCBUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUpO1xuICAgICAgICByZXR1cm4gaW5oZXJpdElmUmVxdWlyZWQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaXNPYmplY3QoZGF0YSkpIHJldHVybiBuZXcgTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yKHRvSW5kZXgoZGF0YSkpO1xuICAgICAgICAgIGlmIChpc0FycmF5QnVmZmVyKGRhdGEpKSByZXR1cm4gJGxlbmd0aCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IG5ldyBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IoZGF0YSwgdG9PZmZzZXQodHlwZWRBcnJheU9mZnNldCwgQllURVMpLCAkbGVuZ3RoKVxuICAgICAgICAgICAgOiB0eXBlZEFycmF5T2Zmc2V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBuZXcgTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yKGRhdGEsIHRvT2Zmc2V0KHR5cGVkQXJyYXlPZmZzZXQsIEJZVEVTKSlcbiAgICAgICAgICAgICAgOiBuZXcgTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yKGRhdGEpO1xuICAgICAgICAgIGlmIChpc1R5cGVkQXJyYXkoZGF0YSkpIHJldHVybiBhcnJheUZyb21Db25zdHJ1Y3RvckFuZExpc3QoVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBkYXRhKTtcbiAgICAgICAgICByZXR1cm4gY2FsbCh0eXBlZEFycmF5RnJvbSwgVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBkYXRhKTtcbiAgICAgICAgfSgpLCBkdW1teSwgVHlwZWRBcnJheUNvbnN0cnVjdG9yKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHNldFByb3RvdHlwZU9mKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgVHlwZWRBcnJheSk7XG4gICAgICBmb3JFYWNoKGdldE93blByb3BlcnR5TmFtZXMoTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yKSwgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBpZiAoIShrZXkgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yKSkge1xuICAgICAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShUeXBlZEFycmF5Q29uc3RydWN0b3IsIGtleSwgTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGU7XG4gICAgfVxuXG4gICAgaWYgKFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gVHlwZWRBcnJheUNvbnN0cnVjdG9yKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlLCAnY29uc3RydWN0b3InLCBUeXBlZEFycmF5Q29uc3RydWN0b3IpO1xuICAgIH1cblxuICAgIGVuZm9yY2VJbnRlcm5hbFN0YXRlKFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSkuVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xuXG4gICAgaWYgKFRZUEVEX0FSUkFZX1RBRykge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSwgVFlQRURfQVJSQVlfVEFHLCBDT05TVFJVQ1RPUl9OQU1FKTtcbiAgICB9XG5cbiAgICB2YXIgRk9SQ0VEID0gVHlwZWRBcnJheUNvbnN0cnVjdG9yICE9PSBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3I7XG5cbiAgICBleHBvcnRlZFtDT05TVFJVQ1RPUl9OQU1FXSA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcblxuICAgICQoeyBnbG9iYWw6IHRydWUsIGNvbnN0cnVjdG9yOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCwgc2hhbTogIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgfSwgZXhwb3J0ZWQpO1xuXG4gICAgaWYgKCEoQllURVNfUEVSX0VMRU1FTlQgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yKSkge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgQllURVNfUEVSX0VMRU1FTlQsIEJZVEVTKTtcbiAgICB9XG5cbiAgICBpZiAoIShCWVRFU19QRVJfRUxFTUVOVCBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUpKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlLCBCWVRFU19QRVJfRUxFTUVOVCwgQllURVMpO1xuICAgIH1cblxuICAgIHNldFNwZWNpZXMoQ09OU1RSVUNUT1JfTkFNRSk7XG4gIH07XG59IGVsc2UgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG4iLCIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcsIHNvbmFyL2luY29uc2lzdGVudC1mdW5jdGlvbi1jYWxsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbicpO1xudmFyIE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M7XG5cbnZhciBBcnJheUJ1ZmZlciA9IGdsb2JhbFRoaXMuQXJyYXlCdWZmZXI7XG52YXIgSW50OEFycmF5ID0gZ2xvYmFsVGhpcy5JbnQ4QXJyYXk7XG5cbm1vZHVsZS5leHBvcnRzID0gIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgSW50OEFycmF5KDEpO1xufSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgbmV3IEludDhBcnJheSgtMSk7XG59KSB8fCAhY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uKGZ1bmN0aW9uIChpdGVyYWJsZSkge1xuICBuZXcgSW50OEFycmF5KCk7XG4gIG5ldyBJbnQ4QXJyYXkobnVsbCk7XG4gIG5ldyBJbnQ4QXJyYXkoMS41KTtcbiAgbmV3IEludDhBcnJheShpdGVyYWJsZSk7XG59LCB0cnVlKSB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIFNhZmFyaSAoMTErKSBidWcgLSBhIHJlYXNvbiB3aHkgZXZlbiBTYWZhcmkgMTMgc2hvdWxkIGxvYWQgYSB0eXBlZCBhcnJheSBwb2x5ZmlsbFxuICByZXR1cm4gbmV3IEludDhBcnJheShuZXcgQXJyYXlCdWZmZXIoMiksIDEsIHVuZGVmaW5lZCkubGVuZ3RoICE9PSAxO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYXJyYXlGcm9tQ29uc3RydWN0b3JBbmRMaXN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZyb20tY29uc3RydWN0b3ItYW5kLWxpc3QnKTtcbnZhciB0eXBlZEFycmF5U3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LXNwZWNpZXMtY29uc3RydWN0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5zdGFuY2UsIGxpc3QpIHtcbiAgcmV0dXJuIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdCh0eXBlZEFycmF5U3BlY2llc0NvbnN0cnVjdG9yKGluc3RhbmNlKSwgbGlzdCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgYUNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY29uc3RydWN0b3InKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIGdldEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvcicpO1xudmFyIGdldEl0ZXJhdG9yTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvci1tZXRob2QnKTtcbnZhciBpc0FycmF5SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kJyk7XG52YXIgaXNCaWdJbnRBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1iaWctaW50LWFycmF5Jyk7XG52YXIgYVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJykuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcbnZhciB0b0JpZ0ludCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1iaWctaW50Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZnJvbShzb3VyY2UgLyogLCBtYXBmbiwgdGhpc0FyZyAqLykge1xuICB2YXIgQyA9IGFDb25zdHJ1Y3Rvcih0aGlzKTtcbiAgdmFyIE8gPSB0b09iamVjdChzb3VyY2UpO1xuICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIG1hcGZuID0gYXJndW1lbnRzTGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICB2YXIgaXRlcmF0b3JNZXRob2QgPSBnZXRJdGVyYXRvck1ldGhvZChPKTtcbiAgdmFyIGksIGxlbmd0aCwgcmVzdWx0LCB0aGlzSXNCaWdJbnRBcnJheSwgdmFsdWUsIHN0ZXAsIGl0ZXJhdG9yLCBuZXh0O1xuICBpZiAoaXRlcmF0b3JNZXRob2QgJiYgIWlzQXJyYXlJdGVyYXRvck1ldGhvZChpdGVyYXRvck1ldGhvZCkpIHtcbiAgICBpdGVyYXRvciA9IGdldEl0ZXJhdG9yKE8sIGl0ZXJhdG9yTWV0aG9kKTtcbiAgICBuZXh0ID0gaXRlcmF0b3IubmV4dDtcbiAgICBPID0gW107XG4gICAgd2hpbGUgKCEoc3RlcCA9IGNhbGwobmV4dCwgaXRlcmF0b3IpKS5kb25lKSB7XG4gICAgICBPLnB1c2goc3RlcC52YWx1ZSk7XG4gICAgfVxuICB9XG4gIGlmIChtYXBwaW5nICYmIGFyZ3VtZW50c0xlbmd0aCA+IDIpIHtcbiAgICBtYXBmbiA9IGJpbmQobWFwZm4sIGFyZ3VtZW50c1syXSk7XG4gIH1cbiAgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gIHJlc3VsdCA9IG5ldyAoYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcihDKSkobGVuZ3RoKTtcbiAgdGhpc0lzQmlnSW50QXJyYXkgPSBpc0JpZ0ludEFycmF5KHJlc3VsdCk7XG4gIGZvciAoaSA9IDA7IGxlbmd0aCA+IGk7IGkrKykge1xuICAgIHZhbHVlID0gbWFwcGluZyA/IG1hcGZuKE9baV0sIGkpIDogT1tpXTtcbiAgICAvLyBGRjMwLSB0eXBlZCBhcnJheXMgZG9lc24ndCBwcm9wZXJseSBjb252ZXJ0IG9iamVjdHMgdG8gdHlwZWQgYXJyYXkgdmFsdWVzXG4gICAgcmVzdWx0W2ldID0gdGhpc0lzQmlnSW50QXJyYXkgPyB0b0JpZ0ludCh2YWx1ZSkgOiArdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcblxudmFyIGFUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5Q29uc3RydWN0b3I7XG52YXIgZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7XG5cbi8vIGEgcGFydCBvZiBgVHlwZWRBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3R5cGVkYXJyYXktc3BlY2llcy1jcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXkpIHtcbiAgcmV0dXJuIGFUeXBlZEFycmF5Q29uc3RydWN0b3Ioc3BlY2llc0NvbnN0cnVjdG9yKG9yaWdpbmFsQXJyYXksIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcihvcmlnaW5hbEFycmF5KSkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKDEuMC50b1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArIHRvU3RyaW5nKCsraWQgKyBwb3N0Zml4LCAzNik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tc3ltYm9sIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX1NZTUJPTFxuICAmJiAhU3ltYm9sLnNoYW1cbiAgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIFY4IH4gQ2hyb21lIDM2LVxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzMzNFxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0sICdwcm90b3R5cGUnLCB7XG4gICAgdmFsdWU6IDQyLFxuICAgIHdyaXRhYmxlOiBmYWxzZVxuICB9KS5wcm90b3R5cGUgIT09IDQyO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNDYWxsYWJsZShXZWFrTWFwKSAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKFdlYWtNYXApKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbicpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciBTeW1ib2wgPSBnbG9iYWxUaGlzLlN5bWJvbDtcbnZhciBXZWxsS25vd25TeW1ib2xzU3RvcmUgPSBzaGFyZWQoJ3drcycpO1xudmFyIGNyZWF0ZVdlbGxLbm93blN5bWJvbCA9IFVTRV9TWU1CT0xfQVNfVUlEID8gU3ltYm9sWydmb3InXSB8fCBTeW1ib2wgOiBTeW1ib2wgJiYgU3ltYm9sLndpdGhvdXRTZXR0ZXIgfHwgdWlkO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIGlmICghaGFzT3duKFdlbGxLbm93blN5bWJvbHNTdG9yZSwgbmFtZSkpIHtcbiAgICBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPSBOQVRJVkVfU1lNQk9MICYmIGhhc093bihTeW1ib2wsIG5hbWUpXG4gICAgICA/IFN5bWJvbFtuYW1lXVxuICAgICAgOiBjcmVhdGVXZWxsS25vd25TeW1ib2woJ1N5bWJvbC4nICsgbmFtZSk7XG4gIH0gcmV0dXJuIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBhIHN0cmluZyBvZiBhbGwgdmFsaWQgdW5pY29kZSB3aGl0ZXNwYWNlc1xubW9kdWxlLmV4cG9ydHMgPSAnXFx1MDAwOVxcdTAwMEFcXHUwMDBCXFx1MDAwQ1xcdTAwMERcXHUwMDIwXFx1MDBBMFxcdTE2ODBcXHUyMDAwXFx1MjAwMVxcdTIwMDInICtcbiAgJ1xcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1MjAyOFxcdTIwMjlcXHVGRUZGJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcbnZhciBwcm94eUFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Byb3h5LWFjY2Vzc29yJyk7XG52YXIgaW5oZXJpdElmUmVxdWlyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZCcpO1xudmFyIG5vcm1hbGl6ZVN0cmluZ0FyZ3VtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25vcm1hbGl6ZS1zdHJpbmctYXJndW1lbnQnKTtcbnZhciBpbnN0YWxsRXJyb3JDYXVzZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnN0YWxsLWVycm9yLWNhdXNlJyk7XG52YXIgaW5zdGFsbEVycm9yU3RhY2sgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXJyb3Itc3RhY2staW5zdGFsbCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEZVTExfTkFNRSwgd3JhcHBlciwgRk9SQ0VELCBJU19BR0dSRUdBVEVfRVJST1IpIHtcbiAgdmFyIFNUQUNLX1RSQUNFX0xJTUlUID0gJ3N0YWNrVHJhY2VMaW1pdCc7XG4gIHZhciBPUFRJT05TX1BPU0lUSU9OID0gSVNfQUdHUkVHQVRFX0VSUk9SID8gMiA6IDE7XG4gIHZhciBwYXRoID0gRlVMTF9OQU1FLnNwbGl0KCcuJyk7XG4gIHZhciBFUlJPUl9OQU1FID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICB2YXIgT3JpZ2luYWxFcnJvciA9IGdldEJ1aWx0SW4uYXBwbHkobnVsbCwgcGF0aCk7XG5cbiAgaWYgKCFPcmlnaW5hbEVycm9yKSByZXR1cm47XG5cbiAgdmFyIE9yaWdpbmFsRXJyb3JQcm90b3R5cGUgPSBPcmlnaW5hbEVycm9yLnByb3RvdHlwZTtcblxuICAvLyBWOCA5LjMtIGJ1ZyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0xMjAwNlxuICBpZiAoIUlTX1BVUkUgJiYgaGFzT3duKE9yaWdpbmFsRXJyb3JQcm90b3R5cGUsICdjYXVzZScpKSBkZWxldGUgT3JpZ2luYWxFcnJvclByb3RvdHlwZS5jYXVzZTtcblxuICBpZiAoIUZPUkNFRCkgcmV0dXJuIE9yaWdpbmFsRXJyb3I7XG5cbiAgdmFyIEJhc2VFcnJvciA9IGdldEJ1aWx0SW4oJ0Vycm9yJyk7XG5cbiAgdmFyIFdyYXBwZWRFcnJvciA9IHdyYXBwZXIoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICB2YXIgbWVzc2FnZSA9IG5vcm1hbGl6ZVN0cmluZ0FyZ3VtZW50KElTX0FHR1JFR0FURV9FUlJPUiA/IGIgOiBhLCB1bmRlZmluZWQpO1xuICAgIHZhciByZXN1bHQgPSBJU19BR0dSRUdBVEVfRVJST1IgPyBuZXcgT3JpZ2luYWxFcnJvcihhKSA6IG5ldyBPcmlnaW5hbEVycm9yKCk7XG4gICAgaWYgKG1lc3NhZ2UgIT09IHVuZGVmaW5lZCkgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHJlc3VsdCwgJ21lc3NhZ2UnLCBtZXNzYWdlKTtcbiAgICBpbnN0YWxsRXJyb3JTdGFjayhyZXN1bHQsIFdyYXBwZWRFcnJvciwgcmVzdWx0LnN0YWNrLCAyKTtcbiAgICBpZiAodGhpcyAmJiBpc1Byb3RvdHlwZU9mKE9yaWdpbmFsRXJyb3JQcm90b3R5cGUsIHRoaXMpKSBpbmhlcml0SWZSZXF1aXJlZChyZXN1bHQsIHRoaXMsIFdyYXBwZWRFcnJvcik7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiBPUFRJT05TX1BPU0lUSU9OKSBpbnN0YWxsRXJyb3JDYXVzZShyZXN1bHQsIGFyZ3VtZW50c1tPUFRJT05TX1BPU0lUSU9OXSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgV3JhcHBlZEVycm9yLnByb3RvdHlwZSA9IE9yaWdpbmFsRXJyb3JQcm90b3R5cGU7XG5cbiAgaWYgKEVSUk9SX05BTUUgIT09ICdFcnJvcicpIHtcbiAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHNldFByb3RvdHlwZU9mKFdyYXBwZWRFcnJvciwgQmFzZUVycm9yKTtcbiAgICBlbHNlIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMoV3JhcHBlZEVycm9yLCBCYXNlRXJyb3IsIHsgbmFtZTogdHJ1ZSB9KTtcbiAgfSBlbHNlIGlmIChERVNDUklQVE9SUyAmJiBTVEFDS19UUkFDRV9MSU1JVCBpbiBPcmlnaW5hbEVycm9yKSB7XG4gICAgcHJveHlBY2Nlc3NvcihXcmFwcGVkRXJyb3IsIE9yaWdpbmFsRXJyb3IsIFNUQUNLX1RSQUNFX0xJTUlUKTtcbiAgICBwcm94eUFjY2Vzc29yKFdyYXBwZWRFcnJvciwgT3JpZ2luYWxFcnJvciwgJ3ByZXBhcmVTdGFja1RyYWNlJyk7XG4gIH1cblxuICBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKFdyYXBwZWRFcnJvciwgT3JpZ2luYWxFcnJvcik7XG5cbiAgaWYgKCFJU19QVVJFKSB0cnkge1xuICAgIC8vIFNhZmFyaSAxMy0gYnVnOiBXZWJBc3NlbWJseSBlcnJvcnMgZG9lcyBub3QgaGF2ZSBhIHByb3BlciBgLm5hbWVgXG4gICAgaWYgKE9yaWdpbmFsRXJyb3JQcm90b3R5cGUubmFtZSAhPT0gRVJST1JfTkFNRSkge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KE9yaWdpbmFsRXJyb3JQcm90b3R5cGUsICduYW1lJywgRVJST1JfTkFNRSk7XG4gICAgfVxuICAgIE9yaWdpbmFsRXJyb3JQcm90b3R5cGUuY29uc3RydWN0b3IgPSBXcmFwcGVkRXJyb3I7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cblxuICByZXR1cm4gV3JhcHBlZEVycm9yO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBhcnJheUJ1ZmZlck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXInKTtcbnZhciBzZXRTcGVjaWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC1zcGVjaWVzJyk7XG5cbnZhciBBUlJBWV9CVUZGRVIgPSAnQXJyYXlCdWZmZXInO1xudmFyIEFycmF5QnVmZmVyID0gYXJyYXlCdWZmZXJNb2R1bGVbQVJSQVlfQlVGRkVSXTtcbnZhciBOYXRpdmVBcnJheUJ1ZmZlciA9IGdsb2JhbFRoaXNbQVJSQVlfQlVGRkVSXTtcblxuLy8gYEFycmF5QnVmZmVyYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheWJ1ZmZlci1jb25zdHJ1Y3RvclxuJCh7IGdsb2JhbDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIGZvcmNlZDogTmF0aXZlQXJyYXlCdWZmZXIgIT09IEFycmF5QnVmZmVyIH0sIHtcbiAgQXJyYXlCdWZmZXI6IEFycmF5QnVmZmVyXG59KTtcblxuc2V0U3BlY2llcyhBUlJBWV9CVUZGRVIpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3NvcicpO1xudmFyIGlzRGV0YWNoZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLWlzLWRldGFjaGVkJyk7XG5cbnZhciBBcnJheUJ1ZmZlclByb3RvdHlwZSA9IEFycmF5QnVmZmVyLnByb3RvdHlwZTtcblxuaWYgKERFU0NSSVBUT1JTICYmICEoJ2RldGFjaGVkJyBpbiBBcnJheUJ1ZmZlclByb3RvdHlwZSkpIHtcbiAgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKEFycmF5QnVmZmVyUHJvdG90eXBlLCAnZGV0YWNoZWQnLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZGV0YWNoZWQoKSB7XG4gICAgICByZXR1cm4gaXNEZXRhY2hlZCh0aGlzKTtcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZScpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgQXJyYXlCdWZmZXJNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcblxudmFyIEFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXJNb2R1bGUuQXJyYXlCdWZmZXI7XG52YXIgRGF0YVZpZXcgPSBBcnJheUJ1ZmZlck1vZHVsZS5EYXRhVmlldztcbnZhciBEYXRhVmlld1Byb3RvdHlwZSA9IERhdGFWaWV3LnByb3RvdHlwZTtcbnZhciBuYXRpdmVBcnJheUJ1ZmZlclNsaWNlID0gdW5jdXJyeVRoaXMoQXJyYXlCdWZmZXIucHJvdG90eXBlLnNsaWNlKTtcbnZhciBnZXRVaW50OCA9IHVuY3VycnlUaGlzKERhdGFWaWV3UHJvdG90eXBlLmdldFVpbnQ4KTtcbnZhciBzZXRVaW50OCA9IHVuY3VycnlUaGlzKERhdGFWaWV3UHJvdG90eXBlLnNldFVpbnQ4KTtcblxudmFyIElOQ09SUkVDVF9TTElDRSA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICFuZXcgQXJyYXlCdWZmZXIoMikuc2xpY2UoMSwgdW5kZWZpbmVkKS5ieXRlTGVuZ3RoO1xufSk7XG5cbi8vIGBBcnJheUJ1ZmZlci5wcm90b3R5cGUuc2xpY2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheWJ1ZmZlci5wcm90b3R5cGUuc2xpY2VcbiQoeyB0YXJnZXQ6ICdBcnJheUJ1ZmZlcicsIHByb3RvOiB0cnVlLCB1bnNhZmU6IHRydWUsIGZvcmNlZDogSU5DT1JSRUNUX1NMSUNFIH0sIHtcbiAgc2xpY2U6IGZ1bmN0aW9uIHNsaWNlKHN0YXJ0LCBlbmQpIHtcbiAgICBpZiAobmF0aXZlQXJyYXlCdWZmZXJTbGljZSAmJiBlbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG5hdGl2ZUFycmF5QnVmZmVyU2xpY2UoYW5PYmplY3QodGhpcyksIHN0YXJ0KTsgLy8gRkYgZml4XG4gICAgfVxuICAgIHZhciBsZW5ndGggPSBhbk9iamVjdCh0aGlzKS5ieXRlTGVuZ3RoO1xuICAgIHZhciBmaXJzdCA9IHRvQWJzb2x1dGVJbmRleChzdGFydCwgbGVuZ3RoKTtcbiAgICB2YXIgZmluID0gdG9BYnNvbHV0ZUluZGV4KGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogZW5kLCBsZW5ndGgpO1xuICAgIHZhciByZXN1bHQgPSBuZXcgKHNwZWNpZXNDb25zdHJ1Y3Rvcih0aGlzLCBBcnJheUJ1ZmZlcikpKHRvTGVuZ3RoKGZpbiAtIGZpcnN0KSk7XG4gICAgdmFyIHZpZXdTb3VyY2UgPSBuZXcgRGF0YVZpZXcodGhpcyk7XG4gICAgdmFyIHZpZXdUYXJnZXQgPSBuZXcgRGF0YVZpZXcocmVzdWx0KTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHdoaWxlIChmaXJzdCA8IGZpbikge1xuICAgICAgc2V0VWludDgodmlld1RhcmdldCwgaW5kZXgrKywgZ2V0VWludDgodmlld1NvdXJjZSwgZmlyc3QrKykpO1xuICAgIH0gcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkdHJhbnNmZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXRyYW5zZmVyJyk7XG5cbi8vIGBBcnJheUJ1ZmZlci5wcm90b3R5cGUudHJhbnNmZXJUb0ZpeGVkTGVuZ3RoYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1hcnJheWJ1ZmZlci10cmFuc2Zlci8jc2VjLWFycmF5YnVmZmVyLnByb3RvdHlwZS50cmFuc2ZlcnRvZml4ZWRsZW5ndGhcbmlmICgkdHJhbnNmZXIpICQoeyB0YXJnZXQ6ICdBcnJheUJ1ZmZlcicsIHByb3RvOiB0cnVlIH0sIHtcbiAgdHJhbnNmZXJUb0ZpeGVkTGVuZ3RoOiBmdW5jdGlvbiB0cmFuc2ZlclRvRml4ZWRMZW5ndGgoKSB7XG4gICAgcmV0dXJuICR0cmFuc2Zlcih0aGlzLCBhcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkLCBmYWxzZSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHRyYW5zZmVyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci10cmFuc2ZlcicpO1xuXG4vLyBgQXJyYXlCdWZmZXIucHJvdG90eXBlLnRyYW5zZmVyYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1hcnJheWJ1ZmZlci10cmFuc2Zlci8jc2VjLWFycmF5YnVmZmVyLnByb3RvdHlwZS50cmFuc2ZlclxuaWYgKCR0cmFuc2ZlcikgJCh7IHRhcmdldDogJ0FycmF5QnVmZmVyJywgcHJvdG86IHRydWUgfSwge1xuICB0cmFuc2ZlcjogZnVuY3Rpb24gdHJhbnNmZXIoKSB7XG4gICAgcmV0dXJuICR0cmFuc2Zlcih0aGlzLCBhcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkLCB0cnVlKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgYWRkVG9VbnNjb3BhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xudmFyIGRlZmluZUl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9yLWRlZmluZScpO1xudmFyIGNyZWF0ZUl0ZXJSZXN1bHRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLWl0ZXItcmVzdWx0LW9iamVjdCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG5cbnZhciBBUlJBWV9JVEVSQVRPUiA9ICdBcnJheSBJdGVyYXRvcic7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihBUlJBWV9JVEVSQVRPUik7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZW50cmllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5lbnRyaWVzXG4vLyBgQXJyYXkucHJvdG90eXBlLmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUua2V5c1xuLy8gYEFycmF5LnByb3RvdHlwZS52YWx1ZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUudmFsdWVzXG4vLyBgQXJyYXkucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAaXRlcmF0b3Jcbi8vIGBDcmVhdGVBcnJheUl0ZXJhdG9yYCBpbnRlcm5hbCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRlYXJyYXlpdGVyYXRvclxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbmVJdGVyYXRvcihBcnJheSwgJ0FycmF5JywgZnVuY3Rpb24gKGl0ZXJhdGVkLCBraW5kKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IEFSUkFZX0lURVJBVE9SLFxuICAgIHRhcmdldDogdG9JbmRleGVkT2JqZWN0KGl0ZXJhdGVkKSwgLy8gdGFyZ2V0XG4gICAgaW5kZXg6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gICAga2luZDoga2luZCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBraW5kXG4gIH0pO1xuLy8gYCVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJWFycmF5aXRlcmF0b3Jwcm90b3R5cGUlLm5leHRcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgdmFyIHRhcmdldCA9IHN0YXRlLnRhcmdldDtcbiAgdmFyIGluZGV4ID0gc3RhdGUuaW5kZXgrKztcbiAgaWYgKCF0YXJnZXQgfHwgaW5kZXggPj0gdGFyZ2V0Lmxlbmd0aCkge1xuICAgIHN0YXRlLnRhcmdldCA9IG51bGw7XG4gICAgcmV0dXJuIGNyZWF0ZUl0ZXJSZXN1bHRPYmplY3QodW5kZWZpbmVkLCB0cnVlKTtcbiAgfVxuICBzd2l0Y2ggKHN0YXRlLmtpbmQpIHtcbiAgICBjYXNlICdrZXlzJzogcmV0dXJuIGNyZWF0ZUl0ZXJSZXN1bHRPYmplY3QoaW5kZXgsIGZhbHNlKTtcbiAgICBjYXNlICd2YWx1ZXMnOiByZXR1cm4gY3JlYXRlSXRlclJlc3VsdE9iamVjdCh0YXJnZXRbaW5kZXhdLCBmYWxzZSk7XG4gIH0gcmV0dXJuIGNyZWF0ZUl0ZXJSZXN1bHRPYmplY3QoW2luZGV4LCB0YXJnZXRbaW5kZXhdXSwgZmFsc2UpO1xufSwgJ3ZhbHVlcycpO1xuXG4vLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyVcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRldW5tYXBwZWRhcmd1bWVudHNvYmplY3Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRlbWFwcGVkYXJndW1lbnRzb2JqZWN0XG52YXIgdmFsdWVzID0gSXRlcmF0b3JzLkFyZ3VtZW50cyA9IEl0ZXJhdG9ycy5BcnJheTtcblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuYWRkVG9VbnNjb3BhYmxlcygna2V5cycpO1xuYWRkVG9VbnNjb3BhYmxlcygndmFsdWVzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7XG5cbi8vIFY4IH4gQ2hyb21lIDQ1LSBidWdcbmlmICghSVNfUFVSRSAmJiBERVNDUklQVE9SUyAmJiB2YWx1ZXMubmFtZSAhPT0gJ3ZhbHVlcycpIHRyeSB7XG4gIGRlZmluZVByb3BlcnR5KHZhbHVlcywgJ25hbWUnLCB7IHZhbHVlOiAndmFsdWVzJyB9KTtcbn0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIEFycmF5QnVmZmVyTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlcicpO1xudmFyIE5BVElWRV9BUlJBWV9CVUZGRVIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLWJhc2ljLWRldGVjdGlvbicpO1xuXG4vLyBgRGF0YVZpZXdgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWRhdGF2aWV3LWNvbnN0cnVjdG9yXG4kKHsgZ2xvYmFsOiB0cnVlLCBjb25zdHJ1Y3RvcjogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX0FSUkFZX0JVRkZFUiB9LCB7XG4gIERhdGFWaWV3OiBBcnJheUJ1ZmZlck1vZHVsZS5EYXRhVmlld1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgdGhpcyBtb2R1bGUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIHJlcGxhY2VkIHRvIG1vZHVsZSBiZWxvd1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5kYXRhLXZpZXcuY29uc3RydWN0b3InKTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIFRPRE86IFJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgXG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcblxudmFyIERhdGVQcm90b3R5cGUgPSBEYXRlLnByb3RvdHlwZTtcbnZhciBJTlZBTElEX0RBVEUgPSAnSW52YWxpZCBEYXRlJztcbnZhciBUT19TVFJJTkcgPSAndG9TdHJpbmcnO1xudmFyIG5hdGl2ZURhdGVUb1N0cmluZyA9IHVuY3VycnlUaGlzKERhdGVQcm90b3R5cGVbVE9fU1RSSU5HXSk7XG52YXIgdGhpc1RpbWVWYWx1ZSA9IHVuY3VycnlUaGlzKERhdGVQcm90b3R5cGUuZ2V0VGltZSk7XG5cbi8vIGBEYXRlLnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWRhdGUucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAoU3RyaW5nKG5ldyBEYXRlKE5hTikpICE9PSBJTlZBTElEX0RBVEUpIHtcbiAgZGVmaW5lQnVpbHRJbihEYXRlUHJvdG90eXBlLCBUT19TVFJJTkcsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHZhciB2YWx1ZSA9IHRoaXNUaW1lVmFsdWUodGhpcyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlID8gbmF0aXZlRGF0ZVRvU3RyaW5nKHRoaXMpIDogSU5WQUxJRF9EQVRFO1xuICB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBmdW5jdGlvbnMgYC5sZW5ndGhgICovXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgYXBwbHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHknKTtcbnZhciB3cmFwRXJyb3JDb25zdHJ1Y3RvcldpdGhDYXVzZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93cmFwLWVycm9yLWNvbnN0cnVjdG9yLXdpdGgtY2F1c2UnKTtcblxudmFyIFdFQl9BU1NFTUJMWSA9ICdXZWJBc3NlbWJseSc7XG52YXIgV2ViQXNzZW1ibHkgPSBnbG9iYWxUaGlzW1dFQl9BU1NFTUJMWV07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1lcnJvci1jYXVzZSAtLSBmZWF0dXJlIGRldGVjdGlvblxudmFyIEZPUkNFRCA9IG5ldyBFcnJvcignZScsIHsgY2F1c2U6IDcgfSkuY2F1c2UgIT09IDc7XG5cbnZhciBleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlciA9IGZ1bmN0aW9uIChFUlJPUl9OQU1FLCB3cmFwcGVyKSB7XG4gIHZhciBPID0ge307XG4gIE9bRVJST1JfTkFNRV0gPSB3cmFwRXJyb3JDb25zdHJ1Y3RvcldpdGhDYXVzZShFUlJPUl9OQU1FLCB3cmFwcGVyLCBGT1JDRUQpO1xuICAkKHsgZ2xvYmFsOiB0cnVlLCBjb25zdHJ1Y3RvcjogdHJ1ZSwgYXJpdHk6IDEsIGZvcmNlZDogRk9SQ0VEIH0sIE8pO1xufTtcblxudmFyIGV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIgPSBmdW5jdGlvbiAoRVJST1JfTkFNRSwgd3JhcHBlcikge1xuICBpZiAoV2ViQXNzZW1ibHkgJiYgV2ViQXNzZW1ibHlbRVJST1JfTkFNRV0pIHtcbiAgICB2YXIgTyA9IHt9O1xuICAgIE9bRVJST1JfTkFNRV0gPSB3cmFwRXJyb3JDb25zdHJ1Y3RvcldpdGhDYXVzZShXRUJfQVNTRU1CTFkgKyAnLicgKyBFUlJPUl9OQU1FLCB3cmFwcGVyLCBGT1JDRUQpO1xuICAgICQoeyB0YXJnZXQ6IFdFQl9BU1NFTUJMWSwgc3RhdDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIGFyaXR5OiAxLCBmb3JjZWQ6IEZPUkNFRCB9LCBPKTtcbiAgfVxufTtcblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1uYXRpdmVlcnJvclxuZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoJ0Vycm9yJywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIEVycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGFwcGx5KGluaXQsIHRoaXMsIGFyZ3VtZW50cyk7IH07XG59KTtcbmV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCdFdmFsRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gRXZhbEVycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGFwcGx5KGluaXQsIHRoaXMsIGFyZ3VtZW50cyk7IH07XG59KTtcbmV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCdSYW5nZUVycm9yJywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFJhbmdlRXJyb3IobWVzc2FnZSkgeyByZXR1cm4gYXBwbHkoaW5pdCwgdGhpcywgYXJndW1lbnRzKTsgfTtcbn0pO1xuZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoJ1JlZmVyZW5jZUVycm9yJywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFJlZmVyZW5jZUVycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGFwcGx5KGluaXQsIHRoaXMsIGFyZ3VtZW50cyk7IH07XG59KTtcbmV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCdTeW50YXhFcnJvcicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBTeW50YXhFcnJvcihtZXNzYWdlKSB7IHJldHVybiBhcHBseShpbml0LCB0aGlzLCBhcmd1bWVudHMpOyB9O1xufSk7XG5leHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcignVHlwZUVycm9yJywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFR5cGVFcnJvcihtZXNzYWdlKSB7IHJldHVybiBhcHBseShpbml0LCB0aGlzLCBhcmd1bWVudHMpOyB9O1xufSk7XG5leHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcignVVJJRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gVVJJRXJyb3IobWVzc2FnZSkgeyByZXR1cm4gYXBwbHkoaW5pdCwgdGhpcywgYXJndW1lbnRzKTsgfTtcbn0pO1xuZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlcignQ29tcGlsZUVycm9yJywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIENvbXBpbGVFcnJvcihtZXNzYWdlKSB7IHJldHVybiBhcHBseShpbml0LCB0aGlzLCBhcmd1bWVudHMpOyB9O1xufSk7XG5leHBvcnRXZWJBc3NlbWJseUVycm9yQ2F1c2VXcmFwcGVyKCdMaW5rRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gTGlua0Vycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGFwcGx5KGluaXQsIHRoaXMsIGFyZ3VtZW50cyk7IH07XG59KTtcbmV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIoJ1J1bnRpbWVFcnJvcicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBSdW50aW1lRXJyb3IobWVzc2FnZSkgeyByZXR1cm4gYXBwbHkoaW5pdCwgdGhpcywgYXJndW1lbnRzKTsgfTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgZXJyb3JUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lcnJvci10by1zdHJpbmcnKTtcblxudmFyIEVycm9yUHJvdG90eXBlID0gRXJyb3IucHJvdG90eXBlO1xuXG4vLyBgRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2QgZml4XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWVycm9yLnByb3RvdHlwZS50b3N0cmluZ1xuaWYgKEVycm9yUHJvdG90eXBlLnRvU3RyaW5nICE9PSBlcnJvclRvU3RyaW5nKSB7XG4gIGRlZmluZUJ1aWx0SW4oRXJyb3JQcm90b3R5cGUsICd0b1N0cmluZycsIGVycm9yVG9TdHJpbmcpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgdGhpc051bWJlclZhbHVlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RoaXMtbnVtYmVyLXZhbHVlJyk7XG52YXIgdHJpbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctdHJpbScpLnRyaW07XG5cbnZhciBOVU1CRVIgPSAnTnVtYmVyJztcbnZhciBOYXRpdmVOdW1iZXIgPSBnbG9iYWxUaGlzW05VTUJFUl07XG52YXIgUHVyZU51bWJlck5hbWVzcGFjZSA9IHBhdGhbTlVNQkVSXTtcbnZhciBOdW1iZXJQcm90b3R5cGUgPSBOYXRpdmVOdW1iZXIucHJvdG90eXBlO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbFRoaXMuVHlwZUVycm9yO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xudmFyIGNoYXJDb2RlQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQ29kZUF0KTtcblxuLy8gYFRvTnVtZXJpY2AgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvbnVtZXJpY1xudmFyIHRvTnVtZXJpYyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICB2YXIgcHJpbVZhbHVlID0gdG9QcmltaXRpdmUodmFsdWUsICdudW1iZXInKTtcbiAgcmV0dXJuIHR5cGVvZiBwcmltVmFsdWUgPT0gJ2JpZ2ludCcgPyBwcmltVmFsdWUgOiB0b051bWJlcihwcmltVmFsdWUpO1xufTtcblxuLy8gYFRvTnVtYmVyYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9udW1iZXJcbnZhciB0b051bWJlciA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICB2YXIgaXQgPSB0b1ByaW1pdGl2ZShhcmd1bWVudCwgJ251bWJlcicpO1xuICB2YXIgZmlyc3QsIHRoaXJkLCByYWRpeCwgbWF4Q29kZSwgZGlnaXRzLCBsZW5ndGgsIGluZGV4LCBjb2RlO1xuICBpZiAoaXNTeW1ib2woaXQpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIG51bWJlcicpO1xuICBpZiAodHlwZW9mIGl0ID09ICdzdHJpbmcnICYmIGl0Lmxlbmd0aCA+IDIpIHtcbiAgICBpdCA9IHRyaW0oaXQpO1xuICAgIGZpcnN0ID0gY2hhckNvZGVBdChpdCwgMCk7XG4gICAgaWYgKGZpcnN0ID09PSA0MyB8fCBmaXJzdCA9PT0gNDUpIHtcbiAgICAgIHRoaXJkID0gY2hhckNvZGVBdChpdCwgMik7XG4gICAgICBpZiAodGhpcmQgPT09IDg4IHx8IHRoaXJkID09PSAxMjApIHJldHVybiBOYU47IC8vIE51bWJlcignKzB4MScpIHNob3VsZCBiZSBOYU4sIG9sZCBWOCBmaXhcbiAgICB9IGVsc2UgaWYgKGZpcnN0ID09PSA0OCkge1xuICAgICAgc3dpdGNoIChjaGFyQ29kZUF0KGl0LCAxKSkge1xuICAgICAgICAvLyBmYXN0IGVxdWFsIG9mIC9eMGJbMDFdKyQvaVxuICAgICAgICBjYXNlIDY2OlxuICAgICAgICBjYXNlIDk4OlxuICAgICAgICAgIHJhZGl4ID0gMjtcbiAgICAgICAgICBtYXhDb2RlID0gNDk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIC8vIGZhc3QgZXF1YWwgb2YgL14wb1swLTddKyQvaVxuICAgICAgICBjYXNlIDc5OlxuICAgICAgICBjYXNlIDExMTpcbiAgICAgICAgICByYWRpeCA9IDg7XG4gICAgICAgICAgbWF4Q29kZSA9IDU1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAraXQ7XG4gICAgICB9XG4gICAgICBkaWdpdHMgPSBzdHJpbmdTbGljZShpdCwgMik7XG4gICAgICBsZW5ndGggPSBkaWdpdHMubGVuZ3RoO1xuICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvZGUgPSBjaGFyQ29kZUF0KGRpZ2l0cywgaW5kZXgpO1xuICAgICAgICAvLyBwYXJzZUludCBwYXJzZXMgYSBzdHJpbmcgdG8gYSBmaXJzdCB1bmF2YWlsYWJsZSBzeW1ib2xcbiAgICAgICAgLy8gYnV0IFRvTnVtYmVyIHNob3VsZCByZXR1cm4gTmFOIGlmIGEgc3RyaW5nIGNvbnRhaW5zIHVuYXZhaWxhYmxlIHN5bWJvbHNcbiAgICAgICAgaWYgKGNvZGUgPCA0OCB8fCBjb2RlID4gbWF4Q29kZSkgcmV0dXJuIE5hTjtcbiAgICAgIH0gcmV0dXJuIHBhcnNlSW50KGRpZ2l0cywgcmFkaXgpO1xuICAgIH1cbiAgfSByZXR1cm4gK2l0O1xufTtcblxudmFyIEZPUkNFRCA9IGlzRm9yY2VkKE5VTUJFUiwgIU5hdGl2ZU51bWJlcignIDBvMScpIHx8ICFOYXRpdmVOdW1iZXIoJzBiMScpIHx8IE5hdGl2ZU51bWJlcignKzB4MScpKTtcblxudmFyIGNhbGxlZFdpdGhOZXcgPSBmdW5jdGlvbiAoZHVtbXkpIHtcbiAgLy8gaW5jbHVkZXMgY2hlY2sgb24gMS4uY29uc3RydWN0b3IoZm9vKSBjYXNlXG4gIHJldHVybiBpc1Byb3RvdHlwZU9mKE51bWJlclByb3RvdHlwZSwgZHVtbXkpICYmIGZhaWxzKGZ1bmN0aW9uICgpIHsgdGhpc051bWJlclZhbHVlKGR1bW15KTsgfSk7XG59O1xuXG4vLyBgTnVtYmVyYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1udW1iZXItY29uc3RydWN0b3JcbnZhciBOdW1iZXJXcmFwcGVyID0gZnVuY3Rpb24gTnVtYmVyKHZhbHVlKSB7XG4gIHZhciBuID0gYXJndW1lbnRzLmxlbmd0aCA8IDEgPyAwIDogTmF0aXZlTnVtYmVyKHRvTnVtZXJpYyh2YWx1ZSkpO1xuICByZXR1cm4gY2FsbGVkV2l0aE5ldyh0aGlzKSA/IGluaGVyaXRJZlJlcXVpcmVkKE9iamVjdChuKSwgdGhpcywgTnVtYmVyV3JhcHBlcikgOiBuO1xufTtcblxuTnVtYmVyV3JhcHBlci5wcm90b3R5cGUgPSBOdW1iZXJQcm90b3R5cGU7XG5pZiAoRk9SQ0VEICYmICFJU19QVVJFKSBOdW1iZXJQcm90b3R5cGUuY29uc3RydWN0b3IgPSBOdW1iZXJXcmFwcGVyO1xuXG4kKHsgZ2xvYmFsOiB0cnVlLCBjb25zdHJ1Y3RvcjogdHJ1ZSwgd3JhcDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBOdW1iZXI6IE51bWJlcldyYXBwZXJcbn0pO1xuXG4vLyBVc2UgYGludGVybmFsL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllc2AgaGVscGVyIGluIGBjb3JlLWpzQDRgXG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuICBmb3IgKHZhciBrZXlzID0gREVTQ1JJUFRPUlMgPyBnZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZSkgOiAoXG4gICAgLy8gRVMzOlxuICAgICdNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSwnICtcbiAgICAvLyBFUzIwMTUgKGluIGNhc2UsIGlmIG1vZHVsZXMgd2l0aCBFUzIwMTUgTnVtYmVyIHN0YXRpY3MgcmVxdWlyZWQgYmVmb3JlKTpcbiAgICAnRVBTSUxPTixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIsaXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIscGFyc2VGbG9hdCxwYXJzZUludCwnICtcbiAgICAvLyBFU05leHRcbiAgICAnZnJvbVN0cmluZyxyYW5nZSdcbiAgKS5zcGxpdCgnLCcpLCBqID0gMCwga2V5OyBrZXlzLmxlbmd0aCA+IGo7IGorKykge1xuICAgIGlmIChoYXNPd24oc291cmNlLCBrZXkgPSBrZXlzW2pdKSAmJiAhaGFzT3duKHRhcmdldCwga2V5KSkge1xuICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgIH1cbiAgfVxufTtcblxuaWYgKElTX1BVUkUgJiYgUHVyZU51bWJlck5hbWVzcGFjZSkgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyhwYXRoW05VTUJFUl0sIFB1cmVOdW1iZXJOYW1lc3BhY2UpO1xuaWYgKEZPUkNFRCB8fCBJU19QVVJFKSBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKHBhdGhbTlVNQkVSXSwgTmF0aXZlTnVtYmVyKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIG5hdGl2ZUtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgRkFJTFNfT05fUFJJTUlUSVZFUyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgbmF0aXZlS2V5cygxKTsgfSk7XG5cbi8vIGBPYmplY3Qua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5rZXlzXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGQUlMU19PTl9QUklNSVRJVkVTIH0sIHtcbiAga2V5czogZnVuY3Rpb24ga2V5cyhpdCkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzKHRvT2JqZWN0KGl0KSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC10by1zdHJpbmcnKTtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAoIVRPX1NUUklOR19UQUdfU1VQUE9SVCkge1xuICBkZWZpbmVCdWlsdEluKE9iamVjdC5wcm90b3R5cGUsICd0b1N0cmluZycsIHRvU3RyaW5nLCB7IHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcycpLmY7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgaXNSZWdFeHAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcmVnZXhwJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgZ2V0UmVnRXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWdldC1mbGFncycpO1xudmFyIHN0aWNreUhlbHBlcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXN0aWNreS1oZWxwZXJzJyk7XG52YXIgcHJveHlBY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wcm94eS1hY2Nlc3NvcicpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJykuZW5mb3JjZTtcbnZhciBzZXRTcGVjaWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC1zcGVjaWVzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgVU5TVVBQT1JURURfRE9UX0FMTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbCcpO1xudmFyIFVOU1VQUE9SVEVEX05DRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtbmNnJyk7XG5cbnZhciBNQVRDSCA9IHdlbGxLbm93blN5bWJvbCgnbWF0Y2gnKTtcbnZhciBOYXRpdmVSZWdFeHAgPSBnbG9iYWxUaGlzLlJlZ0V4cDtcbnZhciBSZWdFeHBQcm90b3R5cGUgPSBOYXRpdmVSZWdFeHAucHJvdG90eXBlO1xudmFyIFN5bnRheEVycm9yID0gZ2xvYmFsVGhpcy5TeW50YXhFcnJvcjtcbnZhciBleGVjID0gdW5jdXJyeVRoaXMoUmVnRXhwUHJvdG90eXBlLmV4ZWMpO1xudmFyIGNoYXJBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJBdCk7XG52YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xudmFyIHN0cmluZ0luZGV4T2YgPSB1bmN1cnJ5VGhpcygnJy5pbmRleE9mKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcbi8vIFRPRE86IFVzZSBvbmx5IHByb3BlciBSZWdFeHBJZGVudGlmaWVyTmFtZVxudmFyIElTX05DRyA9IC9eXFw/PFteXFxzXFxkISMlJiorPD0+QF5dW15cXHMhIyUmKis8PT5AXl0qPi87XG52YXIgcmUxID0gL2EvZztcbnZhciByZTIgPSAvYS9nO1xuXG4vLyBcIm5ld1wiIHNob3VsZCBjcmVhdGUgYSBuZXcgb2JqZWN0LCBvbGQgd2Via2l0IGJ1Z1xudmFyIENPUlJFQ1RfTkVXID0gbmV3IE5hdGl2ZVJlZ0V4cChyZTEpICE9PSByZTE7XG5cbnZhciBNSVNTRURfU1RJQ0tZID0gc3RpY2t5SGVscGVycy5NSVNTRURfU1RJQ0tZO1xudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLlVOU1VQUE9SVEVEX1k7XG5cbnZhciBCQVNFX0ZPUkNFRCA9IERFU0NSSVBUT1JTICYmXG4gICghQ09SUkVDVF9ORVcgfHwgTUlTU0VEX1NUSUNLWSB8fCBVTlNVUFBPUlRFRF9ET1RfQUxMIHx8IFVOU1VQUE9SVEVEX05DRyB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgcmUyW01BVENIXSA9IGZhbHNlO1xuICAgIC8vIFJlZ0V4cCBjb25zdHJ1Y3RvciBjYW4gYWx0ZXIgZmxhZ3MgYW5kIElzUmVnRXhwIHdvcmtzIGNvcnJlY3Qgd2l0aCBAQG1hdGNoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyL2luY29uc2lzdGVudC1mdW5jdGlvbi1jYWxsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gICAgcmV0dXJuIE5hdGl2ZVJlZ0V4cChyZTEpICE9PSByZTEgfHwgTmF0aXZlUmVnRXhwKHJlMikgPT09IHJlMiB8fCBTdHJpbmcoTmF0aXZlUmVnRXhwKHJlMSwgJ2knKSkgIT09ICcvYS9pJztcbiAgfSkpO1xuXG52YXIgaGFuZGxlRG90QWxsID0gZnVuY3Rpb24gKHN0cmluZykge1xuICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuICB2YXIgYnJhY2tldHMgPSBmYWxzZTtcbiAgdmFyIGNocjtcbiAgZm9yICg7IGluZGV4IDw9IGxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNociA9IGNoYXJBdChzdHJpbmcsIGluZGV4KTtcbiAgICBpZiAoY2hyID09PSAnXFxcXCcpIHtcbiAgICAgIHJlc3VsdCArPSBjaHIgKyBjaGFyQXQoc3RyaW5nLCArK2luZGV4KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoIWJyYWNrZXRzICYmIGNociA9PT0gJy4nKSB7XG4gICAgICByZXN1bHQgKz0gJ1tcXFxcc1xcXFxTXSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjaHIgPT09ICdbJykge1xuICAgICAgICBicmFja2V0cyA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGNociA9PT0gJ10nKSB7XG4gICAgICAgIGJyYWNrZXRzID0gZmFsc2U7XG4gICAgICB9IHJlc3VsdCArPSBjaHI7XG4gICAgfVxuICB9IHJldHVybiByZXN1bHQ7XG59O1xuXG52YXIgaGFuZGxlTkNHID0gZnVuY3Rpb24gKHN0cmluZykge1xuICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuICB2YXIgbmFtZWQgPSBbXTtcbiAgdmFyIG5hbWVzID0gY3JlYXRlKG51bGwpO1xuICB2YXIgYnJhY2tldHMgPSBmYWxzZTtcbiAgdmFyIG5jZyA9IGZhbHNlO1xuICB2YXIgZ3JvdXBpZCA9IDA7XG4gIHZhciBncm91cG5hbWUgPSAnJztcbiAgdmFyIGNocjtcbiAgZm9yICg7IGluZGV4IDw9IGxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNociA9IGNoYXJBdChzdHJpbmcsIGluZGV4KTtcbiAgICBpZiAoY2hyID09PSAnXFxcXCcpIHtcbiAgICAgIGNociArPSBjaGFyQXQoc3RyaW5nLCArK2luZGV4KTtcbiAgICB9IGVsc2UgaWYgKGNociA9PT0gJ10nKSB7XG4gICAgICBicmFja2V0cyA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIWJyYWNrZXRzKSBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgY2hyID09PSAnWyc6XG4gICAgICAgIGJyYWNrZXRzID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGNociA9PT0gJygnOlxuICAgICAgICByZXN1bHQgKz0gY2hyO1xuICAgICAgICAvLyBpZ25vcmUgbm9uLWNhcHR1cmluZyBncm91cHNcbiAgICAgICAgaWYgKHN0cmluZ1NsaWNlKHN0cmluZywgaW5kZXggKyAxLCBpbmRleCArIDMpID09PSAnPzonKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4ZWMoSVNfTkNHLCBzdHJpbmdTbGljZShzdHJpbmcsIGluZGV4ICsgMSkpKSB7XG4gICAgICAgICAgaW5kZXggKz0gMjtcbiAgICAgICAgICBuY2cgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGdyb3VwaWQrKztcbiAgICAgICAgY29udGludWU7XG4gICAgICBjYXNlIGNociA9PT0gJz4nICYmIG5jZzpcbiAgICAgICAgaWYgKGdyb3VwbmFtZSA9PT0gJycgfHwgaGFzT3duKG5hbWVzLCBncm91cG5hbWUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCdJbnZhbGlkIGNhcHR1cmUgZ3JvdXAgbmFtZScpO1xuICAgICAgICB9XG4gICAgICAgIG5hbWVzW2dyb3VwbmFtZV0gPSB0cnVlO1xuICAgICAgICBuYW1lZFtuYW1lZC5sZW5ndGhdID0gW2dyb3VwbmFtZSwgZ3JvdXBpZF07XG4gICAgICAgIG5jZyA9IGZhbHNlO1xuICAgICAgICBncm91cG5hbWUgPSAnJztcbiAgICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChuY2cpIGdyb3VwbmFtZSArPSBjaHI7XG4gICAgZWxzZSByZXN1bHQgKz0gY2hyO1xuICB9IHJldHVybiBbcmVzdWx0LCBuYW1lZF07XG59O1xuXG4vLyBgUmVnRXhwYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAtY29uc3RydWN0b3JcbmlmIChpc0ZvcmNlZCgnUmVnRXhwJywgQkFTRV9GT1JDRUQpKSB7XG4gIHZhciBSZWdFeHBXcmFwcGVyID0gZnVuY3Rpb24gUmVnRXhwKHBhdHRlcm4sIGZsYWdzKSB7XG4gICAgdmFyIHRoaXNJc1JlZ0V4cCA9IGlzUHJvdG90eXBlT2YoUmVnRXhwUHJvdG90eXBlLCB0aGlzKTtcbiAgICB2YXIgcGF0dGVybklzUmVnRXhwID0gaXNSZWdFeHAocGF0dGVybik7XG4gICAgdmFyIGZsYWdzQXJlVW5kZWZpbmVkID0gZmxhZ3MgPT09IHVuZGVmaW5lZDtcbiAgICB2YXIgZ3JvdXBzID0gW107XG4gICAgdmFyIHJhd1BhdHRlcm4gPSBwYXR0ZXJuO1xuICAgIHZhciByYXdGbGFncywgZG90QWxsLCBzdGlja3ksIGhhbmRsZWQsIHJlc3VsdCwgc3RhdGU7XG5cbiAgICBpZiAoIXRoaXNJc1JlZ0V4cCAmJiBwYXR0ZXJuSXNSZWdFeHAgJiYgZmxhZ3NBcmVVbmRlZmluZWQgJiYgcGF0dGVybi5jb25zdHJ1Y3RvciA9PT0gUmVnRXhwV3JhcHBlcikge1xuICAgICAgcmV0dXJuIHBhdHRlcm47XG4gICAgfVxuXG4gICAgaWYgKHBhdHRlcm5Jc1JlZ0V4cCB8fCBpc1Byb3RvdHlwZU9mKFJlZ0V4cFByb3RvdHlwZSwgcGF0dGVybikpIHtcbiAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnNvdXJjZTtcbiAgICAgIGlmIChmbGFnc0FyZVVuZGVmaW5lZCkgZmxhZ3MgPSBnZXRSZWdFeHBGbGFncyhyYXdQYXR0ZXJuKTtcbiAgICB9XG5cbiAgICBwYXR0ZXJuID0gcGF0dGVybiA9PT0gdW5kZWZpbmVkID8gJycgOiB0b1N0cmluZyhwYXR0ZXJuKTtcbiAgICBmbGFncyA9IGZsYWdzID09PSB1bmRlZmluZWQgPyAnJyA6IHRvU3RyaW5nKGZsYWdzKTtcbiAgICByYXdQYXR0ZXJuID0gcGF0dGVybjtcblxuICAgIGlmIChVTlNVUFBPUlRFRF9ET1RfQUxMICYmICdkb3RBbGwnIGluIHJlMSkge1xuICAgICAgZG90QWxsID0gISFmbGFncyAmJiBzdHJpbmdJbmRleE9mKGZsYWdzLCAncycpID4gLTE7XG4gICAgICBpZiAoZG90QWxsKSBmbGFncyA9IHJlcGxhY2UoZmxhZ3MsIC9zL2csICcnKTtcbiAgICB9XG5cbiAgICByYXdGbGFncyA9IGZsYWdzO1xuXG4gICAgaWYgKE1JU1NFRF9TVElDS1kgJiYgJ3N0aWNreScgaW4gcmUxKSB7XG4gICAgICBzdGlja3kgPSAhIWZsYWdzICYmIHN0cmluZ0luZGV4T2YoZmxhZ3MsICd5JykgPiAtMTtcbiAgICAgIGlmIChzdGlja3kgJiYgVU5TVVBQT1JURURfWSkgZmxhZ3MgPSByZXBsYWNlKGZsYWdzLCAveS9nLCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKFVOU1VQUE9SVEVEX05DRykge1xuICAgICAgaGFuZGxlZCA9IGhhbmRsZU5DRyhwYXR0ZXJuKTtcbiAgICAgIHBhdHRlcm4gPSBoYW5kbGVkWzBdO1xuICAgICAgZ3JvdXBzID0gaGFuZGxlZFsxXTtcbiAgICB9XG5cbiAgICByZXN1bHQgPSBpbmhlcml0SWZSZXF1aXJlZChOYXRpdmVSZWdFeHAocGF0dGVybiwgZmxhZ3MpLCB0aGlzSXNSZWdFeHAgPyB0aGlzIDogUmVnRXhwUHJvdG90eXBlLCBSZWdFeHBXcmFwcGVyKTtcblxuICAgIGlmIChkb3RBbGwgfHwgc3RpY2t5IHx8IGdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgIHN0YXRlID0gZW5mb3JjZUludGVybmFsU3RhdGUocmVzdWx0KTtcbiAgICAgIGlmIChkb3RBbGwpIHtcbiAgICAgICAgc3RhdGUuZG90QWxsID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUucmF3ID0gUmVnRXhwV3JhcHBlcihoYW5kbGVEb3RBbGwocGF0dGVybiksIHJhd0ZsYWdzKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGlja3kpIHN0YXRlLnN0aWNreSA9IHRydWU7XG4gICAgICBpZiAoZ3JvdXBzLmxlbmd0aCkgc3RhdGUuZ3JvdXBzID0gZ3JvdXBzO1xuICAgIH1cblxuICAgIGlmIChwYXR0ZXJuICE9PSByYXdQYXR0ZXJuKSB0cnkge1xuICAgICAgLy8gZmFpbHMgaW4gb2xkIGVuZ2luZXMsIGJ1dCB3ZSBoYXZlIG5vIGFsdGVybmF0aXZlcyBmb3IgdW5zdXBwb3J0ZWQgcmVnZXggc3ludGF4XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocmVzdWx0LCAnc291cmNlJywgcmF3UGF0dGVybiA9PT0gJycgPyAnKD86KScgOiByYXdQYXR0ZXJuKTtcbiAgICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIGZvciAodmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzKE5hdGl2ZVJlZ0V4cCksIGluZGV4ID0gMDsga2V5cy5sZW5ndGggPiBpbmRleDspIHtcbiAgICBwcm94eUFjY2Vzc29yKFJlZ0V4cFdyYXBwZXIsIE5hdGl2ZVJlZ0V4cCwga2V5c1tpbmRleCsrXSk7XG4gIH1cblxuICBSZWdFeHBQcm90b3R5cGUuY29uc3RydWN0b3IgPSBSZWdFeHBXcmFwcGVyO1xuICBSZWdFeHBXcmFwcGVyLnByb3RvdHlwZSA9IFJlZ0V4cFByb3RvdHlwZTtcbiAgZGVmaW5lQnVpbHRJbihnbG9iYWxUaGlzLCAnUmVnRXhwJywgUmVnRXhwV3JhcHBlciwgeyBjb25zdHJ1Y3RvcjogdHJ1ZSB9KTtcbn1cblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLUBAc3BlY2llc1xuc2V0U3BlY2llcygnUmVnRXhwJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBVTlNVUFBPUlRFRF9ET1RfQUxMID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1kb3QtYWxsJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIGRlZmluZUJ1aWx0SW5BY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4tYWNjZXNzb3InKTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJykuZ2V0O1xuXG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS5kb3RBbGxgIGdldHRlclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5kb3RhbGxcbmlmIChERVNDUklQVE9SUyAmJiBVTlNVUFBPUlRFRF9ET1RfQUxMKSB7XG4gIGRlZmluZUJ1aWx0SW5BY2Nlc3NvcihSZWdFeHBQcm90b3R5cGUsICdkb3RBbGwnLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZG90QWxsKCkge1xuICAgICAgaWYgKHRoaXMgPT09IFJlZ0V4cFByb3RvdHlwZSkgcmV0dXJuO1xuICAgICAgLy8gV2UgY2FuJ3QgdXNlIEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yIGJlY2F1c2VcbiAgICAgIC8vIHdlIGRvbid0IGFkZCBtZXRhZGF0YSBmb3IgcmVnZXhwcyBjcmVhdGVkIGJ5IGEgbGl0ZXJhbC5cbiAgICAgIGlmIChjbGFzc29mKHRoaXMpID09PSAnUmVnRXhwJykge1xuICAgICAgICByZXR1cm4gISFnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLmRvdEFsbDtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFJlZ0V4cCByZXF1aXJlZCcpO1xuICAgIH1cbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBleGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjJyk7XG5cbi8vIGBSZWdFeHAucHJvdG90eXBlLmV4ZWNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLmV4ZWNcbiQoeyB0YXJnZXQ6ICdSZWdFeHAnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAvLi8uZXhlYyAhPT0gZXhlYyB9LCB7XG4gIGV4ZWM6IGV4ZWNcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgTUlTU0VEX1NUSUNLWSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKS5NSVNTRURfU1RJQ0tZO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpLmdldDtcblxudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuc3RpY2t5YCBnZXR0ZXJcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0LXJlZ2V4cC5wcm90b3R5cGUuc3RpY2t5XG5pZiAoREVTQ1JJUFRPUlMgJiYgTUlTU0VEX1NUSUNLWSkge1xuICBkZWZpbmVCdWlsdEluQWNjZXNzb3IoUmVnRXhwUHJvdG90eXBlLCAnc3RpY2t5Jywge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uIHN0aWNreSgpIHtcbiAgICAgIGlmICh0aGlzID09PSBSZWdFeHBQcm90b3R5cGUpIHJldHVybjtcbiAgICAgIC8vIFdlIGNhbid0IHVzZSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvciBiZWNhdXNlXG4gICAgICAvLyB3ZSBkb24ndCBhZGQgbWV0YWRhdGEgZm9yIHJlZ2V4cHMgY3JlYXRlZCBieSBhIGxpdGVyYWwuXG4gICAgICBpZiAoY2xhc3NvZih0aGlzKSA9PT0gJ1JlZ0V4cCcpIHtcbiAgICAgICAgcmV0dXJuICEhZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5zdGlja3k7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcignSW5jb21wYXRpYmxlIHJlY2VpdmVyLCBSZWdFeHAgcmVxdWlyZWQnKTtcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGAgc2luY2UgaXQncyBtb3ZlZCB0byBlbnRyeSBwb2ludHNcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMnKTtcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcblxudmFyIERFTEVHQVRFU19UT19FWEVDID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZXhlY0NhbGxlZCA9IGZhbHNlO1xuICB2YXIgcmUgPSAvW2FjXS87XG4gIHJlLmV4ZWMgPSBmdW5jdGlvbiAoKSB7XG4gICAgZXhlY0NhbGxlZCA9IHRydWU7XG4gICAgcmV0dXJuIC8uLy5leGVjLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG4gIHJldHVybiByZS50ZXN0KCdhYmMnKSA9PT0gdHJ1ZSAmJiBleGVjQ2FsbGVkO1xufSgpO1xuXG52YXIgbmF0aXZlVGVzdCA9IC8uLy50ZXN0O1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS50ZXN0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS50ZXN0XG4kKHsgdGFyZ2V0OiAnUmVnRXhwJywgcHJvdG86IHRydWUsIGZvcmNlZDogIURFTEVHQVRFU19UT19FWEVDIH0sIHtcbiAgdGVzdDogZnVuY3Rpb24gKFMpIHtcbiAgICB2YXIgUiA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBzdHJpbmcgPSB0b1N0cmluZyhTKTtcbiAgICB2YXIgZXhlYyA9IFIuZXhlYztcbiAgICBpZiAoIWlzQ2FsbGFibGUoZXhlYykpIHJldHVybiBjYWxsKG5hdGl2ZVRlc3QsIFIsIHN0cmluZyk7XG4gICAgdmFyIHJlc3VsdCA9IGNhbGwoZXhlYywgUiwgc3RyaW5nKTtcbiAgICBpZiAocmVzdWx0ID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgYW5PYmplY3QocmVzdWx0KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgUFJPUEVSX0ZVTkNUSU9OX05BTUUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZScpLlBST1BFUjtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyICR0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdldFJlZ0V4cEZsYWdzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1nZXQtZmxhZ3MnKTtcblxudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcbnZhciBuYXRpdmVUb1N0cmluZyA9IFJlZ0V4cFByb3RvdHlwZVtUT19TVFJJTkddO1xuXG52YXIgTk9UX0dFTkVSSUMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IHJldHVybiBuYXRpdmVUb1N0cmluZy5jYWxsKHsgc291cmNlOiAnYScsIGZsYWdzOiAnYicgfSkgIT09ICcvYS9iJzsgfSk7XG4vLyBGRjQ0LSBSZWdFeHAjdG9TdHJpbmcgaGFzIGEgd3JvbmcgbmFtZVxudmFyIElOQ09SUkVDVF9OQU1FID0gUFJPUEVSX0ZVTkNUSU9OX05BTUUgJiYgbmF0aXZlVG9TdHJpbmcubmFtZSAhPT0gVE9fU1RSSU5HO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUudG9zdHJpbmdcbmlmIChOT1RfR0VORVJJQyB8fCBJTkNPUlJFQ1RfTkFNRSkge1xuICBkZWZpbmVCdWlsdEluKFJlZ0V4cFByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICB2YXIgUiA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBwYXR0ZXJuID0gJHRvU3RyaW5nKFIuc291cmNlKTtcbiAgICB2YXIgZmxhZ3MgPSAkdG9TdHJpbmcoZ2V0UmVnRXhwRmxhZ3MoUikpO1xuICAgIHJldHVybiAnLycgKyBwYXR0ZXJuICsgJy8nICsgZmxhZ3M7XG4gIH0sIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzTnVsbE9yVW5kZWZpbmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW51bGwtb3ItdW5kZWZpbmVkJyk7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciBhZHZhbmNlU3RyaW5nSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXgnKTtcbnZhciBnZXRNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1ldGhvZCcpO1xudmFyIGdldFN1YnN0aXR1dGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtc3Vic3RpdHV0aW9uJyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgUkVQTEFDRSA9IHdlbGxLbm93blN5bWJvbCgncmVwbGFjZScpO1xudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xudmFyIGNvbmNhdCA9IHVuY3VycnlUaGlzKFtdLmNvbmNhdCk7XG52YXIgcHVzaCA9IHVuY3VycnlUaGlzKFtdLnB1c2gpO1xudmFyIHN0cmluZ0luZGV4T2YgPSB1bmN1cnJ5VGhpcygnJy5pbmRleE9mKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIG1heWJlVG9TdHJpbmcgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyBpdCA6IFN0cmluZyhpdCk7XG59O1xuXG4vLyBJRSA8PSAxMSByZXBsYWNlcyAkMCB3aXRoIHRoZSB3aG9sZSBtYXRjaCwgYXMgaWYgaXQgd2FzICQmXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDI0NjY2L2dldHRpbmctaWUtdG8tcmVwbGFjZS1hLXJlZ2V4LXdpdGgtdGhlLWxpdGVyYWwtc3RyaW5nLTBcbnZhciBSRVBMQUNFX0tFRVBTXyQwID0gKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZ2V4cC9wcmVmZXItZXNjYXBlLXJlcGxhY2VtZW50LWRvbGxhci1jaGFyIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiAnYScucmVwbGFjZSgvLi8sICckMCcpID09PSAnJDAnO1xufSkoKTtcblxuLy8gU2FmYXJpIDw9IDEzLjAuMyg/KSBzdWJzdGl0dXRlcyBudGggY2FwdHVyZSB3aGVyZSBuPm0gd2l0aCBhbiBlbXB0eSBzdHJpbmdcbnZhciBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSA9IChmdW5jdGlvbiAoKSB7XG4gIGlmICgvLi9bUkVQTEFDRV0pIHtcbiAgICByZXR1cm4gLy4vW1JFUExBQ0VdKCdhJywgJyQwJykgPT09ICcnO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn0pKCk7XG5cbnZhciBSRVBMQUNFX1NVUFBPUlRTX05BTUVEX0dST1VQUyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciByZSA9IC8uLztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgcmVzdWx0Lmdyb3VwcyA9IHsgYTogJzcnIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZ2V4cC9uby11c2VsZXNzLWRvbGxhci1yZXBsYWNlbWVudHMgLS0gZmFsc2UgcG9zaXRpdmVcbiAgcmV0dXJuICcnLnJlcGxhY2UocmUsICckPGE+JykgIT09ICc3Jztcbn0pO1xuXG4vLyBAQHJlcGxhY2UgbG9naWNcbmZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljKCdyZXBsYWNlJywgZnVuY3Rpb24gKF8sIG5hdGl2ZVJlcGxhY2UsIG1heWJlQ2FsbE5hdGl2ZSkge1xuICB2YXIgVU5TQUZFX1NVQlNUSVRVVEUgPSBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSA/ICckJyA6ICckMCc7XG5cbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUucmVwbGFjZVxuICAgIGZ1bmN0aW9uIHJlcGxhY2Uoc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSkge1xuICAgICAgdmFyIE8gPSByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpO1xuICAgICAgdmFyIHJlcGxhY2VyID0gaXNOdWxsT3JVbmRlZmluZWQoc2VhcmNoVmFsdWUpID8gdW5kZWZpbmVkIDogZ2V0TWV0aG9kKHNlYXJjaFZhbHVlLCBSRVBMQUNFKTtcbiAgICAgIHJldHVybiByZXBsYWNlclxuICAgICAgICA/IGNhbGwocmVwbGFjZXIsIHNlYXJjaFZhbHVlLCBPLCByZXBsYWNlVmFsdWUpXG4gICAgICAgIDogY2FsbChuYXRpdmVSZXBsYWNlLCB0b1N0cmluZyhPKSwgc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEByZXBsYWNlXG4gICAgZnVuY3Rpb24gKHN0cmluZywgcmVwbGFjZVZhbHVlKSB7XG4gICAgICB2YXIgcnggPSBhbk9iamVjdCh0aGlzKTtcbiAgICAgIHZhciBTID0gdG9TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2YgcmVwbGFjZVZhbHVlID09ICdzdHJpbmcnICYmXG4gICAgICAgIHN0cmluZ0luZGV4T2YocmVwbGFjZVZhbHVlLCBVTlNBRkVfU1VCU1RJVFVURSkgPT09IC0xICYmXG4gICAgICAgIHN0cmluZ0luZGV4T2YocmVwbGFjZVZhbHVlLCAnJDwnKSA9PT0gLTFcbiAgICAgICkge1xuICAgICAgICB2YXIgcmVzID0gbWF5YmVDYWxsTmF0aXZlKG5hdGl2ZVJlcGxhY2UsIHJ4LCBTLCByZXBsYWNlVmFsdWUpO1xuICAgICAgICBpZiAocmVzLmRvbmUpIHJldHVybiByZXMudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBmdW5jdGlvbmFsUmVwbGFjZSA9IGlzQ2FsbGFibGUocmVwbGFjZVZhbHVlKTtcbiAgICAgIGlmICghZnVuY3Rpb25hbFJlcGxhY2UpIHJlcGxhY2VWYWx1ZSA9IHRvU3RyaW5nKHJlcGxhY2VWYWx1ZSk7XG5cbiAgICAgIHZhciBnbG9iYWwgPSByeC5nbG9iYWw7XG4gICAgICB2YXIgZnVsbFVuaWNvZGU7XG4gICAgICBpZiAoZ2xvYmFsKSB7XG4gICAgICAgIGZ1bGxVbmljb2RlID0gcngudW5pY29kZTtcbiAgICAgICAgcngubGFzdEluZGV4ID0gMDtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgIHZhciByZXN1bHQ7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICByZXN1bHQgPSByZWdFeHBFeGVjKHJ4LCBTKTtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkgYnJlYWs7XG5cbiAgICAgICAgcHVzaChyZXN1bHRzLCByZXN1bHQpO1xuICAgICAgICBpZiAoIWdsb2JhbCkgYnJlYWs7XG5cbiAgICAgICAgdmFyIG1hdGNoU3RyID0gdG9TdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgaWYgKG1hdGNoU3RyID09PSAnJykgcngubGFzdEluZGV4ID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHRvTGVuZ3RoKHJ4Lmxhc3RJbmRleCksIGZ1bGxVbmljb2RlKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGFjY3VtdWxhdGVkUmVzdWx0ID0gJyc7XG4gICAgICB2YXIgbmV4dFNvdXJjZVBvc2l0aW9uID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICByZXN1bHQgPSByZXN1bHRzW2ldO1xuXG4gICAgICAgIHZhciBtYXRjaGVkID0gdG9TdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gbWF4KG1pbih0b0ludGVnZXJPckluZmluaXR5KHJlc3VsdC5pbmRleCksIFMubGVuZ3RoKSwgMCk7XG4gICAgICAgIHZhciBjYXB0dXJlcyA9IFtdO1xuICAgICAgICB2YXIgcmVwbGFjZW1lbnQ7XG4gICAgICAgIC8vIE5PVEU6IFRoaXMgaXMgZXF1aXZhbGVudCB0b1xuICAgICAgICAvLyAgIGNhcHR1cmVzID0gcmVzdWx0LnNsaWNlKDEpLm1hcChtYXliZVRvU3RyaW5nKVxuICAgICAgICAvLyBidXQgZm9yIHNvbWUgcmVhc29uIGBuYXRpdmVTbGljZS5jYWxsKHJlc3VsdCwgMSwgcmVzdWx0Lmxlbmd0aClgIChjYWxsZWQgaW5cbiAgICAgICAgLy8gdGhlIHNsaWNlIHBvbHlmaWxsIHdoZW4gc2xpY2luZyBuYXRpdmUgYXJyYXlzKSBcImRvZXNuJ3Qgd29ya1wiIGluIHNhZmFyaSA5IGFuZFxuICAgICAgICAvLyBjYXVzZXMgYSBjcmFzaCAoaHR0cHM6Ly9wYXN0ZWJpbi5jb20vTjIxUXplUUEpIHdoZW4gdHJ5aW5nIHRvIGRlYnVnIGl0LlxuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHJlc3VsdC5sZW5ndGg7IGorKykgcHVzaChjYXB0dXJlcywgbWF5YmVUb1N0cmluZyhyZXN1bHRbal0pKTtcbiAgICAgICAgdmFyIG5hbWVkQ2FwdHVyZXMgPSByZXN1bHQuZ3JvdXBzO1xuICAgICAgICBpZiAoZnVuY3Rpb25hbFJlcGxhY2UpIHtcbiAgICAgICAgICB2YXIgcmVwbGFjZXJBcmdzID0gY29uY2F0KFttYXRjaGVkXSwgY2FwdHVyZXMsIHBvc2l0aW9uLCBTKTtcbiAgICAgICAgICBpZiAobmFtZWRDYXB0dXJlcyAhPT0gdW5kZWZpbmVkKSBwdXNoKHJlcGxhY2VyQXJncywgbmFtZWRDYXB0dXJlcyk7XG4gICAgICAgICAgcmVwbGFjZW1lbnQgPSB0b1N0cmluZyhhcHBseShyZXBsYWNlVmFsdWUsIHVuZGVmaW5lZCwgcmVwbGFjZXJBcmdzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVwbGFjZW1lbnQgPSBnZXRTdWJzdGl0dXRpb24obWF0Y2hlZCwgUywgcG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSBuZXh0U291cmNlUG9zaXRpb24pIHtcbiAgICAgICAgICBhY2N1bXVsYXRlZFJlc3VsdCArPSBzdHJpbmdTbGljZShTLCBuZXh0U291cmNlUG9zaXRpb24sIHBvc2l0aW9uKSArIHJlcGxhY2VtZW50O1xuICAgICAgICAgIG5leHRTb3VyY2VQb3NpdGlvbiA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjY3VtdWxhdGVkUmVzdWx0ICsgc3RyaW5nU2xpY2UoUywgbmV4dFNvdXJjZVBvc2l0aW9uKTtcbiAgICB9XG4gIF07XG59LCAhUkVQTEFDRV9TVVBQT1JUU19OQU1FRF9HUk9VUFMgfHwgIVJFUExBQ0VfS0VFUFNfJDAgfHwgUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcblxudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItc3RyaW5nLXNsaWNlIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG52YXIgRk9SQ0VEID0gIScnLnN1YnN0ciB8fCAnYWInLnN1YnN0cigtMSkgIT09ICdiJztcblxuLy8gYFN0cmluZy5wcm90b3R5cGUuc3Vic3RyYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5zdWJzdHJcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBzdWJzdHI6IGZ1bmN0aW9uIHN1YnN0cihzdGFydCwgbGVuZ3RoKSB7XG4gICAgdmFyIHRoYXQgPSB0b1N0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpKTtcbiAgICB2YXIgc2l6ZSA9IHRoYXQubGVuZ3RoO1xuICAgIHZhciBpbnRTdGFydCA9IHRvSW50ZWdlck9ySW5maW5pdHkoc3RhcnQpO1xuICAgIHZhciBpbnRMZW5ndGgsIGludEVuZDtcbiAgICBpZiAoaW50U3RhcnQgPT09IEluZmluaXR5KSBpbnRTdGFydCA9IDA7XG4gICAgaWYgKGludFN0YXJ0IDwgMCkgaW50U3RhcnQgPSBtYXgoc2l6ZSArIGludFN0YXJ0LCAwKTtcbiAgICBpbnRMZW5ndGggPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHNpemUgOiB0b0ludGVnZXJPckluZmluaXR5KGxlbmd0aCk7XG4gICAgaWYgKGludExlbmd0aCA8PSAwIHx8IGludExlbmd0aCA9PT0gSW5maW5pdHkpIHJldHVybiAnJztcbiAgICBpbnRFbmQgPSBtaW4oaW50U3RhcnQgKyBpbnRMZW5ndGgsIHNpemUpO1xuICAgIHJldHVybiBpbnRTdGFydCA+PSBpbnRFbmQgPyAnJyA6IHN0cmluZ1NsaWNlKHRoYXQsIGludFN0YXJ0LCBpbnRFbmQpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmF0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5hdFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnYXQnLCBmdW5jdGlvbiBhdChpbmRleCkge1xuICB2YXIgTyA9IGFUeXBlZEFycmF5KHRoaXMpO1xuICB2YXIgbGVuID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gIHZhciByZWxhdGl2ZUluZGV4ID0gdG9JbnRlZ2VyT3JJbmZpbml0eShpbmRleCk7XG4gIHZhciBrID0gcmVsYXRpdmVJbmRleCA+PSAwID8gcmVsYXRpdmVJbmRleCA6IGxlbiArIHJlbGF0aXZlSW5kZXg7XG4gIHJldHVybiAoayA8IDAgfHwgayA+PSBsZW4pID8gdW5kZWZpbmVkIDogT1trXTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRBcnJheUNvcHlXaXRoaW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktY29weS13aXRoaW4nKTtcblxudmFyIHUkQXJyYXlDb3B5V2l0aGluID0gdW5jdXJyeVRoaXMoJEFycmF5Q29weVdpdGhpbik7XG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmNvcHlXaXRoaW5gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmNvcHl3aXRoaW5cbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2NvcHlXaXRoaW4nLCBmdW5jdGlvbiBjb3B5V2l0aGluKHRhcmdldCwgc3RhcnQgLyogLCBlbmQgKi8pIHtcbiAgcmV0dXJuIHUkQXJyYXlDb3B5V2l0aGluKGFUeXBlZEFycmF5KHRoaXMpLCB0YXJnZXQsIHN0YXJ0LCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZXZlcnkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZXZlcnk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmV2ZXJ5XG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdldmVyeScsIGZ1bmN0aW9uIGV2ZXJ5KGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZXZlcnkoYVR5cGVkQXJyYXkodGhpcyksIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRmaWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZpbGwnKTtcbnZhciB0b0JpZ0ludCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1iaWctaW50Jyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyIHNsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG4vLyBWOCB+IENocm9tZSA8IDU5LCBTYWZhcmkgPCAxNC4xLCBGRiA8IDU1LCBFZGdlIDw9MThcbnZhciBDT05WRVJTSU9OX0JVRyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGNvdW50ID0gMDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLXR5cGVkLWFycmF5cyAtLSBzYWZlXG4gIG5ldyBJbnQ4QXJyYXkoMikuZmlsbCh7IHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvdW50Kys7IH0gfSk7XG4gIHJldHVybiBjb3VudCAhPT0gMTtcbn0pO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maWxsYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5maWxsXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdmaWxsJywgZnVuY3Rpb24gZmlsbCh2YWx1ZSAvKiAsIHN0YXJ0LCBlbmQgKi8pIHtcbiAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIGFUeXBlZEFycmF5KHRoaXMpO1xuICB2YXIgYWN0dWFsVmFsdWUgPSBzbGljZShjbGFzc29mKHRoaXMpLCAwLCAzKSA9PT0gJ0JpZycgPyB0b0JpZ0ludCh2YWx1ZSkgOiArdmFsdWU7XG4gIHJldHVybiBjYWxsKCRmaWxsLCB0aGlzLCBhY3R1YWxWYWx1ZSwgbGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgbGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCk7XG59LCBDT05WRVJTSU9OX0JVRyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGZpbHRlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5maWx0ZXI7XG52YXIgZnJvbVNwZWNpZXNBbmRMaXN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWZyb20tc3BlY2llcy1hbmQtbGlzdCcpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuZmlsdGVyXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdmaWx0ZXInLCBmdW5jdGlvbiBmaWx0ZXIoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgdmFyIGxpc3QgPSAkZmlsdGVyKGFUeXBlZEFycmF5KHRoaXMpLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIHJldHVybiBmcm9tU3BlY2llc0FuZExpc3QodGhpcywgbGlzdCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZmluZEluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbmRJbmRleDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kSW5kZXhgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmZpbmRpbmRleFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZmluZEluZGV4JywgZnVuY3Rpb24gZmluZEluZGV4KHByZWRpY2F0ZSAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRmaW5kSW5kZXgoYVR5cGVkQXJyYXkodGhpcyksIHByZWRpY2F0ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGZpbmRMYXN0SW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uLWZyb20tbGFzdCcpLmZpbmRMYXN0SW5kZXg7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuZmluZExhc3RJbmRleGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuZmluZGxhc3RpbmRleFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZmluZExhc3RJbmRleCcsIGZ1bmN0aW9uIGZpbmRMYXN0SW5kZXgocHJlZGljYXRlIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJGZpbmRMYXN0SW5kZXgoYVR5cGVkQXJyYXkodGhpcyksIHByZWRpY2F0ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGZpbmRMYXN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi1mcm9tLWxhc3QnKS5maW5kTGFzdDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kTGFzdGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuZmluZGxhc3RcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2ZpbmRMYXN0JywgZnVuY3Rpb24gZmluZExhc3QocHJlZGljYXRlIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJGZpbmRMYXN0KGFUeXBlZEFycmF5KHRoaXMpLCBwcmVkaWNhdGUsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRmaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbmQ7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuZmluZGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuZmluZFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZmluZCcsIGZ1bmN0aW9uIGZpbmQocHJlZGljYXRlIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJGZpbmQoYVR5cGVkQXJyYXkodGhpcyksIHByZWRpY2F0ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZm9yRWFjaDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5mb3JlYWNoXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdmb3JFYWNoJywgZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAkZm9yRWFjaChhVHlwZWRBcnJheSh0aGlzKSwgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGluY2x1ZGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5jbHVkZXM7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuaW5jbHVkZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmluY2x1ZGVzXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdpbmNsdWRlcycsIGZ1bmN0aW9uIGluY2x1ZGVzKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggKi8pIHtcbiAgcmV0dXJuICRpbmNsdWRlcyhhVHlwZWRBcnJheSh0aGlzKSwgc2VhcmNoRWxlbWVudCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmluZGV4T2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmluZGV4b2ZcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2luZGV4T2YnLCBmdW5jdGlvbiBpbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggKi8pIHtcbiAgcmV0dXJuICRpbmRleE9mKGFUeXBlZEFycmF5KHRoaXMpLCBzZWFyY2hFbGVtZW50LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBBcnJheUl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3InKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFVpbnQ4QXJyYXkgPSBnbG9iYWxUaGlzLlVpbnQ4QXJyYXk7XG52YXIgYXJyYXlWYWx1ZXMgPSB1bmN1cnJ5VGhpcyhBcnJheUl0ZXJhdG9ycy52YWx1ZXMpO1xudmFyIGFycmF5S2V5cyA9IHVuY3VycnlUaGlzKEFycmF5SXRlcmF0b3JzLmtleXMpO1xudmFyIGFycmF5RW50cmllcyA9IHVuY3VycnlUaGlzKEFycmF5SXRlcmF0b3JzLmVudHJpZXMpO1xudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyIFR5cGVkQXJyYXlQcm90b3R5cGUgPSBVaW50OEFycmF5ICYmIFVpbnQ4QXJyYXkucHJvdG90eXBlO1xuXG52YXIgR0VORVJJQyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIFR5cGVkQXJyYXlQcm90b3R5cGVbSVRFUkFUT1JdLmNhbGwoWzFdKTtcbn0pO1xuXG52YXIgSVRFUkFUT1JfSVNfVkFMVUVTID0gISFUeXBlZEFycmF5UHJvdG90eXBlXG4gICYmIFR5cGVkQXJyYXlQcm90b3R5cGUudmFsdWVzXG4gICYmIFR5cGVkQXJyYXlQcm90b3R5cGVbSVRFUkFUT1JdID09PSBUeXBlZEFycmF5UHJvdG90eXBlLnZhbHVlc1xuICAmJiBUeXBlZEFycmF5UHJvdG90eXBlLnZhbHVlcy5uYW1lID09PSAndmFsdWVzJztcblxudmFyIHR5cGVkQXJyYXlWYWx1ZXMgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7XG4gIHJldHVybiBhcnJheVZhbHVlcyhhVHlwZWRBcnJheSh0aGlzKSk7XG59O1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5lbnRyaWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5lbnRyaWVzXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdlbnRyaWVzJywgZnVuY3Rpb24gZW50cmllcygpIHtcbiAgcmV0dXJuIGFycmF5RW50cmllcyhhVHlwZWRBcnJheSh0aGlzKSk7XG59LCBHRU5FUklDKTtcbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmtleXNcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2tleXMnLCBmdW5jdGlvbiBrZXlzKCkge1xuICByZXR1cm4gYXJyYXlLZXlzKGFUeXBlZEFycmF5KHRoaXMpKTtcbn0sIEdFTkVSSUMpO1xuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUudmFsdWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS52YWx1ZXNcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3ZhbHVlcycsIHR5cGVkQXJyYXlWYWx1ZXMsIEdFTkVSSUMgfHwgIUlURVJBVE9SX0lTX1ZBTFVFUywgeyBuYW1lOiAndmFsdWVzJyB9KTtcbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS1AQGl0ZXJhdG9yXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKElURVJBVE9SLCB0eXBlZEFycmF5VmFsdWVzLCBHRU5FUklDIHx8ICFJVEVSQVRPUl9JU19WQUxVRVMsIHsgbmFtZTogJ3ZhbHVlcycgfSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcbnZhciAkam9pbiA9IHVuY3VycnlUaGlzKFtdLmpvaW4pO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5qb2luYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5qb2luXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdqb2luJywgZnVuY3Rpb24gam9pbihzZXBhcmF0b3IpIHtcbiAgcmV0dXJuICRqb2luKGFUeXBlZEFycmF5KHRoaXMpLCBzZXBhcmF0b3IpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgYXBwbHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHknKTtcbnZhciAkbGFzdEluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbGFzdC1pbmRleC1vZicpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmxhc3RJbmRleE9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5sYXN0aW5kZXhvZlxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnbGFzdEluZGV4T2YnLCBmdW5jdGlvbiBsYXN0SW5kZXhPZihzZWFyY2hFbGVtZW50IC8qICwgZnJvbUluZGV4ICovKSB7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICByZXR1cm4gYXBwbHkoJGxhc3RJbmRleE9mLCBhVHlwZWRBcnJheSh0aGlzKSwgbGVuZ3RoID4gMSA/IFtzZWFyY2hFbGVtZW50LCBhcmd1bWVudHNbMV1dIDogW3NlYXJjaEVsZW1lbnRdKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRtYXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykubWFwO1xudmFyIHR5cGVkQXJyYXlTcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUubWFwXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdtYXAnLCBmdW5jdGlvbiBtYXAobWFwZm4gLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkbWFwKGFUeXBlZEFycmF5KHRoaXMpLCBtYXBmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIGZ1bmN0aW9uIChPLCBsZW5ndGgpIHtcbiAgICByZXR1cm4gbmV3ICh0eXBlZEFycmF5U3BlY2llc0NvbnN0cnVjdG9yKE8pKShsZW5ndGgpO1xuICB9KTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRyZWR1Y2VSaWdodCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1yZWR1Y2UnKS5yaWdodDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5yZWR1Y2VSaWdodGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUucmVkdWNlcmlnaHRcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3JlZHVjZVJpZ2h0JywgZnVuY3Rpb24gcmVkdWNlUmlnaHQoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykge1xuICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgcmV0dXJuICRyZWR1Y2VSaWdodChhVHlwZWRBcnJheSh0aGlzKSwgY2FsbGJhY2tmbiwgbGVuZ3RoLCBsZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRyZWR1Y2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktcmVkdWNlJykubGVmdDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5yZWR1Y2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnJlZHVjZVxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgncmVkdWNlJywgZnVuY3Rpb24gcmVkdWNlKGNhbGxiYWNrZm4gLyogLCBpbml0aWFsVmFsdWUgKi8pIHtcbiAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHJldHVybiAkcmVkdWNlKGFUeXBlZEFycmF5KHRoaXMpLCBjYWxsYmFja2ZuLCBsZW5ndGgsIGxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnJldmVyc2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnJldmVyc2VcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3JldmVyc2UnLCBmdW5jdGlvbiByZXZlcnNlKCkge1xuICB2YXIgdGhhdCA9IHRoaXM7XG4gIHZhciBsZW5ndGggPSBhVHlwZWRBcnJheSh0aGF0KS5sZW5ndGg7XG4gIHZhciBtaWRkbGUgPSBmbG9vcihsZW5ndGggLyAyKTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIHZhbHVlO1xuICB3aGlsZSAoaW5kZXggPCBtaWRkbGUpIHtcbiAgICB2YWx1ZSA9IHRoYXRbaW5kZXhdO1xuICAgIHRoYXRbaW5kZXgrK10gPSB0aGF0Wy0tbGVuZ3RoXTtcbiAgICB0aGF0W2xlbmd0aF0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdGhhdDtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIHRvT2Zmc2V0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9mZnNldCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgUmFuZ2VFcnJvciA9IGdsb2JhbFRoaXMuUmFuZ2VFcnJvcjtcbnZhciBJbnQ4QXJyYXkgPSBnbG9iYWxUaGlzLkludDhBcnJheTtcbnZhciBJbnQ4QXJyYXlQcm90b3R5cGUgPSBJbnQ4QXJyYXkgJiYgSW50OEFycmF5LnByb3RvdHlwZTtcbnZhciAkc2V0ID0gSW50OEFycmF5UHJvdG90eXBlICYmIEludDhBcnJheVByb3RvdHlwZS5zZXQ7XG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbnZhciBXT1JLU19XSVRIX09CSkVDVFNfQU5EX0dFTkVSSUNfT05fVFlQRURfQVJSQVlTID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLXR5cGVkLWFycmF5cyAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICB2YXIgYXJyYXkgPSBuZXcgVWludDhDbGFtcGVkQXJyYXkoMik7XG4gIGNhbGwoJHNldCwgYXJyYXksIHsgbGVuZ3RoOiAxLCAwOiAzIH0sIDEpO1xuICByZXR1cm4gYXJyYXlbMV0gIT09IDM7XG59KTtcblxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MTEyOTQgYW5kIG90aGVyXG52YXIgVE9fT0JKRUNUX0JVRyA9IFdPUktTX1dJVEhfT0JKRUNUU19BTkRfR0VORVJJQ19PTl9UWVBFRF9BUlJBWVMgJiYgQXJyYXlCdWZmZXJWaWV3Q29yZS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFycmF5ID0gbmV3IEludDhBcnJheSgyKTtcbiAgYXJyYXkuc2V0KDEpO1xuICBhcnJheS5zZXQoJzInLCAxKTtcbiAgcmV0dXJuIGFycmF5WzBdICE9PSAwIHx8IGFycmF5WzFdICE9PSAyO1xufSk7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnNldGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuc2V0XG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdzZXQnLCBmdW5jdGlvbiBzZXQoYXJyYXlMaWtlIC8qICwgb2Zmc2V0ICovKSB7XG4gIGFUeXBlZEFycmF5KHRoaXMpO1xuICB2YXIgb2Zmc2V0ID0gdG9PZmZzZXQoYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIDEpO1xuICB2YXIgc3JjID0gdG9JbmRleGVkT2JqZWN0KGFycmF5TGlrZSk7XG4gIGlmIChXT1JLU19XSVRIX09CSkVDVFNfQU5EX0dFTkVSSUNfT05fVFlQRURfQVJSQVlTKSByZXR1cm4gY2FsbCgkc2V0LCB0aGlzLCBzcmMsIG9mZnNldCk7XG4gIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgdmFyIGxlbiA9IGxlbmd0aE9mQXJyYXlMaWtlKHNyYyk7XG4gIHZhciBpbmRleCA9IDA7XG4gIGlmIChsZW4gKyBvZmZzZXQgPiBsZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdXcm9uZyBsZW5ndGgnKTtcbiAgd2hpbGUgKGluZGV4IDwgbGVuKSB0aGlzW29mZnNldCArIGluZGV4XSA9IHNyY1tpbmRleCsrXTtcbn0sICFXT1JLU19XSVRIX09CSkVDVFNfQU5EX0dFTkVSSUNfT05fVFlQRURfQVJSQVlTIHx8IFRPX09CSkVDVF9CVUcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIHR5cGVkQXJyYXlTcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgYXJyYXlTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZScpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbnZhciBGT1JDRUQgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby10eXBlZC1hcnJheXMgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgbmV3IEludDhBcnJheSgxKS5zbGljZSgpO1xufSk7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnNsaWNlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zbGljZVxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnc2xpY2UnLCBmdW5jdGlvbiBzbGljZShzdGFydCwgZW5kKSB7XG4gIHZhciBsaXN0ID0gYXJyYXlTbGljZShhVHlwZWRBcnJheSh0aGlzKSwgc3RhcnQsIGVuZCk7XG4gIHZhciBDID0gdHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3Rvcih0aGlzKTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICB2YXIgcmVzdWx0ID0gbmV3IEMobGVuZ3RoKTtcbiAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSByZXN1bHRbaW5kZXhdID0gbGlzdFtpbmRleCsrXTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0sIEZPUkNFRCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJHNvbWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuc29tZTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zb21lYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zb21lXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdzb21lJywgZnVuY3Rpb24gc29tZShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJHNvbWUoYVR5cGVkQXJyYXkodGhpcyksIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGludGVybmFsU29ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zb3J0Jyk7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgRkYgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtZmYtdmVyc2lvbicpO1xudmFyIElFX09SX0VER0UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtaXMtaWUtb3ItZWRnZScpO1xudmFyIFY4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcbnZhciBXRUJLSVQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtd2Via2l0LXZlcnNpb24nKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyIFVpbnQxNkFycmF5ID0gZ2xvYmFsVGhpcy5VaW50MTZBcnJheTtcbnZhciBuYXRpdmVTb3J0ID0gVWludDE2QXJyYXkgJiYgdW5jdXJyeVRoaXMoVWludDE2QXJyYXkucHJvdG90eXBlLnNvcnQpO1xuXG4vLyBXZWJLaXRcbnZhciBBQ0NFUFRfSU5DT1JSRUNUX0FSR1VNRU5UUyA9ICEhbmF0aXZlU29ydCAmJiAhKGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgbmF0aXZlU29ydChuZXcgVWludDE2QXJyYXkoMiksIG51bGwpO1xufSkgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICBuYXRpdmVTb3J0KG5ldyBVaW50MTZBcnJheSgyKSwge30pO1xufSkpO1xuXG52YXIgU1RBQkxFX1NPUlQgPSAhIW5hdGl2ZVNvcnQgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZmVhdHVyZSBkZXRlY3Rpb24gY2FuIGJlIHRvbyBzbG93LCBzbyBjaGVjayBlbmdpbmVzIHZlcnNpb25zXG4gIGlmIChWOCkgcmV0dXJuIFY4IDwgNzQ7XG4gIGlmIChGRikgcmV0dXJuIEZGIDwgNjc7XG4gIGlmIChJRV9PUl9FREdFKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFdFQktJVCkgcmV0dXJuIFdFQktJVCA8IDYwMjtcblxuICB2YXIgYXJyYXkgPSBuZXcgVWludDE2QXJyYXkoNTE2KTtcbiAgdmFyIGV4cGVjdGVkID0gQXJyYXkoNTE2KTtcbiAgdmFyIGluZGV4LCBtb2Q7XG5cbiAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgNTE2OyBpbmRleCsrKSB7XG4gICAgbW9kID0gaW5kZXggJSA0O1xuICAgIGFycmF5W2luZGV4XSA9IDUxNSAtIGluZGV4O1xuICAgIGV4cGVjdGVkW2luZGV4XSA9IGluZGV4IC0gMiAqIG1vZCArIDM7XG4gIH1cblxuICBuYXRpdmVTb3J0KGFycmF5LCBmdW5jdGlvbiAoYSwgYikge1xuICAgIHJldHVybiAoYSAvIDQgfCAwKSAtIChiIC8gNCB8IDApO1xuICB9KTtcblxuICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCA1MTY7IGluZGV4KyspIHtcbiAgICBpZiAoYXJyYXlbaW5kZXhdICE9PSBleHBlY3RlZFtpbmRleF0pIHJldHVybiB0cnVlO1xuICB9XG59KTtcblxudmFyIGdldFNvcnRDb21wYXJlID0gZnVuY3Rpb24gKGNvbXBhcmVmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICBpZiAoY29tcGFyZWZuICE9PSB1bmRlZmluZWQpIHJldHVybiArY29tcGFyZWZuKHgsIHkpIHx8IDA7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoeSAhPT0geSkgcmV0dXJuIC0xO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gICAgaWYgKHggIT09IHgpIHJldHVybiAxO1xuICAgIGlmICh4ID09PSAwICYmIHkgPT09IDApIHJldHVybiAxIC8geCA+IDAgJiYgMSAvIHkgPCAwID8gMSA6IC0xO1xuICAgIHJldHVybiB4ID4geTtcbiAgfTtcbn07XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnNvcnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnNvcnRcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3NvcnQnLCBmdW5jdGlvbiBzb3J0KGNvbXBhcmVmbikge1xuICBpZiAoY29tcGFyZWZuICE9PSB1bmRlZmluZWQpIGFDYWxsYWJsZShjb21wYXJlZm4pO1xuICBpZiAoU1RBQkxFX1NPUlQpIHJldHVybiBuYXRpdmVTb3J0KHRoaXMsIGNvbXBhcmVmbik7XG5cbiAgcmV0dXJuIGludGVybmFsU29ydChhVHlwZWRBcnJheSh0aGlzKSwgZ2V0U29ydENvbXBhcmUoY29tcGFyZWZuKSk7XG59LCAhU1RBQkxFX1NPUlQgfHwgQUNDRVBUX0lOQ09SUkVDVF9BUkdVTUVOVFMpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIHR5cGVkQXJyYXlTcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnN1YmFycmF5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zdWJhcnJheVxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnc3ViYXJyYXknLCBmdW5jdGlvbiBzdWJhcnJheShiZWdpbiwgZW5kKSB7XG4gIHZhciBPID0gYVR5cGVkQXJyYXkodGhpcyk7XG4gIHZhciBsZW5ndGggPSBPLmxlbmd0aDtcbiAgdmFyIGJlZ2luSW5kZXggPSB0b0Fic29sdXRlSW5kZXgoYmVnaW4sIGxlbmd0aCk7XG4gIHZhciBDID0gdHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3RvcihPKTtcbiAgcmV0dXJuIG5ldyBDKFxuICAgIE8uYnVmZmVyLFxuICAgIE8uYnl0ZU9mZnNldCArIGJlZ2luSW5kZXggKiBPLkJZVEVTX1BFUl9FTEVNRU5ULFxuICAgIHRvTGVuZ3RoKChlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IHRvQWJzb2x1dGVJbmRleChlbmQsIGxlbmd0aCkpIC0gYmVnaW5JbmRleClcbiAgKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBhcHBseSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1hcHBseScpO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgYXJyYXlTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZScpO1xuXG52YXIgSW50OEFycmF5ID0gZ2xvYmFsVGhpcy5JbnQ4QXJyYXk7XG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgJHRvTG9jYWxlU3RyaW5nID0gW10udG9Mb2NhbGVTdHJpbmc7XG5cbi8vIGlPUyBTYWZhcmkgNi54IGZhaWxzIGhlcmVcbnZhciBUT19MT0NBTEVfU1RSSU5HX0JVRyA9ICEhSW50OEFycmF5ICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgJHRvTG9jYWxlU3RyaW5nLmNhbGwobmV3IEludDhBcnJheSgxKSk7XG59KTtcblxudmFyIEZPUkNFRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFsxLCAyXS50b0xvY2FsZVN0cmluZygpICE9PSBuZXcgSW50OEFycmF5KFsxLCAyXSkudG9Mb2NhbGVTdHJpbmcoKTtcbn0pIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIEludDhBcnJheS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcuY2FsbChbMSwgMl0pO1xufSk7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS50b2xvY2FsZXN0cmluZ1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgndG9Mb2NhbGVTdHJpbmcnLCBmdW5jdGlvbiB0b0xvY2FsZVN0cmluZygpIHtcbiAgcmV0dXJuIGFwcGx5KFxuICAgICR0b0xvY2FsZVN0cmluZyxcbiAgICBUT19MT0NBTEVfU1RSSU5HX0JVRyA/IGFycmF5U2xpY2UoYVR5cGVkQXJyYXkodGhpcykpIDogYVR5cGVkQXJyYXkodGhpcyksXG4gICAgYXJyYXlTbGljZShhcmd1bWVudHMpXG4gICk7XG59LCBGT1JDRUQpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFycmF5VG9SZXZlcnNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS10by1yZXZlcnNlZCcpO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnRvUmV2ZXJzZWRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnRvcmV2ZXJzZWRcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3RvUmV2ZXJzZWQnLCBmdW5jdGlvbiB0b1JldmVyc2VkKCkge1xuICByZXR1cm4gYXJyYXlUb1JldmVyc2VkKGFUeXBlZEFycmF5KHRoaXMpLCBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IodGhpcykpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciBhcnJheUZyb21Db25zdHJ1Y3RvckFuZExpc3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZnJvbS1jb25zdHJ1Y3Rvci1hbmQtbGlzdCcpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IEFycmF5QnVmZmVyVmlld0NvcmUuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgc29ydCA9IHVuY3VycnlUaGlzKEFycmF5QnVmZmVyVmlld0NvcmUuVHlwZWRBcnJheVByb3RvdHlwZS5zb3J0KTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUudG9Tb3J0ZWRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnRvc29ydGVkXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCd0b1NvcnRlZCcsIGZ1bmN0aW9uIHRvU29ydGVkKGNvbXBhcmVGbikge1xuICBpZiAoY29tcGFyZUZuICE9PSB1bmRlZmluZWQpIGFDYWxsYWJsZShjb21wYXJlRm4pO1xuICB2YXIgTyA9IGFUeXBlZEFycmF5KHRoaXMpO1xuICB2YXIgQSA9IGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdChnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IoTyksIE8pO1xuICByZXR1cm4gc29ydChBLCBjb21wYXJlRm4pO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJykuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIFVpbnQ4QXJyYXkgPSBnbG9iYWxUaGlzLlVpbnQ4QXJyYXk7XG52YXIgVWludDhBcnJheVByb3RvdHlwZSA9IFVpbnQ4QXJyYXkgJiYgVWludDhBcnJheS5wcm90b3R5cGUgfHwge307XG52YXIgYXJyYXlUb1N0cmluZyA9IFtdLnRvU3RyaW5nO1xudmFyIGpvaW4gPSB1bmN1cnJ5VGhpcyhbXS5qb2luKTtcblxuaWYgKGZhaWxzKGZ1bmN0aW9uICgpIHsgYXJyYXlUb1N0cmluZy5jYWxsKHt9KTsgfSkpIHtcbiAgYXJyYXlUb1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBqb2luKHRoaXMpO1xuICB9O1xufVxuXG52YXIgSVNfTk9UX0FSUkFZX01FVEhPRCA9IFVpbnQ4QXJyYXlQcm90b3R5cGUudG9TdHJpbmcgIT09IGFycmF5VG9TdHJpbmc7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS50b3N0cmluZ1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgndG9TdHJpbmcnLCBhcnJheVRvU3RyaW5nLCBJU19OT1RfQVJSQVlfTUVUSE9EKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3InKTtcblxuLy8gYFVpbnQ4QXJyYXlgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXR5cGVkYXJyYXktb2JqZWN0c1xuY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yKCdVaW50OCcsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBVaW50OEFycmF5KGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICAgIHJldHVybiBpbml0KHRoaXMsIGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhcnJheVdpdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktd2l0aCcpO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIGlzQmlnSW50QXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYmlnLWludC1hcnJheScpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvQmlnSW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWJpZy1pbnQnKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG52YXIgUFJPUEVSX09SREVSID0gISFmdW5jdGlvbiAoKSB7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWwsIGVzL25vLXR5cGVkLWFycmF5cywgZXMvbm8tYXJyYXktcHJvdG90eXBlLXdpdGggLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICBuZXcgSW50OEFycmF5KDEpWyd3aXRoJ10oMiwgeyB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHRocm93IDg7IH0gfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gc29tZSBlYXJseSBpbXBsZW1lbnRhdGlvbnMsIGxpa2UgV2ViS2l0LCBkb2VzIG5vdCBmb2xsb3cgdGhlIGZpbmFsIHNlbWFudGljXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY2hhbmdlLWFycmF5LWJ5LWNvcHkvcHVsbC84NlxuICAgIHJldHVybiBlcnJvciA9PT0gODtcbiAgfVxufSgpO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS53aXRoYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS53aXRoXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCd3aXRoJywgeyAnd2l0aCc6IGZ1bmN0aW9uIChpbmRleCwgdmFsdWUpIHtcbiAgdmFyIE8gPSBhVHlwZWRBcnJheSh0aGlzKTtcbiAgdmFyIHJlbGF0aXZlSW5kZXggPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgdmFyIGFjdHVhbFZhbHVlID0gaXNCaWdJbnRBcnJheShPKSA/IHRvQmlnSW50KHZhbHVlKSA6ICt2YWx1ZTtcbiAgcmV0dXJuIGFycmF5V2l0aChPLCBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IoTyksIHJlbGF0aXZlSW5kZXgsIGFjdHVhbFZhbHVlKTtcbn0gfVsnd2l0aCddLCAhUFJPUEVSX09SREVSKTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsImltcG9ydCB7IG5vcm1hbFBpeGVsLCBnZXREYXRlLCBmaW5kQ29tcG9uZW50LCBpc1BhdGNoQ29tcG9uZW50LCBnZXRDb25maWdPcHRpb25zIH0gZnJvbSAnLi9jb21tb24uanMnXG5cbmV4cG9ydCBjb25zdCBNT0RFID0ge1xuICBPUEVSQVRFOiAnb3BlcmF0ZScsXG4gIERFVEFJTDogJ2RldGFpbCcsXG4gIExPRzogJ2xvZydcbn1cbmV4cG9ydCBjb25zdCBBUkdfRkxBR1MgPSB7XG4gIENVUlJFTlRfREFURTogJ19jdXJyZW50RGF0ZScsXG4gIFJFRl9WQUw6ICdfcmVmVmFsJ1xufVxuZXhwb3J0IGNvbnN0IE5PVF9MT0dfRUZGRUNUX1RZUEUgPSBbJ0N1c3RvbUNvbXBvbmVudFRhYnMnLCAnQ3VzdG9tQ29tcG9uZW50VGFiUGFuZScsICdDdXN0b21Db21wb25lbnRDeWNsZVRhYlBhbmUnLCAnQ3VzdG9tQ29tcG9uZW50Q29sbGFwc2UnLCAnQ3VzdG9tQ29tcG9uZW50VGFiUGFuZUg1J11cbmV4cG9ydCBjb25zdCBGT1JNX01FVEFfVFlQRSA9ICdDdXN0b21Db21wb25lbnRGb3JtTGF5b3V0J1xuZXhwb3J0IGNvbnN0IEZPUk1fTUVUQV9UWVBFX0g1ID0gJ0N1c3RvbUNvbXBvbmVudEZvcm1MYXlvdXRINSdcbmV4cG9ydCBjb25zdCBDT05URVhUX1BFRERJTkdfVFlQRSA9IFsnQ3VzdG9tQ29tcG9uZW50RGlhbG9nJ11cbmV4cG9ydCBjb25zdCBOT1RfTkVFRF9GT1JNX0lURU1fTUVUQV9UWVBFID0gW1xuICAnQ3VzdG9tQ29tcG9uZW50VGFicycsXG4gICdDdXN0b21Db21wb25lbnRUYWJQYW5lJyxcbiAgJ0N1c3RvbUNvbXBvbmVudEN5Y2xlVGFiUGFuZScsXG4gICdDdXN0b21Db21wb25lbnRDb2xsYXBzZScsXG4gICdDdXN0b21Db21wb25lbnREaWFsb2cnLFxuICAnRWxCdXR0b24nLFxuICAnQ3VzdG9tQ29tcG9uZW50VGFibGUnLFxuICAnQ3VzdG9tQ29tcG9uZW50Um93JyxcbiAgJ0N1c3RvbUNvbXBvbmVudENvbCcsXG5cbiAgJ0N1c3RvbUNvbXBvbmVudENhcmRINScsXG4gICdDdXN0b21Db21wb25lbnRDb2xsYXBzZUg1JyxcbiAgJ0N1c3RvbUNvbXBvbmVudFRhYnNINScsXG4gICdDdXN0b21Db21wb25lbnRUYWJQYW5lSDUnLFxuICAnQ3VzdG9tQ29tcG9uZW50VGFibGVINScsXG4gICdjbWktY2VsbCcsXG4gICdjbWktYnV0dG9uJyxcbiAgJ2NtaS1saW5rJyxcbiAgJ2NtaS1kcm9wZG93bi1tZW51JyxcbiAgJ2NtaS1kaXZpZGVyJ1xuXVxuZXhwb3J0IGNvbnN0IFRSQU5TX0NFTExfQ09NUE9ORVRTID0gWydDbWlJbnB1dCcsICdDbWlTZWxlY3QnXVxuZXhwb3J0IGNvbnN0IE5PVF9ORUVEX0NPTF9JVEVNX01FVEFfVFlQRSA9IFsnQ3VzdG9tQ29tcG9uZW50VGFiUGFuZScsICdDdXN0b21Db21wb25lbnREaWFsb2cnLCAnQ3VzdG9tQ29tcG9uZW50Q29sJywgJ0N1c3RvbUNvbXBvbmVudFRhYlBhbmVINSddXG5leHBvcnQgY29uc3QgTVVMVElfUEFHRV9NRVRBX0xJU1RfVFlQRVMgPSBbJ0N1c3RvbUNvbXBvbmVudFRhYmxlJ11cbmV4cG9ydCBjb25zdCBTUEVDSUFMX1NFVF9GVUxMX1dJRFRIX0lURU1fTUVUQV9UWVBFID0gWydlbC1zZWxlY3QnLCAnZWwtZGF0ZS1waWNrZXInLCAnZWwtdGltZS1waWNrZXInLCAnZWwtdGltZS1zZWxlY3QnLCAnZWwtY2FzY2FkZXInLCAnZWwtaW5wdXQtbnVtYmVyJywgJ0N1c3RvbUNvbXBvbmVudFRyZWUnLCAnQ3VzdG9tQ29tcG9uZW50U3RlcHMnXVxuZXhwb3J0IGNvbnN0IFRBQkxFX0NPTFVNTl9OT1RfUkVOREVSX01FVEFfVFlQRSA9IFsnZWwtc3BhbiddXG5leHBvcnQgY29uc3QgUFJFRklYX0ZMQUcgPSAnZWwtJ1xuZXhwb3J0IGNvbnN0IFJFUExBQ0VfUFJFRklYX0ZMQUcgPSAndC0nXG5leHBvcnQgY29uc3QgSDVfUFJFRklYX0ZMQUcgPSAnY21pLSdcbmV4cG9ydCBjb25zdCBINV9SRVBMQUNFX1BSRUZJWF9GTEFHID0gJ0g1LSdcbmV4cG9ydCBjb25zdCBESVNQTEFZX1NIT1cgPSAnMSdcbmV4cG9ydCBjb25zdCBESVNQTEFZX0hJRERFTiA9ICcwJ1xuZXhwb3J0IGNvbnN0IFBMQUlOX1RZUEVfQUxPTkdfQ09MVU1OUyA9IFsnRWxUZXh0J11cbmV4cG9ydCBjb25zdCBQTEFJTl9UWVBFX0NPTFVNTlMgPSBbJ0VsSW5wdXQnLCAnRWxEYXRlUGlja2VyJywgJ0VsSW5wdXROdW1iZXInXVxuZXhwb3J0IGNvbnN0IFBMQUlOX1RZUEVfT1BUSU9OU19DT0xVTU5TID0gWydFbFNlbGVjdCddXG5leHBvcnQgY29uc3QgTUFJTF9TRU5EX1VSTCA9ICcvZ2N3ZWIvRXh0ZXJuYWxfTWFpbCdcbmV4cG9ydCBjb25zdCBjb21tb25Qcm9wc1R5cGUgPSB7XG4gIC8vIOi/mei+ueaYr+e7hOS7tueahOS/oeaBr1xuICBjb21wSW5mbzoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gY29uZmlnXG4gICAgfVxuICB9LFxuICBtb2RlbFZhbHVlOiB7XG4gICAgdHlwZTogW1N0cmluZywgTnVtYmVyLCBPYmplY3QsIEFycmF5LCB1bmRlZmluZWQsIG51bGxdLFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlLnZhbHVlXG4gICAgfVxuICB9LFxuICAvLyDov5novrnmmK/nu4Tku7bnmoTkv6Hmga9cbiAgY29uZmlnOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9XG4gIH0sXG4gIC8vIOe7hOS7tuWvueW6lOeahHJlZueahOWAvFxuICByZWZWYWx1ZToge1xuICAgIHR5cGU6IFtPYmplY3QsIE51bWJlciwgU3RyaW5nXSxcbiAgICBkZWZhdWx0OiAnJyxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZVxuICAgIH1cbiAgfSxcbiAgLy8g57uE5Lu25piv5ZCm56aB55SoXG4gIGRpc2FibGVkOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gY2FsY0Rpc2FibGUoY29uZmlnLCBwcm9wcy5tb2RlKVxuICAgIH1cbiAgfSxcbiAgLy8g57uE5Lu25piv5ZCm5Y+v5riF6ZmkXG4gIGNsZWFyYWJsZToge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5jbGVhcmFibGVGbGFnID09PSAnMSdcbiAgICB9XG4gIH0sXG4gIC8vIOe7hOS7tuaYr+WQpuW/heWhq1xuICByZXF1aXJlZDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5yZXF1aXJlZEZsYWcgPT09ICcxJ1xuICAgIH1cbiAgfSxcbiAgLy8g57uE5Lu25piv5ZCm5bGV56S65b+F5aGr5qCH6K+GXG4gIG9ubHlSZXF1aXJlZEZsYWc6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBjb25maWcub25seVJlcXVpcmVkRmxhZ1xuICAgIH1cbiAgfSxcbiAgLy8g6KGo5qC85byV55So5Yiw57uE5Lu255qE5pe25YCZ77yM5Lya5Lyg5YWl6KGo5qC85pWw5o2uXG4gIHRhYmxlRGF0YToge1xuICAgIHR5cGU6IEFycmF5LFxuICAgIGRlZmF1bHQ6ICgpID0+IFtdLFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBwcm9wcy50YWJsZURhdGFcbiAgICB9XG4gIH0sXG4gIC8vIOihqOagvOW8leeUqOWIsOe7hOS7tueahOaXtuWAme+8jOS8muS8oOWFpSByb3cg6LefIGluZGV4IOeahOmbhuWQiFxuICByb3dTY29wZToge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gcHJvcHMucm93U2NvcGVcbiAgICB9XG4gIH0sXG4gIHdpZHRoOiB7XG4gICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcbiAgICBkZWZhdWx0OiAnJyxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlKSB7XG4gICAgICBpZiAoIWNvbmZpZy53aWR0aCkgcmV0dXJuIG51bGxcbiAgICAgIHJldHVybiBub3JtYWxQaXhlbChjb25maWcud2lkdGgpXG4gICAgfVxuICB9LFxuICBtb2RlOiB7XG4gICAgdHlwZTogW1N0cmluZ10sXG4gICAgZGVmYXVsdDogJycsXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywpIHtcbiAgICAgIHJldHVybiBwcm9wcy5tb2RlXG4gICAgfVxuICB9LFxuICBvcHRpb25zOiB7XG4gICAgdHlwZTogQXJyYXksXG4gICAgZGVmYXVsdDogKCkgPT4gW10sXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSwgc2VsZWN0cykge1xuICAgICAgcmV0dXJuIGdldENvbmZpZ09wdGlvbnMoY29uZmlnLCBzZWxlY3RzKVxuICAgIH1cbiAgfSxcbiAgcGxhY2Vob2xkZXI6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogKCkgPT4gW10sXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSwgc2VsZWN0cywgbGFuZykge1xuICAgICAgcmV0dXJuIChsYW5nPy5pbmRleE9mKCd6aCcpID4gLTEgPyBjb25maWcuZGVmUGxhY2Vob2xkIDogY29uZmlnLmRlZlBsYWNlaG9sZEVuKSB8fCAnJ1xuICAgIH1cbiAgfSxcbiAgcGxhY2Vob2xkZXJFbjoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAoKSA9PiBbXSxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlLCBzZWxlY3RzLCBsYW5nKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmRlZlBsYWNlaG9sZEVuXG4gICAgfVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0Rpc2FibGUoY29uZmlnLCBtb2RlKSB7XG4gIGNvbnN0IHNwZWNpY2VzVHlwZSA9IFtcbiAgICAnQ3VzdG9tQ29tcG9uZW50VGFicycsXG4gICAgLy8gJ0N1c3RvbUNvbXBvbmVudFRhYlBhbmUnIC8vIOaciemcgOimgemcgOagueaNrumFjee9ruadpei/m+ihjOmFjee9ruaYr+WQpuemgeeUqFxuICBdXG4gIGNvbnN0IGZsYWcgPSBpc1BhdGNoQ29tcG9uZW50KHNwZWNpY2VzVHlwZSwgY29uZmlnKSA/XG4gICAgZmFsc2UgOlxuICAgIG1vZGUgPT09IE1PREUuTE9HID9cbiAgICAgIChcbiAgICAgICAgY29uZmlnLmxvZ0Fsb25nIHx8IGlzUGF0Y2hDb21wb25lbnQoW0ZPUk1fTUVUQV9UWVBFLCAuLi5OT1RfTE9HX0VGRkVDVF9UWVBFXSwgY29uZmlnKSA/XG4gICAgICAgICAgY29uZmlnLmVkaXRGbGFnID09PSAnMCcgOlxuICAgICAgICAgIHRydWVcbiAgICAgICkgOlxuICAgICAgbW9kZSA9PT0gTU9ERS5ERVRBSUwgP1xuICAgICAgICAoY29uZmlnLmRldGFpbEFsb25nIHx8IGlzUGF0Y2hDb21wb25lbnQoW0ZPUk1fTUVUQV9UWVBFLCAuLi5OT1RfTE9HX0VGRkVDVF9UWVBFXSwgY29uZmlnKSA/XG4gICAgICAgICAgY29uZmlnLmVkaXRGbGFnID09PSAnMCcgOlxuICAgICAgICAgIHRydWVcbiAgICAgICAgKSA6XG4gICAgICAgIGNvbmZpZy5lZGl0RmxhZyA9PT0gJzAnXG4gIHJldHVybiBmbGFnXG59XG5cbmV4cG9ydCBjb25zdCBNRVRBX1RZUEVfTUFQID0ge1xuICByb3c6ICdDdXN0b21Db21wb25lbnRSb3cnLFxuICBncmlkOiAnQ3VzdG9tQ29tcG9uZW50Um93JyxcbiAgJ2dyaWQtY29sJzogJ0N1c3RvbUNvbXBvbmVudENvbCcsXG4gIHRhYmxlOiAnQ3VzdG9tQ29tcG9uZW50VGFibGUnLFxuICAnY2hlY2tib3gtdGFibGUnOiAnQ3VzdG9tQ29tcG9uZW50VGFibGUnLFxuICB0YWI6ICdDdXN0b21Db21wb25lbnRUYWJzJyxcbiAgJ3RhYi1wYW5lJzogJ0N1c3RvbUNvbXBvbmVudFRhYlBhbmUnLFxuICBjb2xsYXBzZTogJ0N1c3RvbUNvbXBvbmVudENvbGxhcHNlJyxcbiAgJ2NhcmQnOiAnQ3VzdG9tQ29tcG9uZW50Q29sbGFwc2UnLFxuICBjeWNsZTogJ0N1c3RvbUNvbXBvbmVudEN5Y2xlJyxcbiAgJ2lucHV0JzogJ0VsSW5wdXQnLFxuICAndGV4dGFyZWEnOiAnRWxJbnB1dCcsXG4gICdidXR0b24nOiAnRWxCdXR0b24nLFxuICAnc3RhdGljLXRleHQnOiAnRWxUZXh0JyxcbiAgJ251bWJlcic6ICdFbElucHV0TnVtYmVyJyxcbiAgJ3JhZGlvJzogJ0VsUmFkaW8nLFxuICAnY2hlY2tib3gnOiAnRWxDaGVja2JveCcsXG4gICdzZWxlY3QnOiAnRWxTZWxlY3QnLFxuICAndGltZSc6ICdFbFRpbWVQaWNrZXInLFxuICAndGltZS1yYW5nZSc6ICdFbFRpbWVQaWNrZXInLFxuICAnZGF0ZSc6ICdFbERhdGVQaWNrZXInLFxuICAnZGF0ZS1yYW5nZSc6ICdFbERhdGVQaWNrZXInLFxuICAnY2FzY2FkZXInOiAnRWxDYXNjYWRlcicsXG4gICdzZWxlY3QtZW1wbG95ZWVzJzogJ0N1c3RvbUNvbXBvbmVudFNlbGVjdEVtcGxveWVlcycsXG4gICdyaWNoLWVkaXRvcic6ICdDdXN0b21Db21wb25lbnRFZGl0b3InLFxuICAncGFnaW5hdGlvbic6ICdFbFBhZ2luYXRpb24nLFxuICAndHJlZSc6ICdDdXN0b21Db21wb25lbnRUcmVlJyxcbiAgJ3N0ZXBzJzogJ0N1c3RvbUNvbXBvbmVudFN0ZXBzJyxcbiAgJ21haWwtc2VuZCc6ICdDdXN0b21Db21wb25lbnRTZW5kTWFpbCcsXG5cbiAgJ2NtaS1jYXJkJzogJ0N1c3RvbUNvbXBvbmVudENhcmRINScsXG4gICdjbWktY29sbGFwc2UnOiAnQ3VzdG9tQ29tcG9uZW50Q29sbGFwc2VINScsXG4gICdjbWktdGFiJzogJ0N1c3RvbUNvbXBvbmVudFRhYnNINScsXG4gICdjbWktdGFiLXBhbmUnOiAnQ3VzdG9tQ29tcG9uZW50VGFiUGFuZUg1JyxcbiAgJ2NtaS10YWJsZSc6ICdDdXN0b21Db21wb25lbnRUYWJsZUg1JyxcbiAgJ2NtaS1kYXRldGltZSc6ICdDbWlEYXRldGltZVBpY2tlcicsXG59XG5cbmV4cG9ydCB7XG4gIGNvbW1vblByb3BzVHlwZSBhcyBjb21wb25lbnRQcm9wc1R5cGVcbn0iXSwibmFtZXMiOlsiY2FjaGVkIiwiZm4iLCJjYWNoZSIsIl9PYmplY3QkY3JlYXRlIiwic3RyIiwibm9ybWFsUGl4ZWwiLCJwaXhlbCIsIndpZHRoIiwiTnVtYmVyIiwiaXNOYU4iLCJlbmRGbGFncyIsImZpbmRGbGFnIiwiX2ZpbmRJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsImZsYWciLCJfZW5kc1dpdGhJbnN0YW5jZVByb3BlcnR5IiwiX3BhcnNlSW50IiwiY2FtZWxpemVSRSIsImNhbWVsaXplIiwicmVwbGFjZSIsIl8iLCJjIiwidG9VcHBlckNhc2UiLCJjYXBpdGFsaXplIiwiY2hhckF0IiwiX3NsaWNlSW5zdGFuY2VQcm9wZXJ0eSIsImZpbmRDb21wb25lbnQiLCJjb21wcyIsImNvbXAiLCJyZXNvbHZlSWR4IiwiY29tcG9uZW50cyIsImlkIiwiYXNzZXRzIiwidW5kZWZpbmVkIiwiY2FtZWxpemVkSWQiLCJQYXNjYWxDYXNlSWQiLCJyZXNvbHZlQXNzZXRDb21wb25lbnRzIiwiX3JlZHVjZUluc3RhbmNlUHJvcGVydHkiLCJyZXQiLCJrZXkiLCJpZHgiLCJpc1BhdGNoQ29tcG9uZW50IiwiY29uZmlnIiwicmVuZGVyYnkiLCJtZXRhVHlwZSIsImdldENvbmZpZ09wdGlvbnMiLCJzZWxlY3RzIiwiX3NlbGVjdHMkdmFsdWUiLCJfc2VsZWN0cyR2YWx1ZTIiLCJfc2VsZWN0cyR2YWx1ZTMiLCJyZWZlcmVuY2VPcHRpb25zIiwic2VsZWN0S2V5Iiwib3B0aW9uSXRlbXNMaXN0IiwiX2NvbnRleHQ1IiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJKU09OIiwicGFyc2UiLCJvcHRpb25JdGVtcyIsIml0ZW0iLCJjb2x1bW5WYWx1ZSIsInZhbHVlIiwiY29sdW1uRGVzY196aCIsImxhYmVsIiwiY29sdW1uRGVzYyIsImxhYmVsX2VuIiwiY29sdW1uU3RhdHVzIiwiZXJyb3IiLCJjb25jYXQiLCJtZXRhQ29kZSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwidG9TdHJpbmciLCJtb2R1bGUiLCJleHBvcnRzIiwicGF0aCIsIkFycmF5IiwiaXNBcnJheSIsImdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QiLCJpc1Byb3RvdHlwZU9mIiwibWV0aG9kIiwiQXJyYXlQcm90b3R5cGUiLCJpdCIsIm93biIsIlN0cmluZ1Byb3RvdHlwZSIsIlN0cmluZyIsImVuZHNXaXRoIiwiZmluZCIsImluZGV4T2YiLCJtYXAiLCJyZWR1Y2UiLCJzbGljZSIsInRyaW0iLCJQIiwiRCIsImNyZWF0ZSIsImtleXMiLCJwYXJzZUludCIsImlzQ2FsbGFibGUiLCJ0cnlUb1N0cmluZyIsIiRUeXBlRXJyb3IiLCJUeXBlRXJyb3IiLCJhcmd1bWVudCIsImlzT2JqZWN0IiwiJFN0cmluZyIsIiRmb3JFYWNoIiwiU1RSSUNUX01FVEhPRCIsImFycmF5TWV0aG9kSXNTdHJpY3QiLCJmb3JFYWNoIiwiY2FsbGJhY2tmbiIsInRoaXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0b0luZGV4ZWRPYmplY3QiLCJ0b0Fic29sdXRlSW5kZXgiLCJsZW5ndGhPZkFycmF5TGlrZSIsImNyZWF0ZU1ldGhvZCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJlbCIsImZyb21JbmRleCIsIk8iLCJpbmRleCIsImluY2x1ZGVzIiwiYmluZCIsInVuY3VycnlUaGlzIiwiSW5kZXhlZE9iamVjdCIsInRvT2JqZWN0IiwiYXJyYXlTcGVjaWVzQ3JlYXRlIiwicHVzaCIsIlRZUEUiLCJJU19NQVAiLCJJU19GSUxURVIiLCJJU19TT01FIiwiSVNfRVZFUlkiLCJJU19GSU5EX0lOREVYIiwiSVNfRklMVEVSX1JFSkVDVCIsIk5PX0hPTEVTIiwidGhhdCIsInNwZWNpZmljQ3JlYXRlIiwicmVzdWx0Iiwic2VsZiIsImJvdW5kRnVuY3Rpb24iLCJ0YXJnZXQiLCJmaWx0ZXIiLCJzb21lIiwiZXZlcnkiLCJmaW5kSW5kZXgiLCJmaWx0ZXJSZWplY3QiLCJmYWlscyIsIndlbGxLbm93blN5bWJvbCIsIlY4X1ZFUlNJT04iLCJTUEVDSUVTIiwiTUVUSE9EX05BTUUiLCJhcnJheSIsImNvbnN0cnVjdG9yIiwiZm9vIiwiQm9vbGVhbiIsImFDYWxsYWJsZSIsIlJFRFVDRV9FTVBUWSIsIklTX1JJR0hUIiwiYXJndW1lbnRzTGVuZ3RoIiwibWVtbyIsImkiLCJsZWZ0IiwicmlnaHQiLCJpc0NvbnN0cnVjdG9yIiwiJEFycmF5Iiwib3JpZ2luYWxBcnJheSIsIkMiLCJhcnJheVNwZWNpZXNDb25zdHJ1Y3RvciIsInN0cmluZ1NsaWNlIiwiVE9fU1RSSU5HX1RBR19TVVBQT1JUIiwiY2xhc3NvZlJhdyIsIlRPX1NUUklOR19UQUciLCIkT2JqZWN0IiwiQ09SUkVDVF9BUkdVTUVOVFMiLCJ0YWciLCJ0cnlHZXQiLCJjYWxsZWUiLCJNQVRDSCIsInJlZ2V4cCIsImVycm9yMSIsImVycm9yMiIsIkRFU0NSSVBUT1JTIiwiZGVmaW5lUHJvcGVydHlNb2R1bGUiLCJjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IiLCJvYmplY3QiLCJmIiwiYml0bWFwIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiZ2xvYmFsVGhpcyIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwiZG9jdW1lbnQiLCJFWElTVFMiLCJjcmVhdGVFbGVtZW50IiwiRU5WSVJPTk1FTlQiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJtYXRjaCIsInZlcnNpb24iLCJwcm9jZXNzIiwiRGVubyIsInZlcnNpb25zIiwidjgiLCJzcGxpdCIsImNsYXNzb2YiLCJ1c2VyQWdlbnRTdGFydHNXaXRoIiwic3RyaW5nIiwiQnVuIiwid2luZG93IiwiYXBwbHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJpc0ZvcmNlZCIsImNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSIsImhhc093biIsIndyYXBDb25zdHJ1Y3RvciIsIk5hdGl2ZUNvbnN0cnVjdG9yIiwiV3JhcHBlciIsImEiLCJiIiwib3B0aW9ucyIsInNvdXJjZSIsIkZPUkNFRCIsIlVTRV9OQVRJVkUiLCJWSVJUVUFMX1BST1RPVFlQRSIsInNvdXJjZVByb3BlcnR5IiwidGFyZ2V0UHJvcGVydHkiLCJuYXRpdmVQcm9wZXJ0eSIsInJlc3VsdFByb3BlcnR5IiwiZGVzY3JpcHRvciIsIlRBUkdFVCIsIkdMT0JBTCIsImdsb2JhbCIsIlNUQVRJQyIsInN0YXQiLCJQUk9UTyIsInByb3RvIiwibmF0aXZlU291cmNlIiwidGFyZ2V0UHJvdG90eXBlIiwiZm9yY2VkIiwiZG9udENhbGxHZXRTZXQiLCJ3cmFwIiwic2hhbSIsInJlYWwiLCJleGVjIiwiTkFUSVZFX0JJTkQiLCJGdW5jdGlvblByb3RvdHlwZSIsIkZ1bmN0aW9uIiwiUmVmbGVjdCIsInRlc3QiLCJnZXREZXNjcmlwdG9yIiwiUFJPUEVSIiwibmFtZSIsIkNPTkZJR1VSQUJMRSIsInVuY3VycnlUaGlzV2l0aEJpbmQiLCJDT05TVFJVQ1RPUiIsIk1FVEhPRCIsIk5hbWVzcGFjZSIsInB1cmVNZXRob2QiLCJOYXRpdmVQcm90b3R5cGUiLCJhRnVuY3Rpb24iLCJ2YXJpYWJsZSIsIm5hbWVzcGFjZSIsImlzTnVsbE9yVW5kZWZpbmVkIiwiViIsImZ1bmMiLCJjaGVjayIsIk1hdGgiLCJnIiwiZ2V0QnVpbHRJbiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwic3RvcmUiLCJmdW5jdGlvblRvU3RyaW5nIiwiaW5zcGVjdFNvdXJjZSIsImRvY3VtZW50QWxsIiwiYWxsIiwibm9vcCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yUmVnRXhwIiwiSU5DT1JSRUNUX1RPX1NUUklORyIsImlzQ29uc3RydWN0b3JNb2Rlcm4iLCJpc0NvbnN0cnVjdG9yTGVnYWN5IiwiY2FsbGVkIiwicmVwbGFjZW1lbnQiLCJmZWF0dXJlIiwiZGV0ZWN0aW9uIiwiZGF0YSIsIm5vcm1hbGl6ZSIsIlBPTFlGSUxMIiwiTkFUSVZFIiwidG9Mb3dlckNhc2UiLCJpc1JlZ0V4cCIsIlVTRV9TWU1CT0xfQVNfVUlEIiwiJFN5bWJvbCIsInRvTGVuZ3RoIiwib2JqIiwiY2VpbCIsImZsb29yIiwidHJ1bmMiLCJ4IiwibiIsIndoaXRlc3BhY2VzIiwiJHBhcnNlSW50IiwiU3ltYm9sIiwiSVRFUkFUT1IiLCJpdGVyYXRvciIsImhleCIsInJhZGl4IiwiUyIsImFjdGl2ZVhEb2N1bWVudCIsImFuT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllc01vZHVsZSIsImVudW1CdWdLZXlzIiwiaGlkZGVuS2V5cyIsImh0bWwiLCJkb2N1bWVudENyZWF0ZUVsZW1lbnQiLCJzaGFyZWRLZXkiLCJQUk9UT1RZUEUiLCJTQ1JJUFQiLCJJRV9QUk9UTyIsIkVtcHR5Q29uc3RydWN0b3IiLCJzY3JpcHRUYWciLCJjb250ZW50IiwiTFQiLCJOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYIiwid3JpdGUiLCJjbG9zZSIsInRlbXAiLCJwYXJlbnRXaW5kb3ciLCJOdWxsUHJvdG9PYmplY3QiLCJBY3RpdmVYT2JqZWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJKUyIsImRvbWFpbiIsInN0eWxlIiwiZGlzcGxheSIsImFwcGVuZENoaWxkIiwic3JjIiwiY29udGVudFdpbmRvdyIsIm9wZW4iLCJGIiwiUHJvcGVydGllcyIsIlY4X1BST1RPVFlQRV9ERUZJTkVfQlVHIiwib2JqZWN0S2V5cyIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsIklFOF9ET01fREVGSU5FIiwidG9Qcm9wZXJ0eUtleSIsIiRkZWZpbmVQcm9wZXJ0eSIsIiRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJFTlVNRVJBQkxFIiwiV1JJVEFCTEUiLCJBdHRyaWJ1dGVzIiwiY3VycmVudCIsInByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlIiwibmFtZXMiLCJpbnRlcm5hbE9iamVjdEtleXMiLCIkcHJvcGVydHlJc0VudW1lcmFibGUiLCJOQVNIT1JOX0JVRyIsImlucHV0IiwicHJlZiIsInZhbCIsInZhbHVlT2YiLCJzaGFyZWQiLCJ1aWQiLCJJU19QVVJFIiwiZGVmaW5lR2xvYmFsUHJvcGVydHkiLCJTSEFSRUQiLCJtb2RlIiwiY29weXJpZ2h0IiwibGljZW5zZSIsIlBST1BFUl9GVU5DVElPTl9OQU1FIiwicmVxdWlyZU9iamVjdENvZXJjaWJsZSIsImx0cmltIiwiUmVnRXhwIiwicnRyaW0iLCJzdGFydCIsImVuZCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbCIsInRvSW50ZWdlck9ySW5maW5pdHkiLCJtYXgiLCJtaW4iLCJpbnRlZ2VyIiwibnVtYmVyIiwibGVuIiwiaXNTeW1ib2wiLCJnZXRNZXRob2QiLCJvcmRpbmFyeVRvUHJpbWl0aXZlIiwiVE9fUFJJTUlUSVZFIiwiZXhvdGljVG9QcmltIiwidG9QcmltaXRpdmUiLCJwb3N0Zml4IiwicmFuZG9tIiwiTkFUSVZFX1NZTUJPTCIsIldlbGxLbm93blN5bWJvbHNTdG9yZSIsImNyZWF0ZVdlbGxLbm93blN5bWJvbCIsIndpdGhvdXRTZXR0ZXIiLCIkIiwiZG9lc05vdEV4Y2VlZFNhZmVJbnRlZ2VyIiwiY3JlYXRlUHJvcGVydHkiLCJhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0IiwiSVNfQ09OQ0FUX1NQUkVBREFCTEUiLCJJU19DT05DQVRfU1BSRUFEQUJMRV9TVVBQT1JUIiwiaXNDb25jYXRTcHJlYWRhYmxlIiwic3ByZWFkYWJsZSIsImFyaXR5IiwiYXJnIiwiayIsIkUiLCJBIiwiJGZpbmQiLCJhZGRUb1Vuc2NvcGFibGVzIiwiRklORCIsIlNLSVBTX0hPTEVTIiwiJGluZGV4T2YiLCJuYXRpdmVJbmRleE9mIiwiTkVHQVRJVkVfWkVSTyIsInNlYXJjaEVsZW1lbnQiLCIkbWFwIiwiJHJlZHVjZSIsIkNIUk9NRV9WRVJTSU9OIiwibmF0aXZlU2xpY2UiLCJIQVNfU1BFQ0lFU19TVVBQT1JUIiwiQ29uc3RydWN0b3IiLCJmaW4iLCJuYXRpdmVLZXlzIiwibm90QVJlZ0V4cCIsImNvcnJlY3RJc1JlZ0V4cExvZ2ljIiwiQ09SUkVDVF9JU19SRUdFWFBfTE9HSUMiLCJzZWFyY2hTdHJpbmciLCJlbmRQb3NpdGlvbiIsInNlYXJjaCIsIiR0cmltIiwiZm9yY2VkU3RyaW5nVHJpbU1ldGhvZCIsInBhcmVudCIsIkRPTUl0ZXJhYmxlcyIsIkRPTVRva2VuTGlzdCIsIk5vZGVMaXN0IiwiaXNQb3NzaWJsZVByb3RvdHlwZSIsIlVOU0NPUEFCTEVTIiwidW5pY29kZSIsIlByb3RvdHlwZSIsIkFycmF5QnVmZmVyIiwiRGF0YVZpZXciLCJ1bmN1cnJ5VGhpc0FjY2Vzc29yIiwiYnl0ZUxlbmd0aCIsImFycmF5QnVmZmVyQnl0ZUxlbmd0aCIsIkFycmF5QnVmZmVyUHJvdG90eXBlIiwiaXNEZXRhY2hlZCIsInRvSW5kZXgiLCJub3REZXRhY2hlZCIsImRldGFjaFRyYW5zZmVyYWJsZSIsIlBST1BFUl9TVFJVQ1RVUkVEX0NMT05FX1RSQU5TRkVSIiwic3RydWN0dXJlZENsb25lIiwiRGF0YVZpZXdQcm90b3R5cGUiLCJpc1Jlc2l6YWJsZSIsIm1heEJ5dGVMZW5ndGgiLCJnZXRJbnQ4Iiwic2V0SW50OCIsImFycmF5QnVmZmVyIiwibmV3TGVuZ3RoIiwicHJlc2VydmVSZXNpemFiaWxpdHkiLCJuZXdCdWZmZXIiLCJuZXdCeXRlTGVuZ3RoIiwiZml4ZWRMZW5ndGgiLCJ0cmFuc2ZlciIsImNvcHlMZW5ndGgiLCJOQU1FIiwiTkFUSVZFX0FSUkFZX0JVRkZFUiIsImRlZmluZUJ1aWx0SW4iLCJkZWZpbmVCdWlsdEluQWNjZXNzb3IiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiSW50ZXJuYWxTdGF0ZU1vZHVsZSIsImVuZm9yY2VJbnRlcm5hbFN0YXRlIiwiZW5mb3JjZSIsImdldEludGVybmFsU3RhdGUiLCJJbnQ4QXJyYXkiLCJJbnQ4QXJyYXlQcm90b3R5cGUiLCJVaW50OENsYW1wZWRBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlIiwiVHlwZWRBcnJheSIsIlR5cGVkQXJyYXlQcm90b3R5cGUiLCJPYmplY3RQcm90b3R5cGUiLCJUWVBFRF9BUlJBWV9UQUciLCJUWVBFRF9BUlJBWV9DT05TVFJVQ1RPUiIsIk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MiLCJvcGVyYSIsIlRZUEVEX0FSUkFZX1RBR19SRVFVSVJFRCIsIlR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0IiwiVWludDhBcnJheSIsIkludDE2QXJyYXkiLCJVaW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJVaW50MzJBcnJheSIsIkZsb2F0MzJBcnJheSIsIkZsb2F0NjRBcnJheSIsIkJpZ0ludEFycmF5Q29uc3RydWN0b3JzTGlzdCIsIkJpZ0ludDY0QXJyYXkiLCJCaWdVaW50NjRBcnJheSIsImdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvciIsInN0YXRlIiwiaXNUeXBlZEFycmF5Iiwia2xhc3MiLCJhVHlwZWRBcnJheSIsImFUeXBlZEFycmF5Q29uc3RydWN0b3IiLCJleHBvcnRUeXBlZEFycmF5TWV0aG9kIiwiS0VZIiwicHJvcGVydHkiLCJBUlJBWSIsIlR5cGVkQXJyYXlDb25zdHJ1Y3RvciIsImV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QiLCJpc1ZpZXciLCJGdW5jdGlvbk5hbWUiLCJkZWZpbmVCdWlsdElucyIsImFuSW5zdGFuY2UiLCJmcm91bmQiLCJJRUVFNzU0IiwiYXJyYXlGaWxsIiwiYXJyYXlTbGljZSIsImluaGVyaXRJZlJlcXVpcmVkIiwiY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyIsInNldFRvU3RyaW5nVGFnIiwiQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUiLCJBUlJBWV9CVUZGRVIiLCJEQVRBX1ZJRVciLCJXUk9OR19JTkRFWCIsImdldEludGVybmFsQXJyYXlCdWZmZXJTdGF0ZSIsImdldHRlckZvciIsImdldEludGVybmFsRGF0YVZpZXdTdGF0ZSIsInNldEludGVybmFsU3RhdGUiLCJzZXQiLCJOYXRpdmVBcnJheUJ1ZmZlciIsIiRBcnJheUJ1ZmZlciIsIiREYXRhVmlldyIsIlJhbmdlRXJyb3IiLCJmaWxsIiwicmV2ZXJzZSIsInBhY2tJRUVFNzU0IiwicGFjayIsInVucGFja0lFRUU3NTQiLCJ1bnBhY2siLCJwYWNrSW50OCIsInBhY2tJbnQxNiIsInBhY2tJbnQzMiIsInVucGFja0ludDMyIiwiYnVmZmVyIiwicGFja0Zsb2F0MzIiLCJwYWNrRmxvYXQ2NCIsImFkZEdldHRlciIsInZpZXciLCJjb3VudCIsImlzTGl0dGxlRW5kaWFuIiwiaW50SW5kZXgiLCJib29sSXNMaXR0bGVFbmRpYW4iLCJieXRlcyIsImJ5dGVPZmZzZXQiLCJjb252ZXJzaW9uIiwiSU5DT1JSRUNUX0FSUkFZX0JVRkZFUl9OQU1FIiwiTmFOIiwidGVzdFZpZXciLCIkc2V0SW50OCIsInNldFVpbnQ4IiwidW5zYWZlIiwidHlwZSIsImRldGFjaGVkIiwiYnVmZmVyU3RhdGUiLCJidWZmZXJMZW5ndGgiLCJvZmZzZXQiLCJnZXRVaW50OCIsImdldEludDE2IiwiZ2V0VWludDE2IiwiZ2V0SW50MzIiLCJnZXRVaW50MzIiLCJnZXRGbG9hdDMyIiwiZ2V0RmxvYXQ2NCIsInNldEludDE2Iiwic2V0VWludDE2Iiwic2V0SW50MzIiLCJzZXRVaW50MzIiLCJzZXRGbG9hdDMyIiwic2V0RmxvYXQ2NCIsImRlbGV0ZVByb3BlcnR5T3JUaHJvdyIsImNvcHlXaXRoaW4iLCJ0byIsImZyb20iLCJpbmMiLCJlbmRQb3MiLCJsaXN0IiwiJGxlbmd0aCIsIklTX0ZJTkRfTEFTVF9JTkRFWCIsImZpbmRMYXN0IiwiZmluZExhc3RJbmRleCIsIiRsYXN0SW5kZXhPZiIsImxhc3RJbmRleE9mIiwic29ydCIsImNvbXBhcmVmbiIsImVsZW1lbnQiLCJqIiwibWlkZGxlIiwibGxlbmd0aCIsInJsZW5ndGgiLCJsaW5kZXgiLCJyaW5kZXgiLCIkUmFuZ2VFcnJvciIsInJlbGF0aXZlSW5kZXgiLCJhY3R1YWxJbmRleCIsIlNBRkVfQ0xPU0lORyIsIml0ZXJhdG9yV2l0aFJldHVybiIsIm5leHQiLCJkb25lIiwiU0tJUF9DTE9TSU5HIiwiSVRFUkFUSU9OX1NVUFBPUlQiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlIiwiZXhjZXB0aW9ucyIsIm1ha2VCdWlsdEluIiwiZ2V0dGVyIiwic2V0dGVyIiwic2ltcGxlIiwibm9uQ29uZmlndXJhYmxlIiwibm9uV3JpdGFibGUiLCJXb3JrZXJUaHJlYWRzIiwiY2hhbm5lbCIsIiRkZXRhY2giLCJnZXRCdWlsdEluTm9kZU1vZHVsZSIsIiRNZXNzYWdlQ2hhbm5lbCIsIk1lc3NhZ2VDaGFubmVsIiwiZGV0YWNoIiwidHJhbnNmZXJhYmxlIiwicG9ydDEiLCJwb3N0TWVzc2FnZSIsImZpcmVmb3giLCJVQSIsIndlYmtpdCIsIiRFcnJvciIsIkVycm9yIiwiVEVTVCIsInN0YWNrIiwiVjhfT1JfQ0hBS1JBX1NUQUNLX0VOVFJZIiwiSVNfVjhfT1JfQ0hBS1JBX1NUQUNLIiwiZHJvcEVudHJpZXMiLCJwcmVwYXJlU3RhY2tUcmFjZSIsImNsZWFyRXJyb3JTdGFjayIsIkVSUk9SX1NUQUNLX0lOU1RBTExBQkxFIiwiY2FwdHVyZVN0YWNrVHJhY2UiLCJub3JtYWxpemVTdHJpbmdBcmd1bWVudCIsIm5hdGl2ZUVycm9yVG9TdHJpbmciLCJtZXNzYWdlIiwicmVnZXhwRXhlYyIsIlJlZ0V4cFByb3RvdHlwZSIsIlNIQU0iLCJTWU1CT0wiLCJERUxFR0FURVNfVE9fU1lNQk9MIiwiREVMRUdBVEVTX1RPX0VYRUMiLCJleGVjQ2FsbGVkIiwicmUiLCJmbGFncyIsIm5hdGl2ZVJlZ0V4cE1ldGhvZCIsIm1ldGhvZHMiLCJuYXRpdmVNZXRob2QiLCJhcmcyIiwiZm9yY2VTdHJpbmdNZXRob2QiLCIkZXhlYyIsIklTX05PREUiLCJnZXRCdWlsdGluTW9kdWxlIiwiSXRlcmF0b3JzIiwiZ2V0SXRlcmF0b3JNZXRob2QiLCJ1c2luZ0l0ZXJhdG9yIiwiaXRlcmF0b3JNZXRob2QiLCJTVUJTVElUVVRJT05fU1lNQk9MUyIsIlNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEIiwibWF0Y2hlZCIsInBvc2l0aW9uIiwiY2FwdHVyZXMiLCJuYW1lZENhcHR1cmVzIiwidGFpbFBvcyIsIm0iLCJzeW1ib2xzIiwiY2giLCJjYXB0dXJlIiwiYWJzIiwicG93IiwibG9nIiwiTE4yIiwibWFudGlzc2FMZW5ndGgiLCJleHBvbmVudCIsIm1hbnRpc3NhIiwiZXhwb25lbnRMZW5ndGgiLCJlTWF4IiwiZUJpYXMiLCJydCIsInNpZ24iLCJJbmZpbml0eSIsIm5CaXRzIiwiZHVtbXkiLCJOZXdUYXJnZXQiLCJOZXdUYXJnZXRQcm90b3R5cGUiLCJjYXVzZSIsImhhcyIsIk5BVElWRV9XRUFLX01BUCIsIk9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEIiwiV2Vha01hcCIsIm1ldGFkYXRhIiwiZmFjYWRlIiwiU1RBVEUiLCJpc0ludGVnZXIiLCJpc0Zpbml0ZSIsIkl0ZXJhdG9yUHJvdG90eXBlIiwicmV0dXJuVGhpcyIsIkl0ZXJhdG9yQ29uc3RydWN0b3IiLCJFTlVNRVJBQkxFX05FWFQiLCJjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yIiwiSXRlcmF0b3JzQ29yZSIsIkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMiLCJLRVlTIiwiVkFMVUVTIiwiRU5UUklFUyIsIkl0ZXJhYmxlIiwiREVGQVVMVCIsIklTX1NFVCIsIkN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSIsImdldEl0ZXJhdGlvbk1ldGhvZCIsIktJTkQiLCJkZWZhdWx0SXRlcmF0b3IiLCJJdGVyYWJsZVByb3RvdHlwZSIsIklOQ09SUkVDVF9WQUxVRVNfTkFNRSIsIm5hdGl2ZUl0ZXJhdG9yIiwiYW55TmF0aXZlSXRlcmF0b3IiLCJlbnRyaWVzIiwidmFsdWVzIiwiUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlIiwiYXJyYXlJdGVyYXRvciIsImpvaW4iLCJDT05GSUdVUkFCTEVfTEVOR1RIIiwiVEVNUExBVEUiLCJFUFNJTE9OIiwiSU5WRVJTRV9FUFNJTE9OIiwiRkxPQVRfRVBTSUxPTiIsIkZMT0FUX01BWF9WQUxVRSIsIkZMT0FUX01JTl9WQUxVRSIsImFic29sdXRlIiwicyIsInJvdW5kVGllc1RvRXZlbiIsImZsb2F0Um91bmQiLCIkZGVmYXVsdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJDT1JSRUNUX1BST1RPVFlQRV9HRVRURVIiLCJhUG9zc2libGVQcm90b3R5cGUiLCJDT1JSRUNUX1NFVFRFUiIsIl9fcHJvdG9fXyIsImdldE93blByb3BlcnR5TmFtZXNNb2R1bGUiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUiLCJUYXJnZXQiLCJTb3VyY2UiLCJSIiwicmUxIiwicmUyIiwicmVnZXhwRmxhZ3MiLCJzdGlja3lIZWxwZXJzIiwiVU5TVVBQT1JURURfRE9UX0FMTCIsIlVOU1VQUE9SVEVEX05DRyIsIm5hdGl2ZVJlcGxhY2UiLCJuYXRpdmVFeGVjIiwicGF0Y2hlZEV4ZWMiLCJVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkciLCJsYXN0SW5kZXgiLCJVTlNVUFBPUlRFRF9ZIiwiQlJPS0VOX0NBUkVUIiwiTlBDR19JTkNMVURFRCIsInJlQ29weSIsImdyb3VwIiwicmF3IiwiZ3JvdXBzIiwic3RpY2t5IiwiY2hhcnNBZGRlZCIsInN0ckNvcHkiLCJtdWx0aWxpbmUiLCJoYXNJbmRpY2VzIiwiaWdub3JlQ2FzZSIsImRvdEFsbCIsInVuaWNvZGVTZXRzIiwicmVnRXhwRmxhZ3MiLCIkUmVnRXhwIiwiTUlTU0VEX1NUSUNLWSIsIkNPTlNUUlVDVE9SX05BTUUiLCJUQUciLCJhQ29uc3RydWN0b3IiLCJkZWZhdWx0Q29uc3RydWN0b3IiLCJjaGFyQ29kZUF0IiwiQ09OVkVSVF9UT19TVFJJTkciLCJwb3MiLCJmaXJzdCIsInNlY29uZCIsInNpemUiLCJjb2RlQXQiLCJWOCIsImNsb25lIiwicHJpbSIsIkJpZ0ludCIsInRvUG9zaXRpdmVJbnRlZ2VyIiwiQllURVMiLCJyb3VuZCIsIlRZUEVEX0FSUkFZU19DT05TVFJVQ1RPUlNfUkVRVUlSRVNfV1JBUFBFUlMiLCJBcnJheUJ1ZmZlclZpZXdDb3JlIiwiQXJyYXlCdWZmZXJNb2R1bGUiLCJpc0ludGVncmFsTnVtYmVyIiwidG9PZmZzZXQiLCJ0b1VpbnQ4Q2xhbXBlZCIsInR5cGVkQXJyYXlGcm9tIiwic2V0U3BlY2llcyIsImFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdCIsIm5hdGl2ZURlZmluZVByb3BlcnR5IiwibmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiQllURVNfUEVSX0VMRU1FTlQiLCJXUk9OR19MRU5HVEgiLCJpc0FycmF5QnVmZmVyIiwiaXNUeXBlZEFycmF5SW5kZXgiLCJ3cmFwcGVkR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwid3JhcHBlZERlZmluZVByb3BlcnR5Iiwid3JhcHBlciIsIkNMQU1QRUQiLCJHRVRURVIiLCJTRVRURVIiLCJOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IiLCJUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUiLCJleHBvcnRlZCIsImFkZEVsZW1lbnQiLCJ0eXBlZEFycmF5T2Zmc2V0IiwiJGxlbiIsImNoZWNrQ29ycmVjdG5lc3NPZkl0ZXJhdGlvbiIsIml0ZXJhYmxlIiwidHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3RvciIsImluc3RhbmNlIiwiZ2V0SXRlcmF0b3IiLCJpc0FycmF5SXRlcmF0b3JNZXRob2QiLCJpc0JpZ0ludEFycmF5IiwidG9CaWdJbnQiLCJ0aGlzSXNCaWdJbnRBcnJheSIsInN0ZXAiLCJtYXBmbiIsIm1hcHBpbmciLCJzcGVjaWVzQ29uc3RydWN0b3IiLCJwcm94eUFjY2Vzc29yIiwiaW5zdGFsbEVycm9yQ2F1c2UiLCJpbnN0YWxsRXJyb3JTdGFjayIsIkZVTExfTkFNRSIsIklTX0FHR1JFR0FURV9FUlJPUiIsIlNUQUNLX1RSQUNFX0xJTUlUIiwiT1BUSU9OU19QT1NJVElPTiIsIkVSUk9SX05BTUUiLCJPcmlnaW5hbEVycm9yIiwiT3JpZ2luYWxFcnJvclByb3RvdHlwZSIsIkJhc2VFcnJvciIsIldyYXBwZWRFcnJvciIsImFycmF5QnVmZmVyTW9kdWxlIiwibmF0aXZlQXJyYXlCdWZmZXJTbGljZSIsInZpZXdTb3VyY2UiLCJ2aWV3VGFyZ2V0IiwiJHRyYW5zZmVyIiwidHJhbnNmZXJUb0ZpeGVkTGVuZ3RoIiwiZGVmaW5lSXRlcmF0b3IiLCJjcmVhdGVJdGVyUmVzdWx0T2JqZWN0IiwiQVJSQVlfSVRFUkFUT1IiLCJpdGVyYXRlZCIsImtpbmQiLCJBcmd1bWVudHMiLCJEYXRlUHJvdG90eXBlIiwiRGF0ZSIsIklOVkFMSURfREFURSIsIlRPX1NUUklORyIsIm5hdGl2ZURhdGVUb1N0cmluZyIsInRoaXNUaW1lVmFsdWUiLCJnZXRUaW1lIiwid3JhcEVycm9yQ29uc3RydWN0b3JXaXRoQ2F1c2UiLCJXRUJfQVNTRU1CTFkiLCJXZWJBc3NlbWJseSIsImV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyIiwiZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlciIsImluaXQiLCJlcnJvclRvU3RyaW5nIiwiRXJyb3JQcm90b3R5cGUiLCJ0aGlzTnVtYmVyVmFsdWUiLCJOVU1CRVIiLCJOYXRpdmVOdW1iZXIiLCJQdXJlTnVtYmVyTmFtZXNwYWNlIiwiTnVtYmVyUHJvdG90eXBlIiwiTnVtYmVyV3JhcHBlciIsInByaW1WYWx1ZSIsInRoaXJkIiwibWF4Q29kZSIsImRpZ2l0cyIsImNvZGUiLCJ0b051bWJlciIsInRvTnVtZXJpYyIsImdldFJlZ0V4cEZsYWdzIiwiTmF0aXZlUmVnRXhwIiwiU3ludGF4RXJyb3IiLCJzdHJpbmdJbmRleE9mIiwiSVNfTkNHIiwiQ09SUkVDVF9ORVciLCJSZWdFeHBXcmFwcGVyIiwicGF0dGVybiIsInJhd0ZsYWdzIiwiaGFuZGxlZCIsInRoaXNJc1JlZ0V4cCIsInBhdHRlcm5Jc1JlZ0V4cCIsImZsYWdzQXJlVW5kZWZpbmVkIiwicmF3UGF0dGVybiIsImNociIsIm5hbWVkIiwiYnJhY2tldHMiLCJuY2ciLCJncm91cGlkIiwiZ3JvdXBuYW1lIiwiaGFuZGxlTkNHIiwiaGFuZGxlRG90QWxsIiwibmF0aXZlVGVzdCIsIiR0b1N0cmluZyIsIm5hdGl2ZVRvU3RyaW5nIiwiTk9UX0dFTkVSSUMiLCJJTkNPUlJFQ1RfTkFNRSIsImZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljIiwiYWR2YW5jZVN0cmluZ0luZGV4IiwiZ2V0U3Vic3RpdHV0aW9uIiwicmVnRXhwRXhlYyIsIlJFUExBQ0UiLCJSRVBMQUNFX0tFRVBTXyQwIiwiUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUiLCJtYXliZUNhbGxOYXRpdmUiLCJVTlNBRkVfU1VCU1RJVFVURSIsInNlYXJjaFZhbHVlIiwicmVwbGFjZVZhbHVlIiwicmVwbGFjZXIiLCJyeCIsInJlcyIsImZ1bmN0aW9uYWxSZXBsYWNlIiwiZnVsbFVuaWNvZGUiLCJyZXN1bHRzIiwiYWNjdW11bGF0ZWRSZXN1bHQiLCJuZXh0U291cmNlUG9zaXRpb24iLCJyZXBsYWNlckFyZ3MiLCJzdWJzdHIiLCJpbnRMZW5ndGgiLCJpbnRFbmQiLCJpbnRTdGFydCIsInUkQXJyYXlDb3B5V2l0aGluIiwiJGV2ZXJ5IiwiJGZpbGwiLCJhY3R1YWxWYWx1ZSIsIiRmaWx0ZXIiLCJmcm9tU3BlY2llc0FuZExpc3QiLCIkZmluZEluZGV4IiwicHJlZGljYXRlIiwiJGZpbmRMYXN0SW5kZXgiLCIkZmluZExhc3QiLCIkaW5jbHVkZXMiLCJBcnJheUl0ZXJhdG9ycyIsImFycmF5VmFsdWVzIiwiYXJyYXlLZXlzIiwiYXJyYXlFbnRyaWVzIiwiR0VORVJJQyIsIklURVJBVE9SX0lTX1ZBTFVFUyIsInR5cGVkQXJyYXlWYWx1ZXMiLCIkam9pbiIsInNlcGFyYXRvciIsIiRyZWR1Y2VSaWdodCIsIiRzZXQiLCJXT1JLU19XSVRIX09CSkVDVFNfQU5EX0dFTkVSSUNfT05fVFlQRURfQVJSQVlTIiwiVE9fT0JKRUNUX0JVRyIsImFycmF5TGlrZSIsIiRzb21lIiwiaW50ZXJuYWxTb3J0IiwiRkYiLCJJRV9PUl9FREdFIiwiV0VCS0lUIiwibmF0aXZlU29ydCIsIkFDQ0VQVF9JTkNPUlJFQ1RfQVJHVU1FTlRTIiwiU1RBQkxFX1NPUlQiLCJtb2QiLCJleHBlY3RlZCIsInkiLCJnZXRTb3J0Q29tcGFyZSIsImJlZ2luIiwiYmVnaW5JbmRleCIsIiR0b0xvY2FsZVN0cmluZyIsInRvTG9jYWxlU3RyaW5nIiwiVE9fTE9DQUxFX1NUUklOR19CVUciLCJhcnJheVRvUmV2ZXJzZWQiLCJjb21wYXJlRm4iLCJVaW50OEFycmF5UHJvdG90eXBlIiwiYXJyYXlUb1N0cmluZyIsIklTX05PVF9BUlJBWV9NRVRIT0QiLCJjcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IiLCJhcnJheVdpdGgiLCJQUk9QRVJfT1JERVIiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiX19lc01vZHVsZSIsImQiLCJkZWZpbml0aW9uIiwibyIsImUiLCJwcm9wIiwiTU9ERSIsIk9QRVJBVEUiLCJERVRBSUwiLCJMT0ciLCJBUkdfRkxBR1MiLCJDVVJSRU5UX0RBVEUiLCJSRUZfVkFMIiwiTk9UX0xPR19FRkZFQ1RfVFlQRSIsIkZPUk1fTUVUQV9UWVBFIiwiRk9STV9NRVRBX1RZUEVfSDUiLCJDT05URVhUX1BFRERJTkdfVFlQRSIsIk5PVF9ORUVEX0ZPUk1fSVRFTV9NRVRBX1RZUEUiLCJUUkFOU19DRUxMX0NPTVBPTkVUUyIsIk5PVF9ORUVEX0NPTF9JVEVNX01FVEFfVFlQRSIsIk1VTFRJX1BBR0VfTUVUQV9MSVNUX1RZUEVTIiwiU1BFQ0lBTF9TRVRfRlVMTF9XSURUSF9JVEVNX01FVEFfVFlQRSIsIlRBQkxFX0NPTFVNTl9OT1RfUkVOREVSX01FVEFfVFlQRSIsIlBSRUZJWF9GTEFHIiwiUkVQTEFDRV9QUkVGSVhfRkxBRyIsIkg1X1BSRUZJWF9GTEFHIiwiSDVfUkVQTEFDRV9QUkVGSVhfRkxBRyIsIkRJU1BMQVlfU0hPVyIsIkRJU1BMQVlfSElEREVOIiwiUExBSU5fVFlQRV9BTE9OR19DT0xVTU5TIiwiUExBSU5fVFlQRV9DT0xVTU5TIiwiUExBSU5fVFlQRV9PUFRJT05TX0NPTFVNTlMiLCJNQUlMX1NFTkRfVVJMIiwiY29tbW9uUHJvcHNUeXBlIiwiY29tcEluZm8iLCJnZXRWYWx1ZSIsIm1vZGVsVmFsdWUiLCJyZWZWYWx1ZSIsImRlZmF1bHQiLCJkaXNhYmxlZCIsImNhbGNEaXNhYmxlIiwiY2xlYXJhYmxlIiwiY2xlYXJhYmxlRmxhZyIsInJlcXVpcmVkIiwicmVxdWlyZWRGbGFnIiwib25seVJlcXVpcmVkRmxhZyIsInRhYmxlRGF0YSIsInJvd1Njb3BlIiwicGxhY2Vob2xkZXIiLCJsYW5nIiwiX2luZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwiZGVmUGxhY2Vob2xkIiwiZGVmUGxhY2Vob2xkRW4iLCJwbGFjZWhvbGRlckVuIiwiX2NvbnRleHQiLCJfY29udGV4dDIiLCJsb2dBbG9uZyIsIl9jb25jYXRJbnN0YW5jZVByb3BlcnR5IiwiZWRpdEZsYWciLCJkZXRhaWxBbG9uZyIsIk1FVEFfVFlQRV9NQVAiLCJyb3ciLCJncmlkIiwidGFibGUiLCJ0YWIiLCJjb2xsYXBzZSIsImN5Y2xlIl0sInNvdXJjZVJvb3QiOiIifQ==