billboard.js
Version:
Re-usable easy interface JavaScript chart library, based on D3 v4+
13 lines • 115 kB
JavaScript
/*!
* Copyright (c) 2017 ~ present NAVER Corp.
* billboard.js project is licensed under the MIT license
*
* billboard.js, JavaScript chart library
* https://naver.github.io/billboard.js/
*
* @version 2.0.0-next.5
* @requires billboard.js
* @summary billboard.js plugin
*/
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("d3-selection"),require("d3-interpolate"),require("d3-color"),require("d3-scale"),require("d3-brush"),require("d3-axis"),require("d3-format")):"function"==typeof define&&define.amd?define("stanford",["d3-selection","d3-interpolate","d3-color","d3-scale","d3-brush","d3-axis","d3-format"],e):"object"==typeof exports?exports.stanford=e(require("d3-selection"),require("d3-interpolate"),require("d3-color"),require("d3-scale"),require("d3-brush"),require("d3-axis"),require("d3-format")):(t.bb=t.bb||{},t.bb.plugin=t.bb.plugin||{},t.bb.plugin.stanford=e(t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3))}(this,(function(t,e,n,r,i,o,a){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=16)}([,function(t,e,n){"use strict";function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,"a",(function(){return r}))},function(e,n){e.exports=t},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(3),i=function(){function t(t){void 0===t&&(t={}),Object(r.a)(this,"$$",void 0),Object(r.a)(this,"options",void 0),this.options=t}var e=t.prototype;return e.$beforeInit=function(){},e.$init=function(){},e.$afterInit=function(){},e.$redraw=function(){},e.$willDestroy=function(){var t=this;Object.keys(this).forEach((function(e){t[e]=null,delete t[e]}))},t}();Object(r.a)(i,"version","2.0.0-next.5")},function(t,n){t.exports=e},function(t,e){t.exports=n},function(t,e){t.exports=r},function(t,e,n){"use strict";e.a={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcs:"bb-arcs",area:"bb-area",areas:"bb-areas",axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",bar:"bb-bar",bars:"bb-bars",brush:"bb-brush",button:"bb-button",buttonZoomReset:"bb-zoom-reset",chart:"bb-chart",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsTitle:"bb-chart-arcs-title",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars",chartCircles:"bb-chart-circles",chartLine:"bb-chart-line",chartLines:"bb-chart-lines",chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars",chartText:"bb-chart-text",chartTexts:"bb-chart-texts",circle:"bb-circle",circles:"bb-circles",colorPattern:"bb-color-pattern",colorScale:"bb-colorscale",defocused:"bb-defocused",dragarea:"bb-dragarea",empty:"bb-empty",eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single",focused:"bb-focused",gaugeValue:"bb-gauge-value",grid:"bb-grid",gridLines:"bb-grid-lines",legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemFocused:"bb-legend-item-focused",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile",level:"bb-level",levels:"bb-levels",line:"bb-line",lines:"bb-lines",main:"bb-main",region:"bb-region",regions:"bb-regions",selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",shape:"bb-shape",shapes:"bb-shapes",stanfordElements:"bb-stanford-elements",stanfordLine:"bb-stanford-line",stanfordLines:"bb-stanford-lines",stanfordRegion:"bb-stanford-region",stanfordRegions:"bb-stanford-regions",target:"bb-target",text:"bb-text",texts:"bb-texts",title:"bb-title",tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name",xgrid:"bb-xgrid",xgridFocus:"bb-xgrid-focus",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridFocus:"bb-ygrid-focus",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids",zoomBrush:"bb-zoom-brush",EXPANDED:"_expanded_",SELECTED:"_selected_",INCLUDED:"_included_",TextOverlapping:"text-overlapping"}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(18);function i(t){var e,n,i,o=this.config,a=function(){var t=n.shift();return t&&e&&Object(r.e)(e)&&t in e?(e=e[t],a()):t?void 0:e};Object.keys(o).forEach((function(c){e=t,n=c.split("_"),i=a(),Object(r.b)(i)&&(o[c]=i)}))}},function(t,e){t.exports=i},function(t,e){t.exports=o},function(t,e){t.exports=a},,,function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return $}));var r=n(1),i=n(2),o=n(3),a=n(6),c=n(7),s=n(8),l=n(9),u=n(10),b=n(5),d=function(){return{colors:void 0,epochs:[],lines:[],scale_min:void 0,scale_max:void 0,scale_width:20,scale_format:void 0,padding_top:0,padding_right:0,padding_bottom:0,padding_left:0,regions:[]}},f="bb-colorscale",h="bb-stanford-elements",p="bb-stanford-line",g="bb-stanford-lines",x="bb-stanford-region",v="bb-stanford-regions",m=n(18);function y(t,e){return t.epochs<e.epochs?-1:t.epochs>e.epochs?1:0}function j(t){for(var e,n=function(t){for(var e,n,r=0,i=0,o=t.length,a=o-1;i<o;a=i,i++)e=t[i],n=t[a],r+=e.x*n.y,r-=e.y*n.x;return r/=2}(t),r=0,i=0,o=0,a=t.length,c=a-1;o<a;c=o,o++){var s=t[o],l=t[c];e=s.x*l.y-l.x*s.y,r+=(s.x+l.x)*e,i+=(s.y+l.y)*e}return{x:r/(e=6*n),y:i/e}}var _=function(){function t(t){Object(o.a)(this,"owner",void 0),this.owner=t;var e=t.$$.$el.main.select(".bb-chart").append("g").attr("class",h);e.append("g").attr("class",g),e.append("g").attr("class",v)}var e=t.prototype;return e.updateStanfordLines=function(t){var e=this.owner.$$,n=e.config,r=e.$el.main,i=n.axis_rotated,o=this.xvCustom.bind(e),a=this.yvCustom.bind(e),c=r.select("."+g).style("shape-rendering","geometricprecision").selectAll("."+p).data(this.owner.config.lines);c.exit().transition().duration(t).style("opacity","0").remove();var s=c.enter().append("g");s.append("line").style("opacity","0"),s.merge(c).attr("class",(function(t){return p+(t.class?" "+t.class:"")})).select("line").transition().duration(t).attr("x1",(function(t){return i?a(t,"y1"):o(t,"x1")})).attr("x2",(function(t){return i?a(t,"y2"):o(t,"x2")})).attr("y1",(function(t){return i?o(t,"x1"):a(t,"y1")})).attr("y2",(function(t){return i?o(t,"x2"):a(t,"y2")})).transition().style("opacity","1")},e.updateStanfordRegions=function(t){var e=this.owner.$$,n=e.config,r=e.$el.main,i=n.axis_rotated,o=this.xvCustom.bind(e),a=this.yvCustom.bind(e),c=this.owner.countEpochsInRegion.bind(e),s=r.select("."+v).selectAll("."+x).data(this.owner.config.regions);s.exit().transition().duration(t).style("opacity","0").remove();var l=s.enter().append("g");l.append("polygon").style("opacity","0"),l.append("text").attr("transform",i?"rotate(-90)":"").style("opacity","0"),(s=l.merge(s)).attr("class",(function(t){return x+(t.class?" "+t.class:"")})).select("polygon").transition().duration(t).attr("points",(function(t){return t.points.map((function(t){return[i?a(t,"y"):o(t,"x"),i?o(t,"x"):a(t,"y")].join(",")})).join(" ")})).transition().style("opacity",(function(t){return(t.opacity?t.opacity:.2)+""})),s.select("text").transition().duration(t).attr("x",(function(t){return i?a(j(t.points),"y"):o(j(t.points),"x")})).attr("y",(function(t){return i?o(j(t.points),"x"):a(j(t.points),"y")})).text((function(t){if(t.text){var e=c(t.points),n=e.value,r=e.percentage;return t.text(n,r)}return""})).attr("text-anchor","middle").attr("dominant-baseline","middle").transition().style("opacity","1")},e.updateStanfordElements=function(t){void 0===t&&(t=0),this.updateStanfordLines(t),this.updateStanfordRegions(t)},e.xvCustom=function(t,e){var n=this,r=n.axis,i=n.config,o=e?t[e]:n.getBaseValue(t);return r.isTimeSeries()?o=m.g.call(n,o):r.isCategorized()&&Object(m.f)(o)&&(o=i.axis_x_categories.indexOf(t.value)),Math.ceil(n.scale.x(o))},e.yvCustom=function(t,e){var n=t.axis&&"y2"===t.axis?this.scale.y2:this.scale.y,r=e?t[e]:this.getBaseValue(t);return Math.ceil(n(r))},t}(),S=n(12),O=n(13),w=function(){function t(t){Object(o.a)(this,"owner",void 0),Object(o.a)(this,"colorScale",void 0),this.owner=t}var e=t.prototype;return e.drawColorScale=function(){var t=this.owner,e=t.$$,n=t.config,r=e.data.targets[0],i=e.state.height-n.padding_bottom-n.padding_top,o=n.scale_width,a=Object(m.a)(n.padding_bottom,i,5),c=Object(s.scaleSequential)(r.colors).domain([a[a.length-1],a[0]]);this.colorScale&&this.colorScale.remove(),this.colorScale=e.$el.svg.append("g").attr("width",50).attr("height",i).attr("class",f),this.colorScale.append("g").attr("transform","translate(0, "+n.padding_top+")").selectAll("bars").data(a).enter().append("rect").attr("y",(function(t,e){return 5*e})).attr("x",0).attr("width",o).attr("height",5).attr("fill",(function(t){return c(t)}));var l=Object(s.scaleLog)().domain([r.minEpochs,r.maxEpochs]).range([a[0]+n.padding_top+a[a.length-1]+5-1,a[0]+n.padding_top]),u=Object(S.axisRight)(l),b=n.scale_format;"pow10"===b?u.tickValues([1,10,100,1e3,1e4,1e5,1e6,1e7]):Object(m.d)(b)?u.tickFormat(b):u.tickFormat(Object(O.format)("d"));var d=this.colorScale.append("g").attr("class","legend axis").attr("transform","translate("+o+",0)").call(u);"pow10"===b&&d.selectAll(".tick text").text(null).filter((function(t){return t/Math.pow(10,Math.ceil(Math.log(t)/Math.LN10-1e-12))==1})).text(10).append("tspan").attr("dy","-.7em").text((function(t){return Math.round(Math.log(t)/Math.LN10)})),this.colorScale.attr("transform","translate("+(e.state.current.width-this.xForColorScale())+", 0)")},e.xForColorScale=function(){return this.owner.config.padding_right+this.colorScale.node().getBBox().width},e.getColorScalePadding=function(){return this.xForColorScale()+this.owner.config.padding_left+20},t}(),$=function(t){function e(e){var n;return n=t.call(this,e)||this,Object(o.a)(Object(r.a)(n),"config",void 0),Object(o.a)(Object(r.a)(n),"colorScale",void 0),Object(o.a)(Object(r.a)(n),"elements",void 0),n.config=new d,Object(r.a)(n)||Object(r.a)(n)}Object(i.a)(e,t);var n=e.prototype;return n.$beforeInit=function(){var t=this,e=this.$$;e.config.data_xSort=!1,e.isMultipleX=function(){return!0},e.showGridFocus=function(){},e.labelishData=function(t){return t.values},e.opacityForCircle=function(){return 1};var n=e.getCurrentPaddingRight.bind(e);e.getCurrentPaddingRight=function(){return n()+(t.colorScale?t.colorScale.getColorScalePadding():0)}},n.$init=function(){var t=this.$$;u.a.call(this,this.options),t.color=this.getStanfordPointColor.bind(t),this.colorScale=new w(this),this.elements=new _(this),this.convertData(),this.initStanfordData(),this.setStanfordTooltip(),this.colorScale.drawColorScale(),this.$redraw()},n.$redraw=function(t){this.colorScale&&this.colorScale.drawColorScale(),this.elements&&this.elements.updateStanfordElements(t)},n.getOptions=function(){return new d},n.convertData=function(){var t=this.$$.data.targets,e=this.options.epochs;t.forEach((function(t){t.values.forEach((function(t,n){t.epochs=e[n]})),t.minEpochs=void 0,t.maxEpochs=void 0,t.colors=void 0,t.colorscale=void 0}))},n.xvCustom=function(t,e){var n=this,r=n.axis,i=n.config,o=e?t[e]:n.getBaseValue(t);return r.isTimeSeries()?o=m.g.call(n,o):r.isCategorized()&&Object(m.f)(o)&&(o=i.axis_x_categories.indexOf(t.value)),Math.ceil(n.scale.x(o))},n.yvCustom=function(t,e){var n=this.scale,r=t.axis&&"y2"===t.axis?n.y2:n.y,i=e?t[e]:this.getBaseValue(t);return Math.ceil(r(i))},n.initStanfordData=function(){var t=this.config,e=this.$$.data.targets[0];e.values.sort(y);var n=e.values.map((function(t){return t.epochs}));e.minEpochs=isNaN(t.scale_min)?Math.min.apply(Math,n):t.scale_min,e.maxEpochs=isNaN(t.scale_max)?Math.max.apply(Math,n):t.scale_max,e.colors=Object(m.d)(t.colors)?t.colors:Object(a.interpolateHslLong)(Object(c.hsl)(250,1,.5),Object(c.hsl)(0,1,.5)),e.colorscale=Object(s.scaleSequentialLog)(e.colors).domain([e.minEpochs,e.maxEpochs])},n.getStanfordPointColor=function(t){return this.data.targets[0].colorscale(t.epochs)},n.setStanfordTooltip=function(){var t=this.$$.config;Object(m.c)(t.tooltip_contents)&&(t.tooltip_contents=function(e,n,r,i){var o='<table class="'+l.a.tooltip+'"><tbody>';return e.forEach((function(e){o+="<tr>\n\t\t\t\t\t\t\t<th>"+n(t.data_x)+'</th>\n\t\t\t\t\t\t\t<th class="value">'+r(e.x)+"</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th>"+n(e.id)+'</th>\n\t\t\t\t\t\t\t<th class="value">'+r(e.value)+'</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class="'+l.a.tooltipName+"-"+e.id+'">\n\t\t\t\t\t\t\t<td class="name"><span style="background-color:'+i(e)+'"></span>'+n("Epochs")+'</td>\n\t\t\t\t\t\t\t<td class="value">'+r(e.epochs)+"</td>\n\t\t\t\t\t\t</tr>"})),o+"</tbody></table>"})},n.countEpochsInRegion=function(t){var e=this.data.targets[0],n=e.values.reduce((function(t,e){return t+ +e.epochs}),0),r=e.values.reduce((function(e,n){return function(t,e){for(var n=t.x,r=t.value,i=!1,o=0,a=e.length-1;o<e.length;a=o++){var c=e[o].x,s=e[o].y,l=e[a].x,u=e[a].y;s>r!=u>r&&n<(l-c)*(r-s)/(u-s)+c&&(i=!i)}return i}(n,t)?e+ +n.epochs:e}),0);return{value:r,percentage:0===r?0:+(r/n*100).toFixed(1)}},e}(b.a)},,function(t,e,n){"use strict";n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return l})),n.d(e,"c",(function(){return b})),n.d(e,"d",(function(){return a})),n.d(e,"e",(function(){return u})),n.d(e,"f",(function(){return c})),n.d(e,"g",(function(){return f}));n(3),n(4),n(11);var r,i=(r=function(t){return void 0!==t&&t})(self)||r(window)||r(global)||r(globalThis)||Function("return this")(),o=i&&i.document;n(9);var a=function(t){return"function"==typeof t},c=function(t){return"string"==typeof t},s=function(t){return"number"==typeof t},l=function(t){return void 0!==t},u=function(t){return"object"==typeof t},b=function(t){return void 0===t||null===t||c(t)&&0===t.length||u(t)&&!(t instanceof Date)&&0===Object.keys(t).length||s(t)&&isNaN(t)};var d=function(t,e,n){void 0===n&&(n=1);for(var r=[],i=0|Math.max(0,Math.ceil((e-t)/n)),o=t;o<i;o++)r.push(t+o*n);return r};!function(){try{new MouseEvent("t")}catch(t){return function(t,e,n){void 0===n&&(n={bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});var r=o.createEvent("MouseEvent");r.initMouseEvent(e,n.bubbles,n.cancelable,i,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}}();function f(t){var e;if(t instanceof Date)e=t;else if(c(t)){var n=this.config;e=this.format.dataTime(n.data_xFormat)(t)}else s(t)&&!isNaN(t)&&(e=new Date(+t));return(!e||isNaN(+e))&&console&&console.error&&console.error("Failed to parse x '"+t+"' to Date object"),e}}]).default}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2JiLnBsdWdpbi5bbmFtZV0vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIiwid2VicGFjazovL2JiLnBsdWdpbi5bbmFtZV0vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHNMb29zZS5qcyIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovL2JiLnBsdWdpbi5bbmFtZV0vZXh0ZXJuYWwge1wiY29tbW9uanNcIjpcImQzLXNlbGVjdGlvblwiLFwiY29tbW9uanMyXCI6XCJkMy1zZWxlY3Rpb25cIixcImFtZFwiOlwiZDMtc2VsZWN0aW9uXCIsXCJyb290XCI6XCJkM1wifSIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdLy4vc3JjL1BsdWdpbi9QbHVnaW4udHMiLCJ3ZWJwYWNrOi8vYmIucGx1Z2luLltuYW1lXS9leHRlcm5hbCB7XCJjb21tb25qc1wiOlwiZDMtaW50ZXJwb2xhdGVcIixcImNvbW1vbmpzMlwiOlwiZDMtaW50ZXJwb2xhdGVcIixcImFtZFwiOlwiZDMtaW50ZXJwb2xhdGVcIixcInJvb3RcIjpcImQzXCJ9Iiwid2VicGFjazovL2JiLnBsdWdpbi5bbmFtZV0vZXh0ZXJuYWwge1wiY29tbW9uanNcIjpcImQzLWNvbG9yXCIsXCJjb21tb25qczJcIjpcImQzLWNvbG9yXCIsXCJhbWRcIjpcImQzLWNvbG9yXCIsXCJyb290XCI6XCJkM1wifSIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdL2V4dGVybmFsIHtcImNvbW1vbmpzXCI6XCJkMy1zY2FsZVwiLFwiY29tbW9uanMyXCI6XCJkMy1zY2FsZVwiLFwiYW1kXCI6XCJkMy1zY2FsZVwiLFwicm9vdFwiOlwiZDNcIn0iLCJ3ZWJwYWNrOi8vYmIucGx1Z2luLltuYW1lXS8uL3NyYy9jb25maWcvY2xhc3Nlcy50cyIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdLy4vc3JjL2NvbmZpZy9jb25maWcudHMiLCJ3ZWJwYWNrOi8vYmIucGx1Z2luLltuYW1lXS9leHRlcm5hbCB7XCJjb21tb25qc1wiOlwiZDMtYnJ1c2hcIixcImNvbW1vbmpzMlwiOlwiZDMtYnJ1c2hcIixcImFtZFwiOlwiZDMtYnJ1c2hcIixcInJvb3RcIjpcImQzXCJ9Iiwid2VicGFjazovL2JiLnBsdWdpbi5bbmFtZV0vZXh0ZXJuYWwge1wiY29tbW9uanNcIjpcImQzLWF4aXNcIixcImNvbW1vbmpzMlwiOlwiZDMtYXhpc1wiLFwiYW1kXCI6XCJkMy1heGlzXCIsXCJyb290XCI6XCJkM1wifSIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdL2V4dGVybmFsIHtcImNvbW1vbmpzXCI6XCJkMy1mb3JtYXRcIixcImNvbW1vbmpzMlwiOlwiZDMtZm9ybWF0XCIsXCJhbWRcIjpcImQzLWZvcm1hdFwiLFwicm9vdFwiOlwiZDNcIn0iLCJ3ZWJwYWNrOi8vYmIucGx1Z2luLltuYW1lXS8uL3NyYy9QbHVnaW4vc3RhbmZvcmQvT3B0aW9ucy50cyIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdLy4vc3JjL1BsdWdpbi9zdGFuZm9yZC9jbGFzc2VzLnRzIiwid2VicGFjazovL2JiLnBsdWdpbi5bbmFtZV0vLi9zcmMvUGx1Z2luL3N0YW5mb3JkL3V0aWwudHMiLCJ3ZWJwYWNrOi8vYmIucGx1Z2luLltuYW1lXS8uL3NyYy9QbHVnaW4vc3RhbmZvcmQvRWxlbWVudHMudHMiLCJ3ZWJwYWNrOi8vYmIucGx1Z2luLltuYW1lXS8uL3NyYy9QbHVnaW4vc3RhbmZvcmQvQ29sb3JTY2FsZS50cyIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdLy4vc3JjL1BsdWdpbi9zdGFuZm9yZC9pbmRleC50cyIsIndlYnBhY2s6Ly9iYi5wbHVnaW4uW25hbWVdLy4vc3JjL21vZHVsZS9icm93c2VyLnRzIiwid2VicGFjazovL2JiLnBsdWdpbi5bbmFtZV0vLi9zcmMvbW9kdWxlL3V0aWwudHMiXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwicmVxdWlyZSIsImRlZmluZSIsImFtZCIsInRoaXMiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX180X18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX182X18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX183X18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX184X18iLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18xMV9fIiwiX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMTJfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzEzX18iLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsInNlbGYiLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0c0xvb3NlIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY29uc3RydWN0b3IiLCJfX3Byb3RvX18iLCJfZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIlBsdWdpbiIsIm9wdGlvbnMiLCIkYmVmb3JlSW5pdCIsIiRpbml0IiwiJGFmdGVySW5pdCIsIiRyZWRyYXciLCIkd2lsbERlc3Ryb3kiLCJrZXlzIiwiZm9yRWFjaCIsImFyYyIsImFyY0xhYmVsTGluZSIsImFyY3MiLCJhcmVhIiwiYXJlYXMiLCJheGlzIiwiYXhpc1giLCJheGlzWExhYmVsIiwiYXhpc1kiLCJheGlzWTIiLCJheGlzWTJMYWJlbCIsImF4aXNZTGFiZWwiLCJiYXIiLCJiYXJzIiwiYnJ1c2giLCJidXR0b24iLCJidXR0b25ab29tUmVzZXQiLCJjaGFydCIsImNoYXJ0QXJjIiwiY2hhcnRBcmNzIiwiY2hhcnRBcmNzQmFja2dyb3VuZCIsImNoYXJ0QXJjc0dhdWdlTWF4IiwiY2hhcnRBcmNzR2F1Z2VNaW4iLCJjaGFydEFyY3NHYXVnZVVuaXQiLCJjaGFydEFyY3NUaXRsZSIsImNoYXJ0QXJjc0dhdWdlVGl0bGUiLCJjaGFydEJhciIsImNoYXJ0QmFycyIsImNoYXJ0Q2lyY2xlcyIsImNoYXJ0TGluZSIsImNoYXJ0TGluZXMiLCJjaGFydFJhZGFyIiwiY2hhcnRSYWRhcnMiLCJjaGFydFRleHQiLCJjaGFydFRleHRzIiwiY2lyY2xlIiwiY2lyY2xlcyIsImNvbG9yUGF0dGVybiIsImNvbG9yU2NhbGUiLCJkZWZvY3VzZWQiLCJkcmFnYXJlYSIsImVtcHR5IiwiZXZlbnRSZWN0IiwiZXZlbnRSZWN0cyIsImV2ZW50UmVjdHNNdWx0aXBsZSIsImV2ZW50UmVjdHNTaW5nbGUiLCJmb2N1c2VkIiwiZ2F1Z2VWYWx1ZSIsImdyaWQiLCJncmlkTGluZXMiLCJsZWdlbmQiLCJsZWdlbmRCYWNrZ3JvdW5kIiwibGVnZW5kSXRlbSIsImxlZ2VuZEl0ZW1FdmVudCIsImxlZ2VuZEl0ZW1Gb2N1c2VkIiwibGVnZW5kSXRlbUhpZGRlbiIsImxlZ2VuZEl0ZW1Qb2ludCIsImxlZ2VuZEl0ZW1UaWxlIiwibGV2ZWwiLCJsZXZlbHMiLCJsaW5lIiwibGluZXMiLCJtYWluIiwicmVnaW9uIiwicmVnaW9ucyIsInNlbGVjdGVkQ2lyY2xlIiwic2VsZWN0ZWRDaXJjbGVzIiwic2hhcGUiLCJzaGFwZXMiLCJzdGFuZm9yZEVsZW1lbnRzIiwic3RhbmZvcmRMaW5lIiwic3RhbmZvcmRMaW5lcyIsInN0YW5mb3JkUmVnaW9uIiwic3RhbmZvcmRSZWdpb25zIiwidGFyZ2V0IiwidGV4dCIsInRleHRzIiwidGl0bGUiLCJ0b29sdGlwIiwidG9vbHRpcENvbnRhaW5lciIsInRvb2x0aXBOYW1lIiwieGdyaWQiLCJ4Z3JpZEZvY3VzIiwieGdyaWRMaW5lIiwieGdyaWRMaW5lcyIsInhncmlkcyIsInlncmlkIiwieWdyaWRGb2N1cyIsInlncmlkTGluZSIsInlncmlkTGluZXMiLCJ5Z3JpZHMiLCJ6b29tQnJ1c2giLCJFWFBBTkRFRCIsIlNFTEVDVEVEIiwiSU5DTFVERUQiLCJUZXh0T3ZlcmxhcHBpbmciLCJsb2FkQ29uZmlnIiwiY29uZmlnIiwicmVhZCIsInRoaXNDb25maWciLCJmaW5kIiwic2hpZnQiLCJpc09iamVjdFR5cGUiLCJ1bmRlZmluZWQiLCJzcGxpdCIsImlzRGVmaW5lZCIsIk9wdGlvbnMiLCJjb2xvcnMiLCJlcG9jaHMiLCJzY2FsZV9taW4iLCJzY2FsZV9tYXgiLCJzY2FsZV93aWR0aCIsInNjYWxlX2Zvcm1hdCIsInBhZGRpbmdfdG9wIiwicGFkZGluZ19yaWdodCIsInBhZGRpbmdfYm90dG9tIiwicGFkZGluZ19sZWZ0IiwiY29tcGFyZUVwb2NocyIsImEiLCJiIiwiZ2V0Q2VudHJvaWQiLCJwb2ludHMiLCJmIiwicG9pbnQxIiwicG9pbnQyIiwibGVuZ3RoIiwiaiIsIngiLCJ5IiwiZ2V0UmVnaW9uQXJlYSIsIkVsZW1lbnRzIiwib3duZXIiLCJlbGVtZW50cyIsIiQkIiwiJGVsIiwic2VsZWN0IiwiYXBwZW5kIiwiYXR0ciIsIkNMQVNTIiwidXBkYXRlU3RhbmZvcmRMaW5lcyIsImR1cmF0aW9uIiwiaXNSb3RhdGVkIiwiYXhpc19yb3RhdGVkIiwieHZDdXN0b20iLCJ5dkN1c3RvbSIsInN0eWxlIiwic2VsZWN0QWxsIiwiZGF0YSIsImV4aXQiLCJ0cmFuc2l0aW9uIiwicmVtb3ZlIiwic3RhbmZvcmRMaW5lRW50ZXIiLCJlbnRlciIsIm1lcmdlIiwiY2xhc3MiLCJ1cGRhdGVTdGFuZm9yZFJlZ2lvbnMiLCJjb3VudFBvaW50c0luUmVnaW9uIiwiY291bnRFcG9jaHNJblJlZ2lvbiIsInN0YW5mb3JkUmVnaW9uRW50ZXIiLCJtYXAiLCJqb2luIiwib3BhY2l0eSIsInBlcmNlbnRhZ2UiLCJ1cGRhdGVTdGFuZm9yZEVsZW1lbnRzIiwieHlWYWx1ZSIsImdldEJhc2VWYWx1ZSIsImlzVGltZVNlcmllcyIsInBhcnNlRGF0ZSIsImlzQ2F0ZWdvcml6ZWQiLCJpc1N0cmluZyIsImF4aXNfeF9jYXRlZ29yaWVzIiwiaW5kZXhPZiIsIk1hdGgiLCJjZWlsIiwic2NhbGUiLCJ5U2NhbGUiLCJ5MiIsIkNvbG9yU2NhbGUiLCJkcmF3Q29sb3JTY2FsZSIsInRhcmdldHMiLCJoZWlnaHQiLCJzdGF0ZSIsImJhcldpZHRoIiwiZ2V0UmFuZ2UiLCJpbnZlcnNlU2NhbGUiLCJkM1NjYWxlU2VxdWVudGlhbCIsImRvbWFpbiIsInN2ZyIsImF4aXNTY2FsZSIsImQzU2NhbGVMb2ciLCJtaW5FcG9jaHMiLCJtYXhFcG9jaHMiLCJyYW5nZSIsImxlZ2VuZEF4aXMiLCJkM0F4aXNSaWdodCIsInNjYWxlRm9ybWF0IiwidGlja1ZhbHVlcyIsImlzRnVuY3Rpb24iLCJ0aWNrRm9ybWF0IiwiZDNGb3JtYXQiLCJmaWx0ZXIiLCJwb3ciLCJsb2ciLCJMTjEwIiwicm91bmQiLCJjdXJyZW50Iiwid2lkdGgiLCJ4Rm9yQ29sb3JTY2FsZSIsIm5vZGUiLCJnZXRCQm94IiwiZ2V0Q29sb3JTY2FsZVBhZGRpbmciLCJTdGFuZm9yZCIsImRhdGFfeFNvcnQiLCJpc011bHRpcGxlWCIsInNob3dHcmlkRm9jdXMiLCJsYWJlbGlzaERhdGEiLCJ2YWx1ZXMiLCJvcGFjaXR5Rm9yQ2lyY2xlIiwiZ2V0Q3VycmVudFBhZGRpbmdSaWdodCIsImNvbG9yIiwiZ2V0U3RhbmZvcmRQb2ludENvbG9yIiwiY29udmVydERhdGEiLCJpbml0U3RhbmZvcmREYXRhIiwic2V0U3RhbmZvcmRUb29sdGlwIiwiZ2V0T3B0aW9ucyIsInYiLCJjb2xvcnNjYWxlIiwic29ydCIsImlzTmFOIiwibWluIiwibWF4IiwiZDNJbnRlcnBvbGF0ZUhzbExvbmciLCJkM0hzbCIsImQzU2NhbGVTZXF1ZW50aWFsTG9nIiwiaXNFbXB0eSIsInRvb2x0aXBfY29udGVudHMiLCJkZWZhdWx0VGl0bGVGb3JtYXQiLCJkZWZhdWx0VmFsdWVGb3JtYXQiLCJodG1sIiwiZGF0YV94IiwiaWQiLCJ0b3RhbCIsInJlZHVjZSIsImFjY3VtdWxhdG9yIiwiY3VycmVudFZhbHVlIiwicG9pbnQiLCJpbnNpZGUiLCJ4aSIsInlpIiwieGoiLCJ5aiIsInBvaW50SW5SZWdpb24iLCJ0b0ZpeGVkIiwiZGVmIiwid2luIiwid2luZG93IiwiZ2xvYmFsIiwiZ2xvYmFsVGhpcyIsIkZ1bmN0aW9uIiwiZG9jIiwiZG9jdW1lbnQiLCJpc051bWJlciIsIkRhdGUiLCJzdGFydCIsImVuZCIsInN0ZXAiLCJyZXMiLCJwdXNoIiwiTW91c2VFdmVudCIsImUiLCJlbCIsImV2ZW50VHlwZSIsInBhcmFtcyIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsIm1vdXNlRXZlbnQiLCJjcmVhdGVFdmVudCIsImluaXRNb3VzZUV2ZW50IiwiZGlzcGF0Y2hFdmVudCIsImRhdGUiLCJwYXJzZWREYXRlIiwiZm9ybWF0IiwiZGF0YVRpbWUiLCJkYXRhX3hGb3JtYXQiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0NBQUEsU0FBMkNBLEVBQU1DLEdBQzFCLGlCQUFaQyxTQUEwQyxpQkFBWEMsT0FDeENBLE9BQU9E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Y2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJkMy1zZWxlY3Rpb25cIiksIHJlcXVpcmUoXCJkMy1pbnRlcnBvbGF0ZVwiKSwgcmVxdWlyZShcImQzLWNvbG9yXCIpLCByZXF1aXJlKFwiZDMtc2NhbGVcIiksIHJlcXVpcmUoXCJkMy1icnVzaFwiKSwgcmVxdWlyZShcImQzLWF4aXNcIiksIHJlcXVpcmUoXCJkMy1mb3JtYXRcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoXCJzdGFuZm9yZFwiLCBbXCJkMy1zZWxlY3Rpb25cIiwgXCJkMy1pbnRlcnBvbGF0ZVwiLCBcImQzLWNvbG9yXCIsIFwiZDMtc2NhbGVcIiwgXCJkMy1icnVzaFwiLCBcImQzLWF4aXNcIiwgXCJkMy1mb3JtYXRcIl0sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wic3RhbmZvcmRcIl0gPSBmYWN0b3J5KHJlcXVpcmUoXCJkMy1zZWxlY3Rpb25cIiksIHJlcXVpcmUoXCJkMy1pbnRlcnBvbGF0ZVwiKSwgcmVxdWlyZShcImQzLWNvbG9yXCIpLCByZXF1aXJlKFwiZDMtc2NhbGVcIiksIHJlcXVpcmUoXCJkMy1icnVzaFwiKSwgcmVxdWlyZShcImQzLWF4aXNcIiksIHJlcXVpcmUoXCJkMy1mb3JtYXRcIikpO1xuXHRlbHNlXG5cdFx0cm9vdFtcImJiXCJdID0gcm9vdFtcImJiXCJdIHx8IHt9LCByb290W1wiYmJcIl1bXCJwbHVnaW5cIl0gPSByb290W1wiYmJcIl1bXCJwbHVnaW5cIl0gfHwge30sIHJvb3RbXCJiYlwiXVtcInBsdWdpblwiXVtcInN0YW5mb3JkXCJdID0gZmFjdG9yeShyb290W1wiZDNcIl0sIHJvb3RbXCJkM1wiXSwgcm9vdFtcImQzXCJdLCByb290W1wiZDNcIl0sIHJvb3RbXCJkM1wiXSwgcm9vdFtcImQzXCJdLCByb290W1wiZDNcIl0pO1xufSkodGhpcywgZnVuY3Rpb24oX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fNF9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX182X18sIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzdfXywgX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fOF9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18xMV9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18xMl9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18xM19fKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDE2KTtcbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7XG4gIHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzO1xuICBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmo