(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o\n "; }, gradient: function(dir, dur){ var colors, ret, len, gx, gy, x, y, i$, i, idx; dir == null && (dir = 45); dur == null && (dur = 1); colors = slice$.call(arguments, 2); ret = [this.head("0 0 100 100")]; len = colors.length * 4 + 1; dir = dir * Math.PI / 180; gx = Math.pow(Math.cos(dir), 2); gy = Math.sqrt(gx - Math.pow(gx, 2)); if (dir > Math.PI * 0.25) { gy = Math.pow(Math.sin(dir), 2); gx = Math.sqrt(gy - Math.pow(gy, 2)); } x = gx * 100; y = gy * 100; ret.push(""); for (i$ = 0; i$ < len; ++i$) { i = i$; idx = i * 100 / (len - 1); ret.push(""); } ret.push("\n\n"); return wrap(ret.join("")); }, stripe: function(c1, c2, dur){ var ret, i; c1 == null && (c1 = '#b4b4b4'); c2 == null && (c2 = '#e6e6e6'); dur == null && (dur = 1); ret = [this.head("0 0 100 100")]; ret = ret.concat([ "", "", (function(){ var i$, results$ = []; for (i$ = 0; i$ < 13; ++i$) { i = i$; results$.push(("")); } return results$; }()).join(""), "" ].join("")); return wrap(ret); }, bubble: function(c1, c2, count, dur, size, sw){ var ret, i$, i, idx, x, r, d; c1 == null && (c1 = '#39d'); c2 == null && (c2 = '#9cf'); count == null && (count = 15); dur == null && (dur = 1); size == null && (size = 6); sw == null && (sw = 1); ret = [this.head("0 0 200 200"), ""]; for (i$ = 0; i$ < count; ++i$) { i = i$; idx = -(i / count) * dur; x = Math.random() * 184 + 8; r = (Math.random() * 0.7 + 0.3) * size; d = dur * (1 + Math.random() * 0.5); ret.push(["", "", "", "", "", ""].join("")); } return wrap(ret.join("") + ""); } }; handler = { queue: {}, running: false, main: function(timestamp){ var keepon, removed, k, ref$, func, ret, this$ = this; keepon = false; removed = []; for (k in ref$ = this.queue) { func = ref$[k]; ret = func(timestamp); if (!ret) { removed.push(func); } keepon = keepon || ret; } for (k in ref$ = this.queue) { func = ref$[k]; if (removed.indexOf(func) >= 0) { delete this.queue[k]; } } if (keepon) { return requestAnimationFrame(function(it){ return this$.main(it); }); } else { return this.running = false; } }, add: function(key, f){ var this$ = this; if (!this.queue[key]) { this.queue[key] = f; } if (!this.running) { this.running = true; return requestAnimationFrame(function(it){ return this$.main(it); }); } } }; return window.ldBar = ldBar = function(selector, option){ var xmlns, root, cls, idPrefix, id, domTree, newNode, x$, config, attr, that, isStroke, parseRes, dom, svg, text, group, length, path0, path1, patimg, img, ret, size, img2, this$ = this; option == null && (option = {}); xmlns = { xlink: "http://www.w3.org/1999/xlink" }; root = toString$.call(selector).slice(8, -1) === 'String' ? document.querySelector(selector) : selector; cls = root.getAttribute('class') || ''; if (!~cls.indexOf('ldBar')) { root.setAttribute('class', cls + " ldBar"); } idPrefix = "ldBar-" + Math.random().toString(16).substring(2); id = { key: id, clip: idPrefix + "-clip", filter: idPrefix + "-filter", pattern: idPrefix + "-pattern", mask: idPrefix + "-mask", maskPath: idPrefix + "-mask-path" }; domTree = function(n, o){ var k, v; n = newNode(n); for (k in o) { v = o[k]; if (k !== 'attr') { n.appendChild(domTree(k, v || {})); } } n.attrs(o.attr || {}); return n; }; newNode = function(n){ return document.createElementNS("http://www.w3.org/2000/svg", n); }; x$ = document.body.__proto__.__proto__.__proto__; x$.text = function(t){ return this.appendChild(document.createTextNode(t)); }; x$.attrs = function(o){ var k, v, ret, results$ = []; for (k in o) { v = o[k]; ret = /([^:]+):([^:]+)/.exec(k); if (!ret || !xmlns[ret[1]]) { results$.push(this.setAttribute(k, v)); } else { results$.push(this.setAttributeNS(xmlns[ret[1]], k, v)); } } return results$; }; x$.styles = function(o){ var k, v, results$ = []; for (k in o) { v = o[k]; results$.push(this.style[k] = v); } return results$; }; x$.append = function(n){ var r; return this.appendChild(r = document.createElementNS("http://www.w3.og/2000/svg", n)); }; x$.attr = function(n, v){ if (v != null) { return this.setAttribute(n, v); } else { return this.getAttribute(n); } }; config = { "type": 'stroke', "img": '', "path": 'M10 10L90 10', "fill-dir": 'btt', "fill": '#25b', "fill-background": '#ddd', "fill-background-extrude": 3, "pattern-size": null, "stroke-dir": 'normal', "stroke": '#25b', "stroke-width": '3', "stroke-trail": '#ddd', "stroke-trail-width": 0.5, "duration": 1, "easing": 'linear', "value": 0, "img-size": null }; config["preset"] = root.attr("data-preset") || option["preset"]; if (config.preset != null) { import$(config, presets[config.preset]); } for (attr in config) { if (that = that = root.attr("data-" + attr)) { config[attr] = that; } } import$(config, option); if (config.img) { config.path = null; } isStroke = config.type === 'stroke'; parseRes = function(v){ var parser, ret; parser = /data:ldbar\/res,([^()]+)\(([^)]+)\)/; ret = parser.exec(v); if (!ret) { return v; } return ret = make[ret[1]].apply(make, ret[2].split(',')); }; config.fill = parseRes(config.fill); config.stroke = parseRes(config.stroke); parseRes = function(v){ var parser, ret; parser = /data:ldbar\/res,([^()]+)\(([^)]+)\)/; ret = parser.exec(v); if (!ret) { return v; } return ret = make[ret[1]].apply(make, ret[2].split(',')); }; config.fill = parseRes(config.fill); config.stroke = parseRes(config.stroke); dom = { attr: { "xmlns:xlink": 'http://www.w3.org/1999/xlink', preserveAspectRatio: 'xMidYMid', width: "100%", height: "100%" }, defs: { filter: { attr: { id: id.filter, x: -1, y: -1, width: 3, height: 3 }, feMorphology: { attr: { operator: +config["fill-background-extrude"] >= 0 ? 'dilate' : 'erode', radius: Math.abs(+config["fill-background-extrude"]) } }, feColorMatrix: { attr: { values: '0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0', result: "cm" } } }, mask: { attr: { id: id.mask }, image: { attr: { "xlink:href": config.img, filter: "url(#" + id.filter + ")", x: 0, y: 0, width: 100, height: 100, preserveAspectRatio: "xMidYMid" } } }, g: { mask: { attr: { id: id.maskPath }, path: { attr: { d: config.path || "", fill: '#fff', stroke: '#fff', filter: "url(#" + id.filter + ")" } } } }, clipPath: { attr: { id: id.clip }, rect: { attr: { 'class': 'mask', fill: '#000' } } }, pattern: { attr: { id: id.pattern, patternUnits: 'userSpaceOnUse', x: 0, y: 0, width: 300, height: 300 }, image: { attr: { x: 0, y: 0, width: 300, height: 300 } } } } }; svg = domTree('svg', dom); text = document.createElement('div'); text.setAttribute('class', 'ldBar-label'); root.appendChild(svg); root.appendChild(text); group = [0, 0]; length = 0; this.fit = function(){ var box, d, rect; box = group[1].getBBox(); d = Math.max.apply(null, ['stroke-width', 'stroke-trail-width', 'fill-background-extrude'].map(function(it){ return config[it]; })) * 1.5; svg.attrs({ viewBox: [box.x - d, box.y - d, box.width + d * 2, box.height + d * 2].join(" ") }); if (!root.style.width) { root.styles({ width: (box.width + d * 2) + "px" }); } if (!root.style.height) { root.styles({ height: (box.height + d * 2) + "px" }); } rect = group[0].querySelector('rect'); if (rect) { return rect.attrs({ x: box.x - d, y: box.y - d, width: box.width + d * 2, height: box.height + d * 2 }); } }; if (config.path) { if (isStroke) { group[0] = domTree('g', { path: { attr: { d: config.path, fill: 'none', 'class': 'baseline' } } }); } else { group[0] = domTree('g', { rect: { attr: { x: 0, y: 0, width: 100, height: 100, mask: "url(#" + id.maskPath + ")", fill: config["fill-background"], 'class': 'frame' } } }); } svg.appendChild(group[0]); group[1] = domTree('g', { path: { attr: { d: config.path, 'class': isStroke ? 'mainline' : 'solid', "clip-path": config.type === 'fill' ? "url(#" + id.clip + ")" : '' } } }); svg.appendChild(group[1]); path0 = group[0].querySelector(isStroke ? 'path' : 'rect'); path1 = group[1].querySelector('path'); if (isStroke) { path1.attrs({ fill: 'none' }); } patimg = svg.querySelector('pattern image'); img = new Image(); img.addEventListener('load', function(){ var box, that; box = (that = config["pattern-size"]) ? { width: +that, height: +that } : img.width && img.height ? { width: img.width, height: img.height } : { width: 300, height: 300 }; svg.querySelector('pattern').attrs({ width: box.width, height: box.height }); return patimg.attrs({ width: box.width, height: box.height }); }); if (/.+\..+|^data:/.exec(!isStroke ? config.fill : config.stroke)) { img.src = !isStroke ? config.fill : config.stroke; patimg.attrs({ "xlink:href": img.src }); } if (isStroke) { path0.attrs({ stroke: config["stroke-trail"], "stroke-width": config["stroke-trail-width"] }); path1.attrs({ "stroke-width": config["stroke-width"], stroke: /.+\..+|^data:/.exec(config.stroke) ? "url(#" + id.pattern + ")" : config.stroke }); } if (config.fill && !isStroke) { path1.attrs({ fill: /.+\..+|^data:/.exec(config.fill) ? "url(#" + id.pattern + ")" : config.fill }); } length = path1.getTotalLength(); this.fit(); this.inited = true; } else if (config.img) { if (config["img-size"]) { ret = config["img-size"].split(','); size = { width: +ret[0], height: +ret[1] }; } else { size = { width: 100, height: 100 }; } group[0] = domTree('g', { rect: { attr: { x: 0, y: 0, width: 100, height: 100, mask: "url(#" + id.mask + ")", fill: config["fill-background"] } } }); svg.querySelector('mask image').attrs({ width: size.width, height: size.height }); group[1] = domTree('g', { image: { attr: { width: size.width, height: size.height, x: 0, y: 0, preserveAspectRatio: "xMidYMid", "clip-path": config.type === 'fill' ? "url(#" + id.clip + ")" : '', "xlink:href": config.img, 'class': 'solid' } } }); img = new Image(); img.addEventListener('load', function(){ var ret, size; if (config["img-size"]) { ret = config["img-size"].split(','); size = { width: +ret[0], height: +ret[1] }; } else if (img.width && img.height) { size = { width: img.width, height: img.height }; } else { size = { width: 100, height: 100 }; } svg.querySelector('mask image').attrs({ width: size.width, height: size.height }); group[1].querySelector('image').attrs({ width: size.width, height: size.height }); this$.fit(); this$.set(undefined, false); return this$.inited = true; }); img.src = config.img; if (config.img2) { if (config["img-size"]) { ret = config["img-size"].split(','); size = { width: +ret[0], height: +ret[1] }; } else { size = { width: 100, height: 100 }; } group[0] = domTree('g', { rect: { attr: { x: 0, y: 0, width: 100, height: 100, mask: "url(#" + id.mask + ")", fill: config["fill-background"] } } }); svg.querySelector('mask image').attrs({ width: size.width, height: size.height }); group[2] = domTree('g', { image: { attr: { width: size.width, height: size.height, x: 0, y: 0, preserveAspectRatio: "xMidYMid", "xlink:href": config.img2, 'class': 'solid' } } }); img2 = new Image(); img2.addEventListener('load', function(){ var ret, size; if (config["img-size"]) { ret = config["img-size"].split(','); size = { width: +ret[0], height: +ret[1] }; } else if (img2.width && img2.height) { size = { width: img2.width, height: img2.height }; } else { size = { width: 100, height: 100 }; } svg.querySelector('mask image').attrs({ width: size.width, height: size.height }); group[2].querySelector('image').attrs({ width: size.width, height: size.height }); this$.fit(); this$.set(undefined, false); return this$.inited = true; }); img2.src = config.img2; } svg.appendChild(group[0]); if (config.img2) { svg.appendChild(group[2]); } svg.appendChild(group[1]); } svg.attrs({ width: '100%', height: '100%' }); this.transition = { value: { src: 0, des: 0 }, time: {}, ease: function(t, b, c, d){ t = t / (d * 0.5); if (t < 1) { return c * 0.5 * t * t + b; } t = t - 1; return -c * 0.5 * (t * (t - 2) - 1) + b; }, handler: function(time){ var ref$, dv, dt, dur, v, node, style, box, dir; if (this.time.src == null) { this.time.src = time; } ref$ = [this.value.des - this.value.src, (time - this.time.src) * 0.001, +config["duration"] || 1], dv = ref$[0], dt = ref$[1], dur = ref$[2]; text.textContent = v = Math.round(this.ease(dt, this.value.src, dv, dur)); if (isStroke) { node = path1; style = { "stroke-dasharray": config["stroke-dir"] === 'reverse' ? "0 " + length * (100 - v) * 0.01 + " " + length * v * 0.01 + " 0" : v * 0.01 * length + " " + ((100 - v) * 0.01 * length + 1) }; } else { box = group[1].getBBox(); dir = config["fill-dir"]; style = dir === 'btt' || !dir ? { y: box.y + box.height * (100 - v) * 0.01, height: box.height * v * 0.01, x: box.x, width: box.width } : dir === 'ttb' ? { y: box.y, height: box.height * v * 0.01, x: box.x, width: box.width } : dir === 'ltr' ? { y: box.y, height: box.height, x: box.x, width: box.width * v * 0.01 } : dir === 'rtl' ? { y: box.y, height: box.height, x: box.x + box.width * (100 - v) * 0.01, width: box.width * v * 0.01 } : void 8; node = svg.querySelector('rect'); } node.attrs(style); if (dt >= dur) { delete this.time.src; return false; } return true; }, start: function(src, des, doTransition){ var ref$, this$ = this; ref$ = this.value; ref$.src = src; ref$.des = des; !!(root.offsetWidth || root.offsetHeight || root.getClientRects().length); if (!doTransition || !(root.offsetWidth || root.offsetHeight || root.getClientRects().length)) { this.time.src = 0; this.handler(1000); return; } return handler.add(id.key, function(time){ return this$.handler(time); }); } }; this.set = function(v, doTransition){ var src, des; doTransition == null && (doTransition = true); src = this.value || 0; if (v != null) { this.value = v; } else { v = this.value; } des = this.value; return this.transition.start(src, des, doTransition); }; this.set(+config.value || 0, false); return this; }; })(); function import$(obj, src){ var own = {}.hasOwnProperty; for (var key in src) if (own.call(src, key)) obj[key] = src[key]; return obj; } },{"./my-module":2,"presets":3}],2:[function(require,module,exports){ // Generated by LiveScript 1.4.0 var hey, out$ = typeof exports != 'undefined' && exports || this; out$.hey = hey = function(){ return console.log("This is loading bar!"); }; },{}],3:[function(require,module,exports){ // Generated by LiveScript 1.4.0 var presets, out$ = typeof exports != 'undefined' && exports || this; console.log("REMOVEME: presets are separated"); out$.presets = presets = { rainbow: { "type": 'stroke', "path": 'M10 10L90 10', "stroke": 'data:ldbar/res,gradient(0,1,#a551df,#fd51ad,#ff7f82,#ffb874,#ffeb90)' }, energy: { "type": 'fill', "path": 'M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5', "stroke": '#f00', "fill": 'data:ldbar/res,gradient(45,2,#4e9,#8fb,#4e9)', "fill-dir": "ltr", "fill-background": '#444', "fill-background-extrude": 1 }, stripe: { "type": 'fill', "path": 'M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5', "stroke": '#f00', "fill": 'data:ldbar/res,stripe(#25b,#58e,1)', "fill-dir": "ltr", "fill-background": '#ddd', "fill-background-extrude": 1 }, text: { "type": 'fill', "img": "data:image/svg+xml,LOADING", "fill-background-extrude": 1.3, "pattern-size": 100, "fill-dir": "ltr", "img-size": "70,20" }, line: { "type": 'stroke', "path": 'M10 10L90 10', "stroke": '#25b', "stroke-width": 3, "stroke-trail": '#ddd', "stroke-trail-width": 1 }, fan: { "type": 'stroke', "path": 'M10 90A40 40 0 0 1 90 90', "fill-dir": 'btt', "fill": '#25b', "fill-background": '#ddd', "fill-background-extrude": 3, "stroke-dir": 'normal', "stroke": '#25b', "stroke-width": '3', "stroke-trail": '#ddd', "stroke-trail-width": 0.5 }, circle: { "type": 'stroke', "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10', "fill-dir": 'btt', "fill": '#25b', "fill-background": '#ddd', "fill-background-extrude": 3, "stroke-dir": 'normal', "stroke": '#25b', "stroke-width": '3', "stroke-trail": '#ddd', "stroke-trail-width": 0.5 }, bubble: { "type": 'fill', "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10', "fill-dir": 'btt', "fill": 'data:ldbar/res,bubble(#39d,#cef)', "pattern-size": "150", "fill-background": '#ddd', "fill-background-extrude": 2, "stroke-dir": 'normal', "stroke": '#25b', "stroke-width": '3', "stroke-trail": '#ddd', "stroke-trail-width": 0.5 } }; },{}]},{},[1]) //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvaG9tZS9jZXJlbWNlbS9zeW5jL2N1cnItcHJvamVjdHMvc2NhZGEuanMvdmVuZG9yL2xvYWRpbmctaW8vX190bXBfXy9sb2FkaW5nLWJhci9zcmMvbG9hZGluZy1iYXIubHMiLCIvaG9tZS9jZXJlbWNlbS9zeW5jL2N1cnItcHJvamVjdHMvc2NhZGEuanMvdmVuZG9yL2xvYWRpbmctaW8vX190bXBfXy9sb2FkaW5nLWJhci9zcmMvbXktbW9kdWxlLmxzIiwiL2hvbWUvY2VyZW1jZW0vc3luYy9jdXJyLXByb2plY3RzL3NjYWRhLmpzL3ZlbmRvci9sb2FkaW5nLWlvL19fdG1wX18vbG9hZGluZy1iYXIvc3JjL3ByZXNldHMubHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztBQ0F5QixHQUFoQixDQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsYUFBQSxDQUFBLENBQWdCO0FBQ04sT0FBVixDQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsU0FBQSxDQUFBLENBQVU7QUFFbkIsU0FBVyxDQUFBLENBQUEsQ0FBRSxRQUFBLENBQUEsR0FBQTtTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUE7O0FBQy9CLElBQUssQ0FBQSxDQUFBLENBQUUsUUFBQSxDQUFBLE9BQUE7U0FBeUMsNEJBQUMsQ0FBQSxDQUFBLENBQUUsSUFBRixDQUFPLE9BQUQ7O0FBRXZELENBQUcsUUFBQSxDQUFBLENBQUgsQ0FBQTtBQUFBLE1BQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxLQUFBO0FBQUEsRUFDSSxJQUFLLENBQUEsQ0FBQSxDQUNELENBRlI7QUFBQSxJQUVRLElBRlIsRUFFYyxRQUFBLENBQUEsT0FBQSxDQUZkLENBQUE7QUFBQSxNQUFBLE1BQUEsQ0FFMkIsMEdBQUEsQ0FBQSxDQUFBLENBRThDLE9BQUEsQ0FBQSxDQUFBLENBQUEsS0FKekUsQ0FBQTtBQUFBLElBQUEsQ0FBQSxDQUFB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TixRQUFFO0lBQ1MsbUJBQUU7SUFDTSwyQkFBRTtJQUNmLGNBQUU7SUFDTixVQUFFO0lBQ0ksZ0JBQUU7SUFDRixnQkFBRTtJQUNJLHNCQUFFO0VBVmhCO0VBV1YsUUFDVTtJQUFBLFFBQUU7SUFDRixRQUFFO0lBQ0UsWUFBRTtJQUNOLFFBQUU7SUFDUyxtQkFBRTtJQUNNLDJCQUFFO0lBQ2YsY0FBRTtJQUNOLFVBQUU7SUFDSSxnQkFBRTtJQUNGLGdCQUFFO0lBQ0ksc0JBQUU7RUFWaEI7RUFXVixRQUNVO0lBQUEsUUFBRTtJQUNGLFFBQUU7SUFDRSxZQUFFO0lBQ04sUUFBRTtJQUNNLGdCQUFPO0lBQ0osbUJBQUU7SUFDTSwyQkFBRTtJQUNmLGNBQUU7SUFDTixVQUFFO0lBQ0ksZ0JBQUU7SUFDRixnQkFBRTtJQUNJLHNCQUFFO0VBWGhCO0FBM0RWIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInJlcXVpcmUhICcuL215LW1vZHVsZSc6IHtoZXl9XG5yZXF1aXJlISBwcmVzZXRzOiB7cHJlc2V0c31cblxuc2ltcGxlLXN0ciA9IChhcnIpIC0+IGFyci5qb2luICcnXG53cmFwID0gKGNvbnRlbnQpIC0+IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxcIiArIGJ0b2EoY29udGVudClcblxuZG8gLT5cbiAgICBtYWtlID1cbiAgICAgICAgaGVhZDogKHZpZXdCb3gpIC0+IFwiXCJcIlxuICAgICAgICAgICAgICAgIDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIiN2aWV3Qm94XCI+XG4gICAgICAgICAgICAgICAgXCJcIlwiXG5cbiAgICAgICAgZ3JhZGllbnQ6IChkaXIgPSA0NSwgZHVyID0gMSwgLi4uY29sb3JzKSAtPlxuICAgICAgICAgICAgcmV0ID0gW0BoZWFkIFwiMCAwIDEwMCAxMDBcIl1cbiAgICAgICAgICAgIGxlbiA9IGNvbG9ycy5sZW5ndGggKiA0ICsgMVxuICAgICAgICAgICAgZGlyID0gZGlyICogTWF0aC5QSSAvIDE4MFxuICAgICAgICAgICAgZ3ggPSBNYXRoLmNvcyhkaXIpICoqIDJcbiAgICAgICAgICAgIGd5ID0gTWF0aC5zcXJ0KGd4IC0gZ3ggKiogMilcbiAgICAgICAgICAgIGlmIGRpciA+IE1hdGguUEkgKiAwLjI1ID0+XG4gICAgICAgICAgICAgICAgZ3kgPSBNYXRoLnNpbihkaXIpICoqIDJcbiAgICAgICAgICAgICAgICBneCA9IE1hdGguc3FydChneSAtIGd5ICoqIDIpXG4gICAgICAgICAgICB4ID0gZ3ggKiAxMDBcbiAgICAgICAgICAgIHkgPSBneSAqIDEwMFxuICAgICAgICAgICAgcmV0LnB1c2ggXCJcIlwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVwiZ3JhZGllbnRcIiB4MT1cIjBcIiB4Mj1cIiNneFwiIHkxPVwiMFwiIHkyPVwiI2d5XCI+XCJcIlwiXG4gICAgICAgICAgICBmb3IgaSBmcm9tIDAgdGlsIGxlbiA9PlxuICAgICAgICAgICAgICAgIGlkeCA9IGkgKiAxMDAgLyAobGVuIC0gMSlcbiAgICAgICAgICAgICAgICByZXQucHVzaCBcIlwiXCI8c3RvcCBvZmZzZXQ9XCIje2lkeH0lXCIgc3RvcC1jb2xvcj1cIiN7Y29sb3JzW2kgJSBjb2xvcnMubGVuZ3RoXX1cIi8+XCJcIlwiXG4gICAgICAgICAgICByZXQucHVzaCBcIlwiXCJcbiAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PjwvZGVmcz5cbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MDBcIiBoZWlnaHQ9XCI0MDBcIiBmaWxsPVwidXJsKFxcI2dyYWRpZW50KVwiPlxuICAgICAgICAgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIiB0eXBlPVwidHJhbnNsYXRlXCIgZnJvbT1cIi0jeCwtI3lcIlxuICAgICAgICAgICAgICAgIHRvPVwiMCwwXCIgZHVyPVwiI3tkdXJ9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz48L3JlY3Q+PC9zdmc+XG4gICAgICAgICAgICAgICAgXCJcIlwiXG4gICAgICAgICAgICB3cmFwIHJldC5qb2luKFwiXCIpXG5cbiAgICAgICAgc3RyaXBlOiAoYzE9XFwjYjRiNGI0LCBjMj1cXCNlNmU2ZTYsIGR1ciA9IDEpIC0+XG4gICAgICAgICAgICByZXQgPSBbQGhlYWQgXCIwIDAgMTAwIDEwMFwiXVxuICAgICAgICAgICAgcmV0ICsrPSBbXG4gICAgICAgICAgICAgICAgXCJcIlwiPHJlY3QgZmlsbD1cIiNjMlwiIHdpZHRoPVwiMTAwXCIgaGVpZ2h0PVwiMTAwXCIvPlwiXCJcIlxuICAgICAgICAgICAgICAgIFwiXCJcIjxnPjxnPlwiXCJcIlxuICAgICAgICAgICAgICAgIFtcIlwiXCI8cG9seWdvbiBmaWxsPVwiI2MxXCIgXCJcIlwiICtcbiAgICAgICAgICAgICAgICAgXCJcIlwicG9pbnRzPVwiI3stOTAgKyBpICogMjB9LDEwMCAjey0xMDAgKyBpICogMjB9LFwiXCJcIiArXG4gICAgICAgICAgICAgICAgIFwiXCJcIjEwMCAjey02MCArIGkgKiAyMH0sMCAjey01MCArIGkgKiAyMH0sMCBcIi8+XCJcIlwiIGZvciBpIGZyb20gMCB0aWwgMTNdLmpvaW4oXCJcIilcbiAgICAgICAgICAgICAgICBcIlwiXCI8L2c+PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJ0cmFuc2xhdGVcIiBcIlwiXCJcbiAgICAgICAgICAgICAgICBcIlwiXCJmcm9tPVwiMCwwXCIgdG89XCIyMCwwXCIgZHVyPVwiI3tkdXJ9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz48L2c+PC9zdmc+XCJcIlwiXG4gICAgICAgICAgICBdLmpvaW4oXCJcIilcbiAgICAgICAgICAgIHdyYXAgcmV0XG5cbiAgICAgICAgYnViYmxlOiAoYzEgPSBcXCMzOWQsIGMyID0gXFwjOWNmLCBjb3VudCA9IDE1LCBkdXIgPSAxLCBzaXplID0gNiwgc3c9MSkgLT5cbiAgICAgICAgICAgIHJldCA9IFtAaGVhZChcIjAgMCAyMDAgMjAwXCIpLCBcIlwiXCI8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIyMDBcIiBoZWlnaHQ9XCIyMDBcIiBmaWxsPVwiI2MxXCIvPlwiXCJcIl1cbiAgICAgICAgICAgIGZvciBpIGZyb20gMCB0aWwgY291bnQgPT5cbiAgICAgICAgICAgICAgICBpZHggPSAtKGkgLyBjb3VudCkgKiBkdXJcbiAgICAgICAgICAgICAgICB4ID0gTWF0aC5yYW5kb20hICogMTg0ICsgOFxuICAgICAgICAgICAgICAgIHIgPSAoIE1hdGgucmFuZG9tISAqIDAuNyArIDAuMyApICogc2l6ZVxuICAgICAgICAgICAgICAgIGQgPSBkdXIgKiAoMSArIE1hdGgucmFuZG9tISAqIDAuNSlcbiAgICAgICAgICAgICAgICByZXQucHVzaCBbXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxjaXJjbGUgY3g9XCIjeFwiIGN5PVwiMFwiIHI9XCIjclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI2MyXCIgc3Ryb2tlLXdpZHRoPVwiI3N3XCI+XCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9XCJjeVwiIHZhbHVlcz1cIjE5MDstMTBcIiB0aW1lcz1cIjA7MVwiIFwiXCJcIlxuICAgICAgICAgICAgICAgICAgICBcIlwiXCJkdXI9XCIje2R9c1wiIGJlZ2luPVwiI3tpZHh9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cIlwiXCJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPC9jaXJjbGU+XCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxjaXJjbGUgY3g9XCIjeFwiIGN5PVwiMFwiIHI9XCIjclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI2MyXCIgc3Ryb2tlLXdpZHRoPVwiI3N3XCI+XCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9XCJjeVwiIHZhbHVlcz1cIjM5MDsxOTBcIiB0aW1lcz1cIjA7MVwiIFwiXCJcIlxuICAgICAgICAgICAgICAgICAgICBcIlwiXCJkdXI9XCIje2R9c1wiIGJlZ2luPVwiI3tpZHh9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cIlwiXCJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPC9jaXJjbGU+XCJcIlwiXG4gICAgICAgICAgICAgICAgXS5qb2luKFwiXCIpXG4gICAgICAgICAgICB3cmFwKHJldC5qb2luKFwiXCIpICsgXCI8L3N2Zz5cIilcblxuICAgIGhhbmRsZXIgPVxuICAgICAgICBxdWV1ZToge31cbiAgICAgICAgcnVubmluZzogZmFsc2VcbiAgICAgICAgbWFpbjogKHRpbWVzdGFtcCkgLT5cbiAgICAgICAgICAgIGtlZXBvbiA9IGZhbHNlXG4gICAgICAgICAgICByZW1vdmVkID0gW11cbiAgICAgICAgICAgIGZvciBrLGZ1bmMgb2YgQHF1ZXVlID0+XG4gICAgICAgICAgICAgICAgcmV0ID0gZnVuYyB0aW1lc3RhbXBcbiAgICAgICAgICAgICAgICBpZiAhcmV0ID0+IHJlbW92ZWQucHVzaCBmdW5jXG4gICAgICAgICAgICAgICAga2VlcG9uID0ga2VlcG9uIG9yIHJldFxuICAgICAgICAgICAgZm9yIGssZnVuYyBvZiBAcXVldWUgPT4gaWYgcmVtb3ZlZC5pbmRleE9mKGZ1bmMpID49IDAgPT4gZGVsZXRlIEBxdWV1ZVtrXVxuICAgICAgICAgICAgaWYga2VlcG9uID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZSAofj4gQG1haW4gaXQpXG4gICAgICAgICAgICBlbHNlIEBydW5uaW5nID0gZmFsc2VcbiAgICAgICAgYWRkOiAoa2V5LCBmKSAtPlxuICAgICAgICAgICAgaWYgIUBxdWV1ZVtrZXldID0+IEBxdWV1ZVtrZXldID0gZlxuICAgICAgICAgICAgaWYgIUBydW5uaW5nID0+XG4gICAgICAgICAgICAgICAgQHJ1bm5pbmcgPSB0cnVlXG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lICh+PiBAbWFpbiBpdClcblxuXG4gICAgd2luZG93LmxkQmFyID0gbGRCYXIgPSAoc2VsZWN0b3IsIG9wdGlvbiA9IHt9KSAtPlxuICAgICAgICB4bWxucyA9IHhsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICByb290ID0gaWYgdHlwZW9mISBzZWxlY3RvciBpcyBcXFN0cmluZ1xuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvciBzZWxlY3RvclxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzZWxlY3RvclxuXG4gICAgICAgIGNscyA9IHJvb3QuZ2V0QXR0cmlidXRlKFxcY2xhc3MpIG9yICcnXG4gICAgICAgIGlmICF+Y2xzLmluZGV4T2YoJ2xkQmFyJykgPT4gcm9vdC5zZXRBdHRyaWJ1dGUgXFxjbGFzcywgXCIjY2xzIGxkQmFyXCJcbiAgICAgICAgaWQtcHJlZml4ID0gXCJsZEJhci0je01hdGgucmFuZG9tIXRvU3RyaW5nIDE2IC5zdWJzdHJpbmcgMn1cIlxuICAgICAgICBpZCA9XG4gICAgICAgICAgICBrZXk6IGlkXG4gICAgICAgICAgICBjbGlwOiBcIiN7aWQtcHJlZml4fS1jbGlwXCJcbiAgICAgICAgICAgIGZpbHRlcjogXCIje2lkLXByZWZpeH0tZmlsdGVyXCJcbiAgICAgICAgICAgIHBhdHRlcm46IFwiI3tpZC1wcmVmaXh9LXBhdHRlcm5cIlxuICAgICAgICAgICAgbWFzazogXCIje2lkLXByZWZpeH0tbWFza1wiXG4gICAgICAgICAgICBtYXNrLXBhdGg6IFwiI3tpZC1wcmVmaXh9LW1hc2stcGF0aFwiXG4gICAgICAgIGRvbVRyZWUgPSAobixvKSAtPlxuICAgICAgICAgICAgbiA9IG5ld05vZGUgblxuICAgICAgICAgICAgZm9yIGssdiBvZiBvID0+IGlmIGsgIT0gXFxhdHRyID0+IG4uYXBwZW5kQ2hpbGQgZG9tVHJlZShrLCB2IG9yIHt9KVxuICAgICAgICAgICAgbi5hdHRycyhvLmF0dHIgb3Ige30pXG4gICAgICAgICAgICBuXG4gICAgICAgIG5ld05vZGUgPSAobikgLT4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TIFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgblxuICAgICAgICBkb2N1bWVudC5ib2R5Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fXG4gICAgICAgICAgICAuLnRleHQgPSAodCkgLT4gQGFwcGVuZENoaWxkIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpXG4gICAgICAgICAgICAuLmF0dHJzID0gKG8pIC0+IGZvciBrLHYgb2YgbyA9PlxuICAgICAgICAgICAgICAgIHJldCA9IC8oW146XSspOihbXjpdKykvLmV4ZWMoaylcbiAgICAgICAgICAgICAgICBpZiAhcmV0IG9yICF4bWxuc1tyZXQuMV0gPT4gQHNldEF0dHJpYnV0ZSBrLCB2XG4gICAgICAgICAgICAgICAgZWxzZSBAc2V0QXR0cmlidXRlTlMgeG1sbnNbcmV0LjFdLCBrLCB2XG4gICAgICAgICAgICAuLnN0eWxlcyA9IChvKSAtPiBmb3Igayx2IG9mIG8gPT4gQHN0eWxlW2tdID0gdlxuICAgICAgICAgICAgLi5hcHBlbmQgPSAobikgLT4gQGFwcGVuZENoaWxkIHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMgXCJodHRwOi8vd3d3LnczLm9nLzIwMDAvc3ZnXCIsIG5cbiAgICAgICAgICAgIC4uYXR0ciA9IChuLHYpIC0+IGlmIHY/ID0+IEBzZXRBdHRyaWJ1dGUgbiwgdiBlbHNlIEBnZXRBdHRyaWJ1dGUgblxuICAgICAgICBjb25maWcgPVxuICAgICAgICAgICAgXCJ0eXBlXCI6ICdzdHJva2UnXG4gICAgICAgICAgICBcImltZ1wiOiAnJ1xuICAgICAgICAgICAgXCJwYXRoXCI6ICdNMTAgMTBMOTAgMTAnXG4gICAgICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgICAgICBcImZpbGxcIjogXFwjMjViXG4gICAgICAgICAgICBcImZpbGwtYmFja2dyb3VuZFwiOiBcXCNkZGRcbiAgICAgICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogM1xuICAgICAgICAgICAgXCJwYXR0ZXJuLXNpemVcIjogbnVsbFxuICAgICAgICAgICAgXCJzdHJva2UtZGlyXCI6IFxcbm9ybWFsXG4gICAgICAgICAgICBcInN0cm9rZVwiOiBcXCMyNWJcbiAgICAgICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgICAgICBcInN0cm9rZS10cmFpbC13aWR0aFwiOiAwLjVcbiAgICAgICAgICAgIFwiZHVyYXRpb25cIjogMVxuICAgICAgICAgICAgXCJlYXNpbmdcIjogXFxsaW5lYXJcbiAgICAgICAgICAgIFwidmFsdWVcIjogMFxuICAgICAgICAgICAgXCJpbWctc2l6ZVwiOiBudWxsXG5cbiAgICAgICAgY29uZmlnW1wicHJlc2V0XCJdID0gcm9vdC5hdHRyKFwiZGF0YS1wcmVzZXRcIikgb3Igb3B0aW9uW1wicHJlc2V0XCJdXG5cbiAgICAgICAgaWYgY29uZmlnLnByZXNldD9cbiAgICAgICAgICAgICMgdXNlIHRoZSBkZWZhdWx0IHByZXNldFxuICAgICAgICAgICAgY29uZmlnIDw8PCBwcmVzZXRzW2NvbmZpZy5wcmVzZXRdXG5cbiAgICAgICAgIyBvdmVyd3JpdGUgaWYgdGhlcmUgYXJlIGFyZ3VtZW50cyBwYXNzZWQgdmlhIGRhdGEtKiBhdHRyaWJ1dGVzXG4gICAgICAgIGZvciBhdHRyIG9mIGNvbmZpZ1xuICAgICAgICAgICAgaWYgdGhhdCA9IHJvb3QuYXR0ciBcImRhdGEtI3thdHRyfVwiXG4gICAgICAgICAgICAgICAgY29uZmlnW2F0dHJdID0gdGhhdFxuXG4gICAgICAgIGNvbmZpZyA8PDwgb3B0aW9uXG4gICAgICAgIGlmIGNvbmZpZy5pbWcgPT4gY29uZmlnLnBhdGggPSBudWxsXG5cbiAgICAgICAgaXMtc3Ryb2tlID0gY29uZmlnLnR5cGUgPT0gXFxzdHJva2VcbiAgICAgICAgcGFyc2UtcmVzID0gKHYpIC0+XG4gICAgICAgICAgICBwYXJzZXIgPSAvZGF0YTpsZGJhclxcL3JlcywoW14oKV0rKVxcKChbXildKylcXCkvXG4gICAgICAgICAgICByZXQgPSBwYXJzZXIuZXhlYyh2KVxuICAgICAgICAgICAgaWYgIXJldCA9PiByZXR1cm4gdlxuICAgICAgICAgICAgcmV0ID0gbWFrZVtyZXQuMV0uYXBwbHkgbWFrZSwgcmV0LjIuc3BsaXQoXFwsKVxuICAgICAgICBjb25maWcuZmlsbCA9IHBhcnNlLXJlcyBjb25maWcuZmlsbFxuICAgICAgICBjb25maWcuc3Ryb2tlID0gcGFyc2UtcmVzIGNvbmZpZy5zdHJva2VcblxuXG4gICAgICAgIHBhcnNlLXJlcyA9ICh2KSAtPlxuICAgICAgICAgICAgcGFyc2VyID0gL2RhdGE6bGRiYXJcXC9yZXMsKFteKCldKylcXCgoW14pXSspXFwpL1xuICAgICAgICAgICAgcmV0ID0gcGFyc2VyLmV4ZWModilcbiAgICAgICAgICAgIGlmICFyZXQgPT4gcmV0dXJuIHZcbiAgICAgICAgICAgIHJldCA9IG1ha2VbcmV0LjFdLmFwcGx5IG1ha2UsIHJldC4yLnNwbGl0KFxcLClcbiAgICAgICAgY29uZmlnLmZpbGwgPSBwYXJzZS1yZXMgY29uZmlnLmZpbGxcbiAgICAgICAgY29uZmlnLnN0cm9rZSA9IHBhcnNlLXJlcyBjb25maWcuc3Ryb2tlXG5cbiAgICAgICAgZG9tID1cbiAgICAgICAgICAgIGF0dHI6XG4gICAgICAgICAgICAgICAgXCJ4bWxuczp4bGlua1wiOiBcXGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcbiAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiAneE1pZFlNaWQnXG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiMTAwJVwiXG4gICAgICAgICAgICBkZWZzOlxuICAgICAgICAgICAgICAgIGZpbHRlcjpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLmZpbHRlciwgeDogLTEsIHk6IC0xLCB3aWR0aDogMywgaGVpZ2h0OiAzXG4gICAgICAgICAgICAgICAgICAgIGZlTW9ycGhvbG9neTogYXR0cjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAoaWYgK2NvbmZpZ1tcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCJdPj0wID0+IFxcZGlsYXRlIGVsc2UgXFxlcm9kZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGl1czogTWF0aC5hYnMoK2NvbmZpZ1tcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCJdKVxuICAgICAgICAgICAgICAgICAgICBmZUNvbG9yTWF0cml4OiBhdHRyOiB7dmFsdWVzOiAnMCAwIDAgMCAxICAgIDAgMCAwIDAgMSAgICAwIDAgMCAwIDEgICAgMCAwIDAgMSAwJywgcmVzdWx0OiBcImNtXCJ9XG4gICAgICAgICAgICAgICAgbWFzazpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLm1hc2tcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGF0dHI6XG4gICAgICAgICAgICAgICAgICAgICAgICBcInhsaW5rOmhyZWZcIjogY29uZmlnLmltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBcInVybChcXCMje2lkLmZpbHRlcn0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBcInhNaWRZTWlkXCJcblxuICAgICAgICAgICAgICAgIGc6XG4gICAgICAgICAgICAgICAgICAgIG1hc2s6XG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyOiBpZDogaWQubWFzay1wYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBhdHRyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ6IGNvbmZpZy5wYXRoIG9yIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcXCNmZmZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IFxcI2ZmZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogXCJ1cmwoXFwjI3tpZC5maWx0ZXJ9KVwiXG5cbiAgICAgICAgICAgICAgICBjbGlwUGF0aDpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLmNsaXBcbiAgICAgICAgICAgICAgICAgICAgcmVjdDoge2F0dHI6IGNsYXNzOiBcXG1hc2ssIGZpbGw6IFxcIzAwMH1cbiAgICAgICAgICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgICAgICAgICAgICBhdHRyOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLnBhdHRlcm4sIHBhdHRlcm5Vbml0czogXFx1c2VyU3BhY2VPblVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgeDowLCB5OiAwLCB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMFxuICAgICAgICAgICAgICAgICAgICBpbWFnZTogYXR0cjogeDogMCwgeTogMCwgd2lkdGg6IDMwMCwgaGVpZ2h0OiAzMDBcblxuICAgICAgICBzdmcgPSBkb21UcmVlIFxcc3ZnLCBkb21cbiAgICAgICAgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgXFxkaXZcbiAgICAgICAgdGV4dC5zZXRBdHRyaWJ1dGUgXFxjbGFzcywgXFxsZEJhci1sYWJlbFxuICAgICAgICByb290LmFwcGVuZENoaWxkIHN2Z1xuICAgICAgICByb290LmFwcGVuZENoaWxkIHRleHRcblxuICAgICAgICBncm91cCA9IFswLDBdXG4gICAgICAgIGxlbmd0aCA9IDBcblxuICAgICAgICBAZml0ID0gLT5cbiAgICAgICAgICAgIGJveCA9IGdyb3VwLjEuZ2V0QkJveCFcbiAgICAgICAgICAgIGQgPSAoTWF0aC5tYXguYXBwbHkgbnVsbCwgPFtzdHJva2Utd2lkdGggc3Ryb2tlLXRyYWlsLXdpZHRoIGZpbGwtYmFja2dyb3VuZC1leHRydWRlXT4ubWFwKC0+Y29uZmlnW2l0XSkpICogMS41XG5cbiAgICAgICAgICAgIHN2Zy5hdHRycyB2aWV3Qm94OiBbYm94LnggLSBkLCBib3gueSAtIGQsIGJveC53aWR0aCArIGQgKiAyLCBib3guaGVpZ2h0ICsgZCAqIDJdLmpvaW4oXCIgXCIpXG5cbiAgICAgICAgICAgIGlmICFyb290LnN0eWxlLndpZHRoID0+IHJvb3Quc3R5bGVzIHdpZHRoOiBcIiN7Ym94LndpZHRoICsgZCAqIDJ9cHhcIlxuICAgICAgICAgICAgaWYgIXJvb3Quc3R5bGUuaGVpZ2h0ID0+IHJvb3Quc3R5bGVzIGhlaWdodDogXCIje2JveC5oZWlnaHQgKyBkICogMn1weFwiXG4gICAgICAgICAgICByZWN0ID0gZ3JvdXAuMC5xdWVyeVNlbGVjdG9yIFxccmVjdFxuICAgICAgICAgICAgaWYgcmVjdCA9PiByZWN0LmF0dHJzIGRvXG4gICAgICAgICAgICAgICAgeDogYm94LnggLSBkLCB5OiBib3gueSAtIGQsIHdpZHRoOiBib3gud2lkdGggKyBkICogMiwgaGVpZ2h0OiBib3guaGVpZ2h0ICsgZCAqIDJcblxuICAgICAgICBpZiBjb25maWcucGF0aCA9PlxuICAgICAgICAgICAgaWYgaXMtc3Ryb2tlID0+XG4gICAgICAgICAgICAgICAgZ3JvdXAuMCA9IGRvbVRyZWUgXFxnLCBwYXRoOiBhdHRyOlxuICAgICAgICAgICAgICAgICAgICBkOiBjb25maWcucGF0aFxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBcXG5vbmVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFxcYmFzZWxpbmVcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBncm91cC4wID0gZG9tVHJlZSBcXGcsIHJlY3Q6IGF0dHI6XG4gICAgICAgICAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwXG4gICAgICAgICAgICAgICAgICAgIG1hc2s6IFwidXJsKFxcIyN7aWQubWFzay1wYXRofSlcIiwgZmlsbDogY29uZmlnW1wiZmlsbC1iYWNrZ3JvdW5kXCJdXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcXGZyYW1lXG5cbiAgICAgICAgICAgIHN2Zy5hcHBlbmRDaGlsZCBncm91cC4wXG4gICAgICAgICAgICBncm91cC4xID0gZG9tVHJlZSBcXGcsIHBhdGg6IGF0dHI6XG4gICAgICAgICAgICAgICAgZDogY29uZmlnLnBhdGgsIGNsYXNzOiBpZiBpcy1zdHJva2UgPT4gXFxtYWlubGluZSBlbHNlIFxcc29saWRcbiAgICAgICAgICAgICAgICBcImNsaXAtcGF0aFwiOiBpZiBjb25maWcudHlwZSA9PSBcXGZpbGwgPT4gXCJ1cmwoXFwjI3tpZC5jbGlwfSlcIiBlbHNlICcnXG4gICAgICAgICAgICBzdmcuYXBwZW5kQ2hpbGQgZ3JvdXAuMVxuICAgICAgICAgICAgcGF0aDAgPSBncm91cC4wLnF1ZXJ5U2VsZWN0b3IgKGlmIGlzLXN0cm9rZSA9PiBcXHBhdGggZWxzZSBcXHJlY3QpXG4gICAgICAgICAgICBwYXRoMSA9IGdyb3VwLjEucXVlcnlTZWxlY3RvciBcXHBhdGhcbiAgICAgICAgICAgIGlmIGlzLXN0cm9rZSA9PiBwYXRoMS5hdHRycyBmaWxsOiBcXG5vbmVcblxuICAgICAgICAgICAgcGF0aW1nID0gc3ZnLnF1ZXJ5U2VsZWN0b3IgJ3BhdHRlcm4gaW1hZ2UnXG4gICAgICAgICAgICBpbWcgPSBuZXcgSW1hZ2UhXG4gICAgICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lciBcXGxvYWQsIC0+XG4gICAgICAgICAgICAgICAgYm94ID0gaWYgY29uZmlnW1wicGF0dGVybi1zaXplXCJdID0+IHt3aWR0aDogK3RoYXQsIGhlaWdodDogK3RoYXR9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiBpbWcud2lkdGggYW5kIGltZy5oZWlnaHQgPT4ge3dpZHRoOiBpbWcud2lkdGgsIGhlaWdodDogaW1nLmhlaWdodH1cbiAgICAgICAgICAgICAgICBlbHNlIHt3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMH1cbiAgICAgICAgICAgICAgICBzdmcucXVlcnlTZWxlY3RvciBcXHBhdHRlcm4gLmF0dHJzIHt3aWR0aDogYm94LndpZHRoLCBoZWlnaHQ6IGJveC5oZWlnaHR9XG4gICAgICAgICAgICAgICAgcGF0aW1nLmF0dHJzIHt3aWR0aDogYm94LndpZHRoLCBoZWlnaHQ6IGJveC5oZWlnaHR9XG4gICAgICAgICAgICBpZiAvLitcXC4uK3xeZGF0YTovLmV4ZWMoaWYgIWlzLXN0cm9rZSA9PiBjb25maWcuZmlsbCBlbHNlIGNvbmZpZy5zdHJva2UpID0+XG4gICAgICAgICAgICAgICAgaW1nLnNyYyA9IGlmICFpcy1zdHJva2UgPT4gY29uZmlnLmZpbGwgZWxzZSBjb25maWcuc3Ryb2tlXG4gICAgICAgICAgICAgICAgcGF0aW1nLmF0dHJzIFwieGxpbms6aHJlZlwiOiBpbWcuc3JjICNpZiAhaXMtc3Ryb2tlID0+IGNvbmZpZy5maWxsIGVsc2UgY29uZmlnLnN0cm9rZVxuXG4gICAgICAgICAgICBpZiBpcy1zdHJva2UgPT5cbiAgICAgICAgICAgICAgICBwYXRoMC5hdHRycyBzdHJva2U6IGNvbmZpZ1tcInN0cm9rZS10cmFpbFwiXSwgXCJzdHJva2Utd2lkdGhcIjogY29uZmlnW1wic3Ryb2tlLXRyYWlsLXdpZHRoXCJdXG4gICAgICAgICAgICAgICAgcGF0aDEuYXR0cnMgZG9cbiAgICAgICAgICAgICAgICAgICAgXCJzdHJva2Utd2lkdGhcIjogY29uZmlnW1wic3Ryb2tlLXdpZHRoXCJdXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogaWYgLy4rXFwuLit8XmRhdGE6Ly5leGVjKGNvbmZpZy5zdHJva2UpID0+IFwidXJsKFxcIyN7aWQucGF0dGVybn0pXCIgZWxzZSBjb25maWcuc3Ryb2tlXG4gICAgICAgICAgICBpZiBjb25maWcuZmlsbCBhbmQgIWlzLXN0cm9rZSA9PlxuICAgICAgICAgICAgICAgIHBhdGgxLmF0dHJzIGRvXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IGlmIC8uK1xcLi4rfF5kYXRhOi8uZXhlYyhjb25maWcuZmlsbCkgPT4gXCJ1cmwoXFwjI3tpZC5wYXR0ZXJufSlcIiBlbHNlIGNvbmZpZy5maWxsXG5cbiAgICAgICAgICAgIGxlbmd0aCA9IHBhdGgxLmdldFRvdGFsTGVuZ3RoIVxuICAgICAgICAgICAgQGZpdCFcbiAgICAgICAgICAgIEBpbml0ZWQgPSB0cnVlXG4gICAgICAgIGVsc2UgaWYgY29uZmlnLmltZyA9PlxuICAgICAgICAgICAgaWYgY29uZmlnW1wiaW1nLXNpemVcIl0gPT5cbiAgICAgICAgICAgICAgICByZXQgPSBjb25maWdbXCJpbWctc2l6ZVwiXS5zcGxpdChcXCwpXG4gICAgICAgICAgICAgICAgc2l6ZSA9IHt3aWR0aDogK3JldC4wLCBoZWlnaHQ6ICtyZXQuMX1cbiAgICAgICAgICAgIGVsc2Ugc2l6ZSA9IHt3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMH1cblxuICAgICAgICAgICAgZ3JvdXAuMCA9IGRvbVRyZWUgXFxnLCByZWN0OiBhdHRyOlxuICAgICAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBtYXNrOiBcInVybChcXCMje2lkLm1hc2t9KVwiLCBmaWxsOiBjb25maWdbXCJmaWxsLWJhY2tncm91bmRcIl1cbiAgICAgICAgICAgIHN2Zy5xdWVyeVNlbGVjdG9yICdtYXNrIGltYWdlJyAuYXR0cnMgZG9cbiAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCwgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgICAgICAgZ3JvdXAuMSA9IGRvbVRyZWUgXFxnLCBpbWFnZTogYXR0cjpcbiAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCwgaGVpZ2h0OiBzaXplLmhlaWdodCwgeDogMCwgeTogMCwgcHJlc2VydmVBc3BlY3RSYXRpbzogXCJ4TWlkWU1pZFwiXG4gICAgICAgICAgICAgICAgI3dpZHRoOiAxMDAsIGhlaWdodDogMTAwLCB4OiAwLCB5OiAwLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBcInhNaWRZTWlkXCJcbiAgICAgICAgICAgICAgICBcImNsaXAtcGF0aFwiOiBpZiBjb25maWcudHlwZSA9PSBcXGZpbGwgPT4gXCJ1cmwoXFwjI3tpZC5jbGlwfSlcIiBlbHNlICcnXG4gICAgICAgICAgICAgICAgXCJ4bGluazpocmVmXCI6IGNvbmZpZy5pbWcsIGNsYXNzOiBcXHNvbGlkXG4gICAgICAgICAgICBpbWcgPSBuZXcgSW1hZ2UhXG4gICAgICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lciBcXGxvYWQsIH4+XG4gICAgICAgICAgICAgICAgaWYgY29uZmlnW1wiaW1nLXNpemVcIl0gPT5cbiAgICAgICAgICAgICAgICAgICAgcmV0ID0gY29uZmlnW1wiaW1nLXNpemVcIl0uc3BsaXQoXFwsKVxuICAgICAgICAgICAgICAgICAgICBzaXplID0ge3dpZHRoOiArcmV0LjAsIGhlaWdodDogK3JldC4xfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgaW1nLndpZHRoIGFuZCBpbWcuaGVpZ2h0ID0+IHNpemUgPSB7d2lkdGg6IGltZy53aWR0aCwgaGVpZ2h0OiBpbWcuaGVpZ2h0fVxuICAgICAgICAgICAgICAgIGVsc2Ugc2l6ZSA9IHt3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMH1cbiAgICAgICAgICAgICAgICBzdmcucXVlcnlTZWxlY3RvciAnbWFzayBpbWFnZScgLmF0dHJzIGRvXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0XG4gICAgICAgICAgICAgICAgZ3JvdXAuMS5xdWVyeVNlbGVjdG9yICdpbWFnZScgLmF0dHJzIGRvXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0XG5cbiAgICAgICAgICAgICAgICBAZml0IVxuICAgICAgICAgICAgICAgIEBzZXQgdW5kZWZpbmVkLCBmYWxzZVxuICAgICAgICAgICAgICAgIEBpbml0ZWQgPSB0cnVlXG4gICAgICAgICAgICBpbWcuc3JjID0gY29uZmlnLmltZ1xuXG5cblxuICAgICAgICAgICAgaWYgY29uZmlnLmltZzJcblxuICAgICAgICAgICAgICAgIGlmIGNvbmZpZ1tcImltZy1zaXplXCJdID0+XG4gICAgICAgICAgICAgICAgICAgIHJldCA9IGNvbmZpZ1tcImltZy1zaXplXCJdLnNwbGl0KFxcLClcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHt3aWR0aDogK3JldC4wLCBoZWlnaHQ6ICtyZXQuMX1cbiAgICAgICAgICAgICAgICBlbHNlIHNpemUgPSB7d2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDB9XG5cbiAgICAgICAgICAgICAgICBncm91cC4wID0gZG9tVHJlZSBcXGcsIHJlY3Q6IGF0dHI6XG4gICAgICAgICAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBtYXNrOiBcInVybChcXCMje2lkLm1hc2t9KVwiLCBmaWxsOiBjb25maWdbXCJmaWxsLWJhY2tncm91bmRcIl1cbiAgICAgICAgICAgICAgICBzdmcucXVlcnlTZWxlY3RvciAnbWFzayBpbWFnZScgLmF0dHJzIGRvXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0XG4gICAgICAgICAgICAgICAgZ3JvdXAuMiA9IGRvbVRyZWUgXFxnLCBpbWFnZTogYXR0cjpcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHQsIHg6IDAsIHk6IDAsIHByZXNlcnZlQXNwZWN0UmF0aW86IFwieE1pZFlNaWRcIlxuICAgICAgICAgICAgICAgICAgICAjd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAsIHg6IDAsIHk6IDAsIHByZXNlcnZlQXNwZWN0UmF0aW86IFwieE1pZFlNaWRcIlxuICAgICAgICAgICAgICAgICAgICBcInhsaW5rOmhyZWZcIjogY29uZmlnLmltZzIsIGNsYXNzOiBcXHNvbGlkXG4gICAgICAgICAgICAgICAgaW1nMiA9IG5ldyBJbWFnZSFcbiAgICAgICAgICAgICAgICBpbWcyLmFkZEV2ZW50TGlzdGVuZXIgXFxsb2FkLCB+PlxuICAgICAgICAgICAgICAgICAgICBpZiBjb25maWdbXCJpbWctc2l6ZVwiXSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gY29uZmlnW1wiaW1nLXNpemVcIl0uc3BsaXQoXFwsKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHt3aWR0aDogK3JldC4wLCBoZWlnaHQ6ICtyZXQuMX1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiBpbWcyLndpZHRoIGFuZCBpbWcyLmhlaWdodCA9PiBzaXplID0ge3dpZHRoOiBpbWcyLndpZHRoLCBoZWlnaHQ6IGltZzIuaGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHNpemUgPSB7d2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDB9XG4gICAgICAgICAgICAgICAgICAgIHN2Zy5xdWVyeVNlbGVjdG9yICdtYXNrIGltYWdlJyAuYXR0cnMgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLjIucXVlcnlTZWxlY3RvciAnaW1hZ2UnIC5hdHRycyBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHRcblxuICAgICAgICAgICAgICAgICAgICBAZml0IVxuICAgICAgICAgICAgICAgICAgICBAc2V0IHVuZGVmaW5lZCwgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgQGluaXRlZCA9IHRydWVcbiAgICAgICAgICAgICAgICBpbWcyLnNyYyA9IGNvbmZpZy5pbWcyXG5cbiAgICAgICAgICAgIHN2Zy5hcHBlbmRDaGlsZCBncm91cC4wXG4gICAgICAgICAgICBpZiBjb25maWcuaW1nMlxuICAgICAgICAgICAgICAgIHN2Zy5hcHBlbmRDaGlsZCBncm91cC4yXG4gICAgICAgICAgICBzdmcuYXBwZW5kQ2hpbGQgZ3JvdXAuMVxuICAgICAgICBzdmcuYXR0cnMgd2lkdGg6IFxcMTAwJSwgaGVpZ2h0OiBcXDEwMCUgIywgdmlld0JveDogJzAgMCAxMDAgMTAwJ1xuXG4gICAgICAgIEB0cmFuc2l0aW9uID1cbiAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgIHNyYzogMFxuICAgICAgICAgICAgICAgIGRlczogMFxuICAgICAgICAgICAgdGltZToge31cblxuICAgICAgICAgICAgZWFzZTogKHQsYixjLGQpIC0+XG4gICAgICAgICAgICAgICAgdCA9IHQgLyAoZCAqIDAuNSlcbiAgICAgICAgICAgICAgICBpZiB0IDwgMSA9PiByZXR1cm4gYyAqIDAuNSAqIHQgKiB0ICsgYlxuICAgICAgICAgICAgICAgIHQgPSB0IC0gMVxuICAgICAgICAgICAgICAgIHJldHVybiAtYyAqIDAuNSAqICh0Kih0IC0gMikgLSAxKSArIGJcblxuICAgICAgICAgICAgaGFuZGxlcjogKHRpbWUpIC0+XG4gICAgICAgICAgICAgICAgaWYgIUB0aW1lLnNyYz8gPT4gQHRpbWUuc3JjID0gdGltZVxuICAgICAgICAgICAgICAgIFtkdiwgZHQsIGR1cl0gPSBbQHZhbHVlLmRlcyAtIEB2YWx1ZS5zcmMsICh0aW1lIC0gQHRpbWUuc3JjKSAqIDAuMDAxLCArY29uZmlnW1wiZHVyYXRpb25cIl0gb3IgMV1cbiAgICAgICAgICAgICAgICB0ZXh0LnRleHRDb250ZW50ID0gdiA9IE1hdGgucm91bmQoQGVhc2UgZHQsIEB2YWx1ZS5zcmMsIGR2LCBkdXIpXG4gICAgICAgICAgICAgICAgaWYgaXMtc3Ryb2tlID0+XG4gICAgICAgICAgICAgICAgICAgIG5vZGUgPSBwYXRoMVxuICAgICAgICAgICAgICAgICAgICBzdHlsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0cm9rZS1kYXNoYXJyYXlcIjogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbmZpZ1tcInN0cm9rZS1kaXJcIl0gPT0gXFxyZXZlcnNlID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMCAje2xlbmd0aCAqICgxMDAgLSB2KSAqIDAuMDF9ICN7bGVuZ3RoICogdiAqIDAuMDF9IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgPT4gXCIje3YgKiAwLjAxICogbGVuZ3RofSAjeygxMDAgLSB2KSAqIDAuMDEgKiBsZW5ndGggKyAxfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBib3ggPSBncm91cC4xLmdldEJCb3ghXG4gICAgICAgICAgICAgICAgICAgIGRpciA9IGNvbmZpZ1tcImZpbGwtZGlyXCJdXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlID0gaWYgZGlyID09IFxcYnR0IG9yICFkaXIgPT4gZG9cbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IGJveC55ICsgYm94LmhlaWdodCAqICgxMDAgLSB2KSAqIDAuMDFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYm94LmhlaWdodCAqIHYgKiAwLjAxXG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBib3gueCwgd2lkdGg6IGJveC53aWR0aFxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIGRpciA9PSBcXHR0YiA9PiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgeTogYm94LnksIGhlaWdodDogYm94LmhlaWdodCAqIHYgKiAwLjAxXG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBib3gueCwgd2lkdGg6IGJveC53aWR0aFxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIGRpciA9PSBcXGx0ciA9PiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgeTogYm94LnksIGhlaWdodDogYm94LmhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgeDogYm94LngsIHdpZHRoOiBib3gud2lkdGggKiB2ICogMC4wMVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIGRpciA9PSBcXHJ0bCA9PiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgeTogYm94LnksIGhlaWdodDogYm94LmhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgeDogYm94LnggKyBib3gud2lkdGggKiAoMTAwIC0gdikgKiAwLjAxXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYm94LndpZHRoICogdiAqIDAuMDFcbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHN2Zy5xdWVyeVNlbGVjdG9yIFxccmVjdFxuICAgICAgICAgICAgICAgIG5vZGUuYXR0cnMgc3R5bGVcbiAgICAgICAgICAgICAgICBpZiBkdCA+PSBkdXIgPT4gZGVsZXRlIEB0aW1lLnNyYzsgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICAgIHN0YXJ0OiAoc3JjLCBkZXMsIGRvVHJhbnNpdGlvbikgLT5cbiAgICAgICAgICAgICAgICBAdmFsdWUgPDw8IHtzcmMsIGRlc31cbiAgICAgICAgICAgICAgICAhISggcm9vdC5vZmZzZXRXaWR0aCB8fCByb290Lm9mZnNldEhlaWdodCB8fCByb290LmdldENsaWVudFJlY3RzIWxlbmd0aCApXG4gICAgICAgICAgICAgICAgaWYgIWRvVHJhbnNpdGlvbiBvciAhKCByb290Lm9mZnNldFdpZHRoIHx8IHJvb3Qub2Zmc2V0SGVpZ2h0IHx8IHJvb3QuZ2V0Q2xpZW50UmVjdHMhbGVuZ3RoICkgPT5cbiAgICAgICAgICAgICAgICAgICAgQHRpbWUuc3JjID0gMFxuICAgICAgICAgICAgICAgICAgICBAaGFuZGxlciAxMDAwXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIGhhbmRsZXIuYWRkIGlkLmtleSwgKHRpbWUpIH4+IHJldHVybiBAaGFuZGxlciB0aW1lXG5cbiAgICAgICAgQHNldCA9ICh2LGRvVHJhbnNpdGlvbiA9IHRydWUpIC0+XG4gICAgICAgICAgICBzcmMgPSBAdmFsdWUgb3IgMFxuICAgICAgICAgICAgaWYgdj8gPT4gQHZhbHVlID0gdiBlbHNlIHYgPSBAdmFsdWVcbiAgICAgICAgICAgIGRlcyA9IEB2YWx1ZVxuICAgICAgICAgICAgQHRyYW5zaXRpb24uc3RhcnQgc3JjLCBkZXMsIGRvVHJhbnNpdGlvblxuXG4gICAgICAgIEBzZXQgKCtjb25maWcudmFsdWUgb3IgMCksIGZhbHNlXG4gICAgICAgIEBcblxuICAgIC8qXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgXFxsb2FkLCAoLT5cbiAgICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxcLmxkQmFyKSkuZm9yRWFjaCAtPiBpdC5sZEJhciA9IG5ldyBsZEJhciBpdFxuICAgICksIGZhbHNlXG4gICAgKi9cbiIsImV4cG9ydCBoZXkgPSAtPiBjb25zb2xlLmxvZyBcIlRoaXMgaXMgbG9hZGluZyBiYXIhXCJcbiIsImNvbnNvbGUubG9nIFwiUkVNT1ZFTUU6IHByZXNldHMgYXJlIHNlcGFyYXRlZFwiXG5leHBvcnQgcHJlc2V0cyA9XG4gICAgcmFpbmJvdzpcbiAgICAgICAgXCJ0eXBlXCI6ICdzdHJva2UnXG4gICAgICAgIFwicGF0aFwiOiAnTTEwIDEwTDkwIDEwJ1xuICAgICAgICBcInN0cm9rZVwiOiAnZGF0YTpsZGJhci9yZXMsZ3JhZGllbnQoMCwxLCNhNTUxZGYsI2ZkNTFhZCwjZmY3ZjgyLCNmZmI4NzQsI2ZmZWI5MCknXG4gICAgZW5lcmd5OlxuICAgICAgICBcInR5cGVcIjogJ2ZpbGwnXG4gICAgICAgIFwicGF0aFwiOiAnTTE1IDVMODUgNUE1IDUgMCAwIDEgODUgMTVMMTUgMTVBNSA1IDAgMCAxIDE1IDUnXG4gICAgICAgIFwic3Ryb2tlXCI6IFxcI2YwMFxuICAgICAgICBcImZpbGxcIjogJ2RhdGE6bGRiYXIvcmVzLGdyYWRpZW50KDQ1LDIsIzRlOSwjOGZiLCM0ZTkpJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFwibHRyXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjNDQ0XG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogMVxuICAgIHN0cmlwZTpcbiAgICAgICAgXCJ0eXBlXCI6ICdmaWxsJ1xuICAgICAgICBcInBhdGhcIjogJ00xNSA1TDg1IDVBNSA1IDAgMCAxIDg1IDE1TDE1IDE1QTUgNSAwIDAgMSAxNSA1J1xuICAgICAgICBcInN0cm9rZVwiOiBcXCNmMDBcbiAgICAgICAgXCJmaWxsXCI6ICdkYXRhOmxkYmFyL3JlcyxzdHJpcGUoIzI1YiwjNThlLDEpJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFwibHRyXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogMVxuICAgIHRleHQ6XG4gICAgICAgIFwidHlwZVwiOiAnZmlsbCdcbiAgICAgICAgXCJpbWdcIjogXCJcIlwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNzBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNzAgMjBcIj48dGV4dCB4PVwiMzVcIiB5PVwiMTBcIiB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiIG1pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiBmb250LWZhbWlseT1cImFyaWFsXCI+TE9BRElORzwvdGV4dD48L3N2Zz5cIlwiXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmQtZXh0cnVkZVwiOiAxLjNcbiAgICAgICAgXCJwYXR0ZXJuLXNpemVcIjogMTAwXG4gICAgICAgIFwiZmlsbC1kaXJcIjogXCJsdHJcIlxuICAgICAgICBcImltZy1zaXplXCI6IFwiNzAsMjBcIlxuICAgIGxpbmU6XG4gICAgICAgIFwidHlwZVwiOiAnc3Ryb2tlJ1xuICAgICAgICBcInBhdGhcIjogJ00xMCAxMEw5MCAxMCdcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IDNcbiAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgIFwic3Ryb2tlLXRyYWlsLXdpZHRoXCI6IDFcbiAgICBmYW46XG4gICAgICAgIFwidHlwZVwiOiAnc3Ryb2tlJ1xuICAgICAgICBcInBhdGhcIjogJ00xMCA5MEE0MCA0MCAwIDAgMSA5MCA5MCdcbiAgICAgICAgXCJmaWxsLWRpclwiOiBcXGJ0dFxuICAgICAgICBcImZpbGxcIjogXFwjMjViXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kXCI6IFxcI2RkZFxuICAgICAgICBcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCI6IDNcbiAgICAgICAgXCJzdHJva2UtZGlyXCI6IFxcbm9ybWFsXG4gICAgICAgIFwic3Ryb2tlXCI6IFxcIzI1YlxuICAgICAgICBcInN0cm9rZS13aWR0aFwiOiBcXDNcbiAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgIFwic3Ryb2tlLXRyYWlsLXdpZHRoXCI6IDAuNVxuICAgIGNpcmNsZTpcbiAgICAgICAgXCJ0eXBlXCI6ICdzdHJva2UnXG4gICAgICAgIFwicGF0aFwiOiAnTTUwIDEwQTQwIDQwIDAgMCAxIDUwIDkwQTQwIDQwIDAgMCAxIDUwIDEwJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgIFwiZmlsbFwiOiBcXCMyNWJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogM1xuICAgICAgICBcInN0cm9rZS1kaXJcIjogXFxub3JtYWxcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICBcInN0cm9rZS10cmFpbFwiOiBcXCNkZGRcbiAgICAgICAgXCJzdHJva2UtdHJhaWwtd2lkdGhcIjogMC41XG4gICAgYnViYmxlOlxuICAgICAgICBcInR5cGVcIjogJ2ZpbGwnXG4gICAgICAgIFwicGF0aFwiOiAnTTUwIDEwQTQwIDQwIDAgMCAxIDUwIDkwQTQwIDQwIDAgMCAxIDUwIDEwJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgIFwiZmlsbFwiOiAnZGF0YTpsZGJhci9yZXMsYnViYmxlKCMzOWQsI2NlZiknXG4gICAgICAgIFwicGF0dGVybi1zaXplXCI6IFwiMTUwXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogMlxuICAgICAgICBcInN0cm9rZS1kaXJcIjogXFxub3JtYWxcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICBcInN0cm9rZS10cmFpbFwiOiBcXCNkZGRcbiAgICAgICAgXCJzdHJva2UtdHJhaWwtd2lkdGhcIjogMC41XG4iXX0=